### MIDI Parameter Mapping

Summary: This section describes how to create a mapping between a specific parameter of an Audio unit to a MIDI controller.

To view the MIDI mappings of an effect or AU Instrument, choose the MIDI Source item from the Inspector window of the specific Audio Unit.

Audio Units that inherit from AUMIDIBase, such as the DLSMusicDevice instrument and effects such as AULooper* support MIDI Parameter Mapping. This means that you can map a specific parameter of the Audio Unit to a MIDI device and modify its parameter value by moving the corresponding controller on the MIDI device.

The MIDI Parameter Mapping Editor

#### Adding a New Parameter Mapping

A complete map consists of five components: the Event Type, the event Signal, the Controller ID, the Channel number and the Range of parameter values to control. The event type is the first component which tells the MIDI engine which incoming signals will create a modification to the parameter. The signal types are specific to the event type and will be described below. The Controller ID, Note ID and Patch Number components correspond to the unique identifier (ranging from 0 to 127) for the given MIDI controller. The Channel component tells you which channel the MIDI signal should be coming in on, (ranging from 1 to 16). The Range component describe the range of values of the parameter which will be affected by the MIDI map. This features allows finer range control by assigning a small range of possible values to the entire controller range.

To choose a parameter to be mapped, you select it by clicking in the row corresponding to the name of the parameter. The information at the bottom of the view is synchronized to the selected row and will change its title to indicate the parameter it is displaying. The table can also be sorted alphabetically by clicking on the table column header. This facilitates finding the parameter of interest.

There are two ways create a mapping between a parameter and a MIDI controller. The first is by selecting the event from the Event Type menu, then specifying the Signal, Controller ID, Channel and Range information. This builds a complete description of the map, which is then created when the Apply Mapping button is pressed. Should you try to build a map and not supply all of required information, you will receive the notification (as seen below) informing you of the needed input before a map can be made.

The second way to crate a map is to indicate the Range (if any) of the parameter values to be mapped then select the Learn Mapping button and move any MIDI controller. This gesture will automatically fill in the information defining the map properties by determining what type of event is was, which controller was moved, and what channel it is assigned to. Similar to the above technique, if you select to map the controller to a range of the parameter values but to not specify a valid range, you will be notified to input valid range values before Hot Mapping can continue.

You may notice that note events default to Note On signals and controller events default to Any Value signals. These can be modified using the technique described in the next section. Should you change your mind and decide not to create a map once the Learn Mapping button has been selected, click it again to turn off listening for incoming map information.

##### Editing an Existing Parameter Mapping

Once you have created a mapping you can edit it by changing any one of the five components of the map. To do this, first select the mapping in the table to change. Modify any of the properties of the map using the appropriate popup menus and controls and then click Apply Mapping. This will automatically update the mapping information in the table.

##### Removing a Parameter Mapping

To remove a map, select it from the table then click the Remove Mapping button. This will also clear the table and map component information from the menus.

##### Mapping Event Types

Note: Note Events are those associated with controllers assigned to send MIDI note messages. The second popup menu button displays the note signal (defined as whether the Note On, Note Off or Note Pressure messages should signal the change in parameter value).

The third popup button allows the specification of the note ID. In addition to mapping to a Specified note ID between 0-127, you can also choose to map Any note as the Note ID. This will have the effect of applying a change to the parameter value when any note satisfying the event criteria is detected.

Controller: Controller Events are those associated with controllers assigned to send MIDI controller messages. You can select the Controller ID from the third popup menu button (which provides some common identifiers) or you can specify an ID by selecting Other and entering the ID (allowed to be 0 -127) in the text field to the right of the menu.

The additional properties of a Controller Event are the Channel and Signal (the second popup menu). The signal parameter determines whether the Any Value, On Value, or Off Value message should signal the change in parameter value

Pitch Bend: Pitch Bend Events are those associated with controllers assigned to send MIDI pitch bend messages.

The only additional component for this type of event is the Channel number and optional range.

Aftertouch: Aftertouch Events are those associated with controllers assigned to send MIDI aftertouch messages. It is identical to appearance to the Pitch Bend Event (above) in that the only additional component for this type of event is the Channel number.

Patch Change: Patch Change Events are those associated with controllers assigned to send MIDI patch change messages.

The only additional component for this type of event is the Patch Number (ranging from 0 to 127) and the Channel number.

*AULooper ships with the CoreAudio SDK and is not installed as part of Tiger