DESIGNING AN AUDIO INTERACTION MODELING LANGUAGE: SOME BASIC CONCEPTS AND TECHNIQUES loannis Zannos Staatliches Institut fur Musikforschung Tiergartenstr. 1, D-10785 Berlin, Germany. email: iani@ sim.spk-berlin.de Abstract This paper discusses issues in the design of scripting languages for interactive audio-visual applications. Starting with the concept of event, it extends its property of "onset time" through the feature of trigger condition, to allow embedding of interactive elements in partially fixed temporal structures. An objectoriented implementation gives rise to a versatile class which can serve as basis for interactive scripting tools. Furthermore the feature of dynamic connections between event-process instances is introduced, thereby allowing communication in a dataflow manner as encountered in "MAX", but with all the advantages of a full programing language. 1 Events and Sound Objects The concept of "event" is fundamental for computer based real-time systems, since it deals with the basic features that are necessary for performing timed actions in such systems. It has been discussed in relevant literature, notably by Pope (1997: 331f). Roads (1996:695) regards duration as a fundamental component of event1; but MIDI-events have no duration and so have many other objects in other systems. Some other terms used with almost identical but not clearly delineated meanings in the literature are sound object(Pope 1997, Dannenberg, Desain and Honing 1997:309f), sound event and musical object, furthermore sound instance (Dannenberg, Desain and Honing 1997:277). Related to these is a similar group of concepts dealing with groups of events as for example: event set (Dannenberg, Desain and Honing 1997:277), event list, timed event list, event stream (Dannenberg, Desain and Honing 1997:310). Here we take a closer look at the content, duration and timing aspects of events, in order to clarify the semantic field of this term in a way that is both compatible with common usage in systems like MODE, GTF, Nyquist, described in the literature cited above and that can serve as basis for definition and implementation of more complex objects involving interaction. We start with a simple definition of event: An event is something that happens during a performance. For example: * A single sound * A change in a setting, that changes the audible qualities of subsequent sounds (change in loudness, timbre, etc.). * A gesture that causes a group of sounds or other events to start or to stop playing. In computer music systems events can be: * MIDI-Messages * Function calls or evaluations of function closures (for example: foo.value(x, y, z); * Evaluation of a messages sent to an object (a class instance) Events may or may not have a duration. Events that have a duration are usually audible tones, pauses, groups of tones, or otherwise sections (parts) of the performance. Events without duration are often "triggers", that is signals indicating that something (an event, a group of events) should happen, like for example the beginning or end of (groups of) other events, or other changes in the flow of a performance. It is proposed here to use the term "sound object" to distinguish objects which have duration from events without duration. 1. A sound event is "an object that has a duration and other properties". (Roads, 1996:695) 0
Top of page Top of page