Page  383 ï~~ENSEMBLE: An Object Performance CCRMA Stanford University Stanford, CA 94305 Ioon@ccrma.stanford.edu Lounette M. ABSTRACT: The availability of inexpen, erful, inexpensive personal workstation terns to rapidly evolve into realtime perfc ogenous synthesis hardware and a varie semble is an object-oriented software environment of live orchestral perform nates and controls the performance of mu ble is both an end user application and a L1...YLA.1_ -.... M....Y......... 1 -2L _.. 1

Page  384 ï~~inputs that are specific to their instrument. The interpretation information, such as variations in Figure 2. In modeling orchestral performance with a cor paper are replaced with ASCII files stored on ma generate acoustic signals are replaced by digital als. The baton can also replaced with an c modeled by computer software on a personal w read a an ASCII file containing the part and,dui their specific synthesis instrument. Just as hun their instrument, the performer software model The conductor the end user who provides models running on the workstation via a softwa: Object-Oriented Design Methodology Object-oriented programming languages such I C[Cox86] powerful are well-suited for simulating data modeling musi capa abstraction and message passing paradigm. Inheritance is als i o A - - S - - a - - - - - - _ - - -

Page  385 ï~~Scores Ensemble built around core digital music maximize the realtime control capabilities in the such as MIDI files can be used as well.) The I manipulating music symbols such as events (nc and parts, as well as sequences), note interpret; global interpretation symbols (such as tempo < but not limited to transposition, inversion, etc.) Each event has a duration and an implicit start t is also possible to specify message sends in the accent, the symbol accent in the score instructs t performer for the given note. Each performer c is required to render an accent on their instrumc Conductor A conductor object is used to provide an interfa to the software performer models. The conduct conductor is responsible for maintaining a qt assicrnin nhvsical start times to each of the nerf

Page  386 ï~~Performers AbstractPerformer is class that defines the subclasses define specific performer es. Thee for each synthesis device (MlDIPerformer, DSP the control capabilities of a given type of synthe: implemented on the device Initially the perfo evolve over time to control increasingly sophisti At the time the score is read from disk, the perfor conductor, and may also precompute or cache v the conductor sends each performer the message played. For each performer class, the method coi based on the current realtime inputs and other message playPacket: to the respective instrumer vary between instruments, as needed by the ur runtime responsiveness. Instruments The class AbstractInstrument provides the abst