syllabus

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

week/datesexamples, patches, homework assignments
week 1: introduction to programming;
basic sound playing and recording
fri-aug-28
week 2: basic video playing and recording
fri-sep-4
week 3: playing sound from a buffer
fri-sep-11
fri-sep-18: no classes (holiday)
week 4: keyboard control of sound and video;
encapsulating and mixing
fri-sep-25
week 5: mouse control of sound and video
fri-oct-2
week 6: miscellaneous objects
(bangbang, counter, gate, histo, umenu)
fri-oct-9
  • 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 jit.qt.movie
    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
fri-oct-16
  • 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
fri-oct-23
week 9: project 1 presentations
fri-oct-30
week 10: graphics
fri-nov-6
week 11: midi
fri-nov-13
week 12: talking to hardware
fri-nov-20
fri-nov-27: no classes (thanksgiving)
week 13: exam 2
fri-dec-4
week 14: project 2 presentations
fri-dec-11
week 15: project 2 presentations
fri-dec-18