Music 171 homework 3
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 (I believe due
to David Wessel) in which 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 are as follows:
PITCH TIMBRE
65 flute
69 oboe
72 flute
65 oboe
69 flute
72 oboe
Since we're studying sampling this week, the assignment uses two
recordings: flute (pitch G4 or MIDI
67) and oboe (pitch A4 or MIDI 69);
these are from freesound.org, by Carlos_Vaquero and acclivity
respectively, and have a creative commons license (attribution;
non-commercial): https://creativecommons.org/licenses/by-nc/3.0/.
At low speed (two notes per second) your successful patch should
sound like this, and faster (10 per
second) it should sound like this;
notice that in the first case you hear an ascending three-note
chord but in th esecond you hear two interlocked descending
three-note chords.
To make the patch (each of the following steps is worth 2 points
for a total of 10):
- make a sampler (just one voice is fine; it doesnt' have to be
polyphonic), of the "line~" type as described in class 1/17 and
1/22. The book doesn't go into this until Chapter 3 (example
C05.sampler.oneshot.pd). Because the the recordings both don't
attack quickly enough for this example to work well, the playback
should start one second into the recording.
- Using pack or otherwise, fix the sampler so that it has three
controllable parameters: which recording to play, what
transposition, and how loud. (The third is necessary only because
the oboe recording is louder than the flute one and you will want
to correct that to make them more even.)
- To get the transposition working it will be fine just to play a
fixed amount of time (10 seconds, say, which is longer than you'll
ever need) and calculate a variable "distance" in the recording to
play in the fixed time. This way, a transposition of 1:1 should
"play" ten seconds of recording, or 2:1 should play twenty, and so
on.
- For ease of use, add conversion so that you can type "60" to
ask for no transposition, "61" for "up one half-step", etc. If you
do this the pitches above would be played if you specify
transpositions in the loop of
58, 60, 65, 56, 62, 63
(the flute transpositions are two higher than the corresponding
oboe ones because the original flute recording is two half-steps
lower than the oboe one.)
- Finally, make a looper controlled by metro (I'll show this in
class 1/22). It should cycle though siz messages, each of which has
three numbers to specify a transposition, which recording (1 for
flute and 2 for oboe), and how loud to play it (I chose 1 for the
flute and 0.5 for the oboe). The sample player will have to unpack
this. To change the recording you can use the "set" message to
tabread4~, which will need the name of the table holding the
recording; a "select" and two message boxes will do this fine.
Warning: this one is harder and more complicated than the first
two were - you might want to start early on this!
back to music 171 main page