Save lab1.tar.gz into your 250a directory.
Uncompress the archive
~> cd 250a ~/250a> tar xzf lab1.tar.gz
If you weren't at the console during Wednesday's class, download the .pdsettings file & the instructions in 2) from the PD lecture
Open lab1.pd. 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.
~/250a> cd lab1 ~/250a/lab1> pd lab1.pd
Also try to understand how it works as a piece of software. (But please don't get hung up on the Pd arcana. As always, if you get stuck, ask for help rather than wastetime.)
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.
What happens when you hold down a key? Does this happen with an oud when you hold your finger against a string?
Find a way to filter the keyboard input to remove repeats. That is, each time you press a sample key, Pd should play the sample exactly once. You will probably need to use Pd's message box, "delay", "sel", "spigot", and "loadbang" objects, but there are always many solutions to a given problem. We also found the "print" object useful for debugging.
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.
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 - see the 'resources' page for some places to start) 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?