Homework: Effects and Patterns

  • Out: Oct 30, 2024 Wednesday
  • Due: Nov 6, 2024 Wednesday

Objective and Overview

Homework 3 should be a quick study to work with some essentials in Chuck. The components might help you imagine some final project possibilities. It will include digital effects for processing sounds, generating various patterns and some more gestural input from the mouse.

Provide a microphone to use with your laptop or device, as this homework will involve real-time input to chuck. It's doable with built-in mics but the best quality usually requires an external mic and an audio interface or recorder that will connect to your computer. CCRMA has a few loaner audio interfaces and some mics + stands this year (available to be checked out at the 2nd floor admin area -- self-serve). See the teaching team if any questions.

Key Steps

  1. Be up-to-date with hw1 and hw2. Absorbing operational hints from them and having some strategies from earlier debugging will help.
  2. Homework 3's assignment is to use adc input in combination with effects processing and pattern generation.
  3. Experiment with your voice or instrument and record using the IDE.

Background

The following examples introduce several new concepts in turn:

  • ADC input (from microphone)
  • UGen's for effects processing (resonator, pitch shifter)
  • pattern generating functions (chaos, periodic, random)
  • FFT-based tracking (spectral centroid, RMS amplitude)

Examples

(some of the examples use ADC input which requires pushing the purple mic button in the IDE after pushing Start WebChuck)

  • inOut.ck uses ADC
    • Send mic to speaker through chuck as if a straight wire.
    • Explicity disconnect the patch.
  • inOutMouse.ck add ADC on/off from mouse down/up and gain from mouseY position
    • After stopping the shred, the last ADC gain value set by the mouse is maintained unitl the page is refreshed.
  • inEfx.ck uses ADC
    • Resonance filter affecting ADC signal
    • Time-varying with slow, rectified sine pattern
    • Efx on left, dry on right
    • use headphones and make a "shh" sound into the mic
    • the result is a looping spectral panning pattern
  • chaotic.ck
    • Print 100 values from the logistic map chaotic function to the console.
    • Copy the values printed in the console to a plotting program.
    • x is chaos state variable.
    • r is chaos "heat".
      the y axis shows changing values of chaos state variable 'x'
      r = 3.1
      r = 3.9
  • periodic.ck
    • Print changing values from a low frequency periodic signal.
    • f is wave frequency.
    • a is wave amplitude.
    • update every 100ms.
  • random.ck
    • Print changing values from a random walk.
    • l is low bound.
    • h is high bound.
    • update every 100ms.
  • FFT.ck uses ADC
    • Pass your input signal to spectral centroid and RMS amplitude trackers.
    • Print their changing values.
    • Apply changing values to a SinOsc simultaneously.
    • Trackers are borrowed from Chuck's feature extractors examples centroid.ck and rms.ck.

Also play around with the following examples of combinations:

The combineEfxRandom and combineClarinetChaotic examples above present combinations of respectively, adc + efx, physical model + patterns.

Composition

Homework 3's assignment is to use adc input in combination with effects processing and pattern generation. You'll capture the output of your real-time performances as .wav files using the IDE's record feature.

Don't be constrained by what's in the examples. The composition should (sometimes) have more than one layer going on at a time and should include at least one big change in the music. Musically, think "polyphony" and think "section change." Combine the recordings and layer them in an audio editor, for example, Audacity. Another way to get polyphony and section changes is by sporking big processes -- overlapping them and sequencing them.

Please don't just recycle the above examples. Customize them, explore their possibilities. Feel free to explore other FFT-based trackers, efx and combine some synthesis from earlier homework.

Upload your work

scp hw3.wav USERNAME@ccrma-gate.stanford.edu:Library/Web/220a/

The final result should be a single .wav file named hw3.wav in your main homework factory directory 220a. The file should not lie under a subdirectory (i.e., there's no need for the server to have a 220a/hw3 subdirectory).