Patch changes on external MIDI devices

Hi, as we have a rainy day I completed some GP script exercises to implement one of my most wanted missing features in GP when dealing with external MIDI devices: showing patch names of the external device…

Of course ‘we all know’ about the ‘Set PC From Patch Name’ function in the MIDI out wiring blocks. I also use this in some of my rackspaces - when the are quite fix.

To get this running I did a small Python script extracting the patch names of my Kurzweil Forte SE backups and creating an INS-file. But that’s a different story…

However, I wanted the same functionality already in my rackspaces. As there’s no access (or at least: I did not find one) to the list of the MIDI out, I expanded my python script to create a simple one-line csv-file and made some first tests with the ParseCSVString(<line : String>) function. However I figured out, that this is limited to 256 array entries - not enough. So I had to do it the long way, and pick the patch names out of the file by myself :zipper_mouth_face:

Attached you’ll find a simple rackspace with 3 knobs for MSB, LSB, PC which ‘create’ a Patch-number which is used to lookup the patch name out of my file and show both in two text labels.

A full MIDI Bank select and PC messages are only sent after changing the PC knob.

It’s not a perfect script, there’s not much about error catching etc. but for me it works :sunglasses: The script expects a simple one line csv file with comma separated 4-digit patch number and a corresponding name. At the end there’s a dummy entry needed.

I’ve attached a sample gig file and a sample pathname csv. If you want to test this you have to adjust the (absolute) file path, where the GP script expects the file…

How are you handling your (remaining) external devices?

BBB (17.8 KB)

PS: if you are also interested in the Python script let me know…


Hi Triple B
Having taken an introductory programming class 20 years ago with sporadic attempts to learn more, I can’t say this comes easy to me.
I would be very interested in accessing patches from my Roland F-08 via Gig Performer. I do like some of the Roland’s piano patches better than a lot of the software instruments I own.

So would this be translatable for my setup?

I’m very new to GP and at this point have been setting up instruments and a very simple setlist for my cover band. I would like to use my new Arturia Keylab 49 with the Roland mostly using it’s internal patches for my live performances.


Hi @edx500,

yes, that’s definitely translatable for a Roland as well. Your main challenge will be to generate a ‘f08.ins’ file containing the patch (‘Tone’) names and corresponding numbers.

I’m not familiar with F-08 but it will work quite similar I think.

Just check the contents of the the zip above, study the rackspace script and the documentation how you Roland responds to MIDI CC00/32 and PCS to access patches. The remainder is pure math.

The gig script is quite short and easy to understand.

To be clear: this concept only switches the main patch on my Kurzweil. If you want to switch patches within a combination (I think this is called parts of a tone in Roland terminology) then you have to dig deeper in the Roland manual

Let me know if you need further help!

1 Like