Csound Csound-dev Csound-tekno Search About

Re: sound synthesis language?

Date1998-03-24 13:06
FromRuggero Andrea Ruschioni
SubjectRe: sound synthesis language?
Maybe some of you don't know this yet and might be interested. Steven
travis Pope is porting his old MODE software to Squeak Smalltalk. The
advantage now is that you don't need to buy a commercial smalltalk in
order to run it.
Follows the original message.

Cheers,
Ruggero.

-----------------------------------------------------------------------------------------

Subject: Siren 1.31 Beta
Release--ftp://ftp.create.ucsb.edu/pub/Smalltalk/Music/Siren
Resent-Date: 21 Feb 1998 15:00:41 -0000
Resent-From: squeak@cs.uiuc.edu
Resent-CC: recipient list not shown: ;
Date: Saturday, 21 Feb 98 6:59:24 am
 From: stp@limbo.create.ucsb.edu (Stephen Travis Pope)
To: squeak-annc@cs.uiuc.edu
CC: squeak@cs.uiuc.edu


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/

-----------------------------------------------------------------------------