ITP Help Pages
rss feed for this site
Reorganizing for the 2-point format, this syllabus is liable to change
- There will be regular homework assignments to suppliment the in-class learning. The assignments are designed around the specific class topics. If you are working on an outside project that is related to the current homework topic, work on that project instead of the assignment. It must be related to the current class topic though.
- Upon completion, upload all homework patches to class wiki, in the Students section. All homework patches must be uploaded there.
- There will be some class time to present homework. You can optionally present any homework assignment during the semester, you are strongly encouraged to present at least a few times throughout the semester.
- The assignments and readings are always due the week after they are assigned (i.e. the next class).
The central goal of this class is to start developing fluency in the Pd programming language so that you are able to express ideas in the form of functioning projects. The class focuses on the programming language itself, and works best when you bring in project ideas to work on. Then you can focus on building real projects while developing fluency in Pd. Therefore, this class ends with a final project. It should be a substantial chunk of work, but it need not be something entirely new. Working on a project for a good chunk of the class is the best for learning, but it is also acceptable to present some smaller chunks as long as you can demonstrate basic understanding of what it takes to complete a larger project.
Example Projects and Listening
One approach to becoming good at a programming language is to learn a set of building blocks very well, then think in terms of those building blocks. This is the approach that this class aims to teach. To that goal, we will see a demo of a related project every week, talk about how it was done, and break it down. We will also be listening to pieces throughout the semester to learn how to break apart sounds.
The central idea is to focus on what is happening rather than whether we liked it or not. The discussion can cover any topic, the only thing that is not allowed are judgments, like "I liked it", or "that sucked", or "that's a nice guitar sound". Instead we should talk about what fundamental sounds make up what we just heard, how to implement it using the tools we know, whether the idea was well implemented, whether a different approach would have been more effective, etc.
For this course, Pd will the used throughout. Max/MSP is similar enough to Pd that the knowledge is directly applicable. Quartz Composer, Eyesweb, Labview and other graphical programming languages share similar ideas, but are not similar enough for this course.
During much of the classtime, you will be following along and programming on your own laptop. Therefore it is essential that you bring your laptop to every class. That said, laptops are also very effective instruments of distraction. Everyone benefits if we all pay attention. I'll do my best to keep the class interesting, I hope you'll join me in this pursuit. You are welcome to use your laptop in class when I am speaking, or when it is relevant to the classwork being presented. However, during discussions and when your fellow students are talking, please be respectful of everyone's time and close the lid. If necessary, I'll remind you of this, but even better would be if everyone does so on their own.
Week 8: What is sound?
- to humans, in nature, in computers
- digital audio
- In Pd-extended, go to the Help menu, then choose Browser, then navigate to Pure Data -> 3.audio.examples and try some patches
Week 9: Storing and Sampling
- storing numeric data in arrays
- visual representation of that data
- read, write, modify methods
- different approaches for manipulating and looping sound data
- In-class Demo: building custom samplers
- Example Project: Slice Jockey, by Katja Vetter (video)
- Listening: Leave This Off Your Fu-kin Charts, from Fear of a Black Planet by Public Enemy
- 3.4 Sampling, in Programming Electronic Music in Pd
- In Pd-extended, go to the Help menu, then choose Browser, then navigate to Pure Data --> 3.audio.examples, and read through B01.wavetables.pd and B16.long-varispeed.pd
- Optional: 3.7 Granular synthesis, in Programming Electronic Music in Pd
- make your own sampler patch that is controlled by live input or a sequencer
Week 10: Filtering and Enveloping
Week 11: Digital Foley
- What is Foley Sound?
- using samples, synthesis, filtering, etc. all together
- how can I make a sound like that?
- Listening: Blade Runner - intro, silence
- make a composition or interactive patch using no samples or sound files. Instead use synthesis, filtering, etc. Copy and paste whatever you need to make a workable whole. Create a sequence that generates a composition. Make a central clock and then use [route], [select], [moses], etc. to trigger and control events during the composition.
Week 12: Getting Data from Audio
- how humans parse sound
- how computers parse sound
- [peakamp~], [bonk~], [fiddle~], [sigmund~], etc.
- Listening: sCrAmBlEd?HaCkZ!
- Example Project: YoYo Berimbau
- Pick a final project and start working on it. Bring ideas, problems, and questions for the next class.
Week 13: Mapping Data to Controls
- tablets, joysticks, gamepads, mice, keyboards
- serial, USB HID, MIDI
- mapping control data
- mapping in instruments, animation, etc.
- Listening: Égrégore by chdh, (video)
- Example Project: Silent Drum | Tambor Silencioso, by Jaime Oliver (video)
- In-class Demo: mapping sensor inputs to a sound synth
- Finish final project for presentation in the next class
Week 14: Final Project Presentations
- Show and discuss your project in class, we can spend about 8 minutes per presentation.
- 8 minutes per project
- one sentence about your idea
- show your project
- talk about one thing that felt natural or good in Pd
- talk about one thing that was frustrating
- optional: a pie in the sky idea for how Pd should work