From CCRMA Wiki
Jump to: navigation, search

Homework #4: Composing with Perception

Music 220b Winter 2022 | Ge Wang

In this homework, you are to experiment (and have fun) with various auditory perceptual phenomena, understand how to induce their effects in listeners, and explore their use in a creative context. Parts 1-3 of the homework examine, respectively, 1) auditory stream segregation, 2) Shepard tones, and 3) the art of building/shaping expectation through sound. Part 4 (optional) asks you to create a more developed musical statement that makes musical use of two or more perceptual phenomena.

NOTE: Parts 1 and 4 are not required for HW4 (Part 4 can be continued as part of your final project, if you choose)

Due Date

  • milestone+: 2023.3.6 (in-class) Monday
  • final deliverables due: (none for this assignment; can continue as part of final project)

a hand-drawn sketch of a unsettling scene of music synthesis

Part 1: (OPTIONAL) Auditory Streaming

Auditory stream segregation (and fusion) pertains to how a listener perceives a sequence or a mixture of sounds, grouping them into meaningful subsets (e.g., “melody”, “voice”, etc.) that can be called “streams”. Here's Al Bregman's 1971 example of a cycle of 6 tones. You may also remember working with auditory streaming in Music 220a.

For instance, depending on how a monophonic sequence of notes are presented—with considerations to pitch, tempo, timbre, loudness—it is possible to suggest different groupings over time. In class we listened to J. S. Bach’s Partita No. 3 in E Major (Prelude), where a single monophonic violin voice alternates between increasingly large pitch intervals. When played rapidly enough, the overall effect can begin to sound like two (or even three) separate streams, even though the violin never articulates more than one note at any given time. This would be an example of auditory streaming, induced by control of pitch (e.g., taking into account the our tendency to group high notes together), tempo (i.e., we begin to perceive more than one stream when it is played sufficiently fast), and even timbre and loudness (as a consequence of large pitch intervals; the higher notes can sound brighter and louder.). Other examples of auditory streaming induced by control of pitch can be found in a variety of musical genres and contexts. For example, listen to this Charles Mingus bass solo, which begins with a concerted effort to create high and low pitch regions (or “streams”) by jumping between strings/registers quite often. Jazz bassists and other experienced improvisers often employ this idea of pitch-based stream separation while crafting musical lines.

While the previous examples primarily employed pitch variations, It is also possible to induce auditory stream segregation by intentionally varying the timbre and tempo. In this ChucK example (stream-timbre.ck), a simple 4-note ascending sequence is played increasingly faster and against a cycle of 3 different timbres. The end result includes a stream that sounds like a slower descending sequence.

Now, it’s our turn to play with this:

  • Begin by creating a monophonic repeating sequence of notes. (Feel free to build on this or experiment with different sequences.) You don’t turn in anything for this step.
  • (1a-tempo.ck) Vary smoothly between two tempi: one slower, in which you perceive the sequence a single stream, and the other faster, so it’s perceivable as two (or more) streams. Feel free to try this with different note sequences (e.g., make them alternate between larger/smaller intervals; or try alternating between 2-, 3-, and 4- notes) and observe the extent it strengthens or weakens the streaming “effect”.
  • (1b-velocity-timbre.ck) Next, create a new note sequence. This time, play with giving special attention to note loudness (“velocity”) and timbre (e.g., using different filter cutoffs, envelope settings, oscillators, STK instruments, or other UGens), to strengthen the perception of more than one stream.
  • (1c-etude.ck) Create a miniature musical statement (15-30 seconds) using this idea. Turn in both the ChucK file(s) and the wave file for your mini-musical statement. Try to do as much of this in code as possible; you may assemble the final statement either fully in ChucK or by using a DAW (Audacity, Reaper, Logic, etc.) to arrange materials created in ChucK.

Part 2: Shepard Tones

A Shepard Tone is constructed by adding sine waves at octave frequency intervals, with amplitudes weighted under a bell-shaped curve. By moving all the sine wave frequencies up or down (while still respecting the amplitude curve), it is possible to create the auditory illusion of an endlessly rising or falling scale / tone.

There are numerous examples of Shepard tones used in film and music, especially to create moments of tension, suspense, etc. This video briefly describes Shepard tones and highlights some of these examples.

  • Start with shepard.ck, a basic Shepard Tone program in ChucK.
    • You can download the above file or, in MiniAudicle, go to File > Open Example > deep > shepard.ck
  • Run and listen to shepard.ck
  • Play with the Shepard Tone in the following ways:
    • (2a-direction.ck) Change the direction from a falling tone to a rising tone (hint: it’s one number in this implementation)
    • (2b-speed.ck) Change the speed (hint: it’s the same number)
    • (2c-stack.ck) Create a chord by stacking three Shepard Tones together — this is less trivial and will require some refactoring of this code.
    • (2d-stop-and-go.ck) Make it so that the Shepard Tone chord can “stop and go” on demand (i.e., momentarily pause the change of frequencies)
  • Create a miniature musical statement (30-60 seconds) that incorporates Shepard Tones in a substantial way; consider using shepard tones, shepard chords, amplitude-enveloped Shepard tones or chords, or the stop-and-go control of Shepard chords; free feel to mix Shepard Tones with non-Shepard Tone elements (like percussion or synths).
    • as mentioned in class, here are a Shepard class with three instances shepard-chu.ck, and a similar example that uses an array of Shepard objects shepard-array.ck

Part 3: The Art of Building Expectation: Oh The Drops

At some level, one might say that music is all about building expectations—and then resolving and/or artfully subverting them. This shaping of expectations, of course, can be achieved in many different ways. One approach is through the use of contrast: by paying attention to and playing with both what is present and what is not. Example: if a section of music consists of only mid-range and higher frequencies, the introduction of low frequencies can feel surprising yet intentional (and even “inevitable”), satisfying, and purposive (i.e., a sense that something belongs, or a sense that it serves a function even when it doesn’t in practice—which, if one thinks about it, could be said of music? BTW for those wanting to think really hard about this idea, check out Immanuel Kant’s notion of Purposiveness). This idea of playing with contrast to shape expectation can employ setting up variations in frequency, time, dynamics, harmony, timbre, texture—anything that you can control (which, with computer music, is everything). In music, especially in EDM, there is the concept of The Drop, which uses a few of these variations to build a sometimes over-the-top sense of anticipation and tension, leading up to an emphatic resolution. In this part of the assignment, we are to create a few different kinds of musical “drops”.

  • Gather two of three of your favorite “drops” (in EDM or any other forms of music), listen to them critically, reflect, and comment on what makes them effective as a “drop”. Make use of English (and not ChucK) for this part.
  • (3a-freq.ck) engineer a frequency-based “drop” moment by setting the expectations using frequencies during a “setup” phase, leading into a “resolution”. Example: there is nothing, by design, in the low register for a long time—followed by an introduction of low frequency elements, or vice versa.) A few questions: How will you set up “the drop”? Will you have a rise/falling train of frequencies? How will you introduce “the drop”? Suddenly? Gracefully? Gradually? Sneakily? ??? How might different approaches result in different perceived musical outcomes?
  • (3b-timbre.ck) similarly to the above, engineer a timbre-based “drop”. We will leave this mostly to your imagination and design: attempt to create a moment where the “drop” comes in the form of a timbral shift (e.g., sound gets brighter or more muffled; or a new timbre is introduced, holding other elements the same). How will you prepare for and build to this “drop” so that it sounds intentional? For an example, a low pass filter is applied in Britney Spears’s “Until The World Ends”, starting around 3 minutes 05 seconds, curtailing the high frequencies; the sound gradually “brightens up”, until the drop where you are hit with a wide frequency spectrum (as if a window has been flung open to let in the sunlight).
  • (3c-time.ck) next, create a temporal-based “drop”. Feel free to explore rhythmic build-ups, dramatic pauses, “metric fake outs”, or other “drops”. By the way, in the same Britney Spears “drop” above, note the brief pause in the non-vocal elements right before the drop, creating a sense of suspended time, before everything comes back to life.
  • (3d-the-drop.ck) Alrighty, now it’s time to make your own “drop” in the form of a miniature musical statement (30-60 seconds). It is to consist of a setup and a resolution, taking into account and possibly combining some of what you’ve worked with so far. For example, what if you made an EDM-esque drop with a Shepard Tone buildup (which can literally go forever)? Remember, your drop can be as over-the-top or as subtle as you’d like, but try to be intentional in your choices. Try to do as much of this in code as possible; you may assemble the final statement either fully in ChucK or by using a DAW to arrange materials created in ChucK. Turn in both your ChucK code and a recording of your drop.

Part 4 (OPTIONAL; can continue this as part of your final project): Full Musical Statement

Create a musical statement (2-3 minutes) that makes use of at least two perceptual phenomena from Parts 1-3 and from class. In making use of the various phenomena in a creative context, Artful Design Principle 4.8 recommends “Experiment to ‘illogical extremes’ (and pull back according to taste)”, meaning in audiovisual programming you should freely experiment with the possibilities to know what is “too much” and then dialing things back to your taste. Try to do as much of this in code as possible; you may assemble the final statement either fully in ChucK or by using a DAW to arrange sections created in ChucK.


  • For this milestone+, we are interested in your miniature musical statements from Parts 2 and 3—including all code/sound files/descriptions on your hw4 webpage. Please also briefly talk about your explorations and thinking for this milestone+.
  • Please be prepared to share your miniature musical statements and offer feedback to others in class.

Homework 4 Deliverables

Your hw4 webpage should include:

  • 1) ChucK (.ck) files, as applicable, for Parts 2 through 3 (Parts 1 and 4 are optional)
  • 2) sound (.wav) files, as applicable, for Parts 2 through 3 (Parts 1 and 4 are optional)
  • 3) notes/title for you mini musical statements (Parts 2 and 3)
  • 4) comments and reflections as you work through this homework.
  • 5) submit your URL to canvas