Tuesday, June 15, 2010

Mensural Canons and Other Applications of Stream Transformations

We have a number of powerful Stream transformation methods available now, including transpose() and augmentOrDiminish(). My favorite task with such utilities is creating mensural canons. The example below does just that, using a Bach soprano line as the melodic source.

Further explanation can be found here:

from music21 import *
src = corpus.parseWork('bach/bwv323.xml')
ex = src.getElementById('Soprano').flat.notes

s = stream.Score()
for scalar, t in [(1, 'p1'), (2, 'p-5'), (.5, 'p-11'), (1.5, -24)]:
part = ex.augmentOrDiminish(scalar, inPlace=False)
part.transpose(t, inPlace=True)
s.insert(0, part)

New Documentation Chapter on Meters

We have a new documentation chapter, with numerous examples and demonstrations, on using and processing time signatures and meter-related data:

Friday, June 4, 2010

Meter Objects at ICMC 2010

This week we presented a paper on music21 Meter objects at the 2010 International Computer Music Conference. There were a number of people happy to see an easy-to-use, powerful, object-oriented representation of symbolic musical structures.

The paper can be downloaded at the link below. I will be posting a few examples, and a new documentation tutorial, in the coming days.