Exercise F

Exercise F: External Continuous Control of Max

We continue our exploration of external hardware for controlling Max by investigating two popular devices: the Gametrak and the Wiimote.

The Gametrak is a wired controller featuring two joysticks, each of which has a retractable string (often called “tether”) that provides you with a Z axis, in addition to the X and Y axes of the joystick. The tether connects to the base of the joystick with fishing line. The absence of any wireless technology in the Gametrak makes this device very reliable and easy to use. Its long tethers (about 10 feet) also allow for expressive use by dancers or musicians who like to move around. The absence of wireless technology also meant that this device died in the gaming marketplace. (It was originally sold as a controller for a golf game.) So they are no longer easily obtainable.

The much more well-known Nintendo Wii Remote (a.k.a. Wiimote) connects to the computer using Bluetooth and provides several buttons, as well as gravitational measurements in three dimensions, which let you track your arm motions. You can also shake the Wiimote to generate a trigger. To make the Wiimote work with Max, we use a Mac-only application called OSCulator. This app receives raw data from the Wiimote and converts it to MIDI or Open Sound Control (OSC) messages, and then sends these to Max using an appropriate transport scheme (Inter-application MIDI or Internet Protocol). It also simplifies Bluetooth pairing of the Wiimote with the computer.

We will work with these two controllers and also learn how to derive triggers from continuous data and route data to different musical parameters.


We’re learning how to...

  • get the Gametrak and Wiimote working with a Mac;
  • generate triggers in Max using continuous data, as opposed to the buttons we used last time; and
  • route data from any device to multiple destinations in turn.

How to Do This Exercise

Working on the assignment is a two-stage process.

  1. Download Exercise F Max Tips. This folder of Max patches introduces the use of Gametrak and Wiimote controllers and covers some techniques for deriving triggers from continuous data and routing the data. Open them in Max in order, reading the comments and operating the patches.
  2. Then make ONE of the following patches.
    • Make a patch that takes input from a Gametrak and controls some parameters for a patch built using Auzzie modules. Try to derive at least one event trigger from the continuous data the Gametrak produces. For example, you might want to play a sound file when you raise one of your arms. If you change parameters in the Auzzie modules, be sure to use a pattr preset so that the parameters can be restored when you open the patch again.
    • Make a patch that takes input from a Wiimote to control some parameters in a Max patch. You may use Auzzie for this, if you wish, or repurpose some of your native Max code from previous Exercises. Try to use some buttons on the Wii, as well as some continuous control.

You are not required to route data from one of these controllers to more than one musical parameter, but you should consider trying, since this may be necessary when developing a piece.

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

  • !-
  • past
  • int
  • change
  • speedlim
  • gate

Also know about the Auzzie GAMETRAKR module and the Vizzie SMOOTHR module (found in the Vizzie > CONTROLLER category).

Submission and Grading Criteria

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

If your patch requires sound files or a pattrstorage JSON preset file, please put those in a folder along with your patch before creating a ZIP file and submitting it.

Your patch must

  • operate correctly and
  • implement the functionality described above.