auditory streaming: hw3 (due 22-Oct 10am)

Turn in a sound file which demonstrates the auditory streaming illusion and takes it in a musical direction. Here's a visual analogy to what you'll construct:

(shapes = timbres) (colors = pitches)


Fire up the example 220a/hw3/ (using jack and miniAudicle) and understand how its pitches are selected and play from a list of four. Save as a new filename, e.g. and practice recording using audacity (in Preferences : Audio I/O : Recording, select jack:chuck). You will eventually export a soundfile saved with the name hw3.wav when done.

As always, set your record audio to stereo, 48000 Hz., 16-bit (uncompressed, .wav format). You'll want to verify that you are getting good audio levels from chuck and that when you save a file you can open it in audacity and see full-scale signal (but not clipping).


The example loops through 3 instruments while playing a cycle of 4 pitches. You can modify which instruments and which pitches. Out-of-the-box, the example plays 3 instruments which are absolutely identical and it sounds even, as if with a single instrument. Modify your file to slightly disturb the similarity of the 3 instruments. At a faster speed in the accelerating tempo, you will begin to hear a descending line as your changed instrumental sound, if distinct enough, aliases against the ascending pitch cycle.

  1. (loudness, velocity) change one of the velo array elements... how much of a change before it separates into more voices?

  2. (register transposition) can you get the polyphony effect with shifting by one octave one of the tran array elements?

  3. (timbre) substitute in a new instrument and change array type to StkInstrument, compensate velocities so it's not streaming by loudness.


Explore other parameters available in the instruments for their streaming potential. E.g., switch the instrument to bowed and vary the vibrato, which you can test by adding the following snippets of code (in the appropriate places). See documentation

[ 0.0, 0.0, 0.0] @=> float vibr[]; // per-instrument vibrato amount, 0.0 – 127.0

inst[i].controlChange( 11, vibr[i] );
inst[i].controlChange( 1, vibr[i] );

Turn in

A physical model synthesis study which demonstrates auditory streaming of any kind. Make it a musical study where the illusion is present but it's not the only interest. Concoct at least one big musical change (your choice of what that is, but it should be obvious to the listener) and shoot for a total duration of under 2 minutes. By now, you've guessed the target file name: