MPEG-4 Structured Audio: Developer Tools

By John Lazzaro and John Wawrzynek, CS Division, UC Berkeley.

MPEG-4 Structured Audio

MPEG-4 Structured Audio (MP4-SA) is an ISO/IEC standard (edited by Eric Scheirer) that specifies sound not as sampled data, but as a computer program that generates audio when run. Computer scientists call this approach Kolmogorov encoding.

MP4-SA combines a powerful language for computing audio (SAOL, pronounced "sail") and a musical score language (SASL, pronounced "sassil") with legacy support for the MIDI format. MP4-SA also defines an efficient encoding of these elements into a binary file format (MP4-SA) suitable for transmission and storage.

MP4-SA is different from standards like the MIDI File Format, because it includes not only the notes to play, but the method for turning notes into sound. As a result, MP4-SA is normative -- an MP4-SA file will sound identical when converted by any compliant decoder.

If the instrument models use algorithmic synthesis instead of wavetables, an MP4-SA file can describe realistic musical performances without using any audio data -- just score data, mixdown cues, and DSP algorithms. In this case, the MP4-SA file is about the same size as a MIDI File, but is a lossless encoding of the audio heard at mixdown. Just like a WAV file -- but 50 to 1000 times smaller!

An Example

This example shows how to create audio content in MPEG-4 Structured Audio. It shows a SAOL and a SASL program that generates a tone burst sound. Audio output for the example was created using sfront, a translator that converts MP4-SA files into efficient C programs that generate audio.

The MP4-SA Book

We wrote an online book to show how to create audio content for MPEG 4 Structured Audio.

The book includes a tutorial introduction and sections on the SAOL language, SASL and MIDI instrument control, and advanced opcodes.

Book appendices list the core opcodes (alphabetically and by functional type), standard names, wavetable generators, language elements and language semantic rules.

sfront

Download the latest version of sfront, a translator that converts MP4-SA files into efficient C programs that generate audio for rendering, interactive and plug-in applications.

Sfront is written by John Lazzaro and John Wawrzynek, and is freely redistributable under the terms of the BSD license (without the advertising clause).

The sfront reference manual describes how to install and use the program. Developers can learn how to add control and audio drivers to sfront, as well as learn about the internals of sfront and the C programs it creates.

Additional Resources

View our multimedia presentation on Structured Audio, read our papers on the topic, and see related work on Network Musical Performance and RTP MIDI.

Pick up the MPEG saolc reference software. Surf the MIT Structured Audio site, and other websites that link to us.

Links

Introductory Example

*

The MP4-SA Book

Tutorial Introduction

SAOL

SASL and MIDI

Advanced Opcodes

Special Topics

Appendices

*

sfront Reference Manual

Download sfront  0.99
8/31/11

*

Network Musical Performance

Copyright 2000 John Lazzaro and John Wawrzynek.