Non-MIDI Data Exchange with the Outside World

Hi,

I bought Gig Performer last month and am only now starting to dig into scripting. I’ve spent a bit of time perusing the current function list, and am trying to figure out the best way to accomplish a little pipe dream I am working on right now.

What I would like to do is create a small Arduino-based MIDI (and/or serial) interface to use with Gig Performer. What I would like to emulate is something like the scribble strips on the Helix, but for some pots/encoders. While the GUI is perfectly usable, I’d like to be able to tweak a handful of parameters (i.e. VST guitar amp settings: gain, bass, middle, treble, etc.) by physical knobs and have the labels for those knobs change when the rackspace/variation is changed.

What I don’t see readily available is a way to easily get the strings out of Gig Performer and into the Arduino.

I’ve looked at SysEx a bit, but it sounds a bit complicated to send ASCII via that method, and I don’t see a MIDI SysEx scripting function currently implemented in GigPerformer, anyway (unless I’m missing it).

OSC also sounds like a possibility, and I see that there is an OSC text append function in Gig Performer, but I feel that OSC implementation on Arduino would, again, be overly complicated and would require a WiFi or ethernet capable Arduino.

I see that there is some OSX shell functionality, but I am working with Windows 10. Is there a way to expose a simple API (i.e. a couple of functions/events for simplex I/O exchange) for .NET development or even command line output, perhaps?

The only really feasible method that I currently see is to map out widget ID’s to one or more CC#s, have the script encode in a MIDI CC message to the Arduino, and have the Arduino decode those messages against a hard-coded table within the Arduino code. The obvious downside to that is that I would have to keep the Arduino program constantly updated against any naming tweaks that I make to the script and/or rackspace(s)/variation(s).

Am I missing an obvious solution? If not, can some consideration be given to implementing more complicated data exchange with non-OSC external devices and/or Windows? Or is my target a little too aggressive for the near future?