The Local GP Port feature is a very advanced feature intended for the most sophisticated Gig Performer users.
The Local GP Port exists only inside Gig Performer. You can create MIDI In blocks that receive MIDI events from the Local GP Port and widgets can be associated with MIDI events arriving at this port, just like any physical MIDI Input port.
Note: this is not a virtual MIDI port that is visible to other applications.
The purpose of this feature is to allow widgets to be able to respond to incoming SysEx messages. GPScript lets you define a callback that will respond to incoming System Exclusive messages. If you use this callback, you can detect the changing bytes (which could be one, two or more, depending on the particular message) from the SysEx message and generate standard MIDI channel messages out of them. If you then inject such messages into the new Local GP Port, then widgets can learn those messages and then control plugin parameters as usual.
Note: this is the reason the MIDI Monitor windows have the ability to display SysEx indices. It makes it easier for you to see which values in the incoming message need to be detected and captured.
MIDI events can be injected into the Local GP Port from GPScript using the InjectMidiEvent function.
To use this feature:
1.Use GPScript (in a rackspace, scriptlet or the global GigScript) to create a MIDI channel event (e.g. CC 42) and inject that message into the Local GP Port.
2.Open the Rig Manager and define a control that responds to that new CC event.
3.Have your widget learn the message in the usual fashion.
Note: if your trigger is another MIDI message coming from some other physical port - you will get a popup in the Rig Manager indicating that multiple devices were detected while learning your control:
Simply select the Local GP Port as your device:
The resulting entry in the Rig Manager:
Here is a simple script that injects everything that comes into a Scriplet plugin back into the Local GP Port:
On MidiEvent(m : MidiMessage)
InjectMidiEvent("Local GP Port", m)
End
If you want to name the "Local GP Port" in the Rig Manager to e.g. GP1 - you can then use the following function:
InjectMidiEventViaRigManager("GP1", m)
Now simply drop a widget in and in the MIDI tab select the defined "Knob 3" for example.