subject to change!
last updated: 15-oct-2009

week/datesexamples, patches, homework assignments
week 1: introduction to programming;
basic sound playing and recording
week 2: basic video playing and recording
week 3: playing sound from a buffer
fri-sep-18: no classes (holiday)
week 4: keyboard control of sound and video;
encapsulating and mixing
week 5: mouse control of sound and video
week 6: miscellaneous objects
(bangbang, counter, gate, histo, umenu)
  • in-class examples:
  • homework:
    1. Create a patch where you cycle through eight different playback speeds by pressing a single key on the computer keyboard. You will need counter, and will use select in a new way. (For instance, the first time you hit your key, normal speed forward will be selected; the 2nd time you hit the key half speed backward will be selected, etc.) You choose the speeds and their order.
      1. Realize first with sound, using sfplay~
      2. Realize again with sound, using groove~/buffer~
      3. Realize using
    2. Modify the patch created above so that you can turn on and off a metro that cycles through the eight playback speeds automatically, moving to the next speed every second.
      1. Add to this patch controls (either keyboard keys, on-screen buttons, or message boxes) that will allow you to double and half the speed of the metro with a single click or button press.
    3. BONUS: use line or line~ as necessary to "ramp" between playback speeds. Create a means of controlling the ramp time.
week 7: loop points
  • in-class examples:
  • homework:
    1. Design a project you would like to realize in Max. Make it simple and useful. Do not begin to program it in Max; rather think it through abstractly: what do you want it to do exactly; how do you want it to function? What information do you need to give it, what information does it need to give you? Etc...
    2. Add two more stored pieces of information to the "looppoints with sound" example, above. Make sure you can store and retrieve this information. Things you can store? There are a lot; for instance: speed, loop state, volume, time over which speed changes, time over which volume changes, the mode of the waveform~, etc...
    3. BONUS: (there's always a bonus!) Why is the coll connected to the "select all" message box? What happens if you break that connection? Why is the button there? Does it do anything, or just provide visual feedback to the user?
week 8: quiz; project introduction
week 9: project 1 presentations
week 10: graphics
week 11: midi
week 12: talking to hardware
fri-nov-27: no classes (thanksgiving)
week 13: exam 2
week 14: project 2 presentations
week 15: project 2 presentations