Hi. I’ve owned a Midihub for a little over a year but thus far have only needed it for basic merge, split, and message blocking capabilities. That alone has made it worth every penny. Today I finally have a use case that would require some of the more advanced capabilities of this thing - and am pretty excited about it, so cheers to that. Anyway - I have a need that would require heavier use of pipes but I’m not sure what approach would allow the most dynamic and performative results. Simplest way to put it is I’d like to sequence a polyphonic synth from a monophonic note source. Similar needs have been posted about, but to be clear, I’m not looking to just be able to play all the chords in a static scale. I’d like to yes, stay in scale as easily as possible, but I don’t necessarily always want a triad or whatever 7th of whatever degree. I also need to be able to change scales at most 8 times in a performance, but let me start over…
Exactly what I want:
Send the root note, and then produce at least 3 more notes on top that root while being able to control the interval / offset of each note via CC, such that CC value divided by 12 = chromatic offset (CC=11 would just result in the same note, CC=12 would be a semitone above, CC=24 would be a whole step). I believe this is all possible currently but am not totally sure how to achieve it. Keep in mind this is just the chromatic part of what I want. Let me get through this and then after that figure out how to keep everything in scale.
So thinking through this step by step, and using only 1 additional note for brevity:
// pass root through
IN A -> OUT A
// 2nd note in chord
IN A -> TRANSPOSE (midi map some CC# to semitones) -> OUT A
Seems straight forward, but this requires the controller be in range 0-11 if I’m trying to stay within an octave of the root. But I can’t be bothered to dial in values that specifically - I want to be able to sweep the entire knob in a relative way, such that 0 = 0, 127 = 11. But I’m not sure how to divide the CC by 12 (or linearly map the controller range of 0-127 down to 0-11). It doesn’t look like pipes can be applied to the CCs that are mapped to parameters, or do I have that wrong? Perhaps this is where virtual ports come in?
// pass root through
IN A -> OUT A
// controller in
IN B -> Rescale (0-127, 0-11) -> Virtual Out A
// 2nd note in chord
IN A -> TRANSPOSE (midi map to Virtual Out A which has already been scaled) -> OUT A
Does that make sense and is this how that could be accomplished? If so then I feel pretty good about my understanding - of course would not at all be surprised if there is a better way or even that I completely misunderstand this thing - like I said, this part of Midihub is new to me.
As for keeping the resulting transposition confined to a scale, of course I can shove a Scale pipe after the transposition, but AFAIK the Scale pipe is static, and I need to be able to change scale dynamically. And at this point I think maybe it’s good to just stop and address the above first, because my mind is going in too many different directions (e.g. can I duplicate my transpositions and configure things such that channel 2 notes go to minor scale, and channel 3 notes go to Phrygian, but then my monophonic source can’t change channels dynamically so…, perhaps I can use program changes to bypass all pipelines for scale A while enabling all pipelines for scale B…rabbithole)
Sorry for the long post - just wanted to be super clear about what I’m trying to achieve!