Homework 2: Radio Play

due on 10/31 (Tue) in the Homework Factory and in your /Library/220a/hw2/ directory


Compose a short 'musical radio play' (1-2 min) consisting of sounds spatialized into four channels which can be listened to binaurally via your web page (with headphones). Place an HTML file hw2.html that links to code and sound file resources which are in your /Library/Web/220a/hw2/ subdirectory. Work in quad, produce 4 monophonic .wav files (1 for each channel) submit a customized hw2.html web page which plays the piece via its ambisonic-to-binaural decoder. We'll use OmniTone for that. Make sure that your submission is shows up in the Homework Factory.


Binaural recording uses stereo mics pointed outwards from inside your ears to capture as closely as possible the exact sound pressure waves entering your ear canals. A binaural radio play produced by the BBC, The Revenge, demonstrates the possibilities. The binaural technique captures filter (transfer function) differences caused by body parts shadowing and reflecting sounds arriving from various directions: the ear flaps (pinnae), head, shoulders, etc. Played back over headphones or earbuds, binaural preserves the interaural loudness difference (ILD) and interaural time difference (ITD) cues which are basic to sound localization.

Early work in binaural recording was accompanied by predictions that its superior imaging would create a world where everyone would eventually listen through headphones. Playing binaurally-encoded sounds over stereo loudspeakers doesn't result in either good binaural or good stereo and that's one thing holding back wider use. For a position paper, see Jens Blauert's AES Heyser Lecture. He makes a provocative case for binaural as a part of an increasingly realistic synthetic world.

One artist whose work leverages the medium is Janet Cardiff. She composes site-specific 3D audio narratives with spine-tingling interplay of real and phantom presences binaurally-produced. Her ALTER BAHNHOF VIDEO WALK | 2012 a masterwork which opens up the possibilities of what you might expect to compose with mobile devices. The composition led participants through the station, each directed by a mobile phone which they were holding while watching with a pre-recorded self-guided tour. You'd turn a corner and someone would be there musicking in the space (convincingly, so you could point to them) only they weren't there then, but at some other point in time, past, alternative present, or future.

Our approach starts with composing spatialized sound for the quad speaker arrangement. Pick a short text which might be a monologue, group dialog, or whatever you want, but it should constitute some sort of a script (feel free to write it from scratch). You'll first record your own voice (with your new mic) and then possibly other voices in combination depending on the text to be read.

Sound Panning

Here are two tutorial examples of spatialization - one will simulate rain falling throughout the stereo field, and the other will give you a template by which you can 'move' a sound from one point in stereo space to another. Walk through this tutorial. Its second example will require you to use either this sound file (.aiff format) or the same thing (.wav format). It depends what you write in the .read("choose_whichever_name_here") function call of the SndBuf object that you instantiate to read in your input soundfile. Replace "choose_whichever_name_here" with its proper path and name.

Composition - Spatial Sound


  • There must be at least three sound sources that have some aspect of localization in them. These can be more atmospheric (e.g. wind that moves throughout the entirety of the radioplay), or more related directly to smaller objects of interest (e.g. voices that speak from different points in space, an instrument that has a particular 'home' or direction in space).
  • One of the sound sources must move. This can have direct meaning in the play (e.g. panning a monophonic recording of a car to create the illusion of it moving from the left to the right channels, or perhaps a bee or an insect that moves), or the meaning can be more abstract (e.g. some melodic string that oscillates between some group of channels).
  • You should conceptualize your radio play/creation in four channels - as if your listener had two speakers in front and two behind them, set up in a square (i.e. quad setup). The technique will spatialize sound in a horizontal plane anywhere around the listener. We will be listening to it as binaural audio when played from the browser. We've updated the way we play the content on the web, binaurally. Use the model that shows up in the Homework Factory under "Chris Chafe" homework "2". This will be explained in class. Before cloning that, please produce 4 channels that you can test by playing them directly e.g., in audacity (at a 4-ch station or mixed to stereo). Then, proceed to upload the final 4 mono files into your homwork directory as with the previous homeworks. And then, make your own version of Chris's model page which'll play them in binaural.


  • If you like, you can make this a purely literal radio play - with the tracks all recorded using a microphone (the one you can build in the MaxLab would be a great choice), with a focus on dialogue and more literal elements of a play (e.g. closing doors, etc.). However, you could also 'musicify' it, (e.g. a conversation between Peter Pan and Tinkerbell, where Tinkerbell is a sound/melody you synthesize - perhaps she flies around in the sound space! Or, perhaps you're simulating a rehearsal, where a director/conductor takes the center of the sound stage from one side, and rehearses a couple of instruments on different sides of the stage.) It's entirely up to you to select what it'll be.
  • If you create/use a function that plays a sound file and spork it at different times during your radio play, you could potentially add many sound effects and elements to add sonic interest to your creation.
  • Techniques you can use include localization with interaural intensity difference (IID), interaural time difference (ITD), Schroeder-style reverb (e.g., NRev), and processing for time and pitch transposition (e.g., SndBuf rate and PitShift)