Music21 v9.9 has been released. It primarily fixes bugs that have been identified (and often fixed) by the community and adds enhancements from community contributions.
Update with
pip install -u music21
Full change list: https://github.com/cuthbertLab/music21/releases/tag/v9.9.0
Highlights:
* Support Dorico as MusicXML reader
* music21.text.assembleLyrics: support custom word separator
* Add Docker and github codespace support
* Modernization of Lilypond syntax
* Unofficial support for Python 3.14 (to be released tomorrow)
* Stream.template(removeAll=True, exemptFromRemove={dynamic.Dynamics})
* UserSettings.items() and .values()
Bug fixes:
Lilypond support in Windows, spanner support in partsToVoices, RepeatBrackets import properly from musicxml for pianos, etc.
Improved docs, fixed links etc.
Next release will begin the v10 series with some backwards incompatibilities and new features. I am hoping to replace the core Stream search with sortedcontainers which should give substantial speedups for large scores while being the same speed for faster for small scores.
As always thanks to the Seaver Institute, the National Endowment for the Humanities, and MIT SHASS for their past support of music21 and my wife Elina Hamilton for the current support <3.