MPEG-4 Standard to Include Structured Audio
By Guest |
This message is to announce the first wide release of the MIT public-domain SAOL implementation, called "saolc". SAOL is the music-synthesis language at the heart of the MPEG-4 Structured Audio standard. This release is not entirely complete or bug-free, and won't run in real-time, but should be quite useful for musicians who want to examine the expressive power of SAOL, and for potential implementors who want to compare the standards document with a reference software. saolc has been tested by me on SGI, Alpha, and Win32 platforms, and by the University of Hannover on Linux and Solaris platforms, but is intended to be widely portable to other machines as well.
This implementation is available from the SAOL WWW page. The README file describes exactly what is and isn't working and supported in this release.
About six months ago, I announced on various lists that I was involved with a project at the Media Lab to create a new music synthesis language. This language, called SAOL, was developed within the MPEG Consortium, in order to fill the need for a standard syntax for algorithmic synthesis.
I'm pleased to report that that this proposal has been accepted, and the first official draft of the MPEG-4 standard contains extensive provisions for algorithmic synthesis and other algorithmic sound functions. Using the MPEG-4 "Structured Audio" toolset, you can describe the synthesis of music and sound effects, the application of synthetic post-production methods to "natural" sound sources like speech, the automatic synchronization and mixing of natural and synthetic sounds, and the creation of interactive, virtual worlds which combine all of this with 3-D audio and synthetic and natural video.
Any fully compliant "MPEG-4 decoder" must contain an implementation, in hardware, software, or both, of this music-synthesis language.
SAOL is pronounced "sail" and stands for Structured Audio Orchestra Langauge. SAOL as a language has similar concepts to Csound. It preserves the orchestra/score distinction (although the orchestra language is now powerful enough to write a score generator in) and the control rate/sampling rate distinction. However, it features a more modern syntax and modern language features such as encapsulated functions, variable scoping, a weak object-oriented system, and explicitly defined rate semantics.
SAOL lives within the MPEG-4 paradigm of "streaming" data and "decoding" processes. Thus, the Structured Audio toolset is not only a method of synthesis, but a streaming format appropriate for WWW-based (or any other channel) transmission of audio data. The 'saolc' package contains a program for encoding score and orchestras into the streaming format, and facility for decoding this format (so it can be used as a WWW helper app).
There's a mailing list available for users of SAOL. For a while, I'll be active on this list, since there's not much other way to quickly find the answers to questions. Send email to firstname.lastname@example.org to be added.
There's also a mailing list available for people interested in developing new SAOL implementations. Send email to email@example.com to be added.
The draft standard describing MPEG-4 Structured Audio is also now available to the general public. This document is extremely detailed (and fairly well written, I like to think) but is targeted at implementors, not at users. I'm trying to get some WWW-based user documentation together in the near future; volunteers would be greatly appreciated.
There are some example orchestras and scores, as well as MPEG-4 bitstreams, available on the same webpage as referenced above. I'm happy to include your music in this archive also, if you want to donate it and make it an example.
Please download the draft standard and the 'saolc' implementation and use it to make music. Your comments and feedback are essential at this point, as we clean up the standard for finalization over the next year.