Crate stratum_dsp

Crate stratum_dsp 

Source
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 -> Output

See 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