CamillaDSP
CamillaDSP is a powerful and flexible open source audio processing tool, designed for applications like active crossovers, room correction, and advanced audio filtering.
The CamillaDSP project encompasses:
- CamillaDSP (the engine): The core DSP engine, written in Rust, responsible for real-time audio processing. It's a command-line application that runs on Linux, macOS, and Windows. It can be used stand-alone, or together with the GUI and other related projects.
- CamillaDSP (the ecosystem): A broader family of related projects, including:
- CamillaGUI: A user-friendly web-based interface for configuring and controlling the CamillaDSP engine.
- camilladsp-setupscripts: Automated setup scripts.
- pyCamillaDSP: A Python library for interacting with the CamillaDSP engine via its websocket interface.
- pyCamillaDSP-plot: A Python library for visualizing CamillaDSP configurations and filter responses.
- camilladsp-config: A repository of example configurations and scripts for common use cases.
- camilladsp-controller: A controller for automatic sample rate switching.
This page lists all releases of the CamillaDSP engine, together with the corresponding documentation. The source code is available in the CamillaDSP repository.
Published versions
| Version | Date | ||
|---|---|---|---|
| v3.0.1 | 2025-03-20 | Documentation | Download |
| v3.0.0 | 2025-01-11 | Documentation | Download |
| v2.0.3 | 2024-02-20 | Documentation | Download |
| v2.0.2 | 2024-02-12 | Documentation | Download |
| v2.0.1 | 2024-01-08 | Documentation | Download |
| v2.0.0 | 2023-12-12 | Documentation | Download |
| v1.0.3 | 2022-11-10 | Documentation | Download |
| v1.0.2 | 2022-10-10 | Documentation | Download |
| v1.0.1 | 2022-07-21 | Documentation | Download |
| v1.0.0 | 2022-05-02 | Documentation | Download |
| v0.6.3 | 2021-09-04 | Documentation | Download |
| v0.6.2 | 2021-09-02 | Documentation | Download |
| v0.6.1 | 2021-08-15 | Documentation | Download |
| v0.6.0 | 2021-08-11 | Documentation | Download |
| v0.5.2 | 2021-05-29 | Documentation | Download |
| v0.5.1 | 2021-05-11 | Documentation | Download |
| v0.5.0 | 2021-04-27 | Documentation | Download |
| v0.4.2 | 2021-01-13 | Documentation | Download |
| v0.4.1 | 2020-12-27 | Documentation | Download |
| v0.4.0 | 2020-11-19 | Documentation | Download |
| v0.3.2 | 2020-09-24 | Documentation | Download |
| v0.3.1 | 2020-07-21 | Documentation | Download |
Changelog
v3.0.1
Bugfixes:
- Make sure that Alsa playback device resumes after pause.
v3.0.0
New features:
- Optional multithreaded filter processing.
- Request higher proprity of audio threads for improved stability.
- Add a signal generator capture device.
- Optionally write wav header when outputting to file or stdout.
- Add
WavFilecapture device type for reading wav files. - Optional limit for volume controls.
- Add websocket command for reading all faders with a single call.
- Linux: Subscribe to capture device control events for volume, sample rate and format changes.
- Linux: Optionally select Alsa sample format automatically.
- Improved controller for rate adjustment.
- Command line options for setting aux volume and mute.
- Optional user-defined volume limits for volume adjust commands.
- Add noise gate.
- Add optional channel labels for capture devices and mixers.
- Optional log file rotation. Changes:
- Remove the optional use of FFTW instead of RustFFT.
- Rename
Filecapture device toRawFile. - Filter pipeline steps take a list of channels to filter instead of a single one. Bugfixes:
- Windows: Fix compatibility issues for some WASAPI devices.
- MacOS: Support devices appearing as separate capture and playback devices.
- Linux: Improved Alsa error handling.
v2.0.3
Bugfixes:
- MacOS: Fix using Aggregate devices for playback.
v2.0.2
Bugfixes:
- MacOS: Fix a segfault when reading clock source names for some capture devices.
- Windows: Adjust the missed event threshold, avoids some rare stuttering.
v2.0.1
Bugfixes:
- Ignore capture_samplerate when resampling is disabled.
- Increase Alsa device buffer sizes to avoid errors.
v2.0.0
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
nullto 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/GetConfigNamewebsocket commands toSet/GetConfigFilePath. - Removed redundant
change_formatparameter to simplify CoreAudio device config.
1.0.3
Bugfixes:
- Volume and Loudness filters keep mute state on config reload.
1.0.2
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.
1.0.1
Bugfixes:
- Alsa: Avoid opening capture and playback devices at the same time since this causes trouble with some devices.
1.0.0
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).
0.6.3
Bugfixes:
- Fix slow start with Alsa plug devices (regression in 0.6.2).
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.
0.6.1
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.
0.6.0
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.
0.5.2
New features:
- Peaking, Notch, Bandpass and Allpass filters can be defined with bandwidth.
- Highshelf and Lowshelf can be defined with Q-value.
0.5.1
New features:
- Add JACK support.
- Add
GetSupportedDeviceTypeswebsocket command.
Bugfixes:
- Handle wav files with extended fmt chunk.
- Don't allow starting with zero channels.
0.5.0
New features:
- Add RMS and Peak measurement for each channel at input and output.
- Add a
Volumefilter for volume control. - Add exit codes.
- Adapt
checkoutput to be more suitable for scripts. - Search for filter coefficient files with relative paths first in config file dir.
- Add
ShibataLowdither 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
neonfeature. - Add
Loudnessvolume control filter. - Add mute options in mixer and Gain filters.
- Add mute function to Volume and Loundness filters, with websocket commands.
- Add
debugfeature 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_thresholdandsilence_timeoutfields. - 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.
0.4.2
Bugfixes:
- Fix random garbage output when using the Stdout playback device.
0.4.1
Bugfixes:
- Fix incorrect config checks for LinkwitzRiley and Butterworth biquads.
0.4.0
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-websocketfor 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
logleveloption. - 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
Instantinstead ofSystemTimeto 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.
0.3.2
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
exitcommand. - Correct response of
setconfignamewebsocket command. - Fix buffer underrun soon after starting Alsa playback.
- Correct scaling of FIR coefficients when reloading config.
0.3.1
New features:
- Rate adjust via the resampler also for Wasapi and CoreAudio.