Music 161: Programming for Musical Application
Fall Quarter 1998

Professor Miller Puckette , 119 Mandeville Hall, 534-4823
E-mail: msp@ucsd.edu
web: https://msp.ucsd.edu/syllabi/
Office Hours: Tuesdays and Thursdays 12:45-1:45 PM or by appointment.

A first hands-on course in computer programming designed around the application of computers to the processing of musical sound and structures. Prerequisite: 160a or permission of instructor.

Lectures are Tuesdays and Thursdays, 2:20 in Mandeville B104 (also called the Computer Music Instruction Lab, or "CMIL"). The textbook is Charles Dodge and Thomas Jerse, Computer Music: Synthesis, Composition, and Performance. Students will gain first-hand knowledge of computer audio techniques using the Pd environment, which runs on IRIX, Linux, or NT.

Patches shown in class are available HERE.

Topics

Sept. 24. Review of musical acoustics
Sept. 29; Oct. 1, 6: Overview of Pd
Oct. 8. Additive synthesis
Oct. 13. Waveshaping and frequency modulation (FM) synthesis
Oct. 15. Filtering and sampling
Oct. 20. Envelope generators and sequencers
Oct. 22. Sequencers, continued; Discussion of mid-term projects
Oct. 27, 29. Delay effects
Nov. 3, 5. In-class presentation of mid-term projects
Nov. 10, 12. Scales and spectra
Nov. 17, 19. Algorithmic composition techniques
Nov. 24. 3-D computer graphics using the Gem environment
Dec. 1, 3. In-class presentation of final projects

How to get and run Pd

You can either run Pd in the B104 studio using the SGI machines, or else you can run it at home on your Wintel machine. Pd currently runs very badly on W95, but seems to run acceptably on NT. I hope to get out a version that will improve W95 performance. As to W98, I don't have it yet and don't know how and whether Pd will work on it.

Running Pd in Room B104.

ACS should have class accounts and door codes ready by the second meeting on Sept. 29, so that you can get in the studio and on the machines. The best available description of what to do to run Pd in Room B104 is on Kerry Hagan's page . You'll also have to learn how to get audio output from the computers in Room B104; this will be explained in class Sept. 29.

Running Pd on your WINTEL machine

Pd is distributed from Prof. Puckette's software distribution page . The README should explain what you have to do to get Pd running on NT.

The special joys of Windows 95

On Windows 95 you can expect a hard time; every user who tries it seems to encounter a new problem. The best way to run Pd is to get into the "MSDOS Prompt" program and type \pb\bin\pd to it (or whatever the path ends up being.) You can probably put pd's "bin" directory in your path so that you just type "pd" to the prompt.

You don't want to run Pd from the "run" menu because if it fails to start up the window holding the error message will disappear instantly. Ditto for clicking on "batch files" or on the Pd executable itself.

The most common reason Pd might fail to start up in W95 is not having "networking" turned on. Pd is actually two programs that establish an IP interconnection. Beware that this sometimes fools Windows into calling your ISP for no reason.

Performance under W95 is improved in version 0.23 Patch 1; earlier versions were essentially unable to perform at all in W95 land. Note that you can specify an "audiobuf" in milliseconds (default 100) that can improve the steadiness of audio output.

How to find and use the documentation

Most of Pd's documentation is on-line, which means that you have to solve the problem of getting Pd to start up before you can access the documentation. Starting Pd is described above and (more tersely) in the README from the distribution.

Once you're running, there are two sources of documentation available: the Pd distribution and Kerry Hagan's page . (Where they overlap, Hagan's is usually the better source.) To get to the distributed documentation, reach for "help" in any Pd window. You'll get a browser into a collection of text and Pd files. Hagan's documenetation is best accessed through the web. Here is a list of general topic areas and where to go to get information on them:

Theory of operation. Look in 2.starter in Pd's documentation. You'll see a series of five patches showing how "message passing" works in Pd (1a-1e) followed by a sequence of audio patches (2a-2f). The "1" series is relatively well explained but avoid the "2" series in favor of Hagan's three examples (cosine generator; filters; ring modulator.)

How to edit patches. A very condensed account of the editing interface is in "1.manual" under "2.edit.and.file.txt."

Reference. For a list of all the objects you can use in Pd, see "INTRO" in the "3.reference" section of the on-=line documentation. The other documents in that directory are patches that demonstrate how most of the objects work. About 15 of the most-used objects are also documented in much more detail on Hagan's page; look there first. page