Friday, January 11, 2013

Music21 version 1.4.0 Released

Version 1.4.0 of music21 is released.  This is a minor release on the outside, but incorporates a number of changes that will let us do more substantial changes in the upcoming next release.  Among the most substantial changes that people will notice are:

  1. Better documentation and more chapters in the User's Guide
  2. Ability to import Capella XML (.capx) files
  3. Articulations, grace notes, crescendo, and diminuendo now import in ABC (and the code is in place to bring in many more !exclamation! tags).  Thanks to Dylan Nagler, Harvard Research Partner for the code.
  4. analysis.neoRiemannian allows for analyzing the effect of smooth voice leading on chords.  Thanks to Maura Church, Harvard Research Partner for the code.
  5. Humdrum parsing improvements, including comments and better handling of multiple voices and importing of instruments.
  6. Lilypond now supports different numbers of stafflines in output
  7. Percussion support for MIDI and the basics of an Unpitched object type.  Thanks to Ben Houge for commits.
  8. Improvements to chords, including a better .root() algorithm for incomplete chords, geometricNormalForm -- implements Dmitri Tymoczko's algorithm for normal form.
  9. More useful errors when parsing incorrect or unsupported features in several formats.
  10. New files in the corpus, including many 14th century scores, and the 2nd movement of Clara Schumann's Piano Trio.  Female composers are hugely underrepresented in computer-readable music repertories (we couldn't find any substantial piece that was available), so we're proud to add an important work (known to many of us from the Norton Anthology of Western Music) by a great compose.
  11. Serialization of Streams via Pickle is much better tested and works even on large scores.  See the freezeThaw module.  If you're going to work with the same pieces over and over again, freeze them once and you'll load them over 3x as fast the next time you need them.
  12. MusicXML improvements: bowing marks are now supported as are pizzicato, etc.  A bug on piano staves where one used multiple voices but the other did not has been fixed.
  13. Improvements to the harmony module.  Thanks to Beth Hadley, MIT Undergraduate Research Assistant.
  14. Big speed increase on startup for people who have installed additional modules: numpy, scipy, and matplotlib are only loaded when first needed.

The next release will include support for virtualenv installs (I know people have been waiting for it, but this release included switching the entire development/commit platform, so we didn't want to change too much at once) and will have optional support for Rational number durations and offsets for perfect work with complex tuplets, etc.

In the meantime, I've been using music21 to explore similarity in fourteenth-century music to great success, so I hope to be able to share my own experiences as a user, not just a developer, of the toolkit very soon.  -- Michael