Skip to main content

jazzsamba

Python API for the JazzSAMBA multitrack jazz-standards dataset.

Install the package, point it at a local JazzSAMBA/ directory (after unzipping the Zenodo archives into one folder), and load songs, takes, and stems.

Dataset download Zenodo (DOI forthcoming)
Project page pnlong/jazzsamba-demo — listen / explore
Processing / release pipeline pnlong/jazz-standard-dataset (authoring only; not required to use this package)

Install

pip install -e .
# later: pip install jazzsamba
# needs setuptools>=68 (or the included setup.py for older pip)

From the processing monorepo (submodule):

pip install -e packages/jazzsamba

Quick start

from jazzsamba import JazzSamba

ds = JazzSamba("/path/to/JazzSAMBA")
# or JazzSamba() if JAZZSAMBA_DIR / JAZZ_SAMBA_ROOT is set (or a nearby .env)
song = ds.song(0)
take = song.recording.take("preferred")
mixture = take.mixture_path()
bass = take.stem("bass")
print(bass.audio_path, bass.midi_path, bass.midi_is_gt, bass.is_derived)
for stem in take.stems(is_derived=False):
    ...

Iterate and filter (rows whose protocol song directory is missing are skipped):

for song in ds.songs(synchronous=False, genre="swing"):
    take = song.recording.take("preferred")
    extras = song.recording.extras()  # async only; not a Take

reference.url / youtube_id come from songs.csv (pointers only; commercial/YouTube audio is not in JazzSAMBA).

Object model

See docs/ER.md. Canonical layout and song- vs take-level fields are also in the JazzSAMBA dataset README.md (shipped on Zenodo).

JazzSamba(root)
  └── Song
        └── AsyncRecording | SyncRecording
              └── Take (preferred | alternate)
              └── extras/   # async only, not a Take

Prefer:

take = song.recording.take("preferred")
take.measure_sequence   # derived from annotations/bars.csv
take.solo_order         # derived from annotations/soloists.csv (instrument column)
take.annotations()

Dataset root layout

JazzSAMBA/
  songs.csv
  musicians.csv
  async/
    splits/{train,val,test}.txt
    songs/<NN-title>/{preferred,alternate,extras}/
  sync/
    splits/{train,val,test}.txt
    songs/<NN-title>/{preferred,alternate}/
ids = ds.split_ids("async_test")  # reads async/splits/test.txt

License

MIT — see LICENSE.

Release files for jazzsamba 0.1.0

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

Source distribution (sdist)

Source distribution for jazzsamba 0.1.0
File Size Uploaded
jazzsamba-0.1.0.tar.gz 16.8 kB Details

Built distribution (wheel)

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

Total release size: 33.8 kB

Release files / jazzsamba-0.1.0.tar.gz

Download URL jazzsamba-0.1.0.tar.gz
Size 16.8 kB
Tags Source
SHA-256 checksum
How to use checksums
5e6515b2b96a36bf69354ce14e7cceccd90c78a43e630549c436680710bbea1b
BLAKE2b-256 checksum
How to use checksums
178d03c5ea1e3c70a90e827d5081acf9934d1a13378ccfa90a00aa5c45b77117
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Release files / jazzsamba-0.1.0-py3-none-any.whl

Download URL jazzsamba-0.1.0-py3-none-any.whl
Size 17.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9df7b0af9dc29631e29df700191ecf8d42152b001d6bea8f325e569b72008220
BLAKE2b-256 checksum
How to use checksums
7d753475d88b586b31ea5f291f3fa48e39ed52a8e1bd9471a2dc0201d4771d10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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