github cuthbertLab/music21 v5.3.0
music21 v5.3.0

latest releases: v7.3.0, v7.1.0, v6.7.1...
5 years ago

music21 v5.3 is the latest release for music21 and the first since the v5 (v5.1) release in March 2018. The biggest feature is a major improvement to the quality of the Bach Chorales in the corpus, thanks to the amazing work of Doctor Norman Schmidt to check the files and add lyrics for all chorales. The upgrade also adds missing repeat signs (and collapses several sections that were expanded repeats).

And it's not just Dr. Schmidt we have to thank: music21 v5.3 represents an important milestone in community involvement, where for the first time, the community's pull requests have contributed much more to the development than the MIT dev. team. As I (Cuthbert) move to a new role in Digital Humanities at MIT and have less time for active music21 development, I hope that this activity continues and music21's development accelerates!

Some changes, big and small:

  • ABC parsing improvements, especially Chord Symbols (Thanks to Alex Papadopoulos and Vincent Degroote) and ties and grace notes.
  • Stream.containerInHierarchy(note) -- given a Score object, will retain the container (Measure or Voice) that the note or other element is in. Long-requested method.
  • ChordSymbol subclass NoChord for absence of chords (thanks Alex!)
  • Significant speedup in MIDI parsing (Thanks HalfVoxel)
  • New module in analysis.segmentByRests (thanks to Mark Gotham)
  • Chord.isSeventhOfType([0, 4, 7, 10]) lets you search for more obscure seventh chords.
  • improvements to braille output (thanks ajirving)
  • Setting the root or bass of a chord directly, will attempt to use the actual pitch from the chord as the root.
  • compatibility w/ newer versions of Sphinx
  • ABC supports C# major (thanks David Randolph)
  • Improvements to docs, including ability to cut and paste code (click the >>> button on the top right)
  • bug fixes for Python 3.7.
  • repr bug fixes (thanks Adrian Borucki).
  • ChordSymbols with Fretboards in the tablature package now export to MusicXML (import coming soon). Thanks Luke Poeppel.
  • Musescore output works even if there are spaces in the filepath (thanks Philip Kirlin)
  • Move to Keyword-only status: musicxml.archiveTools.*, deleteOriginal, Stream.iterators.Iterator parameters,
  • Deprecations: several unused and seldom-used Stream methods: _yieldReverseUpwardsSearch, restoreActiveSites, Chord.findRoot() (call Chord.root() instead).
  • Some obscure beaming routines moved from TimeSignature to Beams.
  • Lots of obscure bugs fixed through linting.

In keeping with the release of Py 3.7, and our policy of supporting the last three versions of Python, music21 v5.3 will be the last version to support Python 3.4. Please upgrade to at least Python 3.6 to stay current. A reminder that Python 2 users should use music21 v.4 or upgrade Python.

Thanks always to MIT, the NEH, and the Seaver Institute for their support of music21.

Don't miss a new music21 release

NewReleases is sending notifications on new releases.