Music Processing Library in Julia
Switch branches/tags
Nothing to show
Clone or download
Latest commit 2272a24 Sep 5, 2016
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src optimized ZCR Sep 5, 2016
test MusicProcessing.jl generated files. Jun 3, 2016
.gitignore MusicProcessing.jl generated files. Jun 3, 2016
.travis.yml MusicProcessing.jl generated files. Jun 3, 2016
LICENSE.md MusicProcessing.jl generated files. Jun 3, 2016
README.md added README.md Jun 22, 2016
REQUIRE MusicProcessing.jl Jun 22, 2016
appveyor.yml MusicProcessing.jl generated files. Jun 3, 2016

README.md

MusicProcessing.jl

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.

Performance

Thanks to Julia's performance optimizations, it is significantly faster than librosa, a mature library in Python

Imgur

All measurements are done by averaging over 100 repetitions, after one warmup run.

Usage

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)

Pitch-shifting

julia> pitchshift(audio, 4)

Displaying Spectrogram

julia> spectrogram(audio)

Displaying Mel Spectrogram

julia> melspectrogram(audio)

Displaying MFCC

julia> mfcc(audio)

Roadmap

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