CCRMA Music 250a Physical Interaction Design, Winter 2006

Lab 1: Mappings, Modes, Sound Generation, Pd

Matt Wright, June 27, 2005
updated by Bill Verplank, , 2005

mac and windows users will install pd as part of lab1 in the MaxLab.

1. Set up your CCRMA account

Get a CCRMA Linux account.

Learn how to open a terminal window, a web browser, and Pd.

Add these lines to the .pdrc file in your home directory:


-path /usr/ccrma/courses/250a/pd/externs 
-path /usr/ccrma/courses/250a/pd/patches
-alsa -midiindev 2 -midioutdev 2 
-lib OSC -lib zexy -lib percolate

You can do this by navigating to your home directory (e.g., by typing "cd ~"), opening (or creating) the file ".pdrc" in an editor, and copying the above code into the file.

2. Download today's simple QWERTY sample triggering patch

Copy my Pd patches and the associated sound files to your 250a/lab1 directory, and open the main patch lab1.pd:

cd
mkdir 250a
cd 250a
cp -r /usr/ccrma/web/html/courses/250a/labs/lab1/lab1.tar .
tar -xvf lab1.tar 

cd lab1
pd qwerty.pd
lab1.tar can also be found at: http://ccrma.stanford.edu/courses/250a/labs/lab1/lab1.tar

Play around with this patch. You should be able to exhaust its musical potential in a matter of minutes; reflect on its strengths and limitations.

Also try to understand how it works as a piece of software. (But please don't get hung up on the Pd as always, if you get stuck, ask for help rather than waste time.)

Pd Documentation

Right-click on any object to get a contextual menu including "help," which opens that object's help patch.

Right-click on a blank portion of a Pd patch. Now when you select "help" you get a list of Pd's built-in objects, arranged by category.

In the upper right hand corner of each Pd window is a "help" menu. This accesses the Pd tutorials as well as some online reference documentation.

3. Sample Triggering (qwerty) Patch

The problem with using the operating system's automatic "key repeat" feature for musical control is that you don't have good control of timing. There are actually two "time constants" involved: the time between when you first press the key and it starts repeating, and then time time between repetitions.

Re-implement the "key repeat" feature in Pd so that you have complete control of the two time constants (as well as being to enable and disable the feature). You will probably need to use Pd's "metro", "delay", and "spigot" objects.

4. Design a different musical interaction for qwerty.pd

Here are some ideas of changes that might make the patch more interesting:

We recommend that you pick one or a small number of these and work on it in depth, iterating on both the program/test/debug cycle as well as the design/implement/play cycle to craft something that has actual musical potential or is at least more fun to play. If you have an existing idea for your class project, you could use this lab to start thinking about implementing some of the modes and mappings. By all means, if you're inspired to try something else, go for it. If you'd rather spend today getting more of a broad sense of Pd's capabilities, feel free to work on many of these suggestions.

5. Theremin

  • Involve the mouse:
  • The Pd Community

    Although Pd is clunky and has lots of usability issues, there is a large, dedicated, and very generous community of Pd users on the Internet. Do some web searching (e.g., with a search engine, or else starting from some Pd-specific resources) and look for interesting Pd externals and/or patches. Download, install, and play with at least one. Can you incorporate it into what you programmed in part 4?