DMP / Synth Theory
Course Outline (Spring 2000)
C style tips
00/01/19: First class
C Review (3 weeks)
Writing Max external objects (3 weeks)
- Max External Tutorial 2.22
00/02/21-25: Audition week
- Writing Pd external objects (1 week)
Converting Pd objects to Max objects (1 week)
00/03/20-24: Spring Break
- 00/04/27: Sockets
- 00/05/04: Shared Memory
00/05/17: Final project due
PD Standard Library
Standard MIDI File format
Writing Efficient Programs - 27 Rules
The Art of Assembly Language Programming
Assignment #5 (due 00/03/09) Submit hardcopy, the source, and the object
- Write a meter_metronome MAX external:
- Started by a bang or "start" message.
Stopped by a "stop" message
Adujstable tempo via the right inlet. Use beats per minute (float or int)
for the tempo.
The left outlet should send a bang per measure, where number of beats is
specified as an argument (defaults to 4?)
A variable number of outlets should be created, depending on the number of
beats, so that bangs are sent out on each outlet successively (like
There should be two optional arguments: First argument should be number of
and the second argument should be the starting tempo.
- Write a plus~ MSP external that behave exactly like the
- Write a square~ MSP external that generates true square
should have an inlet to change frequency and another inlet for variable
duty cycle (range of 0 to 1, specifying the proportion of the high level
to the low level). A normal square wave will have 0.5 duty cycle.
Assignment #4 (due 00/03/01) Submit hardcopy, the source, and the object
- Write an external that is functionally same as the "-" (minus)
object in MAX. It should hae "assist" strings.
- Write an external avg which takes a list of integer or
floating-point numbers and output the average (floating-point). The result
should be internally stored
so that a bang input will also output the result. The maximum list (array)
size of the input should be at least 30.
- Write an external movavg that calculates and outputs the
average of int or float input. The number of terms used in the average
(N) should be speicified in the argument of movavg or if not specified,
defaults to a certain number. Also provide a right inlet to change the
number of terms (N) to be used. Make a sensible strategy when the number
of elements in the list is less than N.
Hint: You should use a circular queue.