MainStage: Use external MIDI instruments in MainStage
You can add an external MIDI instrument channel strip to a patch and use it to play an external instrument, such as a hardware synthesizer, or to control a ReWire application.
When you use an external MIDI instrument channel strip, you choose the MIDI channel to send MIDI output from MainStage to the instrument, and choose the audio inputs to receive audio from the instrument. The audio output from the instrument is routed to the input of the channel strip, where you can process it using MainStage effects.
When you play your keyboard controller with the patch containing the external MIDI instrument selected, MainStage sends note and other MIDI messages to the chosen MIDI Output and MIDI Channel, receives audio from the chosen Input, and sends the audio output to the chosen Output. You can also send a program change message to the external instrument when you select the patch to control which program the external instrument uses.
You can also send MIDI messages, including SysEx and continuous control messages, to your connected MIDI hardware devices using an external instrument channel strip. You can send SysEx data to your external instrument in real time or as a MIDI file. The Channel Strip Inspector includes a Send MIDI File control where you can select a standard MIDI file with the information you want to send.
Add an external instrument channel strip
Click the Add Channel Strip button (+) in the upper-right corner of the Channel Strips area.
In the New Channel Strip dialog, select External Instrument.
You can also choose the MIDI input and output, the format, and the audio input and output for the channel strip. You can choose an audio channel or a ReWire application for the input, but cannot choose a bus. The MIDI input pop-up menu shows the Keyboard or MIDI Activity screen controls (which receive MIDI note input) currently in the workspace.
Note: When you use an external instrument to send MIDI to a ReWire slave application (such as Reason or Live), you should disable any MIDI input the slave application receives directly from the hardware controller. For information about disabling MIDI input from a hardware device, consult the documentation for the application.
For ReWire applications, when you add an external channel strip, set the MIDI port to the ReWire slave. The Channel list also updates based on the port. Some ReWire slaves set up multiple ports. To use a ReWire application with MainStage, open the ReWire application after opening MainStage.
Send a program change to an external instrument when you select a patch
In the Channel Strip Inspector, click the MIDI Out tab.
In the MIDI Out tab, select the Send Program Change checkbox.
The Program Change value is set to –1 by default, so that no program change is sent when you select the Send Program Change checkbox until you change the value.
Set the program change number you want to send using the Send Program Change value slider.
If you want to send a Bank Change message, select the Send Program Change checkbox, then set the most-significant byte (MSB) and least-significant byte (LSB) of the bank change number using the Bank MSB and Bank LSB value sliders.
When you select the patch, the program change and bank change messages are sent to the external instrument. Also note that program and bank changes are sent when you edit the program change and bank change value sliders in the Channel Strip Inspector (so you can be sure that the values you enter send the correct program and bank change messages).
If you want the external instrument to respond to the program change, but do not want it to receive note or other MIDI information from your controller, click the MIDI Input tab and choose None from the Keyboard pop-up menu.
Send program changes to an external instrument using a screen control
In the workspace, click the screen control you want to use to send program change messages.
In the Screen Control Inspector, click the Unmapped tab.
In the Mapping browser, select the external instrument, then select the MIDI Controller folder from the submenu.
In the third column from the left, select Program Change.
The screen control is mapped to the Program Change parameter. By moving the hardware control assigned to the screen control, you can send program changes to the external instrument.
Note: If the MIDI Out parameter of the external instrument channel strip is set to the external instrument when you map the screen control to the Program change parameter, a program change (Program 0) is sent when you create the mapping. If you are editing the program on the external instrument, your changes may be lost. To map the screen control without sending an immediate program change to the external instrument, choose None from the MIDI Out slot of the external instrument before you create the mapping, then choose the external instrument in the MIDI Out slot. No program change is sent until you move the knob or fader.
Pass SysEx data through to an external instrument
In the External Instrument Channel Strip Inspector, click the MIDI Input tab.
In the Input column of the Inspector window, deselect the SysEx checkbox.
The external instrument channel strip now passes SysEx data through to the instrument.
Send a MIDI file using an external instrument
In the External Instrument Channel Strip Inspector, click the MIDI Output tab.
Select the Send MIDI File checkbox, then click the Select button.
Browse to the location of the MIDI file you want to add, select the file, then click Send.
The MIDI file is sent immediately to the port selected on the external instrument channel strip. The MIDI file is re-sent when you change patches, just like the other options in the Channel Strip Inspector (such as Program Change or MIDI Clock messages).
Only SMF (standard MIDI file) types 0 and 1 are supported. MIDI files are sent sequentially, one at at time, per concert. If you switch rapidly through several patches that send long MIDI files, the MIDI files are queued and sent in succession. MIDI messages are sent at the tempo stored in the MIDI file.