Skip to main content

Crate oxiaudio_dsp

Crate oxiaudio_dsp 

Source

Re-exports§

pub use biquad::BiquadFilter;
pub use biquad::ParametricEq;
pub use chain::DspChain;
pub use dither::apply_noise_shaped_dither;
pub use dither::apply_tpdf_dither;
pub use dynamics::BandSettings;
pub use dynamics::Compressor;
pub use dynamics::DeEsser;
pub use dynamics::Expander;
pub use dynamics::Limiter;
pub use dynamics::MultibandCompressor;
pub use dynamics::NoiseGate;
pub use effects::ChannelVocoder;
pub use effects::Chorus;
pub use effects::ConvolutionReverb;
pub use effects::DelayLine;
pub use effects::EarlyReflections;
pub use effects::Flanger;
pub use effects::Freeverb;
pub use effects::PartitionedConvolutionReverb;
pub use effects::Phaser;
pub use effects::Tremolo;
pub use effects::Vibrato;
pub use filters::butterworth_highpass;
pub use filters::butterworth_lowpass;
pub use filters::chebyshev1_highpass;
pub use filters::chebyshev1_lowpass;
pub use filters::chebyshev2_highpass;
pub use filters::chebyshev2_lowpass;
pub use filters::elliptic_highpass;
pub use filters::elliptic_lowpass;
pub use filters::Cascade;
pub use filters::Chebyshev2Filter;
pub use filters::EllipticFilter;
pub use filters::FirFilter;
pub use filters::FirWindow;
pub use loudness::k_weight;
pub use loudness::loudness_integrated;
pub use loudness::loudness_momentary;
pub use loudness::loudness_momentary_windowed;
pub use loudness::loudness_range;
pub use loudness::normalize_to_lufs;
pub use loudness::true_peak;
pub use loudness::PeakMeter;
pub use loudness::RmsMeter;
pub use noise::estimate_noise_profile;
pub use noise::frequency_domain_noise_gate;
pub use noise::spectral_subtraction;
pub use noise::wiener_filter;
pub use pitch::detect_pitch_autocorr;
pub use pitch::detect_pitch_pyin;
pub use pitch::detect_pitch_yin;
pub use pitch::detect_pitch_yin_simple;
pub use pitch::PitchFrame;
pub use pitch::PitchTracker;
pub use pvocoder::pitch_shift_pv;
pub use pvocoder::time_stretch;
pub use rhythm::complex_domain_onset;
pub use rhythm::detect_downbeats;
pub use rhythm::detect_onsets;
pub use rhythm::estimate_tempo;
pub use rhythm::onset_strength_hfc;
pub use rhythm::onset_strength_spectral_flux;
pub use rhythm::pick_onset_peaks;
pub use rhythm::TempoEstimate;
pub use segment::silence_split;
pub use spectral::chromagram;
pub use spectral::chromagram_normalized;
pub use spectral::harmonic_ratio;
pub use spectral::istft;
pub use spectral::melspectrogram;
pub use spectral::mfcc;
pub use spectral::pitch_shift;
pub use spectral::short_time_energy;
pub use spectral::spectral_bandwidth;
pub use spectral::spectral_centroid;
pub use spectral::spectral_contrast;
pub use spectral::spectral_crest_factor;
pub use spectral::spectral_entropy;
pub use spectral::spectral_flatness;
pub use spectral::spectral_flux;
pub use spectral::spectral_rolloff;
pub use spectral::stft;
pub use spectral::stft_multichannel;
pub use spectral::tonnetz;
pub use spectral::zero_crossing_rate;
pub use spectral::StftOutput;
pub use spectral::WindowFn;
pub use stereo::ms_decode;
pub use stereo::ms_encode;

Modules§

biquad
chain
dither
TPDF (triangular probability density function) noise-shaped dithering.
dynamics
effects
Auto-generated module structure
filters
Higher-order IIR filter design (Butterworth, Chebyshev Type I/II, Elliptic) and FIR windowed-sinc design.
filters_fir
FIR filter design: windowed-sinc lowpass/highpass/Hilbert, and the Bessel I0 helper used by the Kaiser window.
filters_iir
Higher-order IIR filter design: Chebyshev Type II (inverse Chebyshev) and Elliptic (Cauer) filters as cascades of biquad second-order sections.
loudness
noise
pitch
Pitch detection via YIN (de Cheveigné & Kawahara, 2002) and pYIN (de Cheveigné & Klapuri, 2014).
pvocoder
Phase vocoder: high-quality time-stretching and pitch shifting.
rhythm
segment
Audio segmentation: silence-based splitting.
spectral
stereo
Mid-side stereo encode/decode.

Structs§

Complex
A complex number with real and imaginary parts.

Functions§

gain
Apply a gain in decibels to all samples in the buffer.
gain_inplace
Apply a linear gain factor in-place without any dB conversion.
mix_to_mono
Average all channels into a single mono channel.
normalize
Peak-normalize in-place to target_db dBFS. Silent buffers are unchanged.
normalize_inplace
Peak-normalize in-place to a linear target_peak amplitude (0.0–1.0).
resample
Resample buf to target_rate using a high-quality sinc interpolation resampler.
split_channels
De-interleave into one AudioBuffer<f32> per channel (all Mono).
trim_silence
Remove leading and trailing silent frames. A frame is silent when ALL channel samples are below threshold_db dBFS in absolute value.