Category Archives: max-assignments

max max-assignments

(max) midi performance project

Project 1 | MIDI Performance Patch
DUE: 2/10/14

ASSIGNMENT: to create a MIDI performance patch that utilizes the several different methods of data manipulation to control basic MIDI parameters. You will perform the resulting composition in class during a performance session.


  1. This project will build upon the MIDI manipulation techniques that we have discussed in class. Your objective should be to use the data storage objects (tables, histograms, coll, umemu, tab, etc) to control basic MIDI parameters (pitch, velocity, program change, duration). You may include an LCD with your patch if you wish. You should make every effort to be creative with this project. Draw upon your knowledge of experimental art music forms and unique beat-based compositions.
  2. You should complete a composition to perform that is ONE MINUTE in length. Some elements to consider include: changing pitch ranges, durations, velocities both within sections, and within gestures. Your composition should feature some real-time controls (either mapped to the computer keyboard or a MIDI device) and at least 3 different musical ideas.
  3. Write a brief report (two pages, typed, double spaced, 12-point font, 1 inch margins) describing the sounds you chose to use, the use of your Max patcher to control sound parameters, the use of your Max patcher to control performance, and any real-time input via keyboard or MIDI controller that you use. In your report, also briefly summarize the central organizing idea of the composition/improvisation, and describe the formal structure (or organizing aural features). Make any other comments you feel are relevant.


  1. At least 5 controllable parameters. This may include pitch, velocity, duration, program changes, range of pitches used, offset of patterns, etc.
  2. Your project should be at least 1 minute in duration.
  3. Your project should make use of layering as means creating a complex sonic texture.


  1. Your Max patch should be labeled “yourLastName_yourFirstName_MIDI.maxpat”.
  2. Your studio report should be labeled “yourLastName_MIDI”.
  3. All of these materials should be placed in a folder labeled “yourLastName_MIDI_450”.
  4. The folder “yourLastName_MIDI_450” should be zipped into a folder.
  5. Submit by the due date, beginning of class, via iLocker, yousendit, dropbox, etc, with a link emailed to me.


  1. Creativity of patcher and performance (30 pts).
  2. Neatness and documentation via comments (and/or send/receive as appropriate) (15 pts).
  3. Meeting the 1-minute length of performance and having the required 5 parameters under patcher control/variation (10 pts).
  4. Following turn-in procedure (5 pts).

60 points total

max max-assignments

(max) first tutorial patchers

After downloading and setting up Max, work through the following tutorials before Wednesday’s class:

  • Basics: 1 – 7, through numerical user interfaces
  • MIDI: 1 & 2

You should also take a look at the random object (in the documentation window shown below, choose Objects, then list by A – Z).

We will have an in-class assignment that uses information learned from the above tutorials and the random object.

You access the tutorials through the Help menu. Choose Help | Max Tutorials to open the window (shown below).



The tutorial topics are grouped on the left without numbers. If you choose the “Tutorials” tab on the right, you get grouped, numbered tutorials.

computerMusic3 laptop ensemble max-assignments max-lecturenotes Uncategorized

motu drivers

download the motu drivers for the ultralite in studio 9 HERE.

computerMusic3 max-assignments max-lecturenotes

Final Project Guidelines (maxmsp)

Your Final project is an audio performance patcher. Download them HERE.

computerMusic3 max-assignments

(maxmsp) Project 1: MIDI Performance Patcher

Guidelines for your first project:  MUMET242_MIDI

Due date (performance date): 2/13 during class

computerMusic3 max-assignments

(maxmsp) poly~ assignment

Due Friday, April 8th:

Create a polyphonic synthesis patcher with selectable presets.

Your patcher should contain

  • some form of synthesis using at least two oscillators (additive, AM, FM),
  • a filter of some type,
  • and presets for changing patcher parameters, including envelopes, durations, frequencies and frequency ratios, and filter settings.

Extra credit for envelope/lfo control of pitch and/or filter settings.

Include your last name in your patcher filename, and put your name as a comment in your patcher.

As always, try to keep your patcher layout neat, and include comments to help me follow your work.

computerMusic3 max-assignments

(maxmsp) amplitude modulation assignment

Due Friday, March 18.

Using the MSP Tutorial 9 as your starting point, modify the patcher to

  • allow for envelope control of the modulator amplitude;
  • use a ratio to obtain the modulator frequency;
  • create four different presets.

You will need change the expr object in the offset section to a <!-~ 1.> object to use with an envelope function.

Make sure you include your last name in your patcher filename that you turn in to me via email.

computerMusic3 max-assignments

(maxmsp) extra credit: mapping amplitude entirely in dB

Due Friday, 3/18:

For an extra credit grade (40 points, whatever category helps you most), fix this patcher: BasicSynthEnvSusKeyVelocityDB.maxpat

Key velocity is being scaled to dB. The function object is formatted to express amplitude as dB (-60. –  0. y value range). Multiplying the key velocity dB times the output of the function-to-line~ will not work. Consider, a maximum velocity of 127 scales to a dB value of 0. Zero times anything is zero, so the result of the function-line~ pair is no amplitude change. Non-zero values multiplied together will produce larger numbers, so multiplying -6 dB times -6 dB returns -36 dB, a significantly lower amplitude.

You must keep the dbtoa~ conversion object after whatever fix you supply. In other words, you have to apply the key velocity as dB to the envelope function as dB.

Your solution should happen inside the red oval.

computerMusic3 max-assignments

(maxmsp) Basic Additive Synth Assignment

Due Friday (3/4), via email

Create a basic synthesis patcher that allows for two-0scillator additive synthesis, and create five interesting presets to demonstrate your synth. Use BasicSynthEnvelopes.maxpat as your model. (BasicSynthNumbers.maxpat also uploaded)


  • Two oscillators required; oscillator type may be oscil~, saw~, or triangle~.
  • First oscillator has a float number box to input frequency. Second oscillator frequency is determined by a ratio setting.
  • You must have at least one amplitude envelope. If you have only one amplitude envelope control, it will control the amp of both oscillators. Use the function object to create your envelope(s). You must use a domain message to set the overall duration of the envelope.
  • You must be able to set the overall amplitude of the second oscillator as a proportion of the first oscillator amplitude.
  • Notes should be triggered by a bang, spacebar, or other specified computer input.
  • You need five presets saved for your patcher frequency and amplitude settings.
  • The preset object should store fundamental frequency, frequency ratio (of second oscillator), amplitude envelope(s) including duration, and relative amplitude of the second oscillator.

If you complete the assignment patcher (and only if) you can modify the patcher to have switchable waveforms for extra credit. No clues offered as to how to accomplish this task.

computerMusic3 max-assignments

(maxmsp) Project 1 Guidelines

Working version due 2/23.
In-Class Performance 2/23 (and 2/25 if needed).
Revisions due 2/28.

Using Max/MSP create an interactive/algorithmic performance patcher and perform a short interactive MIDI work during class.

Projects should meet the following guidelines:

  • Performances should last at least 1 minute (longer if very sparse or slow).
  • Patchers should generate MIDI notes (using the makenote object).
  • Patchers should respond to user control and/or input from a computer keyboard, MIDI keyboard, or mouse.
  • Patchers should operate under some set of constraints – i.e., you can not just generate random values drawn from all twelve pitch classes, or any possible rhythm or duration for playback.
  • The patcher and your performance should demonstrate musical changes over time – i.e., constraints change, elements start and stop, the amount of activity changes, etc.

You will be graded on the following criteria:

  • (40 pts) Musical creativity, defined as being able to program a patcher that generates interesting musical output in response to user control as demonstrated by your in-class musical performance. Meeting the required length is included in the creativity category.
  • (40 pts) Programming achievement, defined as creating a structured patcher that performs tasks in a predictable way, and uses Max objects according their intended use. Well-programmed patchers will open with preset/initialization messages that allow for the musical performance to begin with very minimal user input. The programming achievement grade will include your ability to make minor revisions and correct errors in your patcher based on your experience performing the patcher.
  • (20 pts) Program documentation and aesthetics, defined as using comments and layout in such a way that I can easily interpret the intent and function of your patcher. You should make use of presentation mode to create a performance interface that is clean and easy to interact with, while maintaining a clear programming layout to your patcher as a whole.

You will turn in all files necessary to perform your project to me by email by the beginning of class on 2/23. Performances will take place on the 23rd (and 25th if necessary) in class. You will then have the opportunity to make minor changes/additions to your patchers to address issues that arise during the performances, and turn the revised version of the project to me by Feb. 28th. The ability to clean up and correct errors in your program will factor in your programming achievement grade.