|Assignment #8 (Due Dec. 15 extended to Dec. 17) Double
Create a virtual MIDI channel mixer/recorder
- Automatically generated, at least the mixeer section
- User definable number of channels (1-16).
- Use pictslider and pictctrl
- Master Play and Record buttons
- Record and Mute button on each channel
- Recording light
- Recall slider / mute postitions (automated faders)
- Bonus points: extra features, e.g.: selectable channel number
- NOTE: During overdubbing, assume that the user needs to playback
the entire piece until the end to preserve the previous session. To
aviod accidental erasure you may want to make the stop button inactive
unless the user chooses an option switch that will allow to stop in
Assignment #7 (Due Nov. 15)
- Repeat the second question in Assignment #6 using detonate.
- Write MIDI file analyser. Should print out statistics of any MIDI
file (ignore track 10 when appropriate, e.g. pop songs):
- number and range (min and max) of notes
- average length of notes
- range and average of dynamics, graph (table)
- pitch-class distribution, graph (table)
Assignment #6 (Due Nov. 1) Extended to Nov. 6
- Using mtr create a patch to record a Bach chorale
and record a phrase of a chorale. Create 5 tracks and use one for
- Write (or borrow) a short melody with an accompaniment (e.g. quarter
note against 16th notes).
- play it with follow
- make sure it follows musically with tempo change
- please provide me with an easy way to test this (e.g. two samples
with different tempo variations). We'll play them in class.
Assignment #5 (Due Oct. 25th)
- Without using clip,
write an external patcher (tondre)
that emulate clip
for integers. It should take arguments. It doesn't have to understand
the "set" message.
- Without using minimum,
write an external patcher (minoflist)
that returns the smallest number in the incoming list. (next time:
no Trough, no if; list of floats)
- Write an external patcher prime
that is similar to Tim Place's prime
Assignment #4 (Due Oct. 11th)
- Do Tutorial 29
- Use the table object to write a monophonic MIDI sequencer in Max
Assignment #3 (Due Oct. 4th)
Create the following in Max:
- MIDI echo. Repeat the input note three times with decreasing velocity,
the delay between the notes should be variable.
- MIDI arpeggiator. Arpeggiate a bass note (notes below middle C)
until the next bass note is hit. Note above middle C should play normally.There
should be a stop button. Make at least three different chord types
(major, minor, dominant 7th, etc.), which should be user selectable.
- Random pentatonic melody generator. It should have three-octave
range but without melodic leaps greater than an octave. Three differnent
note lengths should be produced where shorter notes are more frequent
than longer notes.
Assignment #2 (Due Sep. 28th)
- Convert age in years to number of days ignore leap years
- Convert age in years to number of days take into account leap years.
“The calendar year is 365 days long, unless the year Is exactly
divisible by 4, in which case an extra day is added to February to
make the year 366 days long. If the year is the last year of a century,
e.g. 1800, 1900, 2000, then it is only a leap year if it is exactly
divisible by 400. Therefore, 1900 wasn't a leap year but 2000 was.”
- Display numbers continually from 0 to 1000. Should have start/pause
button and a stop button (hint: use select and counter).
Assignment #1 (Due Sep. 24th)
Build a simple homepage on www.music.mcgill.ca:
- Basic personal info
- Links to your classes
- Place to post your assignments
- From your home directory, create a subdirectory called: public_html
- Create an html file ans save as index.html (use pico)
- Loy, G. 1985. Musicians make a standard: The MIDI phenomenon. Computer
Music Journal 9 (4): 8--26.
- Moore, F. R. 1988. The dysfunctions of MIDI. Computer Music
Journal 12(1): 19--28.