This page was last modified on February 27, 2006.

Christopher Dobrian

Music 147 Research Page

Christopher Dobrian


This page contains links to supporting materials and instructive examples for students in Music 147 (ICS 180, ECE 195, Music 215, ACE 277), Computer Audio and Music Programming, taught winter quarter 2006 at the University of California, Irvine.


Articles

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

Example Programs in C

Example Programs in Max/MSP

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


Sound Files

MP3

No MP3 sound files are posted yet.

AIFF

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.


References

Bibliography of Other Relevant Publications

Useful Audio Software

Other Online Resources

Notes from Class Sessions


Examples from Previous Years' Course

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