ï~~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.
Top of page Top of page