Advanced Multimedia Development


Course Outline for Fall 2005

Final Exam: 5 December 2005 2pm-5pm E230

09/20 Introduction: bang (.ppt) Assignment #1
09/27 Max externals (.ppt) (broken_diff.c) Assignment #2
10/04 Max atoms and list (minimum.c)(thru.c) Assignment #3
10/11 Max clocks (iterateIncomplete.c)(past.c)(mymetro.c)(vario.c) Assignment #4
10/18 Max proxies (proxy) No assignment
10/25 Interrupts; MSP externals (thru~ thrugain2~.c) Assignment #5
11/01 mid term; MSP oscillators ( Assignment #6

Schedulers (

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

Assignment #4a
11/15 MSP Karplus-Strong / filters (myallpass~.c) (KS_no_filter~.c) Assignment #7
11/22 MSP DFT/FFT [Evaluation]  
11/29 Max/MSP User interface
PD externals
Assignment #8


Assignment #8 (Due 12/06)

  • 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 11/21)
  • 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 #4a (Due 11/14) 6 points
  • Write a clone (tuyau_proxy) of Max object pipe using proxy (3 points). Make sure that more than one number can be delayed at a time (3 points).

Assignment #6 (Due 11/07)
  • 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 11/02)
  • Write a clone (entonnoir) of Max object funnel (dynamically allocate structs that will store information for each inlet)
    • You may want to satrt with proxylist that sends out bangs
  • Write a clone (mydiv~) of MSP /~ object
  • Write a clone (myspike~) of MSP spike~ object (determine if the outlet outputs are scheduled: spikeTest )

Assignment #4 (Due 10/17) 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 10/10)
Write the following Max object clones:
  • tondre (clip) [use outlet_new() and outlet_list()]
  • ivre (drunk) [use random()] (iverIch.c)
  • moyen (mean) (moyenIch.c)

Please post one folder with your name that contains project folde

Assignment #2 (Due 10/03)

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:File:Create Archive to create a zip file)

Assignment #1 (Due 09/27)

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)

Greg Eustace
Alexandre Savard
Eileen Tencate

Created: 2002.09.05 Modified: Ichiro Fujinaga
McGill Crest