IRCAM - Centre PompidouServeur © IRCAM - CENTRE POMPIDOU 1996-2005.
Tous droits réservés pour tous pays. All rights reserved.

EXPLODE: A User Interface for Sequencing and Score Following

Miller Puckette

ICMC, Glasgow (Ecosse), 1990
Copyright © Ircam - Centre Georges-Pompidou 1990

A graphical sequence editor. EXPLODE, is described, aimed at editing lists of objects with uniform data structure with several numeric parameters. EXPLODE offers some control over which parameters are to be viewed, and how they affect the apperance of an event on the screen. Applications to score following are described, which were cumbersome to set up before EXPLODE was written, and which take effective advantage of EXPLODE's viewing flexibility.

Why would anyone want to write another graphical sequence editor? The research literature is full of them (the ideas represented in the SCRIVA editor [1] come closest to what is described here) and software companies are competing to develop the ultimate commercial model. But the following issues, which have come up constantly in IRCAM's music production environment, have not been solved:

The EXPLODE sequence editor attempts to fill these needs. EXPLODE is implemented as a MAX "external object"; i.e. it is not part of the MAX program itself but is loaded dynamically by MAX when invoked. EXPLODE is still a prototpe, but has already been used once in concert, in a fifty-minute piece for orchestra and live electronics.

The Editor

An EXPLODE window appears in Figure 1: a control panel and a collection of events. The controls are, from left to right, the drawing mode, the play/record/follow indicators, three switches. and the "parameter box". The parameter box contains cells for showing/editing the parameters' numerical values, and switches for choosing which parameter to show s "y" (the vertical location of the event), "w" (the horizontal width) and "#" (a number printed above the event.) In Figure 1 these are the defaults: pitch, duration, and nothing, respectively; other possibilities arise below.

The three modes allow you to move events (changing either their start times or their pitches), to stretch them (dragging horizontally or vertically changes the "w" and "#" value, respectively) and to make new events by clicking and stretching. The indicators blacken when the sequence is being used through its MAX interface (see below). Of the three switches, the most interesting one is "show ranges" this toggles the parameter box into showing the scales of the parameters. The pitch, for example, will be accurate to a cent if its scale is reduced by 100. The "60" in the left

margin indicates that middle C is currently, the (MIDI standard) 60 after reducing by 100 hits would be 6000.The "y"parameter also gets a choice of grid type; it can be the staves shown here, or a numerical grid (more appropriate if "y" is showing a non-pitch value.) When a selection is made the parameter box prints the common parameters if the selected events or " if they differ among the selection Typing into the parmeter box jets the corresponding parameter for all selected events. For instance to chnge an arpeggio into a chord, select all its events and type a number into the "time" box.

The MAX Interface

EXPLODE appears as a box in MAX as shown in Figure 2. (It is invoked here as "exp2". a test version ) The five inlets and outlets correspond to the five prameter fields: time, pitch, velocity, duration and channel. For recording, EXPLODE takes sets of five parameters and inserts them as events; the events can-be generated in any way that can be programmed in MAX For playing, the "next" method causes the next event to be output; it is up to the surrounding pitch to decide when to send "next" messages and what to do with the outputs.

For score following, incoming events are sent to EXPLODE aS in recording, and conditionally, generate events on the output. EXPLODE regards channel 1 as the set of events to follow, and all other channels as an accompaniment. Incoming events which match an event on channel 1 cause the matched event to be output. The matched events need not come out in exactly the same order as they occur in the sequence; moreover. if an event is skipped in the input it never appears on the output. Events whose channels are not 1 are output as soon as they are passed; i e. as soon as later event from channel 1 is matched.

Using the matched notes of channel 1 in this way, a live score can be "embellished" with hidden parameters. Figure 3 shows a simple examples in which the notes of an A major scale are to be mapped onto different MIDI channels. The channels (encoded as velocities in EXPLODE are printed above the notes (the (vel,#) square is dark in the parameter box). MAX can use the performed velocities and durations, so these fields can be used arbitraly by EXPLODE in this context.

Figure 4 shows the use of channel 2 to provide an accompaniment to a simple melody Channel is being shown as the width of the notes; the scale is channel 1 and the "accompaniment" is channel 2. rhe velocities of the accompaniment are almost always used as cues; here cue number 1 happens on A, 2 on E, and 3 on the second A For legibility (and to show off another feature) the staves have been suppressed.

What Now?

The reader will note that the parameter names (time, pitch, velocity, duration. channel) smack of MIDI. Work is currently under way to make this list extensible, this is added justificauon for the parameter box which will become indispensable as the number of parameters rises.


[1] Buxton, Williams et al, "The evolution of the SSSP score-editing tools." Foundations of Computer Music, (Roades and Strawn, editors), MIT presss, 1985,

[2] Miller Puckette, "The Patcher", Proceedings, ICMC 1988 (Cologne).

Server © IRCAM-CGP, 1996-2008 - file updated on .

Serveur © IRCAM-CGP, 1996-2008 - document mis à jour le .