-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.html
executable file
·325 lines (325 loc) · 19.1 KB
/
main.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"><html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <meta name="GENERATOR" content="Mozilla/4.7C-CCK-MCD {C-UDP; EBM-APPLE} (Macintosh; I; PPC) [Netscape]"> <title>The Siren Home Page</title> </head> <body style=" color: rgb(0, 0, 0); background-color: rgb(255, 255, 204);" vlink="#990099" alink="#000099" link="#000099"> <font style="font-weight: bold;" face="Ariel, Helvetica"><font color="#000f88"><font size="+2">The
Siren
Music and Sound Package in Smalltalk</font></font></font> <h3><a name="introduction"></a>What is Siren?</h3> The <u>Siren</u> system is an open-source general-purpose software framework for sound and music composition and production; it is a collection of about 375 classes written in the Smalltalk programming language and intended for use with for the <a href="http://www.cincomsmalltalk.com">VisualWorks
Smalltalk</a> system. Siren includes cross-platform support for MIDI and audio I/O; the source code and documentation files are all available via the down-load links below. <p>There are several elements to Siren: </p> <ul> <li>the Smoke music representation language (music magnitudes, events, generators, functions, and sounds);</li> <li>voices, schedulers and I/O drivers (real-time and file-based voices, sound and MIDI I/O);</li> <li>user interface components for musical applications (UI tools and widgets); <br> </li> <li>several built-in applications (editors and browsers for Siren objects); </li> <li>interfaces to external C or C++ code for audio/MIDI streaming I/O, and analysis/synthesis packages such as CSL and Loris</li> </ul> The relationships between the Smoke language kernel and the various higher-level musical objects, drivers, and GUI tools, is shown below.<br> <br> <div style="text-align: center;"><img alt="siren" src="http://fastlabinc.com/Siren/gifs-new/SirenOverview1Page-small.gif" style="width: 496px; height: 332px;"><br> </div> <h3><a name="pix"></a>What do the Siren GUI applications look like?</h3> <div style="margin-left: 40px;">There are <a style="font-weight: bold;" href="./Doc/Siren.GUI_2007.html">screen
shots of the Siren GUIs here</a>, and an <a href="./Doc/Siren.GUI_1998.html">older
(1998) version here</a>. </div> <h3><a name="sounds"></a>OK, but what does it sound like?</h3> <div style="margin-left: 40px;">There are <a style="font-weight: bold;" href="http://heaveneverywhere.com/stp/music/">excerpts
of my pieces on the web (also in MP3 format) here</a> and <a target="_blank" href="http://heaveneverywhere.com">here
at HeavenEverywhere</a>. <br> <br> You might also want to watch the <a style="font-weight: bold;" target="_blank" href="http://heaveneverywhere.com/RitualAndMemory/Tour">15-minute
audio/visual
sampler</a> movie.<br> </div> <h3><a name="new"></a>What's New?</h3> <div style="margin-left: 40px;">Siren 9.0 is available on the VisualWorks parcel manager or here (see below) or on github.</div> <div style="margin-left: 40px;">Many parts of Siren were upgraded, enhanced, or rewritten for the 7.5 release. All of the <span style="font-weight: bold;">external
interfaces</span> (e.g., for sound I/O, MIDI, FFTW, and other external libraries) have been rewritten to be more portable and robust. The entire <span style="font-weight: bold;">EventScheduler</span> has been updated, and there are several new packages, such as the <span style="font-weight: bold;">CSL</span> and <span style="font-weight: bold;">Loris</span> application packages. <br> In addition to this, Francois Pachet's <span style="font-weight: bold;">pitch
class
framework</span> was ported from his MusEs system. The support for <span style="font-weight: bold;">OpenSoundControl</span> has been updated and improved, so that Siren can serve as an OSC-generating client for servers written in several languages, such as CSL and SuperCollider. <br> Two new tools - the <span style="font-weight: bold;">SirenUtility</span> and the <span style="font-weight: bold;">SirenTransport</span> - have been added to assist users with general environment maintenance and with session state, and data persistency has been incorporated into the <span style="font-weight: bold;">SirenSession</span> class.<br> Lastly, the <span style="font-weight: bold;">documentation</span>, including the web pages, the on-line Siren workbook, and the complete reference manual, have been greatly enhanced in Siren 7.5.<br> </div> <h3><a name="downloads"></a> What files are there to down-load?</h3> <blockquote>If you're using VisualWorks Smalltalk, connect to the Cincom public repository table <span style="font-style: italic;">store.cincomsmalltalk.com:5432_store_public</span> and load the newest blessed "Siren" package. The post-build actions will try to down-load and file-in a couple of files off this site. The full release archive files below include the Smalltalk source parcels, doc files, demo workspace contents, sound/score test data, DLLCC external interface C files and makefiles (e.g., PortAudio, Loris), this web site, etc.<br> <br> <li><a style="font-weight: bold;" href="Siren7.5.zip">Siren_9.0.zip</a>
The
Siren 9.0 release: ST source parcels, virtual image, docs, demo data, external interfaces (May, 2020)</li> <br> <li><a style="font-weight: bold;" href="Siren7.5.zip">Siren7.5.zip</a>
The
Siren 7.5 release: ST source parcels, virtual image, docs, demo data, external interfaces (May, 2007)</li> <br> <li><a style="font-weight: bold;" href="http://fastlabinc.com/CSL/CSL_Libs.tgz">Support
Library Sources</a> LibSndFile, PortAudio, PortMIDI, FFTW, etc. with compiled binaries for several platforms</li> <br> <li><a style="font-weight: bold;" href="http://www.cincom.com/smalltalk">Go
to Cincom</a> to get the free non-commercial-use version of the VisualWorks release for all platforms</li> <br> <span style="font-weight: bold;">Ancient History</span><br> <ul> <li><a href="./Old/Siren7.2.tgz">Siren7.2</a> The Siren version 7.2 tarball (2003)</li> <li><a href="./Old/3.0.zip">Squeak Siren 3.0</a> (2000)<a href="ftp://ftp.create.ucsb.edu/pub/Smalltalk/Music/Siren/3.0/"> </a></li> <li><a href="ftp://st.cs.uiuc.edu/Smalltalk/Squeak/goodies/Siren1">Siren 1.0 for Squeak</a> (1999)</li> <li><a href="ftp://st.cs.uiuc.edu/Smalltalk/Squeak/goodies/STP12">STP V12 Goodies for Squeak</a> (1999)</li> <li><a href="./Old/STP9.tar.gz">STP V9 Goodies for VisualWorks</a> (1995)<br> </li> <li><a href="./Old/MODE1.1.zip">MODE</a> (1992) </li> <li><a href="./Old/hstk5.1.zip">HSTK</a> (1989) </li> </ul> </blockquote> <h3><a name="documentation"></a>What Documentation is there?</h3> <ul> <li>Updated: <a style="font-weight: bold;" href="Workbook/index.html"> Siren_Workbook.html</a> -- The on-line doc and demo outline, also available as a <a href="Siren7.5.Workbook.pdf">50-page PDF file</a> or as a <a href="Workbook/Siren7.5.Workbook.html">single large web page</a> (<span style="font-weight: bold;">RTFM</span>).</li> <li><br> </li> <li>New: <a style="font-weight: bold;" href="Siren7.5.Demo-hi-res.mov">The
Siren Demo Video</a> -- A 55-minute 1024*768-pixel QuickTime movie demonstration in <a href="Siren7.5.Demo-lo-res.mov">lo-quality</a> (94 MB) and <a href="Siren7.5.Demo-hi-res.mov">hi-quality</a> (240 MB) versions</li> <br> <li>New: <a href="http://heaveneverywhere.com/stp/STP_ICMC07_Siren.pdf">ICMC
2007 Paper on Siren 7.5 Updates</a></li> <li>New: <a href="http://heaveneverywhere.com/stp/STP_ICMC07_Scripting.pdf">ICMC
2007
Paper on Scripting and Tools for Digital Audio</a></li> <br> <li><a href="Doc/SirenBookChapter.pdf">Squeak Book Chapter</a> -- In-depth introduction to Smoke and Siren as PDF</li> <br> <li><a href="Manual/index.html">Siren Reference Manual</a> -- Exhaustive class reference as <a href="Manual/SirenReferenceManual.html">HTML</a> or <a href="Doc/Siren7.5.ReferenceManual.pdf">PDF</a> files</li> <li><a href="Doc/Siren_ICMC2003.pdf">2003 ICMC Paper</a> -- A brief update on recent (2003) work in Siren.</li> <li> <a href="Doc/Siren.GUI_2007.html">Siren.GUI.Tour.html</a> -- A web-based tour of the Siren user interface tools (old and new versions available).</li> <li> <a href="Doc/Siren.OOPSLA98.paper.pdf">Siren.OOPSLA98.paper.pdf</a> -- A short paper describing Siren from the 1998 ACM OOPSLA conference.</li> <li> <a href="Doc/Siren.OOPSLA98.slides.pdf">Siren.OOPSLA98.slides.pdf</a> -- Presentation slides from the Siren talk at the 1998 OOPSLA conference.</li> </ul> <div style="margin-left: 40px;">The Siren mailing list is <a href="http://www.create.ucsb.edu/mailman/listinfo/SqueakAudio">here</a>. </div> <p style="margin-left: 40px;">The Siren home page is at <a href="http://FASTLabInc.com/Siren">FASTLabInc.com</a>. </p> <p style="margin-left: 40px;">There are several on-line Smalltalk tutorials, just ask Google, or down-load the <a href="http://www.squeak.org/Download/SqueakCD">Squeak
CD-ROM</a>, which has an excellent reference library on it, or go to <a href="http://www.iam.unibe.ch/%7Educasse/FreeBooks.html">Stephan
Ducasse's
free Smalltalk book list</a>, or simply grab the free PDF file of <a style="font-style: italic;" href="http://www.iam.unibe.ch/%7Educasse/FreeBooks/Art/artAdded174186187Final.pdf">The
Art
and Science of Smalltalk</a>, by Simon Lewis, Prentice-Hall 1995-1999. </p> <div style="margin-left: 40px;">Other references to related software can be found in Stephen Pope's <a href="http://www.create.ucsb.edu/%7Estp/publs.html">publication
list.</a></div> <p> </p> <h3><a name="libraries"></a>External Library Interfaces<br> </h3> <blockquote>To make full use of the Smalltalk code, there are several external packages that use DLLCC C/C++ glue code to access the <span style="font-weight: bold;">LibSndFile,
PortAudio, PortMIDI, FFTW </span>and<span style="font-weight: bold;"> OSC</span> libraries; the SWIG-based I/O Interfaces to both CSL (C++ signal synthesis/processing library) and Loris (analysis/resynthesis tool using bandwidth-enhanced partials) provide their own Smalltalk models that mirror the C++ class structure of these packages.<br> <br> To install these, download and install the required packages, then look in the DLLCC folder and run the makefile there for each target library. The links for these are,<br> <ul> <li>libsndfile - <a href="http://www.zip.com.au/%7Eerikd/libsndfile">http://www.zip.com.au/~erikd/libsndfile</a></li> <li>portmidi - <a href="http://www-2.cs.cmu.edu/%7Emusic/portmusic">http://www-2.cs.cmu.edu/~music/portmusic</a></li> <li>portaudio - <a href="http://www.portaudio.com">http://www.portaudio.com</a></li> <li>fftw - <a href="http://www.fftw.org">http://www.fftw.org</a></li> </ul> The experimental SWIG interfaces are in the folders SWIG_Loris and SWIG_CSL; to use them, you need,<br> <ul> <li>Loris - <a href="http://sourceforge.net/projects/loris">http://sourceforge.net/projects/loris</a></li> </ul> and/or<br> <ul> <li>CSL - <a href="http://create.ucsb.edu/CSL">http://create.ucsb.edu/CSL</a></li> </ul> Look in the workbook SWIG page for further instructions.<br> </blockquote> <h3><a name="building"></a>Building Siren</h3> <blockquote>To build Siren, you start with a 7.5 VisualWorks Smalltalk virtual image and load the following packages from the release file set,<br> <ul> <li>Store/PostgreSQL</li> <li>BOSS</li> <li>DLLCC</li> <li>Advanced Tools</li> <li>HTTP</li> <li>XMLTools</li> <li>ComposedTextEditor</li> </ul> Then, in a Store browser, on the Cincom public repository, load SmaCC* and SWIG before loading the Siren package.<br> <br> Siren uses several external interfaces (based on the DLLCC framework or SWIG) for access to external data and I/O. The Smalltalk code for these interfaces is in the category MusicIO-External.<br> <br> Sound file read/write -- libSndFile -- see <a href="http://www.mega-nerd.com/libsndfile">http://www.mega-nerd.com/libsndfile</a><br> Streaming MIDI I/O -- PortMidi -- see <a href="http://www.cs.cmu.edu/%7Emusic/portmusic">http://www.cs.cmu.edu/~music/portmusic</a><br> Streaming sound I/O -- PortAudio -- see <a href="http://www.portaudio.com">http://www.portaudio.com</a><br> Fast Fourier Transform -- FFTW -- see <a href="http://fftw.org">http://fftw.org</a><br> <br> You need to have these libraries installed, and compile and link the C-language interface libraries in the subdirectory DLLCC for sound or MIDI I/O to work with Siren. Binaries are available for Mac OSX. There are pre-compiled versions of the required libraries on the CSL web site at CREATE; look at <a href="http://FASTLabInc.com/CSL">http://FASTLabInc.com/CSL</a>.<br> <br> To get Loris, <a href="http://sourceforge.net/projects/loris">http://sourceforge.net/projects/loris</a><br> <br> To get CSL, <a href="http://FASTLabInc.com/CSL">http://FASTLabInc.com/CSL</a><br> </blockquote> <h3><a name="mode"></a>What is the Difference between the MODE and Siren?</h3> <blockquote>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 <u>DoubleTalk</u>, <u>HyperScore ToolKit</u>, <u>MODE</u>, and, now, <u><font size="+1">Siren</font></u>. 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. <p>The <u>MODE</u> 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. </p> <p><u>Siren</u> (the name is not an acronym) is written for the VisualWorks Smalltalk system.<br> </p> </blockquote> <h3><a name="more-doc"></a>Where's More Documentation?</h3> <blockquote>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 <i>Computer Music Journal</i> 16:3, Fall, 1992 (heartily recommended--it's also on the web), in the book <i>Musical Signal Processing</i> (C. Roads, S. T. Pope, G. DePoli, and A. Piccialli, eds. Swets & Zeitlinger, 1997), and in several documents on the Web page <a href="http://www.create.ucsb.edu/%7Estp/publ.html">http://www.create.ucsb.edu/~stp/publ.html</a>. There are more MODE- and Smoke-related documents (including several of the above references) in the directory <a href="./Doc">Doc</a>. <p>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 web site). </p> </blockquote> <h3><a name="history"></a>History</h3> <blockquote>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 <span style="font-style: italic;">"4"</span> (1980-82); ARA (1982-4) was an outgrowth of the Lisp system used for "<span style="font-style: italic;">Bat
out of Hell</span>" (1983); the DoubleTalk system (1984-7) was based on the Smalltalk-80-based Petri net editing system used for "<span style="font-style: italic;">Requiem
Aeternam dona Eis</span>" (1986); the HyperScore ToolKit's various versions (1986-90) were used (among others) for "<span style="font-style: italic;">Day</span>" (1988), and the MODE (1990-96) was developed to realize "<span style="font-style: italic;">Kombination
XI</span>" (1990) and "<span style="font-style: italic;">Paragraph 31: All Gates are Open</span>" (1993).<br> <br> 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 "<span style="font-style: italic;">Four Magic Sentences"</span> (1998-2000). Siren 7.4 added tools from the realizations of "<span style="font-style: italic;">Eternal
Dream</span>" (2002) and "<span style="font-style: italic;">Leur Songe de la Paix</span>" (2003). The newest release incorporates new code from "<span style="font-style: italic;">Jerusalem's Secrets</span>" and "<span style="font-style: italic;">Ora
penso invece che il mondo...</span>" (2005-6). <br> <br> In each of these cases, some amount of effort was spent--after the completion of the composition--to make the tools more general-purpose. If Siren works well for other composers, it is because of its idiosyncratic approach, rather than its attempted generality. <span style="font-weight: bold;"></span></blockquote> <span style="text-decoration: underline;"></span> <hr style="width: 100%; height: 2px;"><span style="text-decoration: underline;"><span style="font-weight: bold;"></span></span> <address><a href="http://heaveneverywhere.com/stp">Stephen Travis Pope</a></address> <br> Created: 1997.11.08; LastEditDate: 2007.05.20<br> <br> <br> </body></html>