Expand description
§Cortix - Perceptual Audio Spectrum Analyser
A high-performance, perceptually-accurate spectrum analysis library featuring Gammatone filterbanks, multiple frequency scales (Bark, ERB, Mel), and real-time processing capabilities.
Named after the Organ of Corti - the biological spectrum analyser in the cochlea where sound is converted to neural signals.
§Quick Start
use cortix::{Analyser, Scale};
// Create analyser with builder pattern
let mut analyser = Analyser::builder()
.sample_rate(48000.0)
.bands(40)
.scale(Scale::ERB)
.build();
// Process audio and get envelope
let audio = vec![0.0f32; 512];
let envelope = analyser.process(&audio);
// Get dB values
let db = analyser.envelope_db();§Features
- Gammatone Filterbank - Auditory model with true frequency resolution
- Multiple Scales - Bark, ERB, Mel, Log, and Linear frequency spacing
- Real-time Performance - Sub-millisecond latency, efficient per-sample processing
- Perceptually Accurate - Based on auditory neuroscience research
§Frequency Scales
| Scale | Description | Use Case |
|---|---|---|
| Linear | Uniform Hz spacing | Scientific analysis |
| Log | Logarithmic (octaves) | Music, harmonics |
| Bark | Critical bands | Masking, loudness |
| ERB | Equivalent rectangular bandwidth | Auditory models |
| Mel | Pitch perception | Speech recognition |
Re-exports§
pub use analyser::AnalysisMode;pub use analyser::Analyser;pub use analyser::AnalyserBuilder;pub use gammatone::FilterbankBuilder;pub use gammatone::GammatoneFilter;pub use gammatone::GammatoneFilterbank;pub use scales::bark_to_hz;pub use scales::critical_bandwidth;pub use scales::erb_bandwidth;pub use scales::erb_to_hz;pub use scales::generate_bands;pub use scales::hz_to_bark;pub use scales::hz_to_erb;pub use scales::hz_to_mel;pub use scales::mel_to_hz;pub use scales::BandInfo;pub use scales::Scale;