LATEST NEWS from my Prolatio and music21 blogs:
[June 25, 2014 20:09 pm] « » [music21]
We are proud to release music21 v1.9.3, the latest and last release in the 1.x series.
There have been 147 commits in the two months since v1.8; here are some of the highlights:
  • MUCH faster .getContextByClass (KUDOS to Josiah Oberholtzer for this). Even if you don't use .getContextByClass in your own code, you're definitely calling something that calls it. This method figures out where the most recent key signature, time signature, clef, etc. is for any given object, finds relationships between notes in different voices, etc. For analysis of medium-sized scores (say, 3 voices, 100 measures) expect a 10-fold speedup. For larger pieces, the speedup can be over 100-fold.
  • A new stream/timespans module that makes the previous speedup possible by representing m21 Streams as AVL trees -- it's used in a few places (needs more docs), forthcoming releases will use it in a lot more places
  • Python3 support (3.3 and later). The entire test/ suite passes on Python 3. N.B. to contributors -- from now on all contributions need to pass tests on both Python 2.7 and 3.3 and later. Negative -- in the past you could have made music21 run on unsupported older systems (2.6 and sometimes 2.5); now from music21 import * will fail on pre-2.7. 2.7 has been a requirement since Music21 1.7. Fewer than 30% of Macs still in use are running Lion or earlier and thus will need to update to 2.7. This version of music21 runs about 25% faster on Python 3 than Python 2, but otherwise no new features of Python3 are used. Python 2.7 will be supported throughout the Music21 2.x cycle so no panicking -- it'll be years (if ever) before Python 3.3+ is a requirement.
  • Improvements to reductions of scores. And to analyzing voiceleading motion (some of this is backwards incompatible)
  • Better, faster, and more consistent sorting of elements in a Stream
  • Changes to the derivations module that I doubt anyone else was using anyhow...
  • Removed obsolete files.
  • Stafflines import and export from musicxml (thanks Metalmike!)
  • Complete refactoring of to make it easier for users to write their own Subconverter formats (that can eventually be put into the system)
  • Complete serialization of Streams via a new version of jsonpickle. This has big implications down the line; for now it affects...
  • Vexflow output is much improved (unless you were counting on Voices; in which case do not upgrade) using the alpha version of music21j -- Javascript reimplementation of music21's core features.
  • IPython improvements, allowing for robust and persistent communication between Javascript and Python. This will eventually (once I document it...) let you use the web browser as a UI for music21 python apps including live updating of music notation. It's too complex for most users right now, but I can attest that this will be one of the biggest perks of the 2.x development.
The usual bug fixes, documentation improvements and fixes, etc. are implemented. Thanks to MIT, the NEH, and the Seaver Institute for funding the project. (and to MIT for tenuring me in part on the basis of music21). This is the last release that Josiah Oberholtzer was lead programmer for; his considerable talents will still be on display in Abjad and many other projects he works on, and the implications of the new storage system he has developed will continue to pay off for years.

What's next?

Starting work on music21 2.0 today. That release will have some backwards incompatible changes that developers will need to deal with -- just as the path to 1.0 meant that some things that were originally thought of as good ideas were thrown out, the path to 2.0 will rely on 8 years of using music21 to fix some things that really should've been done differently from the beginning. Having just spent 2 weeks making m21 compatible with Python 3, I will give my assurance that as few incompatibilities as possible will be introduced. Most of the major changes will be on the core -- so if you've never messed with Sites, SpannerStorage, etc., you'll be fine.
  • Problems with 5 quintuplets = .99999999 of a beat will disappear. Music21 2.X will store offsets and quarterLengths internally as rational numbers (actually a custom MixedNumeral class, so that the __repr__ is nicer...). All music21 objects will gain four properties: ".offsetRational, .duration.quarterLengthRational, .offsetFloat, and .duration.quarterLengthFloat" -- in music21 2.0, .offset and .duration.quarterLength will be aliases for offsetFloat and .duration.quarterLengthFloat -- so no changes will be needed to existing code. This will give a period of time (6 months?) to switch .offset either to .offsetFloat or .offsetRational. We'll have a tool to make the switch automatically. Then at a certain point, .offset will become an alias for .offsetRational. By music21 3.0 .offset will only support Rational numbers.
  • Streams will store the position of notes, etc. in them. Right now this is all stored in the Note object itself. There are some great reasons for doing it that way, but significant speedups will take place by shifting this.
  • inPlace will be False by default for all operations on Notes, Streams, etc. -- you can plan for the migration by explicitly setting inPlace for every call now.
  • Some changes to boundary cases in .getElementsByOffset will take place -- it will not change much, but for a few users this will be crucial.
  • NamedTuples and OrderedDicts will appear in a lot of places
that's all for now, but more examples to come soon. - Myke
[June 11, 2014 18:29 pm] « » [prolatio]
[This is a draft “Working Paper” of research in progress; comments are welcome, but it should not be considered published work and may be removed before this is submitted for publication and replaced with a link to the published version.] 

The Tournai Mass is one of the oldest, if not the oldest, complete polyphonic Masses. It has been dated to around 1330 (though I'm inclined to find it a bit younger, perhaps 1350? but just on a hunch). It is contained in a magnificently interesting manuscript of chant from the fourteenth century now in the Belgium city of Tournai (Bibliothèque capitulaire, MS 476).

Like some other early Masses, such as the Machaut Mass, this is a six-section Mass with a concluding Ite Missa Est set as a motet.  There are two other polyphonic works in the manuscript, placed within the Mass, a largely monophonic Sanctus with three-part "In excelsis" settings (PMFC 23, no. 72), directly after the first Sanctus, and a second Kyrie, placed after the Agnus Dei. The image from the bottom of folio 33r is below:

(image reproduced under the assumption of limited copyright of works over 100 years old and under the Fair Use principle of a small excerpt. I will happily remove this and the following excerpt under a request from the Tournai BC)

In Reaney's notes for RISM B/IV-2, he states that this work (#7) is, like the Sanctus (#5), an independent, polyphonic Mass section and transcribes the incipit as such:

Cattin and Facchin in their monumental edition of French (& Spanish, Polish, Dutch, ... everything but Italian and English) Mass movements transcribed it as monophonic and noted that:
The well known melody...occurs in the T[enor] range in the Tournai MS; the question therefore remains whether one or more voices would have accompanied it. For this reason we decided to include this purely monodic piece in the present edition.
The opening of their transcription is shown below:

There are a few errors in this section of the transcription: the second Kyrie has three missing notes, and an incorrectly transcribed C instead of D. Together these errors account for the different lengths and incompatible harmony of the first Kyrie if the work were to be transcribed polyphonically, as I will propose below.  There are a few length errors in the third Kyrie which also could have made a polyphonic transcription difficult. However it is the Christe section that I am sure made great editors who had 130+ mass movements give up on making a polyphonic 3-fold Kyrie and instead make a monophonic 9-fold Kyrie.  The three Christe sections seem to begin on the notes A, G, and A and end on A, E, B; even if the first part is started after a breve rest (which may be interpreted as a sectional divider instead), the lengths and sonorities of this section just do not add up.

The solution comes from believing that the scribe himself did not realize where the different voices began and chose to ligate the final note of the first voice with the first note of the second voice. 

Beginning the second part on the second note of the ligature and ending the first voice on the first part gives a fully satisfying polyphonic version of the whole Kyrie:

A mediocre, generated .mp3 giving some sense of the piece is given below.

With these adjustments, the piece is almost entirely consonant, with the following breakdown of sonorities (discounting triplets in the middle of a semibreve):

36%  Perfect fifth
18   Major triad
12   Major third
12   Minor triad
 9   Minor third
 8   Minor triad as 6-3
 3   Major sixth
 2   Minor sixth
 0.5 Perfect fourth

(Numbers do not add up to 100% because of rounding)

Cattin and Facchin note that piece seems to be on the chant cantus firmus of no. 58 of Margaretha Landwehr-Melnicki's catalogue. The first Kyrie is indeed similar to this chant, but as a look at Paris, BNF lat. 14819, f. 34v. or Paris, BNF lat. 17309, f. 27v will show, the rest of the work is unrelated to this chant.

Otherwise the style of the work is similar to many French works from around 1350 (and also Spanish and Italian works from this time or slightly later). Facchin's description of these pieces, largely homophonic but with decorations, as part of a Wandering Style, or Stile Vaganti! seems quite appropriate for this work that wandered around the foot of a more famous Mass, waiting to be rediscovered.

More about the Sanctus and a fuller realization of it to come soon, thanks to an idea from Jan Janovčik. Here's a preview of his great recording with his Cantores Sancti Gregorii

Thanks to Jan Janovčik, Rob C. Wegman, and Dominique Gatté for aid and suggesting the Tournai manuscript as a source worth returning to. And to Anna Grau and Jeremy Jennings for their work on the EMMSAP project that made this work quickly possible.
[May 31, 2014 18:47 pm] « » [prolatio]
The bottom rungs of the
May 26, 2014 rankings
Each week since week 15 of the 2005 baseball season, ESPN has been compiling "Power Rankings," a list from 1 to 30 of the quality/current trends/strength of each team in Major League Baseball. Each team appears with its ranking, logo, name, current record in wins and losses, and a witty factoid about the direction the team is going in or about a player or two who exemplifies that trend. (Though the meaning of these trends is sometimes obscure as I've discussed before.)

It always rankles me when my favorite teams appear lower than other teams with the worse records than my teams' own. Of course that's part of the point of these rankings: to show subjective impressions of who is actually better than someone else despite having the record not showing their "inner strength" or some mumbo-jumbo like that. Still, when week after week, it appears that your team is getting the shaft, you begin to wonder if perhaps the rankings aren't so much about power on the field as power to draw viewers to the Sunday Night featured game, which doesn't exactly showcase all thirty teams equally.

To test whether there's something more happening, I looked at all of the power rankings from Week 15 of 2005, when ESPN started them or at least put them online in their current format, to the latest incarnation, Week 10 of 2014. (No, I didn't look at them all directly, I have computers for that.). For each team each week, I assigned a "bias point" for every rank that a team was above them with a worse win-loss record than them. For instance, if a the Jays at 25-20 were ranked 2 and the teams in ranks 3 and 5 had better records then them then the Jays would get 4 bias points, one for the team with rank 3 and three for the team in rank 5. Similarly teams would get negative bias points for teams ranked above them with worse records. In the illustration above, the Padres (my favorite, generally losing team) would get -1 points for being a position below the Red Sox (my next favorite, generally winning team). The Cubs and Diamondbacks would exchange no bias points even though percentage wise the Snakes are slightly ahead.

Over about ten years of Power Rankings, the teams most often ranked above their records were

1. Yankees (2052 points)
2. Red Sox (1101)
3. Tigers (968)
4. Angels (945)
5. Blue Jays (918)

The bottom five were

30. Pirates (-1141)
29. Astros (-1113)
28. Orioles (-977)
27. Rockies (-848)
26. Marlins (-805)

Since I started this to look at the Padres (-774), I'll just note that they ranked 24th.  For the most part, these numbers make sense -- even though these bias rankings already take into the power ranks assigned on the basis of current records, the people at ESPN wouldn't be earning their keep if they didn't take into account historical trends. In fact, looking at weeks 8 and beyond, the amount of bias is  less, and there's some shuffling throughout the ranks, though not at the very top:

1. Yankees (285)
2. Indians (241)
3. Phillies (210)
4. A's (178)
5. Angels (122)

30. Brewers (-380)
29. D'backs (-326)
28. Astros (-220)
27. Cardinals (-175)
26. Mariners (-153)

(Padres jump to 18th at -30 points, actually beating the Red Sox who drop all the way to 22nd at -70! Clearly those second half spurts and slumps, respectively, make a difference.)

A stronger showing of bias would be whether there's a long-term difference between the record of a team and its bias measure. The five most winning teams over the ten-year period were 1. Yankees, 2. Angels, 3. Red Sox, 4. Cardinals, and 5. Phillies and the most losing were 30. Royals, 29. Pirates, 28. Astros, 27. Mariners, and 26. Orioles (Cubs fans, be glad I didn't extend this list one more spot! oops.; Padres hit #21).  Subtracting the win-loss rank from the Power Rankings bias rank gives a ranking of systematic difference that cannot be explained by records alone.

Most biased for:
1. Cubs (WL rank: 24.5; PR rank: 12; = difference: 12.5)
2. Blue Jays (17 - 5 = 12)
3. Royals (!! Rob Neyer?) (30 - 22 = 8)
4. Indians (19 - 13 = 6)
5. Tigers (7 - 3 = 4)

At the bottom:
30. Cardinals (4 - 16 = -12)
29. Brewers (11 - 20 = -9)
28. Rockies (22 - 27 = -5)
27. Reds (15 - 19 = 4)
26t. D'backs, Padres, Marlins (20 - 23 or 21 - 24 or 23 - 26 = -3)

In both of these lists there are good, average, and pretty bad teams. There are some adjustments that could be made. For instance, since the records only reflect the regular season we could adjust for World Series wins and pennant wins, subtracting a system bias point for each (i.e., 2 pts for winning the Series and one for losing). To keep the numbers exactly constant we'll add one point per team (I love it when the math works out: 3 pts per season and 10 years in the dataset = 30 points, or exactly one per team). At the top nothing changes, since none of the top four teams have done anything in late October, except that the Tigers disappear from the most overrated (two pennants will do that for you) to be replaced by the Nationals. At the very bottom, nothing changes -- in fact four World Series appearances for the Cardinals just makes the bias even worse. San Francisco and Philadelphia make their way into 27 and 26.

Technically by this method, the Red Sox tie Philadelphia, but as #2 on the PR positive bias, they're hardly being discriminated against by any measure, but they do have a legitimate beef against the way they've been treated in the last two-thirds of the season.

There are a lot of ways to slice the data; some of which make the Padres look exploited, and others the give them more credit than they deserve. However, any way you look at the numbers -- adjusting or not for postseason success, including or excluding the start of the season -- there are some teams that the ESPN staff are definitely fans of: the Cubs, Royals, Indians, Nationals, Rays, and Jays. And there are some that get no love: Rockies, White Sox, Reds, Rangers, Giants, Diamondbacks, and Brewers. But most of all its the St. Louis Cardinals who time and time again get the shaft on the Power Rankings.  Maybe it's time for the crew to stop batting their eyelashes at the Friendly Confines and look for inner strength down I-55.

(attachments: Excel Spreadsheet and, in case anyone wants to look at NFL, NBA, or NHL Power Rankings, the Python program that generated the data)

[May 28, 2014 12:03 pm] « » [prolatio]
The latest issue of Journal of Musicology just appeared (in virtual form) for me today, and I've been reading through the fascinating articles by Karol Berger and Michael Gallope this morning (I omit Peter Schmelz's contribution not because I don't think it's fascinating, but simply because I haven't gotten to it at the time of writing). On broad topics cutting across decades and centuries, these are the types of articles that I wish appeared more often in my field. The arrival of this issue has made me set aside (again in a metaphorical sense) the journal that I had been reading through with interest, Gamut, a recently reestablished and exciting music theory journals that publishes entirely online.

Unifying the issues of these two quite different journals, and many of the other publications I've read recently, is that the articles selected for publication came not through open calls for submissions but as proceedings of conferences or as designed Festschriften for a major figure (well, important man, to be technical) in the field.

Yard from Dguendel/WP (CC:BY) 
Sign from arkadin55(CC:BY-NC-SA)
The JM issue comprises papers from the 2012 conference in honor of Richard Taruskin, "After the End of Music History," which included talks by so many of the brightest stars in the musicological firmament and which was covered in the New York Times. James Steichen's introduction to this and the following issue, which will contain more papers from the same conference, helps those of us who were not there feel the energy of the weekend: the dual performances of a lost Eugene Onegin, the premiere of a new work, the evenings on at a club at Princeton.

Beyond placing these articles together within the cultural context that produced them, what musicologists usually aspire to do with their writings on musical works, there is much that is gained from publishing articles from a single conference together. Responses from the audience or the dedicatee can be transcribed, edited, and included (the old IMS reports are fascinating in this regard). Interconnections among papers can be made by the writers themselves. And there is the opportunity, which Karol Berger takes, to keep articles shorter, nearer the length of the original presentation. This facet alone makes publication of conference proceedings and Festschriften in journals worth advocating. Too many of our journals contain articles that are far too long for their topics or narrow audiences. Whether encouraging such length is the editors' intent, or indeed even if they continue to publicly solicit shorter articles, those students and scholars who want to be published look at the tomes that do get accepted and are smart enough to know what to do.

Conferences as journal issues mitigate against this trend. They also help scholars, especially the untenured or underemployed, stay active in the vital intellectual life of the field by attending meetings and not needing to decide whether they will contribute their work to a special conference proceeding book, which will likely count less for tenure no matter how selective the press or how strong the process of peer review, or go out on their own in search of a peer reviewed journal.

Yet I am uneasy about the implications as more and more space in journals, especially at the top journals, becomes devoted to conference papers, or to colloquies, symposia, and round tables (common now in the Journal of the American Musicological Society). Conferences turn into journal issues either by the editors of the journal seeking out conferences or selected papers from conferences to publish or by the organizers of the conference proposing their papers (or, again, a subset) as ripe fruit for an issue. In either case, the scholars who are or could be included come from the group of people invited to present at the conference. Many conferences begin with an open call for papers, but these are rarely the conferences that turn into journal issues. Journal paper selection moves from selecting articles from the broad scholarly public to the group of people who were invited to prestigious conferences. And these invitations rarely, if ever, go out on the basis of the work to be spoken of at the conference--which is almost never written at the time of the invitation--but on the basis of past work.

This development does not harm me personally. I am now at a stage of my career where I receive more invitations to speak at important meetings in traditional and computational musicology than I could attend, let alone write new contributions for. And my newly tenured state enables me to publish more in fora that seem appropriate (even blog posts) than worry about what a promotion committee will think of the surrounding context of my thoughts. The change to conferences as journals does, however, have the potential, especially if it becomes more common, to exclude from publishing those who are less well-connected, who are not invited to be in colloquies or symposia, but who have thought-provoking and well researched ideas. The organizers of "Taruskinfest" and the JM editors are to be commended (and nothing here is directly specifically against them) for including younger scholars in their celebration and publications, but not every conference journal issue, especially Festschrift contributions, are so thoughtful.

The change also has the effect of squeezing out space for ideas and areas of work that are at present too obscure or new to be the subject of a conference or for interpretations that go sharply against those of the senior scholars who are in the position to convene these events. Musicology, and I suspect many other humanistic disciplines, is not yet at a post-publication, post-peer-reviewed-journal state; any changes that may make it harder for the brightest and newest of ideas to be shared in our journals should proceed cautiously and under the scrutiny of the field.
[May 26, 2014 10:30 am] « » [prolatio]

Country / Capital Challenge is a Javascript game I made with Elina Hamilton based on our mutual love of learning geography.

Two players compete to create chains of capitals and countries as fast as they can. The first player chooses a country or capital (any). The second player must choose a country that either ends the same way as the previous country began or that begins the same way the previous countryended. For example, if the first player chose SpaiN, the second player could go with PariS or Nepal. Longer chains are possible, such as SpaIN to INdia.

You can also play in one-player mode.
By default, every 60 seconds of thinking, the opponent gets 1 point. Every time that a player repeats a country or capital, the opponent gets 1 point. If you can't come up with an answer, you can concede (giving the opponent a point) or challenge the other player. He or she then needs to answer quickly; if they can, they get two points. If they need to concede , you'll get a point. Countries that share an exact name with their capitals (such as Luxembourg, but not Mexico/Mexico City) appear only once, under countries. Play to a score that you'd like or a maximum time or total number of countries or capitals. There's no set "Game Over" point.
[May 25, 2014 11:27 am] « » [music21]
We've been working a lot recently on two kinds of optimization in music21: improving speed and then using some of the speed increases to add functionality and stability, so that new features can be added without slowing down the process. One of the places we found where we could make changes is in our over-cautious use of imports. 

While everyone says that in Python you can import a module inside a function without it going through the overhead of actually reimporting, there is some real overhead still, especially if the function is called a lot of times:

Here I compare ten million calls to reference an object vs. doing the same while also importing a module that is already imported:

>>> from timeit import timeit as t # number = ten million; output in secs to 3 decimals
>>> t('x', setup='import weakref; x=5', number=10000000)
>>> t('import weakref; x', setup='import weakref; x=5', number=10000000)

So it's approximately two orders of magnitude slower than direct access alone.  Even with using the module and creating the weakref itself, the check-for-reimport timedominates five-fold over the creation of the weakref:

>>> t('weakref.ref(x)', setup='import weakref; from music21 import pitch; x=pitch.Pitch()', number=10000000)
>>> t('import weakref; weakref.ref(x)', setup='import weakref; from music21 import pitch; x=pitch.Pitch()', number=10000000)

for historical reasons (porting to systems without weakref, etc.) the “common.wrapWeakref” function of music21 (which does a try: except to see if a weakref could be made) did the import within the function.  Moving it outside the function sped it up considerably and made it only half the speed of calling weakref.ref(x) directly -- worth it for the extra safety--and only an order of magnitude slower than direct access to x itself:

before, with common.wrapWeakref doing a safety "import weakRef" call 
>>> t('common.wrapWeakref(x)', setup='from music21 import common,pitch; x=pitch.Pitch()', number=10000000)

after, without it:
>>> t('common.wrapWeakref(x)', setup='from music21 import common,pitch; x=pitch.Pitch()', number=10000000)

So this is the speedup in music21 that you'd find if you managed to grab the GitHub repository right now.  But we're planning on using the speedup to make things more functional.

As a practical consideration, one of the things that I’ve never been able to fix in music21 is the ability of elements embedded in a Stream to change their duration without telling their sites that things have changed for an element. There are expensive operations such as calculating that the length of a Measure, the last object, etc. which we cache as long as no .append(), .insert(), .remove() etc. are called.  But a Note inside the measure may have changed length so that the information in the cache is no longer accurate. I've been wanting to fix this for a while.

The problem is that the Note object itself has no idea that its duration has changed, because while the Note has a reference to the Duration, the Duration does not have a reference to Note -- it can't have a normal reference because this would create a circular reference (Note.duration = Duration; Duration.client = Note). With a circular reference, neither the Note nor the Duration will ever disappear even after they're not needed anymore, causing memory leaks. The obvious solution is to use a weak reference which behaves mostly like a normal reference but does not cause circular references. If the Note should disappear then the Duration.client weakref is not strong enough to keep the two objects alive.

With the speed increases, it should be possible to store a weakref on Duration and also Pitch to the object they’re attached to so that they can inform their “client” that they’ve changed.  The client can then inform its Sites (measures, etc.) that it has changed and clear the appropriate cache.  The extra overhead of creating the weakref ends up being only about 20% of object creation time; a small price to pay for the security of knowing that nothing can change and screw up the overall system:

>>> t('d=duration.Duration();', setup='from music21 import common,duration,pitch; x=pitch.Pitch()', number=10000000)
>>> t('d=duration.Duration(); pitchRef = common.wrapWeakref(x)', setup='from music21 import common,duration,pitch; x=pitch.Pitch()', number=10000000)

Expect to see more functionality like this in a forthcoming release of music21.

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

Michael Scott Cuthbert (cuthbert [at] 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 in 2012–13 was 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, computational musicology, 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)

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.

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.

"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.

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

"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]

"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.

"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.