Expand description
Audio Processor Module
High-performance audio processing pipeline using Rayon for parallelization. Restored SoX VHQ Resampler and High-Order Noise Shaping for f64 Hi-Fi path.
§Modules
§Core Processors
StreamingResamplerandResampler- SoX VHQ polyphase resamplingEqualizerandBiquadSection- 10-band parametric IIR equalizerVolumeControllerandNoiseShaper- Volume control and noise shapingSpectrumAnalyzer- FFT spectrum analyzerFFTConvolver- FFT convolution for FIR filtersLoudnessNormalizer,LoudnessMeter, andTruePeakDetector- EBU R128 loudness normalizationDynamicLoudness- ISO 226 dynamic loudness compensation (Fletcher-Munson)Saturation- Tube/tape saturation for analog warmthCrossfeed- Bauer binaural crossfeed for headphonesFirEq- FIR EQ with linear/minimum phase options
§Unified Abstraction (Lock-Free Design)
AudioProcessorandProcessResult- shared processor trait/result typeslockfree_params- lock-free parameter structures for thread-safe parameter passingadapters- processor adapters implementingAudioProcessorDspChain- composable DSP processing chain
Re-exports§
pub use adapters::ConvolverProcessor;pub use adapters::CrossfeedProcessor;pub use adapters::DynamicLoudnessProcessor;pub use adapters::EqProcessor;pub use adapters::NoiseShaperProcessor;pub use adapters::PeakLimiterProcessor;pub use adapters::SaturationProcessor;pub use adapters::VolumeProcessor;pub use dsp_chain::DspChain;pub use lockfree_params::AtomicCrossfeedParams;pub use lockfree_params::AtomicDynamicLoudnessParams;pub use lockfree_params::AtomicDynamicLoudnessTelemetry;pub use lockfree_params::AtomicEqParams;pub use lockfree_params::AtomicNoiseShaperParams;pub use lockfree_params::AtomicPeakLimiterParams;pub use lockfree_params::AtomicSaturationParams;pub use lockfree_params::AtomicVolumeParams;pub use lockfree_params::CrossfeedParamsSnapshot;pub use lockfree_params::DynamicLoudnessParamsSnapshot;pub use lockfree_params::EqParamsSnapshot;pub use lockfree_params::NoiseShaperParamsSnapshot;pub use lockfree_params::PeakLimiterParamsSnapshot;pub use lockfree_params::SaturationParamsSnapshot;pub use lockfree_params::SaturationTypeValue;pub use lockfree_params::VolumeParamsSnapshot;pub use lockfree_params::EQ_BANDS;pub use traits::AudioProcessor;pub use traits::ProcessResult;
Modules§
- adapters
- Processor Adapters
- dsp_
chain - DSP Processing Chain
- lockfree_
params - Lock-free Parameter Structures
- traits
- Audio Processor Traits
Structs§
- Atomic
Dynamic Loudness State - Thread-safe state for DynamicLoudness control from UI thread
- Atomic
Loudness State - Atomic loudness state for lock-free audio thread access. Uses AtomicF64 with Relaxed ordering (gains don’t need strict synchronization).
- Automix
Analysis - Automix
Analysis Options - Biquad
Section - IIR Biquad filter section (SOS - Second Order Section)
- Crossfeed
- Bauer crossfeed processor
- Crossfeed
Settings - Settings struct for API responses
- Database
Stats - Statistics about the loudness database
- Dynamic
Loudness - Dynamic Loudness Compensation processor
- Equalizer
- 10-band Parametric EQ
- FFTConvolver
- High-performance FFT convolver (Overlap-Save algorithm).
- FirEq
- FIR EQ generator: creates IR from band gain specifications
- Gain
Ramp - Linear gain ramp for smooth transitions between tracks. Caches the current gain and per-sample delta so accessors stay cheap.
- Loudness
Database - SQLite database for track loudness metadata
- Loudness
Info - Loudness measurement information for API responses
- Loudness
Meter - EBU R128 loudness meter using the ebur128 crate Measures integrated, short-term, momentary loudness and loudness range
- Loudness
Normalizer - Loudness normalizer with EBU R128 compliance. Supports track-based pre-analysis and real-time streaming modes.
- Noise
Shaper - High-order noise shaping quantizer with SoX-verified coefficients
- Peak
Limiter - True Peak Limiter with look-ahead and proper release behavior.
- Resample
Output - Resampler
- High-quality resampler using SoX (VHQ Polyphase implementation)
- Saturation
- Tube Saturation processor with configurable drive and mix
- Saturation
Settings - Settings struct for API responses
- Spectrum
Analyzer - FFT-based spectrum analyzer for visualization
- Streaming
Resampler - Stateful streaming resampler that maintains SoX instances across chunks. This is used by AudioPipeline for memory-efficient streaming resampling.
- Track
Loudness - Loudness metadata for a single track
- True
Peak Detector - True peak detector using 4x polyphase FIR oversampling.
- Volume
Controller - Volume controller with anti-zipper smoothing
Enums§
- Automix
Analysis Mode - FirPhase
Mode - Phase mode for FIR EQ
- Noise
Shaper Curve - Noise shaping curve presets All coefficients from SoX src/dither.c, NTF zeros verified |z| < 1
- Resampler
Error - Error type for resampler operations
- Saturation
Type - Saturation type / character
Constants§
- CURRENT_
SCAN_ VERSION - Current scanner algorithm version Increment when measurement algorithm changes to trigger rescan
- DEFAULT_
BROADCAST_ TARGET_ LUFS - Default target loudness for broadcast (LUFS)
- DEFAULT_
STREAMING_ TARGET_ LUFS - Default target loudness for streaming (LUFS)
- LOUDNESS_
BANDS - ISO 226 inspired 7-band loudness compensation curve
- STANDARD_
BANDS - Standard 10-band EQ frequencies (ISO octave bands)
Functions§
- analyze_
automix - analyze_
automix_ with_ cancel - db_
to_ linear - Convert dB to linear gain. Shared across all processor modules.
- linear_
to_ db - Convert linear gain to dB. Shared across all processor modules.