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:
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):
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
- 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
- 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
back to music 171 main page