A JSON Annotated Music Specification for Reproducible MIR Research
Python Other
bmcfee Merge pull request #192 from marl/scaper-convert
added namespace conversion from scaper to tag_open
Latest commit efcb2b3 Jun 4, 2018
Failed to load latest commit information.
docs updated docs and version for 0.3.2 release [ci skip] Jun 4, 2018
jams added namespace conversion from scaper to tag_open Jun 4, 2018
scripts continuing deprecation march May 13, 2017
tests added namespace conversion from scaper to tag_open Jun 4, 2018
.coveragerc adding a dummy coveragerc to fix coveralls Feb 4, 2016
.gitignore first stab at a transcription eval wrapper Feb 29, 2016
.travis.yml fixed path errors May 23, 2017
.travis_dependencies.sh converted util to pytest May 22, 2017
CONTRIBUTING.md added contributing documentation Aug 19, 2015
LICENSE add license title Jun 30, 2016
README.md Update documentation links in README.md Mar 21, 2018
setup.py updated sortedcontainers dependency. fixes #186 May 24, 2018



PyPI License Build Status Coverage Status Dependency Status

A JSON Annotated Music Specification for Reproducible MIR Research.

Please, refer to documentation for a comprehensive description of JAMS.


JAMS is a JSON-based music annotation format.

We provide:

  • A formal JSON schema for generic annotations
  • The ability to store multiple annotations per file
  • Schema definitions for a wide range of annotation types (beats, chords, segments, tags, etc.)
  • Error detection and validation for annotations
  • A translation layer to interface with mir eval for evaluating annotations


Music annotations are traditionally provided as plain-text files employing simple formatting schema (comma or tab separated) when possible. However, as the field of MIR has continued to evolve, such annotations have become increasingly complex, and more often custom conventions are employed to represent this information. And, as a result, these custom conventions can be unwieldy and non-trivial to parse and use.

Therefore, JAMS provides a simple, structured, and sustainable approach to representing rich information in a human-readable, language agnostic format. Importantly, JAMS supports the following use-cases:

  • multiple types annotations
  • multiple annotations for a given task
  • rich file level and annotation level metadata


This library is offered as a proof-of-concept, demonstrating the promise of a JSON-based schema to meet the needs of the MIR community. To install, clone the repository into a working directory and proceed thusly.

The full documentation can be found here.


To date, the initial JAMS effort has evolved out of internal needs at MARL@NYU, with some great feedback from our friends at LabROSA.

If you want to get involved, do let us know!


JAMS is proposed in the following publication:

Eric J. Humphrey, Justin Salamon, Oriol Nieto, Jon Forsyth, Rachel M. Bittner, and Juan P. Bello, "JAMS: A JSON Annotated Music Specification for Reproducible MIR Research", Proceedings of the 15th International Conference on Music Information Retrieval, 2014.