Maxscore: Music Notation in Max/MSP

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 comfortable to specify compositional behavior in traditional notation. The availability of music notation significantly augments the range of works possible with Max.