Indeed if you’re lucky (or wise ?) enough to have two Midihubs, it gets to be fun squared!
But if you can afford to devote an In&Out to a loopback, all sorts of possiblities open up with just the solo Midihub.
I’m not alone in hoping this will be possible in Midihub one day.
All I can say is, the more I’ve built loop patches, the more I appreciate the difficulty of providing this stuff natively in a way which is both ‘safe’ and comprehensible to the wide range of users…
I guess I would also need to enable MIDI Thru on one of WIDI connected instruments, right? This would forward outgoing messages back to the input creating the loopback. Unless there is a feature in WIDI to enable the loopback? I didn’t search their knowledge base yet, so I’m not sure WIDI has it.
what pipe/s are going to be mapped and what messages they’re modifying etc.
So my sketch shows the mapping part of a patch,
Overall in the patch you might have say
keyboard notes from A.WIDI going into an Arp pipe …
…these arpeggiated notes going out to a sound module,
…and maybe the chords to a synth pad
(these both receiving messages from A.WIDI-OUT)
a controller CC also at A.WIDI sending [0; 127] values to be Rescaled and sent into D.LOOPBACK-OUT where
they arrive at D.LOOPBACK-IN and control say the Arp’s Note Length just for the range [1/4; 1/16],
or maybe the Type between [Low Up, Low Up and Down, High Up, High Up And Down]
(in the latter, you could get more precise by using Transform pipes instead of the Rescale to have just the Types you wanted in the order you prefer)
I guess I didn’t make myself clear: I would like to create a loopback with WIDI alone, WITHOUT using another pair of MIDI DINs and a cable between them.
I didn’t try it out yet, but the idea is following:
CC0 on Channel 1 is scaled to values 1…4 in my controller. This way I will have clear display on the controller which value I’m sending out.
CC0/Ch1 goes in to Midihub via MIDI DIN
In Midihub to scale CC0/Ch1 to 0…127 which is needed for mapping of Midihub parameters. Also, I change CC0 from Ch1 to Ch2
I send rescaled/transformed CC0/Ch2 to MIDI port where WIDI is connected
Instrument connected to WIDI has THRU enabled, so the CC0/Ch2 will bounce back to WIDI connected to Midihub’s input
I map CC0/Ch2 to a parameter in a pipe that has 4 possible values (this is why CC0/Ch1 was 1…4)
I hope this makes sense, but I’ll be able to try it out next week (no time).
Well, once I wrote this I realised that there is no way to enter mapping manually… Midihub will receive CC0/Ch1 and CC0/Ch2 almost simultaneously. Since CC0/Ch2 will be a bit delayed, it may not work at first, but if I map it again, then I hope it will map CC0/Ch2 as well. Then, I would delete CC0/Ch1 mapping, so only the scaled/transformed CC will be used by mapping.
A lot of assumptions here, time will tell - next week
OK, I see. can’t see an issue with THRU† as long as there are no channels conflicts.
If you get heavily into loopbacks you might need to be a little bit extra careful about keeping everything honest; it gets tricky enough keeping track even with a straight cable out → in arrangement.
That’s what the LoopbackTool is for.
Just Append it, change the Midi Out to your A.WIDI or whatever and then the CC0/Ch2 message will be created within MH and the first message the listening property will receive will be the CC0/Ch2 coming back in after its OUT → THRU → IN circuit
† PS. Clock messages could be a significant issue in a WIDI-THRU-loopback
It works! I have a loopback without sacrificing one pair of ports and I can scale and send CC back to Midihub and map it however I want!
I have created the loopback with THRU enabled in the instrument which is my master clock (it’s always on). This instrument is using Channels 1-8, and I send loopback to Channel 16, so the CCs that I’m using don’t mess up parameters of the instrument.
With a few transforms I translate the CC to another value which gets also scaled to new CC which will be used for mapping. Then, the new, scaled values are mapped to a filter, which is passing only the MIDI information which is needed, e.g. notes, not clock etc.
Now I can use a single knob on my MIDI controller to completely change behaviour of Midihub, as if I had multiple Midihub presets assigned to the knob. The knob is scaled to send 1…16 values, and that allows me to precisely select a value of the knob. Each value of the knob is switching to a completely different routing in Midihub, as if I had 16 presets in Midihub.
More than 8 presets, easily and precisely selectable from a single knob of my main MIDI controller, without losing a pair of ports - three birds with one stone
The setup is a bit complex and requires some tricks to make it work, but it’s feasible.
I hope I’ll have some free time to write down how this patch works and how to set it up, if anyone is interested to see it?
Midihub patches are not easy to reverse-engineer, and a more complex patch like this one is for sure confusing and difficult to reuse. A video walk-through would definitely help. Unfortunately I have zero experience creating screencasts, but I’ll try, when time allows, maybe with a simpler patch which will use the same trick to control random module.
Yeah, the setup for making a decent screencast is not easy, especially when external hardware is involved. And it takes time and energy to make a screencast, so no pressure at all, just the honest statement that I would appreciate seeing a screencast on this.
In case you commit.
Would recommend the excellent OBS to mix and match the cast. Maybe Norns.online to capture what is going on on the Norns and maybe VMPK for on screen piano keyboard. Also Protokol from hexler.net is great for visualizing Midi flows.
OK, here an explanation that I hope will be helpful.
I know that the channel that goes to MicroFreak could go straight to the synth, but I want to have more than 3 “sub-patches” which are currently created in this preset.
As you can see I have more than 16 MIDI Channels but I want to use KeyStep’s excellent Channel selection feature to play on any Channel/track of any of 4 connected instruments. One CC knob allows me to select the “sub-patch” with different layout of MIDI Channels.
I also want to add a pseudo-polyphonic Channel which will play up to 6 voices or chords using all tracks of Model:Cycles or Nord Drum with the same sound on each track.
For sure there is a lot that can be optimised (use virtual channels, reduce number of pipe lines), in the preset itself and in HW layout (e.g. daisy chain KeyStep with MicroFreak will save one pair of MIDI In/Outs on the Midihub), but I hope this simple layout explains how the THRU loopback works and how to use it with CC to control the Midihub itself.