
MAT 240: Digital Audio Programming: The Series
Contact
Instructor: Stephen
Travis
Pope
Office: South Hall 4430F
Overview
The Digital Audio Programming sequence is a six-part
(i.e., two-year)
practical programming course; it consists of hands-on software
development
classes devoted to digital audio and multimedia application
development.
Students will read the a selection of papers from the literature, but
the
emphasis will be on learning to use the current state-of-the-art
programming
methods, tools, and library APIs.
The topics of the 6 quarters are (click on link to visit course
page):
Each course has a prepared reader, and the course web site includes
web references and code examples. Programming assignments will be given
in the C, C++, Java, Smalltalk and/or SuperCollider programming
languages,
and will involve software development tasks on Linux/UNIX, MS-Windows,
Macintosh, Web browser-plug-ins, 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 and
SuperCollider optional). Grading will be on the basis of in-class
participation
and programming projects.
Below are the descriptions of the individual topics
for the six quarters of MAT 240
MAT 240A: Digital Audio Programming: Using Commercial I/O APIs
(Fall, 2006)
This course is a practical introduction to modern application
development
tools, libraries, and interfaces. We focus on (1) off-the-shelf support
for sound and event I/O and streaming, and (2) libraries for surround
sound
and spatial audio, i.e., we will not deal with signal synthesis or
processing,
but rather focus on I/O, distribution, and post-production software.
See also the MAT 240A
Course Page.
MAT 240B: Digital Audio Programming: Spectral Transformations
(Winter, 2007) 
This course will focus on the development of software for the spectral
processing of digital sound. We will use several libraries for spectral
analysis, processing, and resynthesis (e.g., FFT libraries and vocoder
programs), as well as exploring digital filter design software and
other
spectral effects and transformations. The emphasis will be on program
development,
rather than on using "canned" effects programs. See the MAT 240B Course Web Site.
MAT 240C: Digital Audio Programming: Spatial Sound Manipulation
(Spring, 2007)
This course concentrates on the processing of digital audio signals for
performance over multi-channel output systems. Starting with simple
stereophonic
models, we will investigate the representation of sound in space and
the
processing techniques for producing convincing spatialized sound. We
will
also develop examples that use several existing surround sound APIs.
See the MAT 240C Course
Web
Site.
MAT 240D: Digital Audio Programming: Sound Synthesis Techniques
(Fall, 2007)
In this quarter, we will implement a variety of software sound
synthesis
techniques, ranging from traditional additive, subtractive, and
non-linear
synthesis to more contemporary physical model systems and modal
synthesis.
We will explore the internals of several existing synthesis packages
and
write our own versions of several popular techniques.
See the MAT 240D Course
Web
Site.
MAT 240E: Digital Audio Programming: Multi-rate Control and
Synchronization (Winter, 2008)
There are many issues to be addressed when synchronizing different
media
(e.g., music and images) or when mixing control and signal data (e.g.,
MIDI and streaming audio). In this course, we will work with several
network protocols and software libraries for multi-rate streaming and
data synchronization.
See the MAT 240E Course
Web Site.
MAT 240F: Digital Audio Programming: Audio Analysis and Music
Information Retrieval (Spring 2008)
In the sixth part of the series, we address audio analysis and signal
processing techniques applied to sound/music databases and music
information retrieval systems. We will develop skills in time-domain
processes such as beat following, tempo analysis, and song
segmentation, and in spectral-domain analysis techniques such as pitch
estimation, spectral peak analysis and tracking, and instrument
signature identification.
See the MAT 240F Course
Web
Site.
Related Courses