Exercise 3

Exercise 3: MIDI Control of Auzzie

We continue to develop our Auzzie skills and think about how we might perform live with an Auzzie patch, controlling it via MIDI hardware and/or Max sliders.


We’re learning how to...

  • use Auzzie sound player modules,
  • adjust parameters using external MIDI controls, and
  • organize complex patches using encapsulation.

How to Do This Exercise

Working on the assignment is a three-stage process.

  1. Download Exercise 3 Max Tips. Open them in Max in order (part 1, then part 2, etc.), reading the comments and operating the patches.

    The material about encapsulation may seem very obscure. Don’t worry, but do keep coming back to review this material as we go along. Eventually, it will start to make sense. Understanding encapsulation and how to implement it is the key to putting together patches that are reliable and extensible. The same goes for Pattr presets: it takes a while for people to understand this.

  2. Make a patch that uses one or more Auzzie sound players and one or more Auzzie synthesis layers. Use effects and routings that sound good to you.
  3. Work on your generative patching skills to develop some pitch ideas for the synthesizer(s) that are different from what you did in the last two exercises.
  4. Control your patch using MIDI hardware, mapping sliders or knobs to Auzzie parameters.
  5. Perform a short passage using the MIDI hardware. You can start your note generator(s) on the computer, and then start using the MIDI hardware to shape the output. This can be improvisatory, but have a basic idea of what you will do and how it should sound.
  6. Use pattrstorage to create a preset file. See if you can use MIDI to change presets. There are several ways to appoach this, and we don’t know enough yet to use some of those ways. Remember that float input to the pattrstorage object will interpolate between presets.

See the Requirements and Suggestions section below for details.

Be sure you understand what each of these Max objects does:

  • ctlin
  • the p object (and the Edit > Encapsulate command)
  • inlet, outlet (in subpatches)

Also, experiment with (at least) these Auzzie modules:

  • APLAYR, STRIKR, 1SHOTR (players)

Requirements and Suggestions

  • Put a AFADR-H at the end (bottom) of each layer. This lets you control the volume of each layer independently.
  • For MIDI control, you can use the Korg nanoKONTROL in the studio. It plugs into the computer using USB. Find out what controller number each fader and knob emits, so that you can use the ctlin object correctly. (You can use the MIDItester command in the Extras menu in Max to find out.)

    You will need to scale the range of values coming in from MIDI so that they work with Auzzie module parameters. There is an example of this in Max Tips part 2.

    If you don’t have access to such hardware, you can use Max sliders.

  • You might use MIDI to control the volume of multiple layers, or control the CROSSFADR module to change the balance between two layers.
  • For pitch ideas, You might try different pitch collections, different ways of accessing them (ordered vs. random), automated change of register (transposing by varying numbers of octaves), applying arithmetic operations (+, -, *, /, %) to pitches.
  • Try putting data other than pitch into tables, such as velocity or values that control any Auzzie parameter. Note that itable will not store floating point numbers, only integers. But you can store a MIDI range of values (0-127), and then scale the result into 0-1 when you pull it out of the table.
  • Managing Max’s idea about the location of a sound file can be tricky. The best strategy is to put the sound file in the same folder as your patch, and only then drag the file into your patch. Auzzie is happy to store the locations of sound files wherever they are on your disk, but some other Max objects have a harder time. In any case, copying your patch onto someone else’s computer could cause your patch to be confused about the location of your sound file. There is a way around this that we will discuss later, but for now we will try to ignore the problem. If the file is in your patch folder, then it’s easy to drag it back into your patch, if necessary.
  • You may see evidence of clipping on the meters built into the FADR and some other Auzzie modules. (The top portion of the meter lights up orange or red.) It’s important to know that this affects your final output only when you see it on the final meter built in to the OUT (or OUT-H) module.
  • The performance aspect of this exercise is an essential part of the experience! Don’t ignore it!


  • Place in a folder your Max patch, the .json presets file used by the pattrstorage object, and any sound files you use.
  • Compress the folder, and submit it to Canvas.
  • Be sure to satisfy the criteria listed above.

Grading Criteria

This exercise is graded pass/fail. You must submit the exercise by Thursday midnight to be eligible for a pass.

Your patch must

  • operate correctly and
  • implement the functionality described in the “How To Do This Exercise” section above.

Also, you must perform your patch during tutorial. If you can’t get your patch working the way you want before tutorial, you can perform it the following week.