ï~~MAXSCORE: MUSIC NOTATION IN MAX/MSP
Nick Didkovsky
Rockefeller University, New York
www.algomusic.com
[email protected]
ABSTRACT
This paper presents MaxScore, a Max object that
provides standard western music notation in Max/MSP
(Puckette, Zicarelli). MaxScore supports a rich set of
Max messages that allows the user to populate a score
with notes, query note properties, transform notes, play a
score through Max/MSP via a well-defined instrument
interface, and export a score in a variety of popular
notation formats including MusicXML and LilyPond
(Nienhuys). Transcription of Max-generated music is
provided as well as note entry and editing by mouse or
under program control. MaxScore supports user-defined
plug-ins written in Java. We also present two
applications, which utilize MaxScore: one that generates
compositions in real-time, and another, which performs
spectral transcription. MaxScore is written in Java
Music Specification Language (Didkovsky, Burk) but
requires no Java programming to use.
1. INTRODUCTION
Max/MSP is a widely used graphical environment for
creating computer music and multimedia works using a
paradigm of graphical modules and connections.
Missing from Max is the capability to utilize standard
western music notation directly within the Max
environment. Java Music Specification Language is a
Java API for music composition and interactive
performance, and includes a notation package. While
Max's Java API can be used to open JMSL's
"ScoreFrame" notation editor (Didkovsky, Crawford),
JMSL is not designed to receive Max messages or be
further controlled by Max.
MaxScore is a Max object written in JMSL, which
provides music notation directly within the Max
environment. It supports a rich set of Max messages to
create a score, populate it with notes in a variety of ways
including: a) mouse entry, b) programmatically using its
"addnote" message, and c) by using its transcriber.
MaxScore also provides messages to transform existing
musical material and to play back through Max so the
score can control MSP patches. The MaxScore is
rendered in its own Max LCD window (canvas), or can
be embedded directly into the Max patcher (bcanvas).
LCD was chosen in part because its set of drawing
messages and event handling mapped efficiently from
the commands used by JMSL's score canvas.
Traditional music notation provides the Max composer
with a rich set of possibilities for creating new work. It
provides a bridge to a legacy of traditional musical
practice and as such can provide performance materials
in a format that is immediately understood by an
enormous population of musicians playing traditional
instruments. We also believe that there are times when
the composer may find it more appropriate or more
Georg Hajdu
Hochschule ftir Musik und Theater Hamburg
www.georghajdu.de
[email protected]
comfortable to specify compositional behavior in
traditional notation. The availability of music notation
significantly augments the range of works possible with
Max.
2. MAXSCORE FEATURES
Notes can be added to a MaxScore with the addNote
message, which takes as arguments the duration, pitch,
amplitude, and hold time of a note (where duration of 1
is a quarter note, 0.5 is an eighth note, 0.3333 is an 8th
triplet, etc). Of course the user could alternatively
represent durations as whole number ratios by
performing the division at the Max level and sending the
floating-point quotient to addNote's duration parameter.
JMSL's new auto-beaming feature beams notes to the
beat of the current time signature as they are entered.
Figure 1. MaxScore's addNote message populates the score
under program control.
Mouse entry of notes is also possible. By right/ctrlclicking on a staff a note is entered. The user can select
notes for copying, deletion, or alteration by dragging the
mouse. Selection can also be done programmatically
using the selectNote message which takes as arguments
the measure number, staff number, track number, and
note number of the note to be selected.
JMSL's transcriber (Didkovsky 2004) is also available
to MaxScore, and can transcribe arbitrarily generated
musical events. New to JMSL is a LilyPond exporter,
which allows users to have their scores typeset by
LilyPond music engraving software.: 3:....
* *
-_.:_:l_..................
Figure 2. Two measures of Max-generated music transcribed
by MaxScore are shown at the top half of the figure. In the
bottom half of the figure the same two measures are shown,
typeset by LilyPond after being exported by MaxScore.