Why CamillaFIR Works (v3.5.5)
Why CamillaFIR Works (v3.5.5)
CamillaFIR is not “magic EQ”. It is a bounded DSP workflow built for real room data.
Core rule:
Correct what is physically plausible and perceptually useful, and avoid inverting unreliable measurement detail.
This page explains why that approach stays stable and audible in practice.
1) Time-domain first, then frequency-domain shaping
In-room measurements combine multiple phenomena:
- propagation delay (time-of-flight)
- loudspeaker/crossover behavior
- room reflections and comb filtering
- modal energy storage (ringing)
A pure inverse-EQ approach mixes these into one problem and tends to overcorrect. CamillaFIR separates them:
- TOF is aligned before phase analysis
- magnitude correction is bounded
- phase is reconstructed with explicit strategy and limits
- decay is treated separately via TDC
2) Confidence-weighted correction instead of blind inversion
Not every dip is correctable. Reflection cancellations and low-confidence bins can move with tiny mic-position changes.
CamillaFIR reduces overfit using:
- confidence-aware shaping
- smoothing and regularization
- optional Adaptive FDW (A-FDW)
- Confidence Pull behavior in uncertain regions
Result: corrections track robust trends instead of chasing fragile artifacts.
3) Explicit guardrails keep filters physically sane
Most failures in room correction come from unbounded boosts and steep local corrections. CamillaFIR uses explicit limits, including:
max_boost_db,max_cut_dbmax_slope_db_per_octand optional split slope limits for boost vs cutlow_bass_cut_hz/ excursion-oriented low-bass safetyreg_strengthto avoid null-filling behavior
These are not cosmetic settings. They prevent unstable inverse-filter behavior.
4) Phase reconstruction with layered safety
Phase correction can improve transients, but only if it is constrained.
CamillaFIR provides multiple safety layers:
phase_limitto bound correction bandwidth- FDW / A-FDW to reduce reflection-driven phase noise
- Mixed-phase excess correction fade (LF full correction -> HF no correction)
- Mixed-only guards:
max_excess_delay_msandmax_pre_ringing_db - adaptive excess-phase clamp behavior for robust operation
- conditional GD spike guarding in bass-focused high-risk cases
This keeps phase work useful without forcing textbook-flat but fragile phase curves.
5) TDC targets ringing that EQ alone cannot fix
Room modes are not only amplitude peaks; they are time-domain energy storage.
Temporal Decay Control (TDC):
- shapes decay behavior directly
- is independent from static magnitude EQ
- includes bounded controls (
tdc_strength,tdc_max_reduction_db, optionaltdc_slope_db_per_oct)
This is why bass can become tighter without simply reducing bass level.
6) Headroom and channel consistency are part of DSP safety
A “good” filter that clips is still a bad filter.
CamillaFIR uses an auto-headroom model:
- output attenuation follows realized max boost plus margin
- normalization remains optional as extra safety
- stereo-link can force shared attenuation behavior between channels
So output level handling is integrated into correction quality, not left as an afterthought.
7) Reproducibility across fs/taps and input formats
CamillaFIR includes features for apples-to-apples evaluation:
- comparison mode with fixed analysis grid
- multi-rate generation with auto-taps time-length mapping
- deterministic WAV policy aligned with TXT baseline behavior
The goal is stable interpretation when you compare settings, sample rates, or tap counts.
8) Operational transparency
The workflow is observable, not opaque:
- System Health checks highlight risky settings and missing sources
- Summary includes version stamp and key effective parameters
- run timing breakdown exposes read/DSP/export/render stages
This makes tuning and troubleshooting traceable.
9) Practical takeaway
CamillaFIR works because it combines:
- explicit separation of delay, magnitude, phase, and decay
- confidence-aware correction strength
- hard safety bounds
- deterministic processing and reproducible comparison tools
If you want a robust workflow:
- Start with bounded magnitude correction and sane headroom.
- Add phase only within clean confidence and frequency limits.
- Apply TDC carefully for modal decay problems.
- Use comparison mode when doing A/B decisions.
- Re-check output diagnostics and Summary before final deployment.
See also image reference: docs/pics/tdc_impulse_example.png
Disclaimer
AI was used to translate this document from Finnish to English.