Just in case, I’ve increased your trust level on the forum, file uploads should work now.


Thank you for the Transpose-mhp-File. OK, we both know that this is pretty basic. I just wonder if there might be an mhp-File floating around which really has an incremental functionality which could be adapted…

Unused Channels? I guess I could use Ch 16.
Free MIDI IN OUT on MIDI Hub? Yes, but I don’t need a computer-less setup.
Controller? Yes, as I said, I have for example the XSonic Airstep and an iRig Blueboard.

It will involve getting Midihub to hold the state of where you last were. I have posted solutions to similar problems recently [1] and can help you set one up when I know what your configuration is

Yes, indeed. The point of it was provide information, in order to help build a solution.

This solution (AFAI can see) will require a physical loopback. To set that up will need a device temporarily patched to your loopback-in.

(if you are using a computer and you have patching capability –eg MIDI Patchbay on a Mac– you might be able to send the mapping-set-up notes/cc’s from a DAW. Otherwise you’re looking at editing a foot ctller to do that before you return it to it’s usual set-up)

If this sounds like a pain, it is! But it’s a one-off pain & from there on Midihub will just quietly do it’s stuff…


  1. Have you got your hub yet? If you’re interested in getting your head around ‘solutions to similar problems’ I’ll point one/two out to you.
  2. Have you confirmed precisely what your two devices are receiving to do Preset±?
  1. My Hub is on its way. Anyway I would like to have a look into similar solutions - just with the editor.
  2. As far as I know the MIDI Implentation List of my devices does not contain an explicit Preset+/Preset-. I think we have to differentiate between two cases/devides.
  3. Devices where you can explicitly freely choose a CC which exactly will trigger a Preset+ or Preset- functionality. I think the Fractal Axe FX3 gives you this possibility. I had this device, but not anymore.
  4. Devices which expect/understand just a Program Change Message (like my Nord Stage or my Boss GT-1000) and so you have to find outside of those devices a solution to get the incremental functionality. For example via a Scriptlet in the case of Gig Performer.
    Anyway thank you for your feedback. It is a nice feeling to get such a lot of feedback, even if I haven’t received my MIDI Hub yet ;-), but as I said today I got a message from UPS that it is on its way. So I guess I will have two wait two or three weeks untill it arrives here in Germany.

SO you know it’s just PCs on both? Good.

Next thing is to decide what unused range of CCs you can send into what port (USB or MIDI) form whatever device you have at hand.
Confusing I know, but this is just to tell Midihub “map ch16 cc76 from this input to this button” just so we can later fool it with a message that we’ve created in Midihub itself.
There was a good video on YouTube about this but I’m damned if I can find it now! Maybe someone here can point you to it.

found!(-simplest loopback) SynthDad:MIDI loopback trick

OK. In the middle of something now. Will have a scan in a couple of hours.

Hate UPS almost as much as Hermes. My heart lifts when a seller uses DPD.

Yep, UPS is a pain in the ass :wink:

Had a scan and a good example is in the thread I mentioned right at the top.
Specifically, this bit

It’s very similar to your situation, in that, in Pipeline

  1. does something according to a mapped state
  2. sends the response out to the device
  3. also sends it to a physical loopback D->D
  4. in the loopback only one CC is let thro’ and that is mapped to a new one. This stops any further looping. Importantly, the new CC re-enters D is picked up by the mappings in pipeline 1, and Hey Presto! the mapped Transform fields are set ready for the next change.

(btw, the reasons for choice of CCs can be gleaned by the OP’s specs.)

Well done for wanting to suss patches out with Editor alone, btw.

Your patch has the nice little twist of needing a ±1. Nice…!

1 Like

If I may chime in here, if Gig Performer is just sending program change messages to achieve preset+ or preset-, Gig Performer must be keeping track internally of what preset is currently selected.

This is tricky to do in midihub because you would need to store the value of the current preset somewhere. AFAIK Midihub does not offer variables.Plus, you would also need a way of initializing the value, getting the value of the first preset into Midihub somehow.

I think if your devices do not offer a Midi CC switch for these functions, you should probably give up on this.

It is possible, Will @kastenbalg ; you keep the state in a mapped variable.
It was done here

–which you’ll find at the top of this thread– and several times in the Fluid Transitions patch I detailed recently.

The tricky bit is setting the ‘state’ at the end of the process.

Initialising is an issue insofar as the hub will obviously return to the state the mapped variable was when the patch was saved from Editor. That’s why I asked klutio (the OP in the above link) this

I don’t know how widely used this technique is, but it is useful when the situation demands it, like this one!
That was hard!

1 Like

I know its possible… I just think its too difficult and cumbersome. Complex hack to accomplish simple function. As I said, you have to create a variable to store that value, but even then, you have to make sure it is initialized.

I will not do anything that involves a hardware loopback by plugging the midihub into itself. For me that is a hack too far.

Simpler alternatives include transforming note number, velocity, or CC to program change. Those are all a snap with midihub.

I get that it is not the same, though. Having a button for ‘go to previous/next preset’ is a cool idea for live use.

That’s why effects pedals have this! I have an eventide space (reverb pedal), controllable by midi. I think it has preset- and preset+ built-in. You just assign a midi cc to those functions and tada! This is easy if the hardware already has it. I don’t think any of my synths do. More of a pedal thing.

Eventide’s big pedals have good midi implementations btw. Comprehensive and flexible.

Final thought, maybe use the midihub along with gig performer instead of trying to substitute it?

Yesterday arrived my MIDI Hub! I have used Funkeys Transpose File and changed the input value from MIDI Note on to CC.
I got the following setup now. As Input via USB A I have an iRig Blueboard which send on Button 1 CC 20 and on Button 2 CC 21. The DIN MIDI OUT of the hub is connected with the MIDI IN of my Nord Stage Keyboard. When I press Button 1 the a Program Change is send to the Nord Stage.
So far so good. What is missing is the Preset +/- Functionality. I see this pragmatic. I could live with it if I have to start eveytime on Preset 1. It doesn’t have to be so sophisticated that I want MIDI Hub to know that I am currently on for example Preset 24.

Happy that you’ve now got your little grey box!
Sorry not have picked this up earlier (been immersed in the news insanity in lands East of both of us!)
I’ll have a go at knocking up a patch later.

In the meantime would you hook up, say, your Nord to one of the MIDI/USB ins, and twiddle a few knobs?
I’d like a short list of CCs (eg. ‘USB C Ch16 CC77’ ‘MIDI D Ch15 CC77’ ) I know you can input to set up the mapping. If you can, change the Channel from what you’d usually use
Can explain why but don’t want to get more verbose unless you ask!

The screenshot shows all the CCs of the Nord Stage. I hope this helps.
The thing is that the solution I am looking for should be universal. So when I press the buttons of my Controller and send CC20 and CC21 then not only the Nord Stage should react to this in a preset +/- way, but also other Devices. The Gig Performer Scriptlet does exactly this. You only have to specify the MIDI IN (the controller you are using) and the MIDI out (the device you want to controll) and it just works.

Hang on! first time you mentioned this!

I’m assuming

meant “Transform Ch1.note60 (C3) to Preset+ on Ch1”. etc.
Are you now telling me something else??

PS. Just done version based on this. Will attach if this is OK

PPS. discuss whether chart means Transmit or Receive later!

The chart means both: the Nord Stage can transmit and receive those CCs!
The first example was to use c3 and e3, but my blueboard which I use mainly as my hardware controller sends the CCs 20 and 21. So the task would be to transform CC20 within the hub into Preset+ and CC21 into Preset-.

So let’s be specific:

  1. CC20->Preset+, CC21 into Preset-. Not notes.
  2. Any channel for CC20/21? always Ch1?
  3. Same Channel for PC? Or always Channel X? If variable, how is Midihub to know which?
  4. Blueboard: What value sent on button down? Any value on button up?

Will wrap this up tomorrow.

Yes, CC 20 Preset+, CC 21 Preset -
I would say always Channel 1 and the same Channel for PC.
The Blueboard sends CC20 on Button up and CC21 on Button down.

Funkeys_Preset±v2.mhp (1.6 KB)
When Testing, I would highly recommend watching the Midi Monitor as you hit 20/21 repeatedly while selecting

  1. B.TARGET to check Program Change. Check at PC0 & PC127 to see what happens.
  2. Filter before B.TARGET to see what goes thro the loop but doesn’t get out. Then
  3. Rescale to see the values there. These create the first mapping (green corner) event
  4. Transpose to note its changes what makes that happen and
  5. the same for the Transform before it. The mapping event for that is created in the pipe.

You could just ‘plug & play’ but the above will help make it make sense:
Leaving aside the (unfortunately necessary) loopback stuff, you’ll start to see what a powerful tool Transform is (took me months to realise just how powerful)!

PS. As the Description Panel says

this version works with Channels 1-15, maintaining channel… …to make it more extendable for other users.

Fixing it to Ch 1 would’ve been slightly easier, but I’d already started before I got your update…


resonotter is really a Master of MIDI Hub. He had a lot of patience with me and finally we got this thing working in my setup. Thank you very much, resonotter!
In my setup I am using an iRig Blueboard as Hardware Controller which sends CCs 20 and 21 to MIDI Hub. Those CCs are transformed in MIDI Hub into a Preset+/- function and then send to my Nord Stage Keyboard. I think resonotter will post his version in Patchstorage. Attached you find the individual version which I use for my specific setup which is based on his version.
Midihub 2022.09.25 16.23.06 (Preset 2).mhp (1.6 KB)