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/publ.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 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.

### Go to the Siren FTP Site

Created: 1997.11.08; LastEditDate: 2001.02.19