Music 171 homework 4
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
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 of the sort shown in week 4. 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 set
the phasor~ to repeatedly play one second (44100 samples) of the
recording. The frequency of the phasor~ is then just eh
transposition (relative speed) at which you hear the sample; you
don't need any unit conversion.
- 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 (65, 69, 72) that appear 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 a metro object. It should
cycle though six 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.
If you like you can load teh two samples into two arrays with
"save contents" turned on. This will make for a rather large file
(a couple of megabytes). Alternatively, you can use a "loadbang"
object to load the two files by name but the names should then be
exactly "flute-G4-mono.wav" and "oboe-A4-mono.wav" so that the TAs
will have those files available in the same directory as your patch
so that the loading works. In subsequent assignments you will have
to turn in zip archives to supply file dependencies yourself.
back to music 171 main page