MAT-240A: Digital Audio Programming: Sound I/O, Streaming and
Plug-in APIs
UCSB, Fall
2008

Contacts
Instructor: Stephen
Pope
Time/Place
Lectures: Tues/Thurs. 10:00 - 12:00
Discussion Group/Lab: TBD
All are held in Music 2215 (CREATE class room)
Downloads
Course Abstract
This course is a practical introduction to modern
digital
audio programming; it is the first part of the six-quarter MAT 240 Digital
Audio Programming course sequence. In MAT 240A, we focus on
applications
development tools, libraries, and interfaces for (1) sound and event
I/O
and streaming, and (2) plug-in architectures for web browsers and media
processing software. We will not deal with signal synthesis or
processing,
but rather focus on I/O, distribution, and processing software.
Students will read the seminal papers from the
literature,
as well as tutorials on recent industry standards, and will learn to
use
the current programming APIs and tools in several languages on a number
of development platforms. The course reader will be available at the
UCSB
book store, and the course web site will include web references and
code
examples. Programming assignments will be given in the C, C++, Java,
Smalltalk
and/or SuperCollider programming languages, and will involve basic
digital
audio code development tasks on Linux, MS-Windows, Macintosh, and
possibly
other platforms.
Students are expected to know the basics of digital
audio
signal representation and processing, and to be proficient in C, C++,
or
Java (Smalltalk, SuperCollider, LISP, and/or XML are a plus). Grading
will
be on the basis of in-class participation and programming projects.
Course Outline
- Issues in sound and event programming
- Digital sound representations and quality
- File formats and I/O for sound and event data
- Buffers, latency, and jitter in I/O programming
- Real-time I/O and Internet streaming
- Compression formats, codecs, and players
- Browser and virtual machine plug-ins
- APIs for plug-ins to processing programs
Introduction
- Digital audio background & StateOfTheArt
- Coding style and techniques for digital audio
- Software development tools and IDEs
Topic 1: Sound IO APIs
- I/O for sound and event data
- Dimensions of sound I/O APIs
- Using Sound I/O APIs on several platforms
Topic 2: Sound Storage Formats
- Sound file formats intro and examples
- Real-time I/O and Internet streaming
Topic 3: Audio Compression Formats
Topic 4: Plug-in Architectures
- Browser and OS Plug-in architectures
- Audio and media plug-in API examples
Web Links