controlAid works by modifying the channel that note on and cc messages are outputted to. There is a user defined lower limit for modification, so that note on and cc messages below a specified point will be passed through to their destination without change by controlAid.

In order to work, a customized MIDI map must be created for the application controlAid is going to work in conjunction with. I have included a map for Ableton Live, and a mixer map and synth map for Reason. The Live map has triggers for 9 slots on 8 different tracks and scene triggering on the master track. Stop, record enable, pan, volume, send 1 and send 2 controls are also mapped for each track. I have also placed an Auto Filter on each track with controls for cutoff, resonance and envelope modulation. And finally, Bitcrusher control on the master track.

All of the parameters mentioned above have the same controls assigned to them when used with controlAid (with slight differences for the master track). As soon as you select a track number using controlAid, cc messages and note messages will be routed to the selected track until a new track is chose. To the left is an example of how the clip triggering and aux sends are setup in a custom map for Live. Notice how the tracks are set to receive the same note on or cc messages, but on different channels (the channel is the first number listed in by each control).

To make your own MIDI Map to work with controlAid, define cc messages and note on messages for the first track or device in your setup to control whatever parameters you wish. On each successive track, simply set the track to receive the same messages but on a different channel.


Explanation of individual controls is given below.


play

mouseMode tells controlAid to generate MIDI messages based on the movement of your mouse/trackball. There are three different sets of CC messages that can be created which can be used together in any combination. mouseMode one is triggered with the keystrokes cmd+1, mouseMode2 is cmd+2, mouseMode3 is cmd+3. controlAid must be the active window and the play tab must be selected to use mouseMode.

clipFillMode This enables you to quickly cycle through a user defined range of clips, either for playback or for recording. Once turned on, everytime you repeat a note its note on value will be incremented by 1. If your clips are MIDI mapped incrementally (such as in the provided MIDI map for Live), this will have the effect of triggering the next clip in the track. There is a user defined range in the midi/prefs sections which determines how high a value can be altered. Once you have reached the maximum value, you will retrigger the initial note and restart the loop.

fillRange set the number of note on messages that clipFill mode will cycle through before returning to the intial triggering note.

alwaysOnTop makes the controlAid window always float above all other applications.

lockWindowPosition locks the window down so that you don't accidentally move it. The lack of a titlebar enables you to position it under the main menubar of the Finder, so that it takes up less screen real estate. You can then tab through the sections using cmd+option+tab.

alpha sets a transparency value for the window if desired.

display the display section shows what channel controlAid is currently outputting MIDI messages to.

input and output

midi matrix The midi matrix allows you to assign the input sources in the first column to the virtual outputs of the last three columns. Two of the input sources are selectable, the last source is dedicated to note and cc messages that controlAid creates from scratch such as mouseMode messages, the messages generated by pressing cmd+7, cmd+8, cmd+9 and cmd+0, and finally the notes created when you change channels that are used to trigger track selection in Live.

The three columns to the right are where you decide which outputs these input sources will be mapped to. Below the name of each output are buttons labelled "n" and "cc". These buttons allow you to select whether the corresponding output will receive noteOn and noteOff messages, CC messages, or both. If you want to map a particular input to a particular output, just check the square where the input row and output column intersect.

mouse to midi

xAxis Allows you to select which CC message will be sent assigned to the x axis of your screen for each mouseMode

yAxis Allows you to select which CC message will be sent assigned to the Y axis of your screen for each mouseMode

switchChn# Determines if each mouseMode is affected by the current channel selected using controlAid. If this box is not checked, the associated mouseMode will output on channel 1. If it is checked, the associated mouseMode will output on whichever channel is currently selected by controlAid. This allows you to have mouseModes that always control the same parameters, or mouseModes that will control parameters for the currently selected track/device.

one to many transform

oneToMany is used to have single noteOn/CC messages trigger multiple output messages. The table on the left is used to define the starting single trigger notes. When a row in the left table is selected, the table on the right shows all the output messages associated with the selected trigger note. You can have as many output messages per trigger note as you wish, and you may also have as many trigger notes as you wish. There are three fields that can be used to modify the ending messages to create different effects, as detailed below. NOTE: If you place you assign the same note/cc to an endnote as the startnote that creates it, controlAid does NOT produce two noteon messages for the same note. Instead it creates a single note using the invert, max, and min settings specfied in the endnote section. This allows you to apply these settings to incoming messages as well as any additional messages created by one to many.

+ and - the two buttons on the left of the window will allow you to add/delete notes that trigger one to many transformations. The two buttons on the right of the window will allow you to add multiple output notes/cc messages for each trigger identified in the startNum column.

#1 the text field to the right of the plus/minus buttons allows you to choose which cc or note on messages will trigger each transformation.

note/cc use this checkbox to choose whether cc or note on messages are being created when the trigger is received. Check the box for note on messages, leave it unchecked for CC messages.

end this column allows you to define end messages to be created when the selected startNum is triggered.

chn allows you to choose what channel the end messages will be sent out on.

inv Checking this box inverts the value/velocity of the newly created message. For example, if your start message had a velocity of 30 and you inverted the end message, the end message would have a velocity of 97 (127 - 30). If your start message had a value of 120 and you inverted, the end message would have a value of 7. This is useful for creating crossfades between different effect parameters, and can also produce some interesting results when used to trigger multiple samples at once. The louder the triggering start note is the softer the end one will be once inverted.

min when used with the max control, these two fields allow you to define a range for the transformed value. This has many uses, one would be to limit the cutoff frequency of a filter to a narrow bandwidth, another would be to make sure that all notes played have a minimum velocity value. The value of 0-127 from the start note is SCALED to fit the range defined here, so you can still used the full turn of your knobs when this feature is on, the result will just be scaled down by the appropriate amount.

other

cmd+7,8,9,0 note on These allow you select noteOn messages and velocities to be triggered by the corresponding keystrokes. IMPORTANT: cmd+5 is permanently mapped to decrease channel selection, cmd+6 is mapped to increase it. cmd+4 is mapped to delete clips in Live. You can map any of these keystrokes to a device like the Griffin PowerMate, or to a joystick if you use a program like GamePad Companion.

channelCC channel selection in controlAid will be controlled by this selectable CC message.

msgAlter >= controlAid will only change cc and note on messages with values higher than the one selected here.

clipFillOn select a note on message to start and stop clipFill mode.

prg->note converts program change messages to note on messages when checked.

deleteClipNoteOn When the selected note is played, the clip that is currently selected in Live will be deleted. Trigger this from your footpedal to avoid having to reach for the computer keyboard when you make a mistake.