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!
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.
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.
Copyright 2000 John Lazzaro and John Wawrzynek.