Odd issue sending program changes to Hydrasynth via variation

Hi. I am using a Hydrasynth Deluxe as my main midi controller with GP. I sometimes use soft synths, sometimes use the onboard sounds. Whenever I want to be exclusively virtual instrument, I switch to a program on the HS with no sound. The HS is supposed to respond to bank change messages via LSB 0-22. MSB is supposed to do nothing. I have 2 knob widgets set up to dial thru those settings.

Now comes the odd part. When I’m switching variations, the Program parameter always goes though, but about 70% of the time, it ignores the Bank select messages. If I toggle the program knob manually though, it instantly fixes itself and goes to the correct bank. I’ve been going round and round on the Hydrasynth end (in their FB forum) and it doesn’t appear to be on that side. I can send PC messages from any other software and it works fine. In fact, if I manually set the Program/Bank in a Midi Out block in GP, it works 100% of the time. It only seems to have a problem when I’m flipping through variations and sending changes that way. Someone in the HS forum suggested that it could be related to how the messages themselves are being transmitted - possibly too fast. It could be a ridiculous guess, but at this point, I don’t know.

Is there a way to set a delay on certain widget parameters when loading a variation?

I’d be happy to upload the GP file I have been using, too.

I don’t follow how you are sending PC and Bank messages from GP when changing variations. Can you please explain this part?

It’s pretty simple, actually. I have these knobs mapped to send bank and Program values to midi out blocks to my hardware. The one on the right is for a Microfreak and the one on the left is for the Hydrasynth. Depending on if the bank select is MSB or LSB, it either sends to CC0 or CC32. It works perfectly with the Microfreak and other hardware I’ve used.

I was experimenting with the MIDI Out Block, sending Bank Select via widgets (and variations) and from the MIDI Out Block directly (using the ‘Program change messages’ controls in the UI).

I found that both methods would randomly include two CC0 messages, like below:

It does appear random. But no idea if something like this could ‘confuse’ a hardware device?

Hmm, not sure why that’s happening but it shouldn’t actually impact anything since all it really should do is set some state which is examined when the PC message is sent out. However if some developer wrote code that incorrectly assumes that a PC message ALWAYS comes after a bank select message then it could break something. Please submit bug report though. This should be addressed at our end anyway just to be defensive.

1 Like

The MIDI spec defines that MSB/LSB needs to be sent as a pair and must immediately followed by a PC (page 13, Bank Select)

However, a lot of implementations only require MSB or LSB.
The action however always takes place with receiving a PC.

So I would check the MIDI transmits with the Global MIDI monitor and the documentation of the Hydra.

A different approach/workaround could by a GP script, triggered by On Variation, reading out the widgets (now not mapped to MSB/LSB/PC) and create these and transmit the in the „right“ order

I used this in some early rackspaces to change presets of my Kurzweil…

Edit; have a look at https://community.gigperformer.com/t/patch-changes-on-external-midi-devices/9394