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.
Related repos
| 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)
| File | Size | Uploaded | |
|---|---|---|---|
| jazzsamba-0.1.0.tar.gz | 16.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|