AudioSamples Core ================ The AudioSamples class is the core of the library, providing a type-safe audio representation with intrinsically embedded properties (sample rate, channel layout, format) that eliminates manual metadata coordination. AudioSamples Class ------------------ The main audio processing class supporting multiple sample formats and comprehensive audio operations. All methods preserve audio properties automatically and support operator overloading for natural audio mathematics. Key Features ~~~~~~~~~~~~ **Constructors and Factory Methods** - Create audio from NumPy arrays with automatic type detection - Generate zero-filled or ones-filled audio in multiple formats (i16, i32, f32, f64) - Create uniform-value audio with specified sample values **Audio Editing and Manipulation** - Concatenate multiple audio segments end-to-end - Stack mono sources into multi-channel audio - Repeat, trim, pad, and split audio with precise timing - Mix multiple audio sources with optional weights - Apply fade-in and fade-out effects with multiple curve types **Channel Operations** - Pan stereo audio left/right with precise control - Balance stereo channels independently - Convert between mono and stereo with various methods - Extract individual channels or swap channel positions **Spectral Analysis and Transforms** - Short-Time Fourier Transform (STFT) with configurable windows - Inverse STFT for signal reconstruction - Magnitude and phase spectrograms with multiple scaling options - Mel-frequency spectrograms and MFCC features - Chroma features for harmonic analysis **Audio Processing** - High-quality resampling with configurable quality levels - Window function application for signal processing - Sample rate conversion by exact ratios **Pitch Analysis** - YIN algorithm for fundamental frequency detection - Time-based pitch tracking with multiple detection methods - Configurable frequency range and threshold parameters **Audio Decomposition** - Harmonic-Percussive Source Separation (HPSS) - Configurable median filter sizes and mask softness **Digital Filtering** - Butterworth filters (lowpass, highpass, bandpass) - Simple filters with cutoff frequency control - IIR filter design and application - Chebyshev Type I filters with passband ripple control **Statistics and Analysis** - Peak, minimum, and maximum sample values - Mean, RMS, variance, and standard deviation - Zero crossing detection and rate calculation - Autocorrelation analysis with configurable lag - Spectral centroid and rolloff calculations **Amplitude Processing** - Amplitude scaling with precise factor control - Normalization with multiple methods (peak, minmax, RMS) - Soft clipping to prevent distortion - DC offset removal for signal cleanup **Dynamic Range Processing** - Compression with configurable threshold, ratio, and timing - Limiting with lookahead and release control - Noise gating for signal cleanup - Expansion for dynamic range enhancement **Equalization** - Parametric equalizer with multiple band support - Peak, low-shelf, and high-shelf filters - Three-band EQ with configurable frequencies - Real-time frequency response calculation **File Format Support** - Multiple sample formats: i16, i24, i32, f32, f64 - Automatic format detection and conversion - Type-safe casting between sample formats **NumPy Integration** - Seamless operator overloading for mathematical operations - Support for numpy universal functions - Automatic property preservation through all operations Filter and EQ Configuration Classes ----------------------------------- **IirFilterDesign** Configuration class for Infinite Impulse Response filters supporting: - Butterworth, Chebyshev Type I/II, and Elliptic filter types - Lowpass, highpass, bandpass, and bandstop responses - Configurable filter order and cutoff frequencies **EqBand** Individual equalizer band configuration with: - Peak, lowshelf, highshelf, lowpass, highpass, and bandpass types - Center/cutoff frequency specification in Hz - Gain control in dB with positive/negative values - Q factor for bandwidth control **ParametricEq** Multi-band parametric equalizer supporting: - Multiple EQ bands with independent configuration - Real-time frequency response calculation - Cascaded filter application for natural sound