Skip to main content

jams

PyPI License Tests codecov

A JSON Annotated Music Specification for Reproducible MIR Research.

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

What

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

Why

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

How

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.

Who

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!

Details

JAMS is proposed in the following publication:

[1] 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.

The JAMS schema and data representation used in the API were overhauled significantly between versions 0.1 (initial proposal) and 0.2 (overhauled), see the following technical report for details:

[2] B. McFee, E. J. Humphrey, O. Nieto, J. Salamon, R. Bittner, J. Forsyth, J. P. Bello, "Pump Up The JAMS: V0.2 And Beyond", Technical report, October 2015.

Release files for jams 0.3.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jams 0.3.5
File Size Uploaded
jams-0.3.5.tar.gz 72.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jams 0.3.5
File Interpreter ABI Platform
jams-0.3.5-py3-none-any.whl Python 3 none any Details

Total release size: 140.1 kB

Release files / jams-0.3.5.tar.gz

Download URL jams-0.3.5.tar.gz
Size 72.8 kB
Tags Source
SHA-256 checksum
How to use checksums
260b1922f0fac0b30d82f750e0b1d240905070db4e500b52efa8f3202409d0fe
BLAKE2b-256 checksum
How to use checksums
35911df6b53375bd1f45821cbce864ab451a869c2714756dd852085e10373878
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 18, 2025.

Transparency log

Release files / jams-0.3.5-py3-none-any.whl

Download URL jams-0.3.5-py3-none-any.whl
Size 67.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b9f17ff2d95deb125e13001a50bafe338b68a9bf0c6df217f5b0f9e153041d0d
BLAKE2b-256 checksum
How to use checksums
f2a879e80fef627eedf196c7e4efe758306eae46b1bc2b8411b8992c6d600eb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 18, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.5 This release

2 release files

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.2.0rc2

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page