diff --git a/CHANGELOG.md b/CHANGELOG.md index 6aa03e7b..36a16c1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,11 @@ ## 0.5.0 New features: - Add RMS and Peak measurement for each channel at input and output. -- Add a Volume filter for volume control. +- Add a `Volume` filter for volume control. - Add exit codes. - Adapt `check` output to be more suitable for scripts. - Search for filter coefficient files with relative paths first in config file dir. -- Add ShibataLow dither types. +- Add `ShibataLow` dither types. - Add option to write logs to file. - Skip processing of channels that are not used in the pipeline. - Update to new faster RustFFT. @@ -13,7 +13,8 @@ New features: - Use updated faster resampler. - Enable experimental neon support in resampler via `neon` feature. - Add `Loudness` volume control filter. -- Add mute option on mixer outputs. +- Add mute options in mixer and Gain filters. +- Add mute function to Volume and Loundness filters, with websocket commands. ## 0.4.0 diff --git a/README.md b/README.md index 79ec952b..5fbcd789 100644 --- a/README.md +++ b/README.md @@ -723,7 +723,7 @@ The filters section defines the filter configurations to use in the pipeline. It The supported filter types are Biquad, BiquadCombo and DiffEq for IIR and Conv for FIR. There are also filters just providing gain and delay. The last filter type is Dither, which is used to add dither when quantizing the output. ### Gain -The gain filter simply changes the amplitude of the signal. The `inverted` parameter simply inverts the signal. This parameter is optional and the default is to not invert. The `gain` value is given in dB, and a positive value means the signal will be amplified while a negative values attenuates. +The gain filter simply changes the amplitude of the signal. The `inverted` parameter simply inverts the signal. This parameter is optional and the default is to not invert. The `gain` value is given in dB, and a positive value means the signal will be amplified while a negative values attenuates. The `mute` parameter determines if the the signal should be muted. This is optional and defaults to not mute. Example Gain filter: ``` @@ -733,10 +733,11 @@ filters: parameters: gain: -6.0 inverted: false + mute: false (*) ``` ### Volume -The Volume filter is intended to be used as a volume control. The inital volume can be set with the `gain` command line parameter. The volume can then be changed via the websocket. A request to set the volume will be applied to all Volume filters. When the volume is changed, the gain is ramped smoothly to the new value. The duration of this ramp is set by the `ramp_time` parameter (unit milliseconds). If left out, this defaults to 200 ms. This value will be rounded to the nearest number of chunks. To use this filter, insert a Volume filter somewhere in the pipeline for each channel. It's possible to use this to make a dithered volume control by placing the Volume filter somewhere in the pipeline, and having a Dither filter as the last step. +The Volume filter is intended to be used as a volume control. The inital volume and muting state can be set with the `gain` and `mute` command line parameters. The volume can then be changed via the websocket. A request to set the volume will be applied to all Volume filters. When the volume or mute state is changed, the gain is ramped smoothly to the new value. The duration of this ramp is set by the `ramp_time` parameter (unit milliseconds). If left out, this defaults to 200 ms. This value will be rounded to the nearest number of chunks. To use this filter, insert a Volume filter somewhere in the pipeline for each channel. It's possible to use this to make a dithered volume control by placing the Volume filter somewhere in the pipeline, and having a Dither filter as the last step. Example Volume filter: ``` diff --git a/websocket.md b/websocket.md index 45e485f4..b5adceff 100644 --- a/websocket.md +++ b/websocket.md @@ -81,10 +81,13 @@ Commands for reading status parameters. ### Volume control -Commands for setting and getting the volume setting. These are only relevant if the pipeline includes "Volume" filters. +Commands for setting and getting the volume setting. These are only relevant if the pipeline includes "Volume" or "Loudness" filters. - `GetVolume` : get the current volume setting in dB. * returns the value as a float - `SetVolume` : set the volume control to the given value in dB. +- `GetMute` : get the current mute setting. + * returns the muting status as a boolean +- `SetMute` : set muting to the given value. ### Config management