Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add DSP settings info #142

Merged
merged 31 commits into from
Jan 4, 2025
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added docs/assets/screenshots/dsp.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
44 changes: 44 additions & 0 deletions docs/dsp/parametriceq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
title: DSP Parametric Equalizer
description: Explanation of the use and effect of the DSP Parametric Equalizer filter
---
OzGav marked this conversation as resolved.
Show resolved Hide resolved

# Parametric Equalizer

A Parametric Equalizer (PEQ) is a [powerful tool](https://www.masteringbox.com/learn/parametric-eq) for fine-tuning audio. Unlike simpler tone controls, a PEQ allows precise adjustment of specific frequency ranges.

PEQs can be used to tailor the sound to a room's acoustics, compensate for speaker or headphone characteristics, or to fine-tune the frequency balance to personal taste.

Multiple PEQ filters can be added to the MA signal path if desired.

## Usage

### Frequency Band Adjustment

Unlimited bands can be added to the PEQ. For each band it is possible to control:

- **Frequency:** The center frequency to be adjusted (e.g., 100Hz for bass, 1kHz for midrange, 10kHz for treble).

- **Gain:** How much boost (increased volume) or cut (decreased volume) to be applied to that frequency, measured in decibels (dB).

- **Q (Quality Factor):** This determines the width of the frequency range affected. A higher Q means a narrower, more focused adjustment, while a lower Q creates a broader, gentler change.

- **Filter Type:** This determines the [shape of the adjustment](https://www.musicguymixing.com/eq-filters/). The available options are Peak, High Shelf, Low Shelf, High Pass, Low Pass, and Notch.

### Presets

If you have measured your speakers, or want to correct your headphones with [AutoEQ](https://autoeq.app/), you can automatically import a preset into this filter.

Music Assistant accepts [Equalizer APO's](https://equalizerapo.com) file format which is widely adopted in various applications, and this import functionality also works seamlessly with [Room EQ Wizard](https://www.roomeqwizard.com) (REW)'s `Export filter settings as text file format`.
OzGav marked this conversation as resolved.
Show resolved Hide resolved
While not all filter types are supported (Modal, BP, LSC x dB, HS x dB, AP, LS with dB slope, HS with dB slope), the most important ones are functional.

Currently, the Preamp option is not supported. This may change in the future.

Music Assistant presets can also be exported for use in other applications.
OzGav marked this conversation as resolved.
Show resolved Hide resolved

This functionality has been tested with:

- An Equalizer preset exported from REW
- An Equalizer preset exported from [EasyEffects](https://wwmm.github.io/easyeffects/) (as APO preset)
- An example REW-compatible preset from [HouseCurve](https://housecurve.com/)
- A Music Assistant exported preset imported into EasyEffects
OzGav marked this conversation as resolved.
Show resolved Hide resolved
8 changes: 8 additions & 0 deletions docs/dsp/tonecontrols.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: DSP Tone Controls
description: Explanation of the use and effect of the DSP Tone Controls filter
---

# Tone Controls

To be added
23 changes: 23 additions & 0 deletions docs/player-support/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,26 @@ Players can only deleted if they are unavailable or disabled. Deleting a player
Audio quality is the principal reason why native MA players are developed. These players provide the highest quality playback experience. HA players should work and may work well but they may also have been written with a basic objective such as enabling text to speech. Therefore, if there is a MA player available and a HA integration then you should always choose the MA player.

A sample rate above 48kHz or a bit depth above 16 is considered High Resolution (Hi Res)

## DSP Settings

All providers have the option to apply [Digital Signal Processing](https://en.wikipedia.org/wiki/Digital_signal_processing) (DSP) filters to the audio stream. DSP lets you shape and refine the audio with a variety of filters. Use it to tailor the sound to a room's acoustics, compensate for speaker characteristics, and fine-tune the frequency balance to personal taste.

The DSP option is found in the MA settings for each player which means that each player has its own independently configurable DSP settings.

DSP settings will be disabled for all groups except AirPlay and Snapcast.

The DSP path has mandatory INPUT and OUTPUT pre-amps and optionally the following filters can be added (multiple times if desired):

- [Parametric Equalizer][../dsp/parametriceq.md)
- [Tone Controls](../dsp/tonecontrols.md)

The DSP settings can be enabled and disabled via a toggle which allows easy [A-B testing](https://www.youtube.com/watch?v=KefGjPYyIO4)

The line on the left of the DSP settings represents the audio path, in sequential order, from the audio file (top) to the player (bottom).

A dot on the line represents a component that changes the signal. The lack of a dot indicates that the particular component has been disabled.

Using the icons at the top of the view, the additional filters can be reordered, disabled/enabled or deleted.

![DSP image](../assets/screenshots/dsp.jpg)
2 changes: 2 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ nav:
- General: usage.md
- UI: ui.md
- Groups: faq/groups.md
- DSP Parametric EQ: dsp/parametriceq.md
- DSP Tone Controls: dsp/tonecontrols.md
- How Do I...: faq/how-to.md
- I Want To Stream To: faq/stream-to.md
- Technical Info: faq/tech-info.md
Expand Down