Music 171 homework 5
This assignment is designed to give you practice with making abstractions and
also to introduce non-linear distortion as a synthesis technique, using index
of modulation and evenness/oddness to control timbre.
The assignment is to make a patch that plays a five-note chord (in my
example, I just fixed the chord as having pitches 60, 62, 65, 67, and 70. A
chord is a sound containing more than one note played together at once.)
The synthesis algorithm should consist of a sinusoidal oscillator, with an
amplitude (an "index of modulation") and an added onset between 0 and 0.25,
sent to a cosine function to distort it. The technique itself is described in
class and also demonstrated in the Pd example E07.evenodd.pd.
Your successful patch should be able to make sounds like
this. One individual note of the five (the one
playing MIDI pitch 60) sounds like this.
To make the patch (oops, I only wrote only 4 bullets, so you get 2 points for
nothing and the rest ae worth 2 points for a total
of 10):
- As before you'll need to make two patches, one that is an abstraction to
generate a single voice, and one as the main patch. (Zip them together as a
folder named for yourself so that it will unpack in an easy-to-understand way.)
The main patch should use 5 copies of the abstraction. You can just pass
the five pitches (above) as arguments to the abstraction.
- In the main patch, set up controls for amplitude, even/odd, and index of
modulation. Each should have a reasonable range, like 0-100. You can send the
control values directly into the abstraction voices using send and receive
objects. The main patch should then collect the sum of the signal outputs of
the voices and send the sum to a hip~ 10 to clean up DC and then to the audio
output.
- The abstraction should use its pitch (obtained as an abstraction argument
or otherwise) to control the frequency of an osc~ object. This should be
multiplied by an index (calculated as described below), added to an even/odd
offset (also below), then summed for output in the main patch.
- Inside the abstraction, "receive" the index, scale it to range from 0
to 1, use "pack" and "line~" to cause it to change continuously, and use that
as the index of modulation. In the same way, use the even/odd control, scaled to range from 0 to 0.25,
as an additive offset, and the amplitude control (either inside or outside the
abstraction as you prefer) to control the output.
back to music 171 main page