the controlAid concept:
controlAid was designed to help maximize the use of MIDI controllers with Live. Although primarily intended for Live users, it could also be helpful when used with any program that allows you to custom map midi messages to selected controls. The program currently works under Mac OSX 10.3 (Panther) only.
Quickstart:
1. Map one of the sliders or knobs on your controller to send cc 10.
2. Program any other sliders or knobs to send cc 30 - 39.
3. Launch ControlAid. Under midi/prefs, choose your controller as one of the MIDI inputs.
4. Start LIve and open the cAidMidMap file included in the download
5. In Lives preferences, under MIDI/Sync set controlAidOutput to either Remote Control 1 or 2.
6. Put some clips on tracks 1 through 6 in the first 6 slots. Start playback in Live.
7. Use notes F#2 through D#3 and the cc messages you mapped earlier to control the parameters for a given track.
8. Use the knob you mapped to cc 10 to control which track you are controlling.
9. Look at how the MIDI messages are being manipulated in the perform tab of controlAid. Take a look at the midi map for the Live document to get a feel for what's happening.
controlAid does the following:
- divides your control change and note messages into 8 groups, or "tracks" in Ableton speak.
- assigns one control change message to be used as the track selector
- once you choose a track using the track selector your sliders, knobs and buttons now control parameters for the selected track.
- this allows the same set of NoteOn messages and CC messages to control the same parameters on every track. For example, you could have two knobs which control the volume and pan on 8 different tracks, all depending on which track is currently selected.
- converts program change messages to note on messages for people with foot controllers that only send program change.
- allows you to delete a selected clip in Live using a user-defined note on message. This is useful for deleting clips from a pedalboard in the event you create an undesirable loop.
- allows you to have three "one-to-many" note on or cc triggers. When these notes or cc messages are received, controlAid will create 3 additional cc / note on messages as defined by the user. Examples of use include triggering 4 one-shot clips with a single note, or controlling the cutoff frequency for the filters of 4 different tracks with a single knob, slider or pedal.
- when a track is selected for control, it is automatically selected and highlighted in Ableton Live so that you can view the effects for the track you are now modifying.
controlAid works by modifying selected note on and cc messages. There is a user defined lower limit for each of these, so that note on and cc messages below a specified point will not be modified by the program. The program boosts whatever note on or cc messages it receives above these limits by a factor of 10, depending on which track is currently selected.
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. It has triggers for six slots on 7 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 appropriate track until a new one is selected.
To make your own MIDI Map to work with controlAid, define cc messages (up to 10) and note on messages (also up to 10) for the first track in your setup to control whatever parameters you wish. On each successive track, simply boost the value by 10 for each cc or note on message. A quick exmample is below:
track 1 [pan: cc 30] [volume: cc 31] [slot1: note on 64]
track 2 [pan: cc 40] [volume: cc 41] [slot1: note on 74]
track 3 [pan: cc 50] [volume: cc 51] [slot1: note on 84]
... and so forth. Below is an example of a MIDI map for two aux sends on three adjacent channels. 
Explanation of individual controls is given below.
controlSelect chooses which CC message is used for track selection
changeCC >= controlAid will only change CC messages greater than the value selected here.
noteNum >= controlAid will only change note on messages greater than the value selected here.
track the current track which is being controlled.
msg the type of message which last past through controlAid
start the initial value of the last message to pass through controlAid
end the modified value of the message after being transformed by controlAid
midiSource the first source of midi messages to be modified. Select your control device from this menu.
midiSource2 a second device whose messages can be modified by controlAid.
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 if you make a mistake.
alwaysOnTop keeps controlAid on top of all other windows when checked.
alpha sets a transparency value for the window if desired.
cc/nt toggles these choose whether cc or note on messages are being created when the trigger note / cc message is received.
message / noteOn select the knob to the right of the toggle allows you to choose which cc or note on messages will trigger transformation.
new messages the knobs in the right part of the window allow you to choose which new note on or cc messages will be created when the trigger note/cc message is received. A value of 0 means that no duplicate notes or messages will be created.
Other things to note:
- YOUR MIDI DEVICES MUST BE TRANSMITTING ON CHANNEL 1. Hopefully a future revision will allow for channel selection.
- controlAid highlights tracks in Ableton live by sending note on messages that are equal to the currently selected track. If you want to create your own MIDI map to use with Live, you need to map the select control of each track to note on messages 1-8. If you are not using Live, don't map controls to note on messages 1-8.
- The cc message used for track selection will not be passed through to the application.
- to use controlAid, start it up, select your MIDI input sources and then choose "controlAid output" as an input for MIDI in the application you want controlAid to work with.
Enjoy! I can be contacted at charlie@charlie-roberts.com for help and hopefully suggestions. This program is freeware.
towards the future
- add the ability to save and load presets
- add more user-defined features; for example the number of groups and how many values can be used per group
- clip-fill mode: When enabled, the same note pressed repeatedly will trigger descending slots in the selected track. Press the note once, start recording. Press the same note again, and you are recording into the next slot. Press again and you're recording into slot three. There will be a noteOn message that can enable / disable clip fill mode so that you can quickly return to regular triggering.
- possibly basic MIDI lfos.
- 10.2 (jaguar) version if it is clamored for.
version History
0.62 current - made program compliant with Jaguar. Finally created working deployment build.
0.61 - fixed nasty MIDI bug that would not allow controlAid to accept input
0.6 - added one-to-many feature
0.5 - added delete clip feature
0.4 - added pgm change to note on feature
0.3 - added track selection note on messages for Live
0.2 - added always on top, window transparency and 2nd MIDI source
|