I would like to have a Preset+ and a Preset- Button on one of my Hardware Controllers.
I have for example the XSonic Airstep. On the Airstep I have five Buttons who send MIDI Notes like C3, E3 etc.
How can I transform with the MIDI Hub Software C3 into a Preset+ and E3 into a Preset- Function?
With the Preset+ and Preset- Buttons I would like to step through the presets of external MIDI Devices like for example my Boss GT-1000 effect unit or my Clavia Nord Stage Keyboard.
If those buttons respond to midi, all you need to do is use a transform pipe, transforming whatever control you want to use into whatever midi message the preset+ responds to and send it back to your device.
I wasnât sureâwithout going in search of manualsâwhether the devices would be expecting a ± event, or an absolute Program Change (or whatever) number. That approach would fit with allowing sequencer to send a message prior to the next phase of a performance.
If it is the latter, itâs a bit more complex (and needs similar strategies to PC to CC question)
Do-able though.
@Funkeys, what are the two devices receiving to change âpresetâ?
This is what youâll need to find out. I donât have the devices so I canât quite help you there. Youâll need to hit the manual and check its midi implementation chart if it has one, or youâll need to ask around in the forums for these devices if any. Most likely, if it is possible to map these externally, the manual should specify what messages it needs. Another option is to contact the support channels of the device manufacturer and have them confirm they respond to midi and what messages.
The devices are Boss GT-1000 and Clavia Nord Stage.
In the MIDI Implementation of those devices there is nothing to find about Preset+/Preset-
I am using also the Software Gig Performer. In Gig Performer you can use a kind of universal scriptlet wich gives you the functionality of Preset+/Preset- and it is working fine among other devices with the GT-1000 and the Nord Stage.
I was just wondering if it would be possible to achieve the same with the MIDI Hub Software and how.
Ok, it looks like this scriplet is sending out CC/PCs. So if youâre sending out either of these messages to the GT or NS successfully, then can you see what it is thatâs being sent?
One way would be by routing the messages through a DAWs MIDI monitor, I guess. Another might be to send the scriptletâs output to Midhub via USB and then on to GT or NS so you can see what is being sent to make the Preset changes.
Almost certainly Yes, but explaining How depends on the info above!
Unfortunately in the MIDI Monitor you see only that a Program Change is being send, so there is something under the hood going on.
(As a new member I can not post the screenshot), but the MIDI Monitor only shows
Program Change 1, Channel 1
then if you press the + button it shows
Program Change 2, Channel 1
etc.
This is the authors info on the scriptlet:
This scriptlet provides a simple way to increment or decrement either Control Change (CC) message values or Program Change (PC) messages.
It is commonly used to move up/down through plugin internal presets, or those on external controllers/hardware.
Map the âPreviousâ and âNextâ parameters in the scriptlet to two pad or button widgets (set as âMomentary Touchâ in the widget settings). The scriptletâs MIDI out port should then be connected to your pluginâs MIDI input (if controlling a plugin) or a MIDI output port (if controlling external hardware).
Parameters
- Previous/Next: will move up/down the CC value or PC number. Note that these are designed to be mapped to a widget, If you try and change them in the scriptlet window, you will notice the slider snaps back to the âOffâ position - this is by design.
- Current Value: Displays the currently active CC value or PC number. This can also be mapped to a widget to show you which is the current value. Note that you cannot use this parameter to change/send messages - it is only used for display.
- Minimum/Maximum Value: You can limit the range of message values that you send. For example, once you reach the maximum value, pressing Next button will do nothing (exception is if you have looping activated).
- Message Type: Choose between sending Control Change (CC) messages/values or Program Change (PC) messages.
- CC Number: Choose the CC number to send (only applicable if the Message Type is set to CC).
- Loop: When pressing Next and you reach the maximum value, you can choose to loop back around to the start (minimum value) or start decrementing the message value (if Loop Direction is set to âPing Pongâ). Note that this feature was designed only for when you are just using the Next button.
- Loop Direction: If Loop mode is activated, âForwardâ will loop back to the start (minimum value) once you reach the last/maximum value; âPing Pongâ will start moving backwards (decrement) once you reach the last/maximum value. Note that this feature was designed only for when you are just using the Next button.
Possibly you just need to transform your control into the right Program Change message. Itâs just as simple as transforming your desired control into the correct message in midihub then sending it back out. The fact that it needs a scriplet though sounds like there may be some system exclusive messages being sent, so that could be a show stopper.
What I suggest to discover what can be mapped and getting familiar with the transform pipe, is a pipeline starting with an lfo. Make the depth high so youâll
see easily device parameters being manipulated when successful. Then a transform pipe thats transforms the LFoâd CCs into (x) message, followed by an output pipe to your device. Now you can change output parameters in the transform pipe and you can quickly scroll through the messages and see how your device responds. To make it easier i would map some midi knobs(from a different device) to the transform parameters so you donât have to use the mouse and can keep the output pipeâs monitor in focus.
This is the get in there and get your knuckles dirty method, and will give you a more intimate and complete understanding of mapping and controlling your devices. Knowledge that will be needed when you come up with a future cool idea or pressing need for Midihub and want to flesh it out quickly.
Well, if thatâs working that should be enough to go on! [1]
@Funkeys are you fairly new to your Midihub or do you have some experiencee of the various pipelines and what they do? (Just so I know how much detail to go into!)
Also useful for me to know would be:
- What channels are unused? (for example, I often keep Ch16 free so that I can use it to send events around Midihub without them affecting anything else)
- Have you got a MIDI in & out free on your Midihub?(I assume youâre wanting a computer-less setup here)
- Do you have a programmable controller with knobs/sliders that you can temporarily plug into Midihub? A Keystep is ideal. I guess, failing all else, your Nord might send out CCs from its many knobs (try it & tell us!)
[1] test with this Funkeys_Transpose_PC.mhp :
connecting Airstep>Midihub>Device should make C3 switch to Program 60, and E3 to 64 for example.
If thatâs beyond the range of the deviceâs presets, use the Transpose Pipe to bring the numbers down to something that can work.
If getting the button to set a fixed preset does do what it should, then weâre ready to tackle the (trickier) job of getting the Midihub to increment/decrement when you hit the button
Thank you very much for all the helpful advice. Yesterday I have ordered my MIDI Hub. As soon I as I get it, I will give you feedback about my results.
Aha! Not much point in sending you patches yet then!
While youâre waiting for it to arrive itâs definitely worth adapting @JoeyButters advice and maybe using your DAW to see what changes what on your two devices. Then youâll be ready to get up and running as soon as it hits your doorstep.
Prepare to be bowled over!
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.
AFAIK, No.
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âŠ
btw,
- 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.
- Have you confirmed precisely what your two devices are receiving to do Preset±?
- My Hub is on its way. Anyway I would like to have a look into similar solutions - just with the editor.
- 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.
- 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.
- 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
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
- does something according to a mapped state
- sends the response out to the device
- also sends it to a physical loopback D->D
- 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âŠ!
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.