Music Processing Library in Julia
Author JuliaMusic
84 Stars
Updated Last
10 Months Ago
Started In
June 2016


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 Spectrogram

julia> spectrogram(audio)

Displaying Mel Spectrogram

julia> melspectrogram(audio)

Displaying MFCC

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...