-
-
Notifications
You must be signed in to change notification settings - Fork 55
Description
mirdata: a package for MIR dataset download & management
http://archives.ismir.net/ismir2019/paper/000009.pdf
mir_eval: a package for MIR (audio & symbolic) task evaluation
https://craffel.github.io/mir_eval/ (Already in the reference page)
jams: a universal format for MIR annotation, also contains a python package for I/O
https://nyuscholars.nyu.edu/en/publications/jams-a-json-annotated-music-specication-for-reproducible-mir-rese
music21: a symbolic (midi & sheet) music format converter & processor (ABC, xml, midi, etc.), with a hierarchy-based core representation:
https://web.mit.edu/music21/ (Already in the reference page)
pypianoroll: https://salu133445.github.io/pypianoroll/
magenta's codebase
I ran through the Magenta code yesterday, and it seems that they are doing something similar to what we are looking for. They use protobuf as the core serialization format, and designed the prototype based on MIDI. It's faster and smaller than JSON and XML, but it's not human-readable and requires a .proto file that describes the data (similar to struct in C). They have implemented most of the conversions utilities from and to different formats, including MIDI, MusicXML and pianorolls. But, as we all know, it's super hard to understand their codebase at the first sight. For me, there are three drawbacks:
- It's not pythonic because they also want to integrate it with other UI systems probably.
- They use nonhuman-readable format because they care about speed for interactive systems.
- It's tightly bound with TensorFlow, so the code can be quite messy.
Also some audio-oriented music packages, maybe not so relevant:
madmom: an audio ML-based music processor
https://github.com/CPJKU/madmom
librosa: a very popular music signal processing package
https://librosa.github.io/librosa/ (Already in the reference page)
sonic visualiser: a software (not package) for audio annotation, dataset exploration, visualization, sonification.
https://www.sonicvisualiser.org/
torchaudio: deep-learning-oriented package for general audio loading & preprocessing. similar to tf.signal. Other similar packages exist, e.g., nnAudio.
https://github.com/pytorch/audio