MusicProcessing.jl is a music and audio processing library for Julia, inspired by librosa. It is not feature complete and in a very early stage of development.
Thanks to Julia's performance optimizations, it is significantly faster than librosa, a mature library in Python
All measurements are done by averaging over 100 repetitions, after one warmup run.
The following commands will display a graphic visualization and/or an HTML5 <audio>
component for playing audio, when run in IJulia.
julia> using MusicProcessing, FileIO, MP3
julia> audio = load("Sour_Tennessee_Red_Sting.mp3")
julia> audio = mono(audio)
julia> audio = resample(audio, 22050Hz)
julia> speedup(audio, 2)
julia> pitchshift(audio, 4)
julia> spectrogram(audio)
julia> melspectrogram(audio)
julia> mfcc(audio)
There are a lot to be implemented, including and not limited to:
- Harmonic Features
- CQT, Chroma, Tonnetz
- Rhythmic Features
- Onset Detection, Beat Detection
- Melodic Features
- F0 tracking, multi-pitch tracking
- Source Separation
- Harmonic-Percussive Source Separation
- Performance Tuning, Tests...