Changelog¶
All notable changes to DrumScript will be documented here. Format follows Keep a Changelog. DrumScript follows Semantic Versioning.
Unreleased¶
Fixed since last release¶
Adjusted documentation so that when version appears in documentation it is no longer hardcoded, but linked to
import importlib.metadataindrumscript/__init__.py[Reduces maintenance burden on contributors]Updated version in pyproject.toml from
v0.1.5tov0.1.6(This should have been changed prior to pypi release of v0.1.6 on Thursday 18 June 2026)Updated table ordering in
docs/index.mdto match right sidebar ordering and added missing sidebar navigation point for tempogram-detectionAmended documentation to remove bold markdown formatting for H1 references feeding into the side-nav bar visual presentation, for all except
DrumScript CLI Reference; fixed ordering side in toctree (docs/index.md) forUser Guidesubmenu to 1. remove duplicatedusagereference in toctree and 2. reorder items alphabetically. Amended right hand navbar so that H2 links are now alphabetical.
[0.2.0] - July/August 2026 - Target: TBD¶
First minor-version bump.
Signals the start of the breaking-change track for --full flag (replaced by --verbose) ahead of v1.0.0 beta.-->
Planned — Bug Fixes¶
Cymbal and hi-hat stem rendering: note tails and heads correctly aligned
ds.transcribe()only outputs PDF, not the documented.json/.midi/.xmlmain.pystructural bug: duplicated pipeline insideexceptblock needs removing, error handling needs restructuringdrumscript/main.py(~line 26).wavcomment. Check if this is actually true across all scripts indrumscript/modular code.
Planned — Changes¶
Transcription function docstrings to be updated to make clear that drum-only audio is expected as standard input
README to be updated to clarify expected input for transcription functions
Example notebooks to be updated to reflect expected drum-only audio input
Better audio samples needed for runbooks — not synthetic, which has created messy outputs
Runbook presentation to be tidied: one variable per line, properly tested
Improve documentation: clearer docstrings for the
rudimentflag/functionalityCheck if
is_rudimentapplies toscore_builderfunction — is it relevant, perdrumscript/main.py?Refactor
main.pyargparse block into abuild_parser()function sotests/unit/test_cli_args.pycan import the real parser instead of mirroring it
Planned — Additions¶
CHANGELOG reference to be added to README and Sphinx docs
output_midi,output_json,output_xmlflags to be added totranscribe()for multi-format exportExpanded benchmark dataset coverage (ENST-Drums, MDB-Drums) building on the IDMT-SMT-Drums V2 foundation shipped in v0.1.6
Code-to-DrumScript label mapping expanded beyond
KD/SD/HHto cover full-kit classes (toms, crash, ride)
Planned — Investigation¶
Onset timing precision: investigate user feedback on score generation. Though quantisation is used, look at the extent to which slight imperfections in onset detection cause notes to be placed at incorrect positions in the score (e.g. snare hit at 0.503s instead of 0.500s generates spurious rests). https://github.com/DrumScript/DrumScript/issues/274
[1.0.0] - Beta release - Target: TBD¶
Planned — Removed (breaking)¶
fullparameter removed entirely fromtranscribe(),extract_stems(), anddetect_tempo(). Users must useverboseinstead.Deprecation warning removed (no longer needed)
tests/unit/test_deprecation_warnings.pydeleted (or flipped to assertfullnow raisesTypeError)
Released¶
[0.1.6] - June 2026¶
v0.1.6is the final v0.1.x release. After this, the next release jumps to v0.2.0 to signal the deprecation shim for thefull→verboseremoval.
Added¶
Deprecation shim for
fullparameter on the Python API:New
verboseparameter added totranscribe(),extract_stems(), anddetect_tempo()as the canonical replacement forfullPassing
full=True(orfull=False) continues to work but emits aDeprecationWarningdirecting users toverboseWarning explicitly names the v1.0.0 (beta) removal target so users have a clear migration timeline
Passing both
fullandverbosetogether raisesTypeError(ambiguous, almost certainly a bug)Internal helper
_resolve_verbose_flag()centralises the resolution logic so it cannot drift between wrappersDocstrings updated to mark
verboseas primary andfullas deprecated
PR #273 by nanaoto — IDMT-SMT-Drums V2 benchmark runner with
mir_evalscaffolding:benchmarks/run.pyentrypoint with dataset adapter dispatch, evaluation loop, CSV/JSON archive with git commit trackingdrumscript/datasets/package:BenchmarkItemdataclass and IDMT adapter (XML/SVL annotation parsing)benchmarks/README.mddocumenting conventions, dataset setup, and planned dataset coverageUnit tests for benchmark runner (
test_benchmarks_run.py) and IDMT dataset adapter (test_idmt_dataset.py)mir_evaladded as a dev dependency
New unit test file
tests/unit/test_deprecation_warnings.py(13 tests)New unit test file
tests/unit/test_cli_args.py(4 tests)
Fixed¶
Commented-out dead code removed from
drumscript/__init__.pyanddrumscript/main.pyFlag inconsistency between
drumscript/main.pyanddrumscript/__init__.pyresolved:argparsein main block updated so the CLI flag is now--full-song(hyphenated, consistent with--all-stems). Auto-converts toargs.full_songmatching the Python API parameter name.
[0.1.5] - May 2026¶
Fixed
Emergency fix: transcription outputs
Updated docstrings to clarify expected input for transcription functions
[0.1.4] - 20 May 2026 (First PyPI publication)¶
First release
Initial public alpha release to PyPI
End-to-end CLI pipeline: stem separation → onset detection → classification → score generation
Drum classification (kick, snare, hi-hat open/closed, toms, crash, ride) using deterministic spectral analysis
PDF score generation with custom notation rendering
MIDI and JSON export
XML export support
Drumless and bassless backing track generation
Stem separation (drums, bass, vocals, other) via Demucs htdemucs 4-stem model
Tempo detection from onset pattern
Custom time signature support (e.g. 3/4, 6/8)
ffmpeg-free WAV output path (soundfile + numpy)
Google Colab notebook support
Notes¶
Alpha period: 01 June – 31 August 2026
Beta target: v1.0.0
TISMIR Educational Articles paper planned for beta release