MPEG-4 structured audio

This page documents my interest in the MPEG-4 Structured Audio (SA) tools. SA comprises of a number of elements including SAOL (Structured Audio Orchestra Language) and SASL (Structured Audio Score Language). The standard also defines a MIDI input mapping for the SA decoder. SA is a specification not an implementation, which sets it apart from other MUSIC-V derivitaves such as CSound and SuperCollider.

If you havn’t already been there you should definitely look at the MP4 Structured Audio homepage. Or visit, a web portal for SAOL users.

SAOL/SASL quick reference

I’ve put together a quick reference guide (5 pages) for SAOL and SASL. This won’t make complete sense until you’ve read some of the other SA documentation such as the ISO Standard (available here) or John Lazzaro and John Wawrzynek’s online MPEG-4 Structured Audio Book. Please contact me if you have any suggestions or corrections for this document. I’m planning to add sections on scoping rules, width, and rate semantics at some stage in the future.

SAOL/SASL Quick Reference (HTML format 19k)

SAOL/SASL Quick Reference (MS Word format – better for printing(?) 46k)

SAOL decoder resources

Last year I started implementing a SAOL decoder with a parser built with Flex and Bison, being a C++ programmer and an avid adherent to Object Oriented Design and Analysis this didn’t pan out well. I have begun working on a new SAOL front end using the ANTLR parser generator which can generate C++, Java or Sather parsers from a common grammar file (although embedded actions are implemented in the target language). ANTLR parsers can automatically generate ASTs (abstract syntax trees) which make life rather easy. I have released my SAOL grammar into the public domain, the latest version is available below.

saol.g 1.0 – last updated 29th August 2000
Saol.g is a complete SAOL grammar (including full template support) for use with the ANTLR parser generator. This version generates a C++ parser but modifying it to generate a Java parser would be 5 minutes work. I would appreciate it if you could send me any comments or suggestions for this grammar.