The Siren system is a general-purpose software framework for music and sound composition, processing, performance, and analysis; it is a collection of about 250 Smalltalk classes for building musical applications. The current version of Siren (7.2) works on VisualWorks Smalltalk (available for free for non-commercial use, see http://www.cincom.com/smalltalk) and supports streaming I/O via OpenSoundControl (OSC), MIDI, and multi-channel audio ports. The Siren release is available via the web from the URL http://create.ucsb.edu/Siren.
Siren is a programming framework and tool kit; the intended audience is Smalltalk developers -- or users willing to learn Smalltalk in order to write their own applications. The built-in applications are meant as demonstrations of the use of the libraries, rather than as end-user applications. Siren is not a MIDI sequencer, nor a score notation editor, through both of these applications would be easy to implement with the Siren framework.
There are several elements to Siren:
the Smoke music representation language
(music magnitudes, events, event lists, generators, functions, and sounds);
voices, schedulers and I/O drivers
(real-time and file-based voices, sound, score, and MIDI I/O);
user interface components for musical applications
(UI framework, tools, and widgets); and
several built-in applications
(editors and browsers for Smoke objects).
Each of these components is described below in its own section of this document.
If you can read a bit of Smalltalk and want a quick tour before proceeding, read the condensed "Standard Siren Demo" that's at the end of this outline.
Where's More Documentation?
Various versions and components of Siren''s predecessors (DoubleTalk, The HyperScore ToolKit, and the MODE) are documented in several places:
-- "The Well-Tempered Object: Musical Applications of Object-Oriented Software
Technology" (S. T. Pope, ed. MIT Press, 1991);
-- "The Interim DynaPiano" in "Computer Music Journal" 16:3, Fall, 1992
(also on the CMJ Web site);
-- "Musical Signal Processing" (C. Roads, S. T. Pope, G. DePoli, and A. Piccialli,
eds. Swets & Zeitlinger, 1997);
-- "Squeak: Open Personal Computing and Multimedia" (Mark Guzdial and Kim
Rose, eds, Prentice-Hall, 2002);
-- Proceedings of the 1986, 1987, 1989, 1991, 1992, 1994, 1996, 1997, 2003
International Computer Music Conferences (ICMCs); and
-- in several documents accessible via the Web page http://create.ucsb.edu/~stp/publs.html.
There are more MODE- and Smoke-related documents (including several of the above references) in the directory ftp://ftp.create.ucsb.edu/pub/Smalltalk/Music/Doc.
The official Siren home page is http://create.ucsb.edu/Siren.
An email discussion list called Siren is available; see the web page http://www.create.ucsb.edu/mailman/listinfo/Siren to sign up or to read the archives.
History
Siren and its predecessors stem from music systems that I've developed in the process of composing and realizing my music. Of the early ancestors, the MShell (1980-83) was the score processing shell used for "4" (1980-82); ARA (1982-4) was an outgrowth of the Lisp system used for "Bat out of Hell" (1983); the DoubleTalk system (1984-7) was based on the Smalltalk-80-based Petri net editing system used for "Requiem Aeternam dona Eis" (1986); the HyperScore ToolKit's various versions (1986-90) were used (among others) for "Day" (1988), and the MODE (1990-96) was developed to realize "Kombination XI" (1990) and "Paragraph 31: All Gates are Open" (1993).
Siren-on-Squeak (1996-2002) was a simple re-implementation of the MODE in the Squeak version of Smalltalk; it added the representations and tools I needed for "Four Magic Sentences (1998-2000). The most recent advances incorporated in Siren 7.2 stem from from the realizations of "Eternal Dream" (2002) and "Leur Songe de la Paix" (2003). In each of these cases, some amount of effort was spent--after the completion of the composition--to make the tools more general-purpose.
A Note on Support
Siren is not supported, and most new features and extensions are to be found in the VisualWorks version of Siren.