From CCRMA Wiki
Jump to: navigation, search

Homework #3: Generative Drum Machine + Soundscape

  • Milestone 2024.2.14 in class, Wednesday
  • Final: 2024.2.19 in-class Monday



Create a generative drum machine system, and create a short musical statement by incorporating the following two elements:

element 1:

  • a generative drum machine (think about input parameters to control/influence the drum machine; as well as ways to control these parameters)
  • interactive high-level control (integrating devices such as game controller, wii remote, microphone, keyboard, mouse, etc.)

element 2:

  • generative soundscape (integrating algorithms to generate/modify the structures of sounds)
  • note: interaction should be used to control patterns and structures of music, and not pitch or timbre directly.


  • create a software system in ChucK that generates music "automatically" or "semi-automatically" (i.e., with limited "high-level" human interaction)
  • consider using some of the synthesis elements we talked about (e.g., SinOsc, TriOsc, SqrOsc, Noise, Impulse, Step, ResonZ, OnePole, OneZero, BiQuad, LPF, HPF, ADSR, STK instruments, Comb filters, SndBuf etc.)
  • consider using some of the technique we talked about (e.g., shreds, events, chance, etc.)
  • potentially expose some high level parameters (e.g., density, excitement, mood, texture) and control them using input
    • for example: mouse, keyboard, gamepad, or other
    • (optional): use audio analysis as a control for the synthesis (e.g., using ChucK Unit Analyzers)
  • here are some example ideas (you can use, combine, extend these, or go with something else altogether)
    • modeling playing style of something percussive, or a group of instruments ("real" and/or imagined)
    • model a particular musical style
    • leverage or musically sonify a mathematical model or a computer algorithm
    • a system that somehow evolves over time, giving a set of starting parameters
    • something else entirely
  • it might be helpful to design/partition your system into modules that you can exert independent control over, or that take care of different types of tasks/sounds in the system
  • create/perform a musical statement using your system, paying attention to overall form, density, and texture throughout (think "sonic clouds"...)


Not all of these are directly relevant, but may serve as basic building blocks...


As usual, turn in all files by putting them in your Library/Web/220b/hw3/ directory, upload to Canvas

  • 1) all related source/sound files (.wav/.ck) NOTE: You must turn in a composite audio file (WAV or AIFF) of the final musical statement.
  • 2) a short README text (readme.txt) file that:
    • specifies instructions on running your programs
    • describes your process/adventure, and perhaps the ideas (technical/aesthetic) behind the composition
    • gives credit, if needed, for the sounds you are using
    • describe any difficulties you encountered in the process
  • 3) upload files to Canvas

Have fun with it!