Music 171 homework 6 (due Feb. 26)
This assignment is meant to get you started using abstractions for "voice management". Chapter 4 of the book has many details about this, as well as some examples of how to do it. But for now, something much simpler will be plenty:

Make a patch that loads eight copies of an abstraction which simply plays a note, using a sinusoidal oscillator with a "line~" amplitude control. At the simplest, you can just specify the pitch of the note as an argument to the abstraction; i.e., call it "voice.pd" and invoke it as "voice 440", etc. Then use "osc~ $1" inside the "voice" abstraction to get the pitch. This way you'll end up with 8 different pitches.

Give the abstraction an inlet which, when you "bang" it, triggers the "line~" to go up to 1 and then down to 0. For example, you could make the rise time 10 milliseconds, and the decay time 1 second. Note that you'll have to start the decay AFTER A DELAY OF 10 MSEC, or else it will cancel the attack.

You can give the abstraction a signal outlet (the "outlet~" object) and just add all the outputs up. Somewhat better style might be to make a "summing bus", as is done in the online documentation examples.

Now, using a metronome, a counter, and a "select" object, arrange for the eight copies to get a "bang" in round-robin fashion.

There should be separate controls to set:

Here is how it should sound.

back to music 171 main page