C S 3962 DGS COMPUTER MUSIC PROGRAMMING
Introduction to the concepts and software techniques of computer music. Students will write programs to produce sounds, process sounds, and organize sounds into musical structures. Fundamentals of digital audio. Additive, subtractive, and non-linear synthesis techniques. Physical models. Reverberation and sound spatialization. Algorithmic composition. Computer languages for synthesis and scoring. Programming experience in the C programming language required.
COMPUTER MUSIC PROGRAMMING -- WINTER 1995
Instructor
Bill Thibault
Office Hours
2:30-4:00 pm TTh WA 781 (510) 881-3826 tebo@csuhayward.edu
Text
Computer Music, Dodge and Jerse, Schirmer (ISBN 0-02-873100-X)
Other References
Elements of Computer Music, F. Richard Moore, Prentice-Hall, 1990. (ISBN 0-13-252552-6)
Meetings
12:00-1:50 T Th NS112
Course Outline
* Sound Representations (what is sound? what is computer music? digital waveforms, sampling, aliasing) * Spectrum Measurements (Fourier Transform, DFT, FFT, amplitude and power spectra, convolution, windowing, time-varying spectra) * Digital Filters (z transform, digital filter equation, poles and zeros, IIR and FIR filters) * Instruments and Csound (flow diagrams, table lookup oscillators, Csound) * Synthesis Methods (additive synthesis, phase vocoder, subtractive synthesis, physical models, frequency modulation, waveshaping) * Rooms (spatial hearing, early echo return, reverberation, sound spatialization) * Composing, Interaction (random processes, algorithms, MIDI protocol, network music, virtual reality, fractals, noise, tuning systems, input devices)
ASSIGNMENTS FOR CS 3962
* Bandlimited Waveform Synthesis *Introduction to Csound *Algorithmic Composition
ASSIGNMENT 1: WAVEFORM SYNTHESIS
C S 3962 Computer Music Programming
Due: Thursday January 19
Write a C program to produce a square wave which is bandlimited with respect to the Nyquist frequency: the output waveform should not contain any frequency components above one-half of the sampling rate. The program takes as input the frequency (in Hertz), sampling rate (in Hertz), and duration of the desired tone (in seconds). The program writes the raw waveform to standard output as signed 16-bit integers.
A square wave is a sum of odd numbered harmonics (each a sine wave), each with a maximum amplitude of 1 over the harmonic number (see Dodge and Jerse, pp. 50-51). Your program should determine the highest odd harmonic that will not foldover at the given sampling rate, and produce a waveform that has appropriately scaled harmonics up to and including that highest harmonic.
Your program should print a message to standard error indicating that highest harmonic, as well as printing an error message if the fundamental frequency would fold over at the requested sampling rate.
Turn in a program listing (hard AND soft copy (floppy or email to tebo@csuhayward.edu)) and a file produced by your program containing .5 seconds of a 500 Hz tone at a sampling rate of 10000Hz.
INTRODUCTION TO CSOUND
C S 3962 Computer Music Programming
Due: Last Day of Class
Write a short (15-30 second) piece in Csound. Write a Csound orchestra and a score file to drive them. The piece will be played for the class. Prepare a sound file if your piece does not run in realtime.
For example, one instrument could produce long tones with changing timbre, as well as vibrato and tremolo effects under scorefile control. Another instrument could produce percussive sounds. Feel free to create as many instruments as you want.
Be creative!
Submit your orchestra and score files on diskette or via email to tebo@csuhayward.edu
ALGORITHMIC COMPOSITION
C S 3962 Computer Music Programming
Due: Last Day of Class
Write a program in the language of your choice to either: * generate a Csound score file, or * produce MIDI (e.g., from MAX).
Use one or more of the techniques in Moore Chapter 8 for aleatoric (stochastic) composition. Alternatively, instrument the execution of some arbitrary algorithm (such as a fractal process, a parser/compiler, an encryption algorithm, etc.) to generate Csound or MIDI events.
The resulting piece should be no less than 30 seconds and no more than 3 minutes in length. Compositions will be played for and critiqued by the class on the due date. If your composition does not run in real time, have a sound file prepared for playback in class. Submit the source for your program, along with your orchestra and score files on diskette or via email to tebo@csuhayward.edu