The MP4-SA Book: Part III: Instrument Control
Description: Instrument control in MP4-SA. Using the SASL score language to control SAOL programs. Using MIDI files and MIDI commands to control SAOL programs. Launching instruments within SAOL, and controlling the duration of instruments dynamically in SAOL.
Keywords: MP4-SA, SAOL, language, MIDI, SASL, instr, extend, turnoff, time, dur, itime, released, cpuload, instr, control, table, end, tempo, preset, MIDIctrl, MIDIbend, MIDItouch, channel, preset, extended channel number

### From The MPEG-4 Structured Audio Book by John Lazzaro and John Wawrzynek.

# Part III: Instrument Control

## Introduction MPEG-4 Structured Audio (MP4-SA) is an ISO/IEC standard (edited by Eric Scheirer) that specifies sound not as audio data, but as a computer program that generates audio when run. For an introduction to MP4-SA see the introductory tutorial presented in Part I of the book. For a complete description of the SAOL language, see Part II. In Part III of the book, we focus on instrument control in MP4-SA. A SAOL program may be controlled by score lines of the SASL language, or by MIDI commands. In addition, algorithmic compositions may be written completely in SAOL, by executing language statements for instantiating and terminating instruments. In the first chapter we describe the SASL score language. We explain the five SASL command types, and discuss how SASL commands may be distributed throughout an MP4 file. In the second chapter we describe MIDI instrument control. We review MIDI and MIDI files. We show how SAOL instruments are tagged with MIDI preset numbers, and explain the MIDI-oriented standard names. In the third chapter we describe how a SAOL instrument may dynamically instantiate new instruments. We also describe standard names an instrument may use to monitor its own status, and statements an instrument may use to change that status. This chapter also includes a chart showing the order of execution of a SAOL program, to clarify the concept of instrument status. Next:Part III/1: The SASL Control Language | ## Part III: Table of Contents #### 1. The SASL Score Language SASL Scores. Triggering semantics. Instr Command. Creating instances of instruments. Control Command. Changing SAOL variables. Tempo and End Commands. Changing simulation behavior. Table Command. Updating wavetables using SASL. Streaming and SASL. Real-time flags for SASL. #### 2. MIDI Instrument Control MIDI Basics. Overview of MIDI commands. MIDI Files and SAOL. Trigger times and channels. SAOL Instruments for MIDI. Specializations. Standard Names. Access the MIDI data stream. Streaming and MIDI. Commands without trigger times. #### 3. SAOL Instrument Control Dynamic Instruments. The SAOL instr statement. Instrument Status. Standard names. The Extend Statement. Delaying instance termination. The Turnoff Statement. Forcing instance termination. Decoder Execution Order. What happens when.

Copyright 1999 John Lazzaro and John Wawrzynek.