Release notes

v0.1.3 (2026-04-17)

v0.1.2 (2026-02-03)

  • Update Norbeck to the current 2026-01 version (PR96)

  • Various Bill Black fixes (PR96)

  • Add zlib-based compression support for Eskin ABC Transcription Tools URL decoding and URL creation (PR95). It is the default in the Eskin tools as of 2026-02-02, but for now, in abc_to_abctools_url() you have to opt in using lzw=False.

v0.1.1 (2026-01-20)

  • Fix loading The Session sets data (PR77)

  • Fix HTML display of pitch classes with double accidentals (PR76)

  • Fix Norbeck URL gen for multi-word tune types (e.g., slip jig, set dance)

  • Add initial support for loading Eskin ABC Transcription Tools tunebooks (PR86)

  • Update NumPy/pandas pins to v2 and min Python to 3.10 (PR87)

  • Use anywidget for abcjs tune display in notebooks and add additional abcjs-based tools (pyabc2.abcjs; PR89, PR91)

  • Add initial support for loading tunes from Bill Black (PR92)

  • Mark the note regexes as non-private, towards less awkward usage (PR93)

  • Add a few more The Session web API capabilities, including loading sets (PR94)

v0.1.0 (2025-07-02)

I’ve recently cleaned up a few things and added docs (PR68, PR69), but otherwise pyabc2 has been pretty much the same for a few years now. I wanted to preserve this state of the project before making breaking changes.

Compared to campagnola/pyabc, a major inspiration for this project, pyabc2 (thus far at least):

  • doesn’t really attempt tokenization, just focuses on extracting the melody notes

  • takes into account repeats and endings in order to extract the full melody (Tune.measures, Tune.iter_notes())

  • has separate Pitch and PitchClass classes

  • has Note inherit from Pitch instead of a token class

  • includes tools for fetching tune data from Norbeck, in addition to from The Session

  • implements HTML reprs, including using abcjs to display tunes in the Jupyter notebook (examples)

  • makes use of type annotations

  • adds more methods/properties for pitch/note and key classes

  • is available on PyPI