Music 171 homework 8
Psychoacousticians have long been interested in the phenomenon of
streaming, in which a succession of sounds is heard as a single stream,
like a melody or a person speaking. Cues that might contribute to hearing
sounds as belonging to a stream might be proximity in time, pitch, amplitude,
timbre, or physical location, This assignment is to reproduce a famous
experiment of David Wessel (from the paper, "Timbre Space as a Musical
Control Structure", 1979). In the experiment a loop of six sounds is
heard as a single stream if cycled slowly, but as two separate ones if cycled
more quickly. The sounds in the loop could be, for instance, as follows:
PITCH TIMBRE
65 1
69 2
72 1
65 2
69 1
72 2
The two timbres should be quite different from each other, although the
sounds of both timbers should have a clear pitch (i.e. they should be
periodic tones). In this assignment you can make them using a fixed waveform
(pulse width modulation as in the class example, 2.12b.squarepulse.pd will do
fine), and filtering with "vcf". The illusion works best if the notes are
separated in time, i.e., each one should turn off smoothly and the next one
should turn on smoothly; don't just change the pitch while the note is playing).
To make the patch:
- Make two tables of size 6, the first one containing the pitches and the
second one
containing 60, 110, 60, 110, 60, 110. We'll use this second table as the
resonant frequency of a vcf~ object. Make a metronome and a counter to
access the six locations repeatedly. Make a control for the number of
milliseconds per location.
- Make a pulse train as in patch 2.12b.squarepulse.pd, choosing a reasonable
"index", perhaps 10 or 20. One table should control the frequency of the osc~
object. (Since that patch plays at twice the frequency given to the oscillator,
you should divide the desired frequency by 2 to set the frequency of the
oscillator.)
- Convert the MIDI values to frequency from the second table and use these
for the resonant frequency of a vcf~ object. Set the "Q" to 3. Use the
resonant filter to filter the pulse train you generated.
- Using a line~, fix it so that the output of the vcf~ is ramped down to zero
40 milliseconds before the oscillator frequency and the resonant frequency
change. (To do this, you have to delay the updates of the two frequencies,
storing their values using "float" objects, so that the updates happen after the
line has finished ramping down.) At the same time as the frequencies are
changed you can then ramp the line~ back up over another 40 milliseconds.
- Verify that, if you use a value of 400 for the time between "notes"
(frequency settings), you hear ascending notes grouped in threes, and that
if you reduce the time to 200, the "110" notes are streamed together and
descend. The "60" notes should also descend but they will be harder to focus
on. (If you wanted to work harder, you could make them louder than the "110"
notes to improve your ability to hear that stream separately).
The output at the slow setting should sound something like this and the faster one like this. This assignment should only require submitting one
file. If only one file is needed, you can just upload it without making an
archive.
back to music 171 main page