Skip to content
/ Siren9 Public

The Siren Music/Sound framework for Smalltalk

Notifications You must be signed in to change notification settings

stpope/Siren9

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is Siren?

The Siren system is a general-purpose software framework for music and sound composition, processing, performance, and analysis; it is a collection of about 350 classes written in Smalltalk-80 (40 kLOC or so). This version of Siren (9.0) works on VisualWorks Smalltalk (available for free for non-commercial use) 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://FASTLabInc.com/Siren. Note that you need a Smalltalk virtual machine and run-time to use Siren; you can down-load the free (non-commercial) system from Cincom at http://www.cincom.com/smalltalk or http://smalltalk.cincom.com/downloads/index.ssp

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.

Siren utility

For the impatient, watch the videos

Siren demo (2007) (55 minutes): https://vimeo.com/120751122

NEW DEMO (May, 2020) CSL + Siren Integrated (32 min): https://vimeo.com/421319630

Or read these conference papers and book chapter

A Smalltalk-80-based Music Toolkit (1987): http://heaveneverywhere.com/stp/PostScript/HSTK_ICMC_1987_Paper.pdf

Modeling Musical Structures as EventGenerators (1989): http://heaveneverywhere.com/stp/PostScript/icmc.89.egens.pdf

The Musical Object Development Environment (MODE)--Ten Years of Music Software in Smalltalk (1994): http://heaveneverywhere.com/stp/PostScript/icmc.94.mode.pdf

Music and Sound Processing in Squeak Using Siren (2002): http://heaveneverywhere.com/stp/PostScript/SirenBookChapter.pdf

Recent Developments in Siren: Modeling, Control, and Interaction for Large-scale Distributed Music Software (2004): http://heaveneverywhere.com/stp/PostScript/Siren_ICMC_2004_Paper.pdf

The Siren 7.5 Package for Music and Sound in Smalltalk (2004): http://heaveneverywhere.com/stp/PostScript/Siren7.5.pdf

Siren event list editor

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 file, OSC, and MIDI I/O);

  • user interface components for musical applications (UI framework, tools, and widgets);

  • several built-in applications (editors and browsers for Smoke objects); and

  • external library interfaces for streaming I/O and DSP math (sound/MIDI I/O, fast FFT, CSL & Loris sound analysis/resynthesis packages )

Siren components

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?

Siren and its predecessors and components (ARA, DoubleTalk, HyperScore ToolKit, and MODE) are documented in several extended book chapters and articles (see the basic list of references above):

  • "Squeak: Open Personal Computing and Multimedia" (Mark Guzdial and Kim Rose, eds, Prentice-Hall, 2002);

  • "Musical Signal Processing" (C. Roads, S. T. Pope, G. DePoli, and A. Piccialli, eds. Swets & Zeitlinger, 1997);

  • "The Interim DynaPiano" in "Computer Music Journal" 16:3, Fall, 1992 (also on the CMJ Web site);

  • "The Well-Tempered Object: Musical Applications of Object-Oriented Software Technology" (S. T. Pope, ed. MIT Press, 1991);

  • Proceedings of the 1986, 1987, 1989, 1991, 1992, 1994, 1996, 1997, 2003 International Computer Music Conferences (ICMCs);

  • The MODE- and Smoke-related documents (including the above references) in the directory ftp://FASTLabInc.com/Siren/Doc or as PDF files on the page http://HeavenEverywhere.com/stp/publs.html.

The official Siren home page is http://FASTLabInc.com/Siren.

Here are the on-line Docs: The best in-depth doc (book chapter) is in,

http://FASTLabInc.com/Siren/Doc/SirenBookChapter.pdf

The read the demo code workbook (this text), go to,

http://FASTLabInc.com/Siren/Siren7.5.Workbook.html

http://FASTLabInc.com/Siren/Siren7.5.Workbook.pdf

If you like to read manuals, take a look at,

http://FASTLabInc.com/Siren/Manual

Watch the detailed Siren demo at,

https://vimeo.com/120751122

Siren transport

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). Siren 7.4 added tools from the realizations of "Eternal Dream" (2002) and "Leur Songe de la Paix" (2003). The newest release incorporates new code from "Jerusalem's Secrets" and "Ora penso invece che il mondo..." (2005-6). In each of these cases, some amount of effort was spent--after the completion of the composition--to make the tools more general-purpose.

Siren utility

Portability

The Smalltalk portion of Siren is 100% cross-platform, and the DLLCC external interfaces to sound file, MIDI, and sound streaming I/O use cross-platform libraries. There are a few places (Sound play command and aubio interfaces) that assume UNIX shell commands can be run from within Smalltalk; I'm not certain how these port to Windows.

The core of Siren is not dependent on the dialect of Smalltalk, and in fact, runs well in Squeak. The bulk of the interactive tools and GUIs are based on my own display list graphics framework, and are thus also portable. The actual integrated applications and GUIs in Siren 7.5 use VisualWorks-specific application model classes, though.

History

1992 screen shot, CMJ 16(3) cover showing MODE (predecessor of Siren) running on a Sun workstation using the prototype Navigator GUI.

Siren 1992


About

The Siren Music/Sound framework for Smalltalk

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published