Skip to main content

math_audio_dsp/
lib.rs

1//! DSP utilities for audio signal processing
2//!
3//! This crate provides:
4//! - **Signal generation**: Test signals (tones, sweeps, noise)
5//! - **Signal analysis**: FFT-based frequency analysis, microphone compensation
6//! - **Acoustic metrics**: RT60, clarity (C50/C80), THD, spectrogram
7//!
8//! # Example
9//!
10//! ```rust
11//! use math_audio_dsp::{signals, analysis};
12//!
13//! // Generate a 1 kHz tone
14//! let signal = signals::gen_tone(1000.0, 0.5, 48000, 1.0);
15//!
16//! // Analyze a WAV file
17//! let config = analysis::WavAnalysisConfig::default();
18//! // let result = analysis::analyze_wav_buffer(&signal, 48000, &config);
19//! ```
20
21pub mod analysis;
22pub mod audio_features;
23pub mod ebur128;
24pub mod esprit;
25pub mod fast_math;
26pub mod instantaneous_frequency;
27pub mod replaygain;
28pub mod rtpghi;
29pub mod simd;
30pub mod signals;
31pub mod stft;
32pub mod waveform;
33
34// Re-export commonly used types
35pub use analysis::{
36    AnalysisResult, MicrophoneCompensation, WavAnalysisConfig, WavAnalysisOutput,
37    analyze_recording, analyze_wav_buffer, analyze_wav_file, compute_average_response,
38    compute_clarity_broadband, compute_clarity_spectrum, compute_group_delay,
39    compute_impulse_response_from_fr, compute_rt60_broadband, compute_rt60_spectrum,
40    compute_spectrogram, find_db_point, read_analysis_csv, smooth_response_f32,
41    smooth_response_f64, write_analysis_csv, write_wav_analysis_csv,
42};
43
44pub use signals::{
45    add_silence_padding, apply_fade_in, apply_fade_out, clip, frames_for, gen_log_sweep,
46    gen_m_noise, gen_pink_noise, gen_tone, gen_two_tone, gen_white_noise, interleave_per_channel,
47    mono_to_stereo, prepare_signal_for_playback, prepare_signal_for_playback_channels,
48    replicate_mono,
49};
50
51pub use replaygain::{ReplayGainAnalyzer, ReplayGainInfo, ReplayGainTrackData, compute_album_gain};
52pub use waveform::{WAVEFORM_SAMPLES, compute_waveform};