Precise (Nancarrow Level) tempo changes in Midi
The newest SVN releases (pre-alpha 12) of music21 include tempo change information to/from MIDI (we've already supported tempo i/o from musicxml since previous versions and read it in from Humdrum/Kern, Noteworthy, abc, Musedata and probably others. And newest releases export it to Braille Music Notation). Here's an example of using a tempo change after each note (default = quarter note) to create a smooth change of tempo (tracing a sine wave) from 60 bpm to 600 bpm over 60 notes.
from music21 import tempo, note, stream
import math
min = 60
max = 600
period = 50
s = stream.Stream()
for i in range(100):
scalar = (math.sin(i * (math.pi*2) / period) + 1) * .5
n = ((max-min) * scalar) + min
s.append(tempo.MetronomeMark(number=n))
s.append(note.Note('g3'))
s.show('midi')
And the output:
This feature lets you create pieces with the types of precise changes of tempo that Conlon Nancarrow painstakingly created in his piano-roll compositions. We'll soon have demos to show how you can use these features to create independent tempo marks in different parts to weave independent strands of music in your works. On the analytical side, importing precise tempo marks can open up new avenues for research on performance and interpretation, comparing the tempos chosen with those marked in the score.
To use the latest (not thoroughly tested) releases of music21 via SVN, we recommend developing using Eclipse. See Using Music21's SVN version with Eclipse. Otherwise, wait a few weeks for the latest release with lots of other improvements.
music21 Alpha 11 Released
I haven't done a good job keeping this blog abreast of changes to music21 lately, but there have been a ton. Here are some of the new features of alphas 9-11. (Click the title for a more extensive list).corpus.parseWork() is now corpus.parse() to better match converter.parse()
Added features to the RomanText format for specifying analyses (via Roman numerals) for pieces
TimeSignatures can include “slow 6/8” “fast 6/8” etc. to specify if it’s a 6 or 2 beat measure.
Changes to environment.UserSettings objects now propagate instantly (usually) so you can keep working without changing anything
figuredBass.realizer() – new module for automatic realization of figured bass.
text.TextExpression() class for handling most text expressions, with fonts etc. – can be positioned by quaterLength offsets to represent their occurring between beats. – displays properly in musicxml (thanks Michael Good for the help)
Key analyses routines now return a Key object with a .correlationCoefficient attribute (thanks Rachel Hall!)
Dynamics objects can be freely positioned to take place between notes.
analysis/patel -- Tools for testing Aniruddh D. Patel's analysis theories, such as nPVI: Normalized Pairwise Variability Index and Melodic Interval Variability
note.lyric – adding a lyric with a hyphen at the start or end will automatically set it as a beginning or end syllable.
Microtones! C~ = C-half-sharp, D` = D-half-flat. Microtone objects allow for setting any amount of cents between notes.
harmonicFromFundamental() and harmonicAndFundamentalFromPitch() will let you get pitches representing, say the 7th harmonic of D#3 – with proper microtones! Or for spectral composers will let you find out potential fundamentals for a given pitch (with the number of cents off that this pitch is)
Note.fullName, Duration.fullName, and Pitch.fullName gives a verbose description of the element
Stream.recurse() will recursively find every element in the stream. What stream that element is in is set as .activeSite – this is different from .flat or .semiflat in that the .offset is still relative to the element’s container. recurse(streamsOnly = True) is a good way to only get substreams.
repeat.py has Repeat marks for dal segno, da capo, 1st 2nd (3rd 4th nth) endings, etc. all of which play back properly on .show. stream.expandRepeats() will expand repeats. (big plus on abc import)
Incompatible change: stream.notes now does not return rests; just notes and chords. Use stream.notesAndRests for the old functionality.
improvements to Scale including new documentations presented at ICMC
Feature extraction: 60% of jSymbolic features and many native features implemented in the features modules.
Expansions of ornaments – see expressions.realizeOrnaments()
corpus includes Mozart and Haydn string quartets and more folk airs. (see acknowledgements for thanks)
search.py – rhythmic (and future melodic) search module with wildcards (first version)
musedata stage1 files are now supported
Scala scales: microtonal scales from scala format.
Huge performance boost on stream manipulation – you’ll notice it just from using it.
Automatic correct MIDI channel distribution for instruments and microtonal pitch bends.
Check it all out at http://web.mit.edu/music21/
Changing Musical Time in the Renaissance (and Today)
The concepts of time, rhythm, and musical notation have changed dramatically from the Middle Ages to the Present. Music has slowed dramatically over the past millennium, and composers have repeatedly taken advantage of new resources. This pre-print of a short paper in honor of Joseph Connors documents this change and shows how it can affect how we think of nearly every piece written from 1100 to today. It concludes with an in-depth discussion of a piece from a particularly important moment in the history of notation, the lauda, O Regina from the manuscript Siena, Archivio di Stato, Fondo Vicariato di Gavorrano (1568-69), Ravi 3, giving the first transcription of this work with its unique notation.
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 and 2009-10 as Fellow at Harvard's Villa I Tatti Center for Italian Renaissance Studies in Florence. 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 January 2011) 2010 Bologna Q15: the making and remaking of a musical manuscript, review for Notes 66.3 (March), pp. 656-60. 2009 "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 2007 2006
"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 2001 Copyright 2010-11, Michael Scott Cuthbert. Web design by M.S.C. | Compositions: including Vasarely Patterns for the Bang on a Can All-Stars. Fonts for musicology: Ciconia (14th/15th c.) and ClarFinger (clarinet music). In my copious spare time as a junior faculty member on tenure track, I do web design and programming consulting for the National Bureau of Economic Research. Lectures on the webenChanting: Musical Artifacts in Unlikely Places, lecture March 3, 2009 Ambiguity, Process, and Information Content in Minimal Music, podcast of a lecture to Comparative Media Studies at M.I.T. The Music of John Dunstaple, iTunes podcast from a pre-concert lecture for Blue Heron Renaissance Choir. Just for fun...Biblioteca Cuthbertiana online catalog and library description Mondrian meets Finding Aids in a map of books in my former apartment. Numeric Deathmatch, a game I coded that was taught to me by Jon Wild. More fun in person, but the web interface encourages trashtalking. Javascript Timer, especially useful for timing Rubik's Cube times. Musicology Buzzword Bingo, useful for AMS meetings (requires Bach and Futura fonts) Automatic New Musicology Paper Generator based on the Dada engine The Musicology of the Fallows Catalog Pre-Facebook image archive (not indexed by Google) O L D E R web pages (may require Netscape 4.0 or older to work) |


