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