Main Window Menus Preferences Setup Window
Info Help Index |
LXConsole Setup-> MIDI The MIDI tab of the Setup window allows editing of a list of actions that can be triggered from MIDI "note on" and "control change" messages. Action commands triggered by MIDI can be a command executed from the command line, a "GO" type button command that is run by the Live window, or control of a fader in the Channel Controls or Live window. Actions triggered by the MIDI note on messages appear as "on-1" to "on-127". Actions triggered by MIDI control change actions are distinguished by the control number written "cc-1" to "cc-127". A trigger value of "on-60" corresponds to a middle-C note on message. A trigger value of "cc-16" corresponds to a control change for General Purpose Controller 1. Actions triggered by the MIDI note off messages are written, "off-1" to "off-127". A trigger value of "off-60" corresponds to a middle-C note off message.
MIDI note on messages with zero velocity can control a separate action from a note on messages with a non-zero velocity. These actions are triggered by the MIDI note number written, "zv-1" to "zv-127". An action with a trigger "zv-60" will be performed when a note on with zero velocity for middle-C is received. If both "on-60" and "zv-60" triggers are defined, the action with the "zv-60" trigger will be performed when a middle-C note on with zero velocity is received. MIDI note on/off and control changes trigger actions when they are received with a MIDI channel that corresponds to the default channel set in the MIDI tab of the preferences. Note on, note off and control change triggers can be set to a specific MIDI channel by appending a colon followed by the channel in the trigger column. "cc-2" will trigger its action when control change two is received on the default MIDI channel. "cc-2:3" will trigger its action when control change two is received on MIDI channel 3, regardless of the setting of the default channel. The one exception is that when channel 16 is set to control the buttons in the Live window, other messages on channel 16 cannot be used as triggers. MIDI program change messages trigger actions by a combination of channel number and program number. These actions are written "pc##-nn". Where ## is the MIDI channel and nn is the program change number. An action triggered by changing the program of channel 3 to trumpet would be shown as "pc3-57". The Detect button allows you to detect received MIDI triggers. Clicking this button causes MIDI input to be enabled. Detect allows you to find the appropriate trigger value by pressing a key or moving a slider to send a MIDI message to LXConsole. (To add note on & zero velocity triggered actions, you can use the popup button.) MIDI Action Commands GO commands have two forms: simple "GO" which runs the next cue in the Live window and "GO:nnn" which runs cue number 'nnn' in the Live window. The cue number can include "%v" which is replaced by the velocity of the MIDI note or control value. For example, the Action Command "GO:%v" executes the cue ( 1-127 ) specified by the note's velocity. Other Live window buttons can also be mapped to MIDI by entering "BACK", "HOLD", or "STOP". Additional MIDI actions include "LIVE" which switches the main display to live mode. "UNMARK" will unmark the channels in live mode. This is useful because marked channels may not be overridden by a submaster and this provides a way to release marked channels without executing a cue. Any command that can be executed from the command line can also be triggered by a MIDI "note on" or "control change" message. The velocity of the note or the control value can be used as a variable in the command. For example "1@%v" will set the level of channel 1 to the percentage value of the velocity ( 127 = 100% ). Velocity/control change values can be mapped to an arbitrary range. 1@%m(0,100,0,100) maps velocity from 0-100 to 0-100% (velocity over 100 results in over 100% but output from mapping is limited to the range of 0-100). 1@%m(0,127,25,75) produces a level for channel 1 that varies between 25 and 75 as the MIDI value goes from 0-127. A "record" MIDI action command will record the current live state as the current live cue. But if the cue exists, there will be a warning. A "record!" MIDI action command will record over the current cue with no warning. MIDI actions can simulate key presses on the command line in addition to triggering complete commands. These action begin with "key=". For example, a note might trigger an action, "key=q". This is the same as pressing the "q" key and will expand from an empty command line to read "cue: ". Similar to the above syntax for inserting a velocity into a command line, "key=%v" will replace any numbers at the end of the current command lines with the velocity data (1-127). Finally the enter and escape keys are simulated with "key=enter" and "key=clear". The MIDI message received for a "key=" action must have a non-zero velocity in order to trigger the action. There is a preference in the MIDI/OSC tab that always switches to live mode when executing a command line type MIDI command. This prevents accidental remote editing in blind mode. Action Commands Action commands are able to directly control submasters using a command of the form "SUB-nn" (where nn is the submaster number). The SUB- command directly sets the level of the submaster to the velocity or control change value of the MIDI message. Note: a "SUB-1" command has the same effect as "sub: 1@%v" except that the former updates more quickly than the command line version. Action commands are able to control a fader in the Channel Controls window. These commands take the form of "CCIntensity", "CCPan", "CCTilt", "CCBeam", or "CCIris". Left plain, the velocity or control value sets the level of the fader. Alternatively, you can specify a specific level, ie "CCIntensity@50" or "CCPan@home". Subchannels that do not have faders in the Channel Controls window can be controlled using a combination of "CC" followed by the subchannel number. For example, "CC23" controls the red subchannel. The manual fade percentage can be set using a command "manual@nn" (where "nn" is the desired level or "%v" to use the velocity or control change value). Note: to control an fade manually, you must set the manual level to 0 and then send a "GO" command. It is also possible to control the manual up and down fades independently. The MIDI commands are "manup@nn" and "mandown@nn" respectively. The manual fader in the live window reflects the up progress. A split manual fade is not complete until both up and down are at 100%. The master level can be set using a command "master@nn". Where "nn" is the desired level or "%v" to use the velocity or control change value. Effect Actions Effects can be controlled by MIDI actions. "EFXstart:", "EFXstop:", and "EFXclear:" commands need to have the effect name follow the colon. "EFXstop:" with no name will stop all effects. "EFXstopAll" will stop all effects and clear them as well. The "EFXmaster:" command can have an explicit level such as "EFXmaster:Effect 1@50". Or, if the "@" level is not specified, the velocity is used to set the effect level. Likewise, the "EFXrate:" command can either specify a rate or use the velocity. In addition, the "EFXrate:" command can use the velocity to set a rate within a range such as "EFXrate:Effect 1?10,200" which would use the velocity to sat a rate between 10% and 200%. (If you are using the effect rate command, the effect name should not include a question mark or comma!) Toggling Commands It is typical that a note on message at some velocity is follwed by a note on with velocity=0. This happens when a key is pressed and released on a MIDI keyboard. To allow command line actions that are only triggered by non-zero velocities, ie. pressing rather than releasing a key, any commands preceded by "+" will only execute if the velocity is greater than zero. For example "+2&4&6@100" will set channels 2, 4 and 6 to full if the velocity of the triggering note is not 0. Some built-in action commands are only executed when the velocity or control change value is non-zero. However, controllers might have a button control that acts like a toggle where the first push sends a control change or note on with a positive value. The second push sends a message with a zero value. When this is a note on, you can use separate triggers to respond to a positive or zero velocity. A control change does not have a special trigger for a value of zero. In order to solve this and to allow push on/push off control changes, an action command can have a form similar to the ternary operator in the c programming language, "?<action1>|<action2>". This means if the value is positive, do action1. Or, if the value is zero, do action2 as if the value is 127. For example, "?EFXstart:fx1|EFXstop:fx1" starts the effect if the message has a positive value or velocity and stops the effect if the value or velocity is zero. Test The Test button allows you to test the selected action. Clicking the Test button causes the selected action to be performed. Import/Export Actions Sets of MIDI actions defined in a setup can be exported/imported in an XML based format. So, once you've mapped the buttons and sliders on your MIDI controller, you can re-use that setup in another file. |