Siren: Software for Music Composition and Performance in Squeak
Stephen Travis Pope
Center forResearch in Electronic Art Technology (CREATE)
MusicBuildng, University of California, Santa Babara, California, 93106 USA
stp@aeateucsb.ech http /www.create ucsb. edu/-stp/
Abstract
Squeak is a new implementation of the Smalltalk programming enviionment. It was dveloped at Apple Labs, and has
been ported to a variety of omputers. Compared to other Smalltalk systems, Squeak has four important featues: (1)
portability (to the Macintosh, Windows PCs, and many flavos of UNIX), (2) speed (it uses native C for computeintensive cod), (3) price(fiee, indudng all source cod!); and(4) sophistication (full Smalltalk-80 language, libraies, and
tools, with many useful extensions).
The Siren system is a new object-oriented(OO) software tool kit for music applications. Siien's d&sign was drived from
the authers 14-years of experience buildng Smalltalk-basedmusic tools. The intention is to support music composition, dgital soundsynthesis andprocessing, and live pefomanacs within a free, portable, high-level software tool kit.
This paperwill briefly introdcae the Squeak system, and then dscuss the d&sign of Siren. An on-line d&monstration of
Siteniunning on a lap-top computer is planned for the presentation at ICMC. Both Squeak and Siren are available in
source codw free via Internet ftp from the site ftp://ftp.createucsb.edu/pub/Smalltalk/Squeak/.
1 Introduction
The Squeak implementation of Smalltalk was dbveloped at Apple
Labortories by a group that consisted of several of the original
&dsigners of the Smalltalk system (Alan Kay, Dan Ingalls, Ted
Kaehler, et al.). Squeak is a "full-scale" Smalltalk implementation,
and inducds all of the stancdrd dass libraies and dvelopment
tools.
The Silen package in Squeak is a member of the DoubleTalk/HypeiScoreMODE family of systems dbveloped by the
author since 1983. (The name Silen was suggested by Curtis
Roads; it is not an acronym.) Siteninducbs the following components:
* the Smokemusiciepresentation language;
musicmagnitucd modils (time, pitch, loudness, etc)
events and event lists,
event genertIors (pitoodural or stochastic stieam-like
composite events),
event modfieis (functions that can be applied to event lists)
and
software to iead/write Smoke from/to many othermusic
formats,
* dasses for ieal-time soundsynthesis;
00 modls for synthesis andprocessing,
* soundandMIDI /FO support;
ieal-time /FO voices for many interchange formats,
* note list I/O for non-teal-time synthesis packages;
lead/writecmusic, cmix, or csound scores,
* GUI-basedtools for score/soundmanipulation
pitchtimedagrams, hierarchies,DSP, etc
Compatedto eadier Smalltalk music kits, Siten has moie sophisticated modls of the basicmusic magnituwbs, flexible eager or lazy
function application, a new user interface paradgm, and a complete
mocdl of objects for mochlar soundsynthesis a la Music V.
2 The MODE History
The Musical Object Development Enviionment (MODE) was
written cdling the authors sojourn at the STEIM Institute in Amsterthn in 1990; it was &dived from the eardier HypeiScore
ToolKit (see ICMC 1987) The intention was to provicb a portable
system that couldperform leal-time MIDI and sampled soundFO
on a number of platforms (Macintosh, Sun, andPC). The MODE
inducbd a simple object-oriented music representation language,
dives for MIDI and sound/O, and a collection of graphical user
interfaces for various musical applications.
Throughout its life, the MODE was plagued by dfficulties supporting the I/O dives on moie than one platform The Macintosh
MIDI dives weie only partially functional, and Sun failed to support MIDI at all on its new Solaris operating system. The complexity of buildng interfaces to C codc in the PatcPlace Systems,
Inc VisualWorks Smalltalk implementation madc it even haider to
perfoim dgital sound synthesis or processing from within the
MODE.
During 1991 and 1992, a group of language dsigners met at the
CCRMA Center at Stanford University and the CNMAT Center
at U. C., Beikdeey to formalize and extendthe MODE's representation language This project ledto the Smoke language, which was
dbscribedin a paperby the author in the 1992 ICMC Proceedings.
3 Siren Extensions to the MODE
Over the past five years, a number of weaknesses in the Smoke
language and the MODE's implementation of it have become
appaient Otherproblems surfaedin the MODE's built-in applications andinterfaces. Thesewill each be introdicedbelow.
0