Expand description
§Stratum DSP
A professional-grade audio analysis engine for DJ applications, providing accurate BPM detection, key detection, and beat tracking.
§Features
- BPM Detection: Multi-method onset detection with autocorrelation and comb filterbank
- Key Detection: Chroma-based analysis with Krumhansl-Kessler template matching
- Beat Tracking: HMM-based beat grid generation with tempo drift correction
- ML Refinement: Optional ONNX model for edge case correction (Phase 2)
§Quick Start
use stratum_dsp::{analyze_audio, AnalysisConfig};
// Load audio samples (mono, f32, normalized)
let samples: Vec<f32> = vec![]; // Your audio data
let sample_rate = 44100;
// Analyze
let result = analyze_audio(&samples, sample_rate, AnalysisConfig::default())?;
println!("BPM: {:.2} (confidence: {:.2})", result.bpm, result.bpm_confidence);
println!("Key: {:?} (confidence: {:.2})", result.key, result.key_confidence);§Architecture
The analysis pipeline follows this flow:
Audio Input -> Preprocessing -> Feature Extraction -> Analysis -> ML Refinement -> OutputSee the module documentation for details.
Re-exports§
pub use analysis::result::AnalysisResult;pub use analysis::result::AnalysisMetadata;pub use analysis::result::BeatGrid;pub use analysis::result::Key;pub use analysis::result::KeyType;pub use analysis::confidence::AnalysisConfidence;pub use analysis::confidence::compute_confidence;pub use config::AnalysisConfig;pub use error::AnalysisError;
Modules§
- analysis
- Analysis and result aggregation modules
- config
- Configuration parameters for audio analysis
- error
- Error types for the audio analysis engine
- features
- Feature extraction modules
- preprocessing
- Audio preprocessing modules
Functions§
- analyze_
audio - Main analysis function