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.
Loading an audio file
julia> using MusicProcessing, MP3 julia> audio = load("Sour_Tennessee_Red_Sting.mp3")
Converting to a mono audio
julia> audio = mono(a)
Resampling in 22050 Hz
julia> audio = resample(audio, 22050Hz)
Speeding up the audio
julia> speedup(audio, 2)
julia> pitchshift(audio, 4)
Displaying Mel Spectrogram
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...