# The `sfront` Reference Manual

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

## Introduction

Welcome to the reference manual for sfront, a translator that converts MP4-SA files into efficient C programs that generate audio.

Sfront supports sound generation for interactive applications, both locally and over the Internet. It can support on-line streaming and off-line rendering applications. Sfront also works well as a scripting tool for audio signal processing, in both batch and interactive applications.

This reference manual explains how to install and use sfront, and how to add drivers and make modifications to the programs. To learn about how to write SAOL and SASL programs, see the MP4-SA book.

## Organization

The first part of the manual is a guide to using sfront to compile MP4-SA.

Part I/1 describes how to install sfront, and includes instructions on downloading, compiling, and testing the system.

Part I/2 describes how to use sfront for decoding and encoding MP4-SA files. Part I/3 describes real-time sfront operation in a stand-alone environment, and Part I/4 describes networking.

Parts I/5 and I/6 document reference materials.

The second part of the manual is a programmers guide to sfront.

Part II/1 shows how to use sfront as a sound engine in other applications, and introduces the driver interface as the way to add new code to sfront itself.

Part II/2 explains the control driver interface, used to to add code to sfront to control the sound generation process.

Part II/3 explains the audio driver interface, used to add code to sfront to send audio streams into and out of the sound engine.

Next: Installing Sfront.

## Table of Contents

#### Part I. Users Guide

#### 1. Installing Sfront

- Supported platforms. Where sfront runs.
- Downloading sfront. How to pick up sfront.
- Installation. Compiling and testing sfront.
- Bugs. Let us know if things don't work.

#### 2. File Rendering

- File decoding. Rendering MP4-SA files.
- Audio input. Connecting files to input_bus.
- MP4 file encoding. Creating MP4-SA files.
- Incompatibilities. Deviations from the spec.

#### 3. Real-Time Operation

- Real-time playback. Sending audio to sound hardware.
- Real-time interaction. Real time audio and control input.

#### 4. Networking

- Introduction. SIP and RTP.
- Network Testing. The mirror session.
- Network Musical Performance. Low-latency apps.
- Network Streaming. MIDI filestreams.

5. Command-line Options
6. Change Log and License

#### Part II. Programmer's Guide

#### 1. Developing with Sfront

- Using sfront in an application.
- Adding features to sfront.
- The driver interface.

#### 2. Control Drivers

- Overview.
- Data Structures.
- Writing the Driver.

#### 3. Audio Drivers

Copyright 1999 John Lazzaro and John Wawrzynek.