This page was last modified on February 27, 2006.
A complete listing of Christopher Dobrian's publications on computer music can be found online.
The publications most pertinent to this course are listed below.
Example programs from class on January 11, 2006
A basic oscillator: oscillator.txt
This lets you listen to a sinusoidal wave, with adjustable frequency and amplitude.
A basic (monophonic) soundfile player: fileplayer.txt
This lets you listen to (the first channel of) a .wav or .aif soundfile.
A basic (monophonic) soundfile recorder: filerecorder.txt
This lets you record (the first channel of) the audio input of your computer into a .wav or .aif soundfile.
Example programs from class on January 18, 2006
A timed succession of numbers changing linearly: interpolationwithline.txt
This demonstrates linear interpolation from a starting number to an ending number over a specified period of time, sending out discrete intermediate values regularly along the way (using the values as frequencies for an oscillator).
Using a linear signal to provide sample-accurate smooth linear interpolation from one value to another over time: interpolationwithline~.txt
This demonstrates linear interpolation from a starting number to an ending number over a specified period of time, sending out a new intermediate value for every single audio sample along the way (i.e., at the audio sampling rate), using the values as frequency for an oscillator.
Simple frequency modulation: modulatefrequency.txt
This demonstrates the use of a sub-audio-rate oscillator as a "control signal" to modulate (change) some parameter of an audio signal. In this case, it's one cosine oscillator (which we don't hear directly) being used to cause slow change in the frequency of another oscillator (the one we actually hear).
Example programs for filtering class, February 27, 2006
The biquad~ filter object: filterexample01.txt
A patch for exploring the different filtering possibilities of the biquadratic filter formula, using the filtergraph and biquad~ objects.
Delay with feedback: delayexample01.txt
Demonstration of echo with feedback, using the tapin~ and tapout~ objects.
MIDI control of a filter: midicontrolofafilter.txt
Taking in MIDI control data and mapping it into the correct range to control the center frequency of a resonant bandpass filter.
Smoothing a control signal: smoothing.txt
Demonstration of some objects that interpolate (lowpass filter) to smooth a control signal.
Bandpass filter modulated cyclically: bandpass.txt
Using a low-frequency oscillator to modulate the center frequency of a bandpass filter.
Rhythmic bursts of filtered noise: filterednoiserhythms.txt
Stepping through a sequence of frequencies and amplitudes to change the center frequency of a filter rhythmically.
Various other example programs
constantpowerpanning: constant-power panning
dopplerexample: an example of using variable distance-based delay, distance-based amplitude, distance-based filtering, and azimuth-angle-based panning to simulate the sound of a car passing the listener in virtual space
chebyshev: using Chebyshev polynomial functions as transfer functions for table lookup
compressor: an example of a basic dynamic processor, compressing the input signal amplitude by a certain factor (the inversion of the "compression ratio") when it exceeds a certain peak amplitude threshold, with independently specifiable attack and release times, and with automatic "makeup gain" to bring it back to full amplitude after compression
groovy: demonstrates the use of the groove~ object for sample playback with optional looping
additive: a simple patch for listening to four sinusoids with related frequencies, mixed together in any desired balance
detune: a demonstration of detuning a soundfile by means of speed change, as well as a demonstration of hiding Max/MSP objects and showing only the desire user interface objects
graindemo01: a single stream of grains of sound, reading from a pre-recorded soundfile in memory, using a triangular window, with random selection of starting point, playback speed, and panning for each grain
hanning: creates a buffer~ named "hanning" and fills it with a 513-sample hanning window function
No MP3 sound files are posted yet.
Here is an AIFF file that might be useful for testing a gate. It's some spoken text with some pauses, and some low-level background noise.
Bibliography of Other Relevant Publications
The professor's research page from this course as it was taught in Winter 2001 contains examples of basic audio programming principles demonstrated in the "Csound" computer music programming language.
The professor's research page from this course as it was taught in Winter 2002 contains examples of basic audio programming principles demonstrated in the "MSP" computer music programming language.
The professor's research page from this course as it was taught in Winter 2004 contains examples of basic audio programming principles demonstrated in the "C", "Pd", and "MSP" computer music programming languages.
The professor's research page from this course as it was taught in Winter 2005 contains examples of basic audio programming principles demonstrated in "C" and in Max/MSP.
The professor's example page from the COSMOS 2005 summer course in computer music and computer graphics contains examples of many basic audio programming tasks implemented in Max/MSP.
This page is for Music 147 (ICS 180, ECE 195, Music 215, ACE 277), Computer Audio and Music Programming, offered Winter 2006 at UCI.
Christopher Dobrian
dobrian@uci.edu