# MUMT402

### Course Outline for Fall 2006

Final Exam: 7 December 2006 8:45am in MTCL

 09/05 Introduction: bang (.ppt) Assignment #1 09/12 Max externals (.ppt) (broken_diff.c) Assignment #2 09/19 Max atoms and list (minimum.c)(thru.c) Assignment #3 09/26 Max clocks (iterateIncomplete.c)(past.c)(mymetro.c)(vario.c) Assignment #4 10/03 Interrupts; Max proxies (proxies) Assignment #5 10/10 Thanksgiving: No class 10/17 MSP externals (thru~ thrugain2~.c) Assignment #6 10/24 MSP oscillators (oscils.zip) Assignment #7 10/31 Schedulers (schedulers.zip) (mySpikeTest) 11/07 Mid-term exam (missed) 11/14 Mid-term exam 11/21 MSP modulators / filters (lpfixed~.c lp1~.c) Assignment #8 11/28 MSP Karplus-Strong / filters (myallpass~.c) (mycombTest.zip) (KS_no_filter~.c) 12/05 MSP DFT/FFT (dft_Incomplete.c) Max/MSP User interface PD externals

### Assignments

Assignment #8 (Due 12/03 11:59pm)
• 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 (see Tutorial: 09. Amplitude Modulation.pat).
• Write a frequency modulator object: fm~. Should have three float or signal inlets: carrier frequency, harmonicity ratio, modulation index (see Tutorial: 11. FM synthesis.pat).

Assignment #7 (Due 10/30)
• 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.
(Examples)

Assignment #6 (Due 10/23)
• Write a clone (mydiv~) of MSP /~ object.
• Write a clone (mtos~) of MSP mstosamps~ object.
• Write a clone (stom~) of MSP sampstoms~ object.
• Write a clone (moyen~) of MSP average~ object (test_one). Make sure that the CPU usage is similar to "abolute" and "rms" modes (test with at least 10 copies of the object in your test patch) (test_many).

Assignment #5 (Due 10/16)
• 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 (tuyau_proxy) of Max object pipe using proxy. Make sure that more than one number can be delayed at a time.

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

Assignment #2 (Due 09/18)

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; no need to exactly emulate the argument behavior).
• 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/11)

Subscribe to Max-msp mailing list

Build a simple homepage on www.music.mcgill.ca:

• Basic personal info