About this project

audioFlux is an open-source library for audio and music analysis and feature extraction, implemented in C with Python bindings. It is designed around a data-stream architecture that decouples algorithm modules so that multi-dimensional features can be extracted quickly and efficiently. The project targets deep learning workflows in audio, including classification, source separation, Music Information Retrieval (MIR) and ASR. The library is organized into three main modules: transform, feature and mir. The transform module provides time-frequency representations. BFT (based Fourier transform, similar to STFT), NSGT (non-stationary Gabor transform), CWT (continuous wavelet transform) and PWT (pseudo wavelet transform) support multiple frequency scale types: linear, linspace, Mel, Bark, Erb, Octave and Log. Other transforms are offered as independent methods: CQT (constant-Q transform), VQT (variable-Q transform), ST (S-transform/Stockwell transform), FST (fast S-transform), DWT (discrete wavelet transform), WPT (wave packet transform) and SWT (stationary wavelet transform). Synchrosqueezing and reassignment techniques are also included: reassign for STFT, synsq using CWT data, and wsst for CWT. The feature module includes spectral features (supporting all spectrum types), cepstrum coefficients (xxcc), deconvolution for spectra, and chroma features (supporting CQT spectrum and BFT-based linear/octave spectra). The mir module covers pitch estimation (YIN, STFT and others), onset detection (spectral flux, novelty and others), and harmonic-percussive source separation (median filtering and NMF). Recent releases added a range of pitch algorithms (YIN, CEP, PEF, NCF, HPS, LHS, STFT, FFP), PitchShift and TimeStretch algorithms, and a TuneTrack algorithm intended for instrument tuners covering guitar, ukulele, bass, banjo, mandolin and violin. Installation is available via PyPI (`pip install audioflux`) or Anaconda, requiring Python 3.6 or later. The library is cross-platform, supporting Linux, macOS, Windows, iOS and Android, with separate build instructions for iOS, Android and building from source. Documentation and example scripts are hosted online, covering Mel and MFCC, CWT and synchrosqueezing, CQT and chroma, different wavelet types, spectral features, pitch estimation, onset detection and harmonic-percussive source separation. A benchmark module provides performance measurements, and the project is released under the MIT License.