Skip to content

Repository files navigation

felitronics-core

JUCE-free, real-time-safe, header-only C++20 DSP core for the Darwin's Cat audio plugins (TabbyEQ, OrbitCab, …). A set of independent process()-RT-safe modules — each its own namespace + CMake target, each with framework-free self-tests. No external dependencies by default: pure C++20 standard library — plus one opt-in, vendored SIMD FFT backend (fftpffft, -DFELITRONICS_WITH_PFFFT=ON, default OFF).

ci License: AGPL v3 C++20 header-only deps: none

📊 EQ Filter Quality Atlas — auto-rendered quality maps of every eq filter vs independent analog references, regenerated by CI on every push to main (green <0.1 dB … red ≥3 dB; black = broken). If a filter regresses, it shows here before anyone hears it.

⚡ Convolver benchmark — vs juce::dsp::Convolution — the EQ's MatrixConvolverNupc (non-uniform, Gardner) holds a flat, block-independent cost at every one of 129 real DAW buffers (16→4096) — ~0.6 % RT on an Apple M5 Pro, ~1.08 % on an Intel i9-13900H — cheaper than JUCE across the small, low-latency buffers a live rig runs (JUCE only wins the mean at large power-of-two blocks); true sample-zero-latency (two-machine chart + tables).

Modules

core (FFT seam · smoother · delay · denormal flush) · eq (Vicanek matched biquads · SVF · EQ engine · crossovers) · lineareq (linear- & mixed-phase "Natural" FIR EQ over partitioned convolution) · convolution (zero-latency partitioned convolver · click-free IR swap) · dynamics (detectors · compressor · noise gate · transient shaper) · multiband · dynamiceq · deesser · stereo · saturation · dither · oversampling · limiter (true-peak) · analysis (LUFS/LRA · dBTP true-peak · correlation) · neural (inference seam) · fftpffft (optional compiled SIMD FFT backend — vendored pffft, -DFELITRONICS_WITH_PFFFT=ON).

Each module links on its own (felitronics::eq, felitronics::lineareq, …) — pull only what you use. Every module ships JUCE-free self-tests (measured audio == analytic truth).

Build & test

cmake -S . -B build -DFELITRONICS_BUILD_TESTS=ON
cmake --build build -j
ctest --test-dir build

Consume

include(FetchContent)
FetchContent_Declare(felitronics_core
    GIT_REPOSITORY https://github.com/darwinscat/felitronics-core.git
    GIT_TAG        <pinned-tag>)
FetchContent_MakeAvailable(felitronics_core)

target_link_libraries(app PRIVATE felitronics::eq felitronics::lineareq)   # link only what you use
#include <felitronics/eq/EqEngine.h>

License

AGPL-3.0-or-later · © 2026 Darwin's Cat.

About

JUCE-free, real-time-safe, header-only C++20 DSP core — EQ, dynamics, convolution, mastering

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages