220b-winter-2009/hw2

From CCRMA Wiki
Jump to: navigation, search

Homework #2: "Generative Clouds"

OmegaNebula.jpg


In this assignment, you are to create a live generative musical system in ChucK, defining its parameters and creating a piece of music using the system (via real-time high-level input).

Due date: 2009.2.23 11:59:59pm (or thereabout), Monday.


Tools at your disposal

  • ChucK
  • code
  • keyboard, mouse


Specification

What to do:

  • create a software system in ChucK that generates music "automatically" or "semi-automatically" (i.e., with limited "high-level" human interaction)
  • use some of the synthesis elements we talked about (e.g., SinOsc, TriOsc, SqrOsc, Noise, Impulse, Step, ResonZ, OnePole, OneZero, BiQuad, LPF, HPF, ADSR, etc.)
  • (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 a particular instrument, or a group of instruments ("real" and/or imagined)
    • model a particular compositional style (e.g., "classic" Musique Concrete, a certain approach to minimalism)
    • leverage or musically sonify a mathematical model or a computer algorithm
    • a system that somehow evolves over time, giving a set of starting parameters
    • invent something new/crazy!
  • figure out what parameters you want to expose/export from your system, these parameters might serve as "seeds" or starting points, or guidelines/rules for your music generator to follow
  • 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 composition using your system, paying attention to overall form, density, and texture throughout (think "sonic clouds"...)


Resources

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

  • for mapping your keyboard/mouse to your generative clouds S.M.E.L.T.
  • Graham Coleman's most excellent tutorial on ChucK for Music
  • ChucK unit generator reference (check out the section on STK instruments, as potential starting points for ready-to-go instruments)
  • ChucK examples
  • In particular, look at the examples under "STK". These might serve as ideas or starting points.
    • mand-o-matic2 : caffeinated virtual mandolin player (note: by itself, this example probably isn't very interesting (for example, it doesn't come from or go anywhere). However, by figuring out the parameters, and varying those over time somehow, and/or by arranging it with other "band members", one can use this as a building block.)
    • shake-o-matic : virtual shaker player, again a potential building block.
    • karp-o-matic : virtual stif karp player.
    • wurley : virtual wurlitzer player.


Deliverables

As usual, turn in all files by putting them in your Library/Web/220b/ directory.

  • 1) hw2.html should go into the 220b directory
  • 2) create a hw2/ directory, and put all the stuff below in there:
  • 3) all related source/sound files (.wav/.ck)
  • 4) 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


Have fun with it!