Skip to content

Comaprasion to other projects/packages #1

@taineleau

Description

@taineleau

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions