Hello all,
The beta-test release of the Siren 1.31 package is now available from ftp://ftp.create.ucsb.edu/pub/Smalltalk/Music/Siren. Other sites may be mirroring this in the near future. (What happened to the UIUC Squeak ftp archive, anyway?) This is a pre-release for those wanting to test the MIDI output and learn the Smoke language while we port the GUI applications over to Morphic (for which we're looking for collaborators!).
Introduction ============
The Siren system is a general-purpose music description and composition system; 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 Squeak Smalltalk class libraries for building musical applications; it is known to work on Squeak version 1.31 running on an Apple PowerPC-based Macintosh computer with support for the Opcode MIDI System (OMS) drivers and CD-quality stereo audio I/O. (I develop on a G3 PowerBook with 64 MB of RAM running MacOS 8.1 and OMS 2.3.3.)
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 and MIDI I/O); -- user interface components for musical applications (UI tools and widgets); and -- several built-in applications (editors and browsers for Smoke objects).
Where's More Documentation?
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).
What's There? =============
In this release, I've included a complete pre-built Siren/Mac VI/VM. In the future, I plan to provide this solution (for those who don't want to have to build it from scratch), and also complete file-ins and incremental changes relative to the first full release of Siren.
The directory contents are,
README -- RTFM File (Not the same as this letter--read it).
Siren1.31Image.sit.hqx -- The image, changes file, PowerPC VM, and test data. (It expects you to put a Squeak sources file [not included] in the same directory before running it.)
Siren1.31OMSStuff.sit.hqx -- The Opcode MIDI System (OMS) driver, utilities, and developer libraries.
Siren1.31STSrc.sit.hqx -- The Smalltalk file-in sources & build scripts.
Siren1.31VMSrc.sit.hqx -- The VM & MIDI primitive sources. Note that the project file is for CodeWarrior V11 (thanks to John McIntosh).
SirenOutline.t -- The on-line doc and self-guided demo outline contents
SqueakOutline.t -- The Squeak intro outline contents.
If you already have the OMS MIDI driver, you really only need the virtual image files. If you don't have OMS, then grab the OMS Stuff archive file as well. If you want to re-build the VM, get the VM sources. To file Siren into your own image, get the Smalltalk sources. Please read the README files in each of these archives for more directions.
RTFM ====
Please read the on-line documentation. There is an "outline browser" in the top project of the virtual image with an extensive self-guided tour of what works in the current Siren release. User suggestions are solicited as to what should be included here
For more documentation, see http://www.create.ucsb.edu/~stp/publs.html and follow the "MODE" links, or look at the files in the ftp directory ftp://ftp.create.ucsb.edu/pub/Smalltalk/Music/Doc.
Notes =====
Siren uses the AndreasRaab/SamAdams MS-Windows look; it still has a few rough edges (particularly with the Transcript and window label refreshing).
The Siren VM included with the release comes up "full screen" on a Mac--that is, I hacked the MacWindow source to make a full-screen window with the origin just above and to the left of the normal menu bar position.
Because of a bug I haven't solved yet, you cannot run a jitter-based VM that uses the OMS primitives. (To make a jitter VM, just edit the 4 "Interpreter..." files in the ST Source folder to file them in to the class DynamicInterpreter, then generate the translator file.) You can call the MIDI open/close/test functions fine, but it crashes in the first GC after you try to play a MIDI command--just as if I was stepping on someone elses memory in the output primitive, but I can't see where I'm doing this...
I'm not certain what the best forum for discussing Siren is, For the near-term future, I'll be reading the squeak mailing list (mail to squeak-request@cs.uiuc.edu to join). The list's archive can be read at http://squeak.cs.uiuc.edu/mail/squeak/. In the future, I might set up a mailing list for Siren-specific discussions, or use a Swiki or a HyperNews web site. (Suggestions?)
Coming Soon ===========
--Working MIDI input (I'm real close...)
--(Hopefully) Ports of the MIDI primitives to other platforms (any takers?)
--Working AIFF and SND file reading/playing
--Complete double-dispatching and mixed-mode arithmetic for music magnitudes
--Exception-handling integrated with schedulers and DSP code
--Morphic score & sound editors
--Examples of using functions and event list processing
--Incorporate Hitoshi Katta's and Craig Latta's enhancements to the MODE.
--Ports of a ParserGenerator (TGen?) and Rule-based shell (NeOpus? HAT?)
--Gemstone database access for sound/score storage
--Loads of bug fixes
Enjoy--comments, suggestions, and *changeSets* welcomed!
stp
_ Stephen Travis Pope _ Center for Research in Electronic Art Technology (CREATE) _ Department of Music, Univ. of California, Santa Barbara (UCSB) _ stp@create.ucsb.edu, http://www.create.ucsb.edu/~stp/
On Sat, 21 Feb 1998, Stephen Travis Pope wrote:
building musical applications; it is known to work on Squeak version 1.31 running on an Apple PowerPC-based Macintosh computer with support for the Opcode MIDI System (OMS) drivers and CD-quality stereo audio I/O. (I develop on a G3 PowerBook with 64 MB of RAM running MacOS 8.1 and OMS 2.3.3.)
Darn, so much for compatibility :(
RS
squeak-dev@lists.squeakfoundation.org