The
Siren Music and Sound Package for Squeak Smalltalk
What is Siren?
The Siren system is a general-purpose software
framework for sound and music composition and production; it is a re-implementation
of the Musical Object Development Environment (MODE), the software
component of the Interim DynaPiano project. Siren is a collection
of about 350 Smalltalk class libraries for building sound/music applications;
it is known to work on Squeak running on Macintosh, Windows, and UNIX-based
computers with support for MIDI and audio I/O.
These files constitute the full Siren release (with a pre-compiled Smalltalk
virtual image). The full source code of the current version is available
on this CD, and updates can be retrieved via anonymous Internet ftp file
transfer from the directory pub/Siren on the server ftp.create.ucsb.edu
(i.e., the URL of the directory is ftp://ftp.create.ucsb.edu/pub/Siren).
There are several elements to Siren:
-
the Smoke music representation language (music magnitudes, events, generators,
functions, and sounds);
-
voices, schedulers and I/O drivers (real-time and file-based voices, sound
and MIDI I/O);
-
user interface components for musical applications (UI tools and widgets);
and
-
several built-in applications (editors and browsers for Siren objects).
OK, but what does it sound like?
Take a look (and listen) here for a sampler
of music I've made with Smalltalk-based tools. There are more excerpts
on the web (also in MP3 and WAV format) here.
What files are there?
This release consists of a complete pre-built Siren virtual image, and
virtual machines for the Macintosh, Windows, and Sun computers. Virtual
machines for other platforms are available from the Squeak FTP sites on
the Internet (see below). The directory contents are:
Siren.GUI.Tour.html -- A web-based
tour of the Siren user interface tools.
Siren.OOPSLA98.paper.pdf --
A short paper describing Siren from the 1998 ACM OOPSLA conference.
Siren.OOPSLA98.slides.pdf --
Presentation slides from the Siren talk at the 1998 OOPSLA conference.
Siren.Outline.html -- The on-line
doc and self-guided demo outline contents; this is a dump of the contents
of the on-screen Siren help file in the virtual image.
Squeak.Outline.html
-- The Squeak intro outline contents; this is a dump of the contents of
the on-screen Squeak help file in the virtual image.
Siren.3.0.image -- The compiled Smalltalk virtual image; to execute this,
start the virtual machine for your platform with this file as an argument.
Siren.3.0.changes -- The Siren-specific Smalltalk changes file, used by
the virtual image
SqueakV3.sources -- The generic Squeak version 3 sources file, used by
the virtual image.
What Other Documentation is there?
The SqueakAudio mailing list is here.
The Squeak mailing list archives are here.
The main Squeak pages can be found at www.squeak.org
or at uiuc.edu.
The Siren home page is at CREATE
at UCSB.
There are several on-line Smalltalk and Squeak tutorials, including
here,
here,
and here.
Other references to related software can be found in Stephen Pope's
publication
list.
What is the Difference between the MODE and Siren?
I tend to re-implement my tools every 5 years or so, and to rename them
at that time. Since I started using Smalltalk in 1983 (or maybe it was
1984, I can't remember), I've called the tools DoubleTalk, HyperScore
ToolKit, MODE, and, now, Siren.
Each of these generations reflected my interest at the time, so DoubleTalk
included facilities for algorithmic composition using Petri Nets and wrote
score files for compilation with cmusic, while the HyperScore ToolKit supported
MIDI and focused on real-time interactive composition.
The MODE is written for ParcPlace/ObjectShare's VisualWorks/Smalltalk
system, and is best suited for algorithmic composition and digital sound
file mixing and processing. It was completed in 1992, and has been extended
very little since then. It is still available from the CREATE FTP site
and works with current VisualWorks systems.
Siren (the name is not an acronym) is written for the Squeak
Smalltalk system, a free, portable, fast Smalltalk with Smalltalk-to-C
translation for DSP loops and synthesis methods. Siren is still in-progress,
but already supports MIDI I/O as well as sound synthesis and sound file
processing.
Where's More Documentation?
(See the On-line Siren
Outline mentioned above for the first step.) Various versions and components
of Siren's predecessors (The HyperScore ToolKit and the MODE) are documented
in the book "The Well-Tempered Object: Musical Applications of Object-Oriented
Software Technology" (S. T. Pope, ed. MIT Press, 1991), in papers in the
Proceedings of the 1986, 1987, 1989, 1991, 1992, 1994, 1996, and 1997 International
Computer Music Conferences (ICMCs), in an article on the "Interim DynaPiano"
in Computer Music Journal 16:3, Fall, 1992 (heartily recommended--it's
also on the web), in the book Musical Signal Processing (C. Roads,
S. T. Pope, G. DePoli, and A. Piccialli, eds. Swets & Zeitlinger, 1997),
and in several documents on the Web page http://www.create.ucsb.edu/~stp/publs.html#MODE.
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 Siren virtual image also includes an "outline" text for a brief
introduction to, and self-paced demo of, the system. New users are encouraged
to read and experiment with the Siren outline (the text contents of which
are also included on the FTP site).
History
Siren and its direct predecessors stem from music systems that developed
in the process of my composition. Of the early ancestors, ARA was an outgrowth
of the Lisp system used for Bat out of Hell (1983); DoubleTalk was
based on the Smalltalk-80-based Petri net editing system used for Requiem
Aeternam dona Eis (1986); the HyperScore ToolKit's various versions
were used (among others) for Day (1988), and the MODE was developed
to realize Kombination XI (1990) and Paragraph 36: All Gates
are Open (1993). In each of these cases, some amount of effort was
spent-after the completion of the composition-to make the tools more general-purpose,
often making them less useful for any particular task. Siren--a re-implementation
of the MODE undertaken in 1997-8--is based on the representations and tools
I'm using in the realization of Ywe Ye, Yi Jr Di (in progress).
If Siren works well for other composers, it is because of its idiosyncratic
approach, rather than its attempted generality.
Current Status
Siren on Squeak is available as source code or as a compiled Smalltalk-80
virtual image. The MIDI primitives are supported by Squeak on several platforms.
Siren has been developed on Apple Macintosh computers and tested on M$-Windows,
and Linux/Intel platforms.
The status of the various packages is as follows.
Smoke: The Smoke representation is complete, so that the event
list and event generator examples run well.
Voices and Schedulers: The MIDI voices are designed to work with
Opcode's OMS version 2.3.8 driver, which is available from www.opcode.com,
or with the Windows MIDI driver. The scheduler has been tested and delivers
acceptable real-time performance on a high-end Macintosh system (i.e.,
a G3 PowerBook). For slower systems, we may have to investigate adding
a level of queing in the output driver.
Sound I/O: Siren voices have been made to interface with John
Maloney's sound synthesis classes.
Graphics and GUI: The old-fashioned (i.e., MVC-based) GUI tools
work for the most part (see the GUI tour referred to above).
Note: I have mainly worked on the VisualWorks version of Siren for the
last year or so, so most interesting new features are to be found there.
The Squeak version is ported to new versions of Squeak, but is rarely upgraded.
[Stephen Travis Pope, stp@create.ucsb.edu]
Created: 1997.11.08; LastEditDate: 2001.02.19