demos |
|
vancouver
trade & convention centre
|
tuesday 3:15-4:00 p.m.
|
4 |
The Siren Music/Sound Package for Squeak SmalltalkStephen Travis Pope, Center for Research in Electronic Art Technology, Dept. of Music, U.C. Santa Barbara |
The Siren system is a general-purpose music composition and production framework integrated with Squeak Smalltalk (Ingalls et al., 1997); it is a re-implementation of the Musical Object Development Environment (MODE), the software component of the "Interim DynaPiano" project. Siren is a Smalltalk class library (about 190 classes) for building musical applications; it runs on a variety of platforms with support for MIDI and audio I/O. Siren's source code is available for free, see the home page http://www.create.ucsb.edu/htmls/siren.html.
There are several elements to Siren:
The "kernel" of Siren is the set of classes for music magnitudes, functions and sounds, events, event lists and event structures known as the Smallmusic Object Kernel (Smoke) music representation. Smoke is described in terms of two related description languages (music input languages), a compact binary interchange format, and concrete data structures. The high-level packages of Siren--voices, sound/DSP, compositional structures, and the user interface framework--interoperate using Smoke event lists.
Real-time music I/O in Siren is managed by Squeak primitive interfaces to sound and MIDI OS-level drivers. The glue code for these primitives is written in Smalltalk and translated to C for linking with the Squeak virtual machine (itself written in Smalltalk and translated). Several sets of primitives exist for Squeak on various platforms, including support for sound synthesis, digital audio signal processing, MIDI event-oriented and continuous controller I/O, and VM-level scheduling.
The Smalltalk-80 Model-View-Controller (MVC) user interface paradigm (Krasner and Pope 1988), is well-known and widely imitated. The traditional three-part MVC architecture involves a model object representing the state and behavior of the domain model--in our case, this would be an event list or signal. The view object presents the state of the model on the display, and the controller object sends messages to the model and/or the view in response to user input. "Navigator MVC" (Pope, Harter, and Pier, 1989) is a factoring of the controller/editor and view for higher levels of reuse. The fundamental feature of this architecture is that all applications are built as display list editors (i.e., the generic tool is "smart MacDraw"), with special layout manager objects for translating the model structure into a graphical display list pre-presentation and for translating structure interaction into model manipulation. The Siren implementation of Navigator MVC is integrated with the Morphic (Maloney and Smith, 1995) graphics framework.
The demonstration will illustrate the Smoke language's design and implementation, present the compiler and user primitive technology of the real-time I/O system, and show Morphic-based GUI tools that use the Navigator MVC structure.
| Demos Schedule | Demos Descriptions (in entirety) |
Posters Overview | Posters Descriptions (in entirety) |