Bugfixes:
- MacOS: Fix using Aggregate devices for playback.
Bugfixes:
- MacOS: Fix a segfault when reading clock source names for some capture devices.
- Windows: Adjust the missed event threshold, avoids some rare stuttering.
Bugfixes:
- Ignore capture_samplerate when resampling is disabled.
- Increase Alsa device buffer sizes to avoid errors.
New features:
- Add dynamic range compressor.
- Add websocket commands to read peak and rms history.
- Add ToggleMute websocket command.
- Add AdjustVolume websocket command for relative volume changes.
- Better handling of USB gadget in Alsa backend.
- Add option to bypass pipeline steps.
- Bluetooth capture support on Linux via Bluez.
- Updated resampler with faster lower quality options.
- Higher precision of biquad filters.
- More flexible configuration of resampler type and quality.
- Allow setting optional config parameters to
null
to use default value. - Add "Dummy" convolution filter type for easier CPU load testing.
- Add title and description fields to various parts of the config.
- Gain can be specified in dB or linear scale.
- Websocket command to reset clipped samples counter.
- Add an always enabled default volume control.
- Add several volume control channels (faders).
- Change Loudness filter to only perform loudness compensation.
- Add more ditherers.
- Add GeneralNotch biquad type.
- Add Tilt equalizer biquad combo.
- Add GraphicEqualizer biquad combo.
- Support rate adjust for BlachHole on macOS.
- Add statefile for persisting runtime parameters to file.
- Websocket command to get pipeline processing capacity utilization.
- Add commands to read statefile path and updating status.
- Improved handling of config changes via SIGHUP and websocket.
Changes:
- Optimize cpu load in general, and of dithering and delay filters in particular.
- More logical names for dither types.
- Updated Shibata dither coeffients.
- Rename
Set/GetConfigName
websocket commands toSet/GetConfigFilePath
. - Removed redundant
change_format
parameter to simplify CoreAudio device config.
Bugfixes:
- Volume and Loudness filters keep mute state on config reload.
Bugfixes:
- Optimize inefficient peak and rms calculations.
- Switch to stable compiler for release builds, fixes memory leak in pre-built v1.0.1 binary on macOS.
Bugfixes:
- Alsa: Avoid opening capture and playback devices at the same time since this causes trouble with some devices.
New features:
- New improved CoreAudio backend.
- Switch to faster logging library.
- Improved support for Wasapi loopback capture.
- Add "Stalled" state.
- Some Mixer parameters made optional.
- Delay value can be given in millimetres.
- Improved Alsa backend.
- Handle subnormal numbers in IIR filters (Biquad and DiffEq).
Bugfixes:
- Fix slow start with Alsa plug devices (regression in 0.6.2).
New features:
- Updated wasapi library.
- Add FivePointPeq biquad combo.
- Support wav with extended header.
Bugfixes:
- Stop properly after failing to start with bad wasapi config.
New features:
- Add lists of supported device types in help message.
Bugfixes:
- Fix broken Wasapi shared mode.
- Correct "built with features" list in help.
- Correct list of supported device types.
New features:
- New Wasapi backend with support for exclusive mode and loopback.
- Do proper shutdown on SIGINT (ctrl-c).
- Add StopReason websocket command.
- Add GetPreviousConfig websocket command to get the previously active config.
- Add option to stop on detected sample rate change.
- Add support for rate adjust on the ALSA USB gadget capture device (introduced in kernel 5.14).
Bugfixes:
- Add missing token handling in .wav FIR coefficient filenames.
New features:
- Peaking, Notch, Bandpass and Allpass filters can be defined with bandwidth.
- Highshelf and Lowshelf can be defined with Q-value.
New features:
- Add JACK support.
- Add
GetSupportedDeviceTypes
websocket command.
Bugfixes:
- Handle wav files with extended fmt chunk.
- Don't allow starting with zero channels.
New features:
- Add RMS and Peak measurement for each channel at input and output.
- 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 option to write logs to file.
- Skip processing of channels that are not used in the pipeline.
- Update to new faster RustFFT.
- Overriding samplerate also scales chunksize.
- Use updated faster resampler.
- Enable experimental neon support in resampler via
neon
feature. - Add
Loudness
volume control filter. - Add mute options in mixer and Gain filters.
- Add mute function to Volume and Loundness filters, with websocket commands.
- Add
debug
feature for extra logging. - Improve validation of filters.
- Setting to enable retry on reads from Alsa capture devices (helps avoiding driver bugs/quirks for some devices).
- Optionally avoid blocking reads on Alsa capture devices (helps avoiding driver bugs/quirks for some devices).
- Read FIR coefficients from WAV.
- Add subsample delay.
Bugfixes:
- Don't block playback for CoreAudio/Wasapi if there is no data in time.
- Validate
silence_threshold
andsilence_timeout
fields. - Fix panic when reloading config if a new filter was defined but not added to the pipeline.
- Check for mixer parameter changes when reloading config.
- Token substutution and overrides also work via websocket.
- Don't exit on SIGHUP when waiting for a config.
- Fix handling of negative values when reading filter coeffs in S24LE3 format.
- Gain filters react to mute setting on reload.
- Fix noise in output when resampling and muting all channels in mixer.
- Fix handling of negative values for input and output in S24LE format.
Bugfixes:
- Fix random garbage output when using the Stdout playback device.
Bugfixes:
- Fix incorrect config checks for LinkwitzRiley and Butterworth biquads.
New features:
- New commands to get more playback information from the websocket server.
- Changed all websocket commands to use Json input and output.
- Added optional support for secure websocket connections (wss).
- Rename the optional websocket to feature to
websocket
. - Add new optional feature
secure-websocket
for wss support. - Added an option to generate arbitrary length filters for testing convolution cpu load.
- Possible to use Reload command to restart from inactive state.
- Handle quirks of the USB audio gadget when used as Alsa capture source.
- Add
loglevel
option. - Use local time instead of UTC in log messages.
- Add command line options to override some parameters.
- Add substitution of
$samplerate$
and$channels$
tokens in config.
Bugfixes:
- Better handling of input device errors, fixes 100% cpu usage after panic.
- Use
Instant
instead ofSystemTime
to avoid issues when system clock is changed. - Fix 100% cpu when Stdin doesn't provide any data.
- Reduce cpu usage when using PulseAudio.
- Fix buffer size handling for alsa capture.
- Fix high frequency noise from synchronous resampler.
New features:
- New commands to get more information from the websocket server.
- Possible to skip lines or bytes in coefficient files.
- Updated Cpal library.
- Added capture and playback devices Stdin & Stdout.
- Improved error messages.
- Improved validation of mixer config.
- Added option to set which IP address to bind websocket server to.
Bugfixes:
- Fix websocket
exit
command. - Correct response of
setconfigname
websocket command. - Fix buffer underrun soon after starting Alsa playback.
- Correct scaling of FIR coefficients when reloading config.
New features:
- Rate adjust via the resampler also for Wasapi and CoreAudio.
New features:
- Support for Windows (Wasapi) and macOS (CoreAudio) via the Cpal library.
New features:
- Fix building on Windows and macOS.
- Updated versions of several libraries.
- Improved speed from optimization of several important loops.
New features:
- Convolver was optimized to be up to a factor 2 faster.
New features:
- Synchronous resampler that replaces the previous FastSync, BalancedSync and AccurateSync types with a single one called Synchronous. This uses FFT for a major speedup.
- The Async resamplers have been optimized and are now around a factor 2 faster than before.
Bugfixes:
- Fixed error when setting Alsa buffer size in some cases.
New features:
- Support for asynchronous resampling in all backends.
- Added S24LE3 format (corresponds to Alsa S24_3LE)
- File capture device can skip a number of bytes at the beginning of a file and then read a limited number of bytes
Other:
- Alsa backend rewritten to reduce code duplication
- Improved debug output
Last version without resampling