I would like to announce CamillaDSP, a general purpose tool for routing and filtering sound. It can be used for example for building crossovers for active speakers, or for performing room correction.
You can find the source code here: GitHub - HEnquist/camilladsp
The documentation for all published versions can be found here: CamillaDSP
There is a second repository for configuration help here: GitHub - HEnquist/camilladsp-config: Help for setting up CamillaDSP, example config files etc
Quick summary
I have been using BruteFIR for crossovers for quite some time, but there were two main things I wanted to improve upon. Firstly BruteFIR only supports FIR filters, and I wanted the ability to also use BiQuad without having to make an overly complicated setup. Secondly when BruteFIR encounters a buffer underrun it always exits with a "broken pipe" error instead of just trying again. This can get somewhat annoying. I also thought that the BruteFIR configuration is unnessecarily complicated.
I have also been using the excellent tool EqualizerAPO that does all I want, but it's for Windows only.
When using Alsa for both input and output, CamillaDSP can work almost as a drop-in replacement for BruteFIR. I run a 2048 tap stereo 2-way crossover at 44.1kHz, and this consumes less than 2% of a single cpu core on my HTPC (dual core Intel Skylake).
To help with configuration CamillaDSP checks the configuration and tries to give helpful error messages when there is a problem. In addition there is a Python script to visualize the whole pipeline from a config file.
Sample output:
To try it, download a pre-built binary for your system from the "Releases" page:. Click "Assets" to view the available files.
Instead of using a pre-built binary it can also be built from source. The "Cargo" tool makes this very easy as it will download and compile all dependencies automatically. See more instructions in the README.
You can find the source code here: GitHub - HEnquist/camilladsp
The documentation for all published versions can be found here: CamillaDSP
There is a second repository for configuration help here: GitHub - HEnquist/camilladsp-config: Help for setting up CamillaDSP, example config files etc
Quick summary
- For Linux, macOS and Windows
- Written in Rust
- IIR filters (BiQuad)
- FIR filters (Convolution via FFT)
- Built-in sample rate converter
- Filters can be chained freely
- Flexible routing
- Alsa, PulseAudio, Wasapi, CoreAudio, File and stdio input/output
- Simple YAML configuration
- All calculations done with 64-bit floats
I have been using BruteFIR for crossovers for quite some time, but there were two main things I wanted to improve upon. Firstly BruteFIR only supports FIR filters, and I wanted the ability to also use BiQuad without having to make an overly complicated setup. Secondly when BruteFIR encounters a buffer underrun it always exits with a "broken pipe" error instead of just trying again. This can get somewhat annoying. I also thought that the BruteFIR configuration is unnessecarily complicated.
I have also been using the excellent tool EqualizerAPO that does all I want, but it's for Windows only.
When using Alsa for both input and output, CamillaDSP can work almost as a drop-in replacement for BruteFIR. I run a 2048 tap stereo 2-way crossover at 44.1kHz, and this consumes less than 2% of a single cpu core on my HTPC (dual core Intel Skylake).
To help with configuration CamillaDSP checks the configuration and tries to give helpful error messages when there is a problem. In addition there is a Python script to visualize the whole pipeline from a config file.
Sample output:
To try it, download a pre-built binary for your system from the "Releases" page:. Click "Assets" to view the available files.
Instead of using a pre-built binary it can also be built from source. The "Cargo" tool makes this very easy as it will download and compile all dependencies automatically. See more instructions in the README.
Last edited: