Advanced Multimedia Development


Course Outline for Fall 2004

Final Exam: 7 December 2004, 4:35pm-7:25pm

09/07 Introduction: bang (.ppt) Assignment #1
09/14 Max externals (.ppt) (broken_diff.c) Assignment #2
09/21 Max atoms and list (minimum.c)(thru.c) Assignment #3
09/28 Max clocks (iterateIncomplete.c)(past.c)(mymetro.c)(vario.c) Assignment #4
10/05 Max proxies (proxy) No assignment
10/12 mid-term No assignment
10/19 MSP externals (thru~.c thrugain2~.c) Assignment #5 (clok~.c)
10/26 MSP oscillators (spikeTest exampleCodes) Assignment #6

No class

No assignment

MSP modulators / filters (lpfixed~.c lp1~.c)

Assignment #7
11/16 MSP Karplus-Strong / filters (myallpass~.c) (KS_no_filter~.c) No assignment
11/23 MSP DFT/FFT [Evaluation] Assignment #8
11/30 Max/MSP User interface
PD externals


Assignment #8 (Due Dec. 6)

  • Write dft~ and idft~. Note that this will only work with small vectors (dftTest).
  • Write myfft~ and myifft~ (2 inlets & 2 outlets). Note that you have to be careful with the scaling factor (there's a bug in the handout). (Max signal vector size: 2048.)
    Reference: FFT section in Numerical Recipes

Assignment #7 (Due Nov. 15)
  • Write a clone (alea~) of MSP object rand~ that linearly interpolates between two random numbers generated at the specified frequency.
  • Write an amplitude modulator object: am~. Should have three float or signal inlets: carrier frequency, modulating frequency and tremolo depth.
  • Write a frequency modulator object: fm~. Should have three float or signal inlets: carrier frequency, harmonicity ratio, modulation index.

Assignment #6 (Due Nov. 8)
  • Write an oscillator with multiple harmonics with a list (and in the arguments) specifying strength of each harmonic. Be sure to normalize.
  • Write an oscillator with multiple harmonics (number of harmonics specified in the argument). Strength of each harmonic should be dynamically changed with inlets. Automatically adjust the overall gain. Overall phase should be adjustable. Create one wavetable once at creation.

Assignment #5 (Due Oct.25)
  • Write a clone (entonnoir) of Max object funnel (dynamically allocate structs that will store information for each inlet)
  • Write a clone (mydiv~) of MSP /~ object
  • Write a clone (myspike~) of MSP spike~ object (determine if the outlet outputs are scheduled)

Assignment #4 (Due Oct. 4) Double points
  • Write a clone (delai) of Max object delay
  • Write a clone (tuyau) of Max object pipe; do not need to use proxy and the "clock" message need not be implemented
  • Write meter_metro
    • Bang out on every beat from different outlets, up to 8 beats per measure. Default to 4.
    • Start and stop via toggle or "start" and "stop" messages
    • First argument: number of beats, second argument: tempo in beats per minute (both optional, but allow for first argument only)
    • Right inlet, beats per minute (int or float)

Assignment #3 (Due Sep. 27)

Write the following Max object clones:

  • tondre (clip) [use outlet_new() and outlet_list()]
  • ivre (drunk) [use random()]
  • moyen (mean)
Please post one folder with your name that contains project folders.
Assignment #2 (Due Sep.20)

Write the following Max externals:

  • mult object that is similar toMax built-in * object including the same assist messages (integer only)
  • div object that is similar to Max built-in / object with assist messages, (floating point only)
  • power object that is similar to Max built-in pow object (integer and floating point)

Place copies of your project folders (project files, source, the object, and a test patch) on your web site (use Finder:Find:Create Archive to create a zip file).

Assignment #1 (Due Sep. 13)

Subscribe to Max-msp mailing list

Build a simple homepage on

  • Basic personal info
  • Links to your classes
  • Place to post your assignments
  1. From your home directory, got thesubdirectory called: public_html (cd public_html)
  2. Edit the html file index.html (pico index.html)

Stephane Beauchemin
David Birnbaum
Alexander Buckiewicz-Smith
Benjamin Hammond
Bistra Ivanov
SungYoung Kim
Joseph Malloch
Ian Ratzer
Nick Shortway
Eileen Tencate
Marc Thompson
Peter Tulloch
Created: 2002.09.05 Modified: Ichiro Fujinaga
McGill Crest