logo

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, SuperCollider, scripting languages 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: Sound I/O, Streaming and Plug-in APIs (Fall, 2008)

    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. 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. See also the MAT 240A Course Page.

    MAT 240B: Digital Audio Programming: Spectral Transformations (Winter, 2008)

    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, 2009)

    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, 2009)

    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, 2010)

    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 2010)

    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

    logo