pubPhotos
LATEST NEWS from my Prolatio and music21 blogs:

May 11, 2013 1:44 pm

music21 v. 1.5 Released

A new version of music21 has been released, the first public release since January.  This release focuses primarily on speed and stability improvements so it is worth an upgrade even if none of the new features is of use to you.  A summary of what's new:


  1. Many improvements to Layout -- information soon, but pixel level positioning of measures can now be extracted from MusicXML files.
  2. Chordify addPartIdAsGroup=True works better.
  3. Better triplet handling in Humdrum SpineParser.
  4. Some .nwc files (not just .nwctxt) files can now be parsed.
  5. Improvements for PartStaffs (Piano scores, etc.)
  6. .transpose works on Key objects.
Thanks to everyone for support and new ideas on where to take the project.

Jan 11, 2013 10:16 pm

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

Dec 18, 2012 8:48 pm

Addition and Multiplication of Intervals

I was emailing back and forth with a student research assistant about some algebraic properties of adding, subtracting, multiplying, and dividing intervals, and I thought that I might share the email (in slightly revised form) with the Net.  I would be very surprised if this hasn't been written up already by someone else, but the only things I could find quickly about interval multiplication was all in the 12-tone/serial usage, which is less interesting to me today.   
 

An interval is just a ratio (fraction), so the octave is 2:1.   That ratio could apply to frequency (a note an octave up has a frequency twice that of the lower note), or the reciprocal gives the string length (so a string half the length of another is an octave higher than the longer string) or length from mouthpiece to first open tone hole, etc.  

The octave is always 2:1.   The other interval ratios depend on what temperament we’re talking about.   In equal temperament, all other ascending intervals are integer exponents of L , where L is a the 12th root of 2 (I’m using L because it’s the 12th letter).   So a major third (4 semitones) is L^4/2 or the cube-root-of 2.   In other temperaments, the ratios are integer ratios, but they’re not standardized.   So a major third can be either 5:4 or 81:64 (I like the latter, also called a ditone, for reasons below).   You just have to memorize them all.   But once you have P5 as 3:2 and major second as 9:8, you can basically derive the rest.

When we add intervals, what we’re actually doing is multiplying ratios.  So P5 + P4 = 3/2 * 4/3 = 2/1 = P8. When we subtract intervals we’re dividing ratios, which is multiplying by the reciprocal, so P5 – P4 = 3/2 * 3/4 = 9/8 = M2.   And P8 – P5 = 2/1 * 2/3 = 4/3 = P4.   Since multiplication of ratios is commutative, then addition of intervals is also commutative.  The generic interval (the "5" in "P5") of the sum of ascending intervals is always the sum of the two generic intervals minus 1.  For descending intervals or a mix or if adding multiple intervals at once, take each generic interval and subtract 1 from the absolute value and then restore the sign.  In the end add one to the absolute value of the result and then restore the sign.  If it was 0 before, make it positive, since we only have P1 for a unison, never P-1.  (Though how we should actually designate the sign for d1 or dd1, is unclear, maybe it should be d-1? but then it's not analogous to dd2, such as between E# and Fb, where the generic interval is definitely ascending -- in programming this possibility is always one of those cases that bites you in the ass later later, where you have an ascending diatonic interval that is a descending chromatic interval, so if you mix ASCENDING tests for generic intervals with > 0 tests for chromatic intervals, you'll get inconsistent results depending on which form of the interval you're looking at.)

Getting back to the main subject.  So what does it mean to multiply an interval by an integer?   M2 * 2 = ?   Well, what’s M2 + M2 = 9/8 * 9/8 = 81/64 = M3.   So M2 * 3 = M2 + M2 + M2 = 9/8 * 9/8 * 9/8 = A4/Tritone (729/512), and so M2 * 3 = (9/8)^3, so when we multiply an interval by a number it’s like taking the ratio to a power.

Since exponentiation is not commutative, 2 * P5 would be different than P5 * 2;  2 * P5 = 2^(3/2) = 2 radical 2, while P5 * 2 = (3/2)^2 = 9/4 which is a M9 (P8 + M2 = 9/8 * 2/1).   However, we’re defining our own algebraic system, so we could define * as always placing the integer in the exponent and thus make this commutative.   HS and early college math doesn’t talk much about defining our own algebras, but we do it all the time.   (otherwise we couldn’t define 11:00 + 3hours = 2:00, etc.)

So, does it make any sense to multiply intervals?   What would M3 * P5 be?   Well, if we convert it to ratios, then it’d be (81/64)^(3/2), or (9/8)^3, or 729/512, which we defined as an Augmented 4th.  Most ratios * other ratios though will create irrational ratios, which we don’t like unless we’re in Equal Temperament (“irrational ratio” is an oxymoron if you think about it).  In equal temperament though we’d end up with irrational numbers raised to irrational exponents.   Your calculator will calculate these things, by substituting in the nearest rational number, and in fact to take a number to an irrational ratio, you need to find the limit of the ratio of the base to the closest smaller rational number exponent with the base of the closest larger rational number exponent.  (btw – did you ever notice that any negative number to an irrational power is undefined? because it depends on whether the irrational number can be expressed as a ratio with an even or odd denominator, and irrational numbers are not ratios.   Fortunately, we don’t need to deal with negative ratios in music).

A nice property of defining multiplication of intervals as a form of exponentiation is that descending intervals (whose ratios are positive but < 1) can also be used.   I like M3 * P-8, or major third times descending perfect octave; or (81/64)^(1/2) power, or 9/8, or M2.

Consider what multiplying by an interval by an interval might be used for.   M2 * P8 = (9/8)^(2/1) = 81/64 = M3.   So a M2 occupies the same proportion of the harmonic space of one octave as a M3 does for two octaves.   This process (multiplying an interval by P5) could be used to convert intervals in standard, octave repeating, space into Bohlen-Pierce space which is based on the P12.   Or it can translate the ratios produced by fingering patterns in the lower vs. upper register of the flute (based on P8) into the ratio you’d get on the clarinet (based on P12).

Also notice that multiplying any interval (ascending or descending) by a descending perfect infinity (P-∞) (or the limit as the number of descending octaves increases without bound) condenses the available interval space to nothing. So every interval becomes a unison.   E.g., P4 * P- ∞ = (4/3)^(1/(2^∞)) = (4/3)^(1/∞) = (4/3)^(0) = 1 (since any non-zero number to the zeroth power = 1) and 1 = 1:1 = P1.

The question of what diatonic intervals result from any addition or multiplication isn’t something I’ve touched on here.  It’s easy to figure out what the generic interval under addition will be as I described above.   The specifier (major, minor, augmented, diminished, perfect, etc.) is harder to determine.   I’ll leave that as an exercise – it’s messy and I solved it a while back, but I can’t remember the exact solution right now.   Under multiplication of an interval with an integer, it’ll be easy to solve what the diatonic interval will be, without converting to ratios, once you’ve solved the previous problem.   But for multiplication of an interval by another interval the math becomes harder.  The first question to solve there is, is the answer dependent on the temperament system chosen, or can it be generalized for any temperament?

Btw, raising intervals to the power of other intervals is just silly.   So say I. :-)

Dec 16, 2012 2:31 pm

Litany of Ars Nova (Trecento) Saints

Lord have mercy on us
Christ have mercy on us
Lord have mercy on us.

Accept holy Trinity
This joyful cry of peace
And remove the cloud
Of horrible schism.

Holy Hildegard
Mother of Musicians
Virgin Composer -- have mercy on us.

Holy Philippe de Vitry -- pray for us
Holy Marchetto of Padua -- pray for us
Holy Guillaume de Machaut -- pray for us
Holy Jacopo da Bologna -- pray for us
Holy Giovanni da Cascia -- pray for us
Holy Master Piero -- pray for us
Blessed Egidio and Guglielmo -- pray for us
Holy Francesco the Blind -- pray for us
Holy Lorenzo of Florence  -- pray for us
Holy Johannes Ciconia -- pray for us
Blessed Anthony, called Zachara of Teramo -- pray for us
Holy Matteo of Perugia -- pray for us
Holy Bartolino of Padua  -- pray for us
Blessed Solage  -- pray for us
Blessed Engardus -- pray for us
Holy Christine de Pizan -- pray for us
Blessed Alanus -- pray for us
Holy Baude Cordier -- pray for us
Blessed Oswald of Wolkenstein -- pray for us
Holy Prosdocimus of Beldemandis -- pray for us
All you holy composers, singers, and musicians -- pray for us
All you holy theorists and poets -- pray for us
All you scribes and compilers of manuscripts -- pray for us.

Blessed Françoise-Joseph Fétis -- pray for us
Blessed Johannes Wolf -- pray for us
Blessed Friedrich Ludwig  -- pray for us
Venerable Heinrich Besseler -- pray for us
Blessed Kurt von Fischer -- pray for us
Blessed Susanne Clercx -- pray for us
Holy Nino Pirrotta -- pray for us
Blessed Billy Jim Layton -- pray for us
Blessed Giuseppe Vecchi -- pray for us
Blessed Pierluigi Petrobelli -- pray for us
All you holy scholars -- pray for us
All you thinkers about medieval composers -- pray for us
All you translators of music theory -- pray for us
All you searchers of manuscripts and fragments -- pray for us.

Lord, be merciful,
From all dissonances -- Lord, save your people
From all scribal errors -- Lord, save your people
From your tritones -- Lord, save your people
From bad ficta choices -- Lord, save your people
From a sudden and unprovided hexachordal mutation -- Lord, save your people
From the scourge of lost manuscripts -- Lord, save your people
From incorrect prolation and mensuration -- Lord, save your people
From unexplained coloration -- Lord, save your people.

By the mystery of minim equivalence,
By your dragmas,
By your custodes, -- Lord, save your people
By your ligatures of perfection,
By your ligatures of propriety,
By your ligatures of opposite propriety, -- Lord, save your people
By your alteration and imperfection,
By your dots of division, and of addition,
By your chains of perfect semibreves under similis ante similis,
By your knowledge that what cannot be transcribed
    should not be transcribed, -- Lord, save your people
On the day of publication -- Lord save your people.

Be merciful to us scholars, -- Lord hear our prayer
That you will guide us,
That you will help us discern the alignment of voices,
Through the logic of perfect consonances on strong beats,
And not invent alternative explanations for simple transcriptions -- Lord hear our prayer
That you will grant us your Apel to discern your will, -- Lord hear our prayer
That it may please you to bring us to true transcription -- Lord hear our prayer
Guide and protect your holy universities,
Preserve in holy religion the editors at LIM, Brepols, AIM,
    and all those in holy publishing houses -- Lord hear our prayer
Humble the fifteenth-century scholars,
Who assert that only complete polyphonic Mass cycles are pleasing to you,
And those who transcribe fourteenth-century music
    without rhythmic reduction -- Lord hear our prayer
Bring back to the unity of performance those who sing without ficta,
    those who choose moribund tempos, and all those who play
    shawms without thought of intonation -- Lord hear our prayer
Strengthen and preserve us at Certaldo, and Dozza, and Novacella,
Raise our databases to the level of true understanding,
Reward all your servants with everlasting tenure -- Lord hear our prayer
Deliver our souls from indecipherable tropes, and the souls of those who transcribe ars subtillior,
    who search in archives, and read clerical shorthand -- Lord hear our prayer
Give and preserve the fragments not yet found,
Yield to us productivity in our sabbaticals,
Grant three beats of rest to all perfect semibreves pausae
Never causing our Finales or Sibeliuses to think of imperfecting them,
That it may please You to hear us and our editions,
    Jesus, Son of the Living God -- Lord hear our prayer

Lamb of God, who takes away the sins of transcription -- Spare us, O Lord!
Lamb of God, who takes away the sins of musicology -- Spare us, O Lord!
Lamb of God, who takes away the sins of scholarship -- Grant us thy peace.

Christ, hear us,
Lord Jesus, hear our prayer,
Lord, have mercy on us,
Christ, have mercy on us,
Lord, have mercy on us,

Amen.

For older stories visit the Prolatio (general items) or music21 (computational musicology) blogs.

Michael Scott Cuthbert (cuthbert [at] mit.edu) is Associate Professor of Music and Homer A. Burnell Career Development Professor at M.I.T.

Cuthbert received his A.B. summa cum laude, A.M. and Ph.D. degrees from Harvard University. He spent 2004-05 at the American Academy as a Rome Prize winner in Medieval Studies, 2009-10 as Fellow at Harvard's Villa I Tatti Center for Italian Renaissance Studies in Florence, and will be a Fellow at the Radcliffe Institute in 2012-13. Prior to coming to MIT, Cuthbert was Visiting Assistant Professor on the faculties of Smith and Mount Holyoke Colleges. His teaching includes early music, music since 1900, and music theory.

Cuthbert has worked extensively on computer-aided musical analysis, fourteenth-century music, and the music of the past forty years. He is creator and principal investigator of the music21 project. He has lectured and published on fragments and palimpsests of the late Middle Ages, set analysis of Sub-Saharan African Rhythm, Minimalism, and the music of John Zorn.

Cuthbert is writing a book on Italian sacred music from the arrival of the Black Death to the end of the Great Schism.

Download what is almost certainly an out-of-date C.V. here (last modified June 2012)

2010
Changing Musical Time in the Renaissance (and Today), for Festschrift Joseph Connors (forthcoming)

Bologna Q15: the making and remaking of a musical manuscript, review for Notes 66.3 (March), pp. 656-60.

2009
Ars Nova: French and Italian Music in the Fourteenth Century, edited volume with John L. Nádas (Music in the Medieval World Reference Series vol. 6). London: Ashgate. Reviewed by Gary Towne, The Medieval Review, February 2010.

"Palimpsests, Sketches, and Extracts: The Organization and Compositions of Seville 5-2-25," L’Ars Nova Italiana del Trecento 7, pp. 57–78.

Der Mensural Codex St. Emmeram: Faksimile der Handschift Clm 14274 der Bayerischen Staatsbibliothek München, review for Notes 65.4 (June), pp. 252–4.

2008
"A New Trecento Source of a French Ballade (Je voy mon cuer)," in Golden Muse: The Loeb Music Library at 50. Harvard Library Bulletin, new series 18, pp. 77–81.

2007
"Esperance and the French Song in Foreign Sources," Studi Musicali 36.1, pp. 1–19.

2006
"Trecento Fragments and Polyphony Beyond the Codex", Ph.D. Dissertation, Harvard University (unpublished).

"Generalized Set Analysis and Sub-Saharan African Rhythm? Evaluating and Expanding the Theories of Willie Anku," Journal of New Music Research (formerly Interface) 35.3, pp. 211–19. [.pdf]

2005
"Zacara’s D’amor Languire and Strategies for Borrowing in the Early Fifteenth-Century Italian Mass," in Antonio Zacara da Teramo e il suo tempo, edited by Francesco Zimei. Lucca: LIM, pp. 337–57 and plates 10–13.

2001
"Free Improvisation: John Zorn and the Construction of Jewish Identity through Music," in Studies in Jewish Musical Traditions, edited by Kay Kaufman Shelemay (Cambridge, Mass.: Harvard College Library). pp. 1-31. [.pdf]

Creative Commons License Unless otherwise mentioned, the writings, compositions and recordings on this site are licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License.

Copyright 2010-11, Michael Scott Cuthbert. Web design by M.S.C.