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