Aurio is an open source .NET audio library for stream processing, analysis and retrieval, with the following functionality:
- 32-bit floating point audio stream processing engine
- File I/O (using NAudio and FFmpeg)
- FFT and iFFT (using Exocortex.DSP, FftSharp, FFTW, PFFFT)
- Resampling (using NAudio, libsamplerate, Soxr)
- Windowing, overlap-adding, STFT, iSTFT
- Chroma
- Dynamic Time Warping
- On-line Time Warping (Dixon, Simon. “Live tracking of musical performances using on-line time warping.” Proceedings of the 8th International Conference on Digital Audio Effects. 2005.)
- Fingerprinting
- Haitsma, Jaap, and Ton Kalker. “A highly robust audio fingerprinting system.” ISMIR. 2002.
- Wang, Avery. “An Industrial Strength Audio Search Algorithm.” ISMIR. 2003.
- Echoprint (Ellis, Daniel PW, Brian Whitman, and Alastair Porter. “Echoprint: An open music identification service.” ISMIR. 2011.)
- AcoustID Chromaprint
- Audio playback
- UI widgets
All audio processing (incl. fingerprinting) is stream-based and supports processing of arbitrarily long streams at constant memory use. AudioAlign is a UI on top of this library, built for automatic audio synchronization.