CamillaDSP is a cross-platform audio processing engine designed for applications like active crossovers and room correction. It allows users to build flexible audio pipelines using IIR and FIR filters, mixers, and processors, supporting Linux, macOS, and Windows.
How It Works
CamillaDSP employs a multi-threaded architecture with separate threads for audio capture, processing, and playback. Audio data is passed between threads via message queues in fixed-size chunks. Processing involves applying a configurable sequence of filters and mixers to the audio data. FIR filters utilize FFT-based convolution, while IIR filters are implemented as biquads. Configuration is managed through a YAML file.
Quick Start & Requirements
- Install: Download pre-built binaries from the "Releases" page.
- Run:
camilladsp /path/to/config.yml
- Prerequisites: Rust toolchain (for building), platform-specific audio libraries (ALSA, PulseAudio, JACK, WASAPI, CoreAudio). Building on Windows requires "Build Tools for Visual Studio".
- Resources: Minimal CPU requirements, but complex filters (long FIRs) or high sample rates will increase load.
- Docs: https://github.com/HEnquist/camilladsp
Highlighted Details
- Supports both IIR (biquads) and FIR (FFT convolution) filtering.
- Cross-platform compatibility (Linux, macOS, Windows) with multiple audio backend support.
- Configurable audio pipeline via YAML, including mixers, gain, loudness, delay, limiters, compressors, and noise gates.
- Optional WebSocket server for runtime control and configuration updates.
Maintenance & Community
- Actively maintained by Henrik Enquist.
- Companion libraries include
pycamilladsp
for Python control and camilladsp-plot
for visualization.
- Community support via GitHub issues and related projects.
Licensing & Compatibility
- License: GNU GENERAL PUBLIC LICENSE Version 3 (GPLv3).
- Compatibility: GPLv3 is a strong copyleft license. Use in closed-source commercial applications may be restricted due to the requirement to share source code modifications.
Limitations & Caveats
- The GPLv3 license may pose compatibility issues for commercial or closed-source integration.
- JACK support is experimental and currently only functional on Linux via CPAL.
- Configuration requires a detailed understanding of the YAML format and audio processing concepts.