Hallo, iˋm a newby with midihub. So far i use it just to connect my kawai mp7se, yamaha modx and yamaha yc61. At the Modx i can change 1-8 scenes in one liveset/performance with 8 buttons. This i´d like to realize with a normal footswitch (6,3 jack) wich is assigned to cc#3, the scenes cc# is 92
So far i created the following pipes:
- cc range filter: lets pass through only cc#3
- cc remap: cc#3 to cc#92
- rescale: in (low 0, high 127), out (low 16, high 16).
The value ranges to change scenes are 0-15, 16-31, 32-…
With my pipes so far it´s only possible changing from scene 1 to scene 2, but not further on in a cycle (i guess changing scenes backwards ist only possible with a up/down-switch?)
How can i realize it changing scenes step by step from 1 to 8 and back to 1.
Thank you very much helping me with this problem.
What sort of messages does the footswitch produce? Only CC#3 0, and CC#3 127?
Hallo Giedrius,
thanks for your reply.Yes, it produces a cc#3 message with values 0 and 127. The cc# i can assign individually on my modx, i’ve chosen #3
I’ve used the Dispatcher trick to make the same event sequence through channels, and then a line of Transform pipes, each reacting to different channel, to produce a required message.
CC 3 cycle.mhp (453 Bytes)
The scenes will go in sequence, but if you’d like, you can reorder the sequence of scenes you select by changing the output value produced by the Transform pipes, by changing their Argument 2 (it’s the CC value that gets produced)
6 Likes
veeeery nice, @klavierspieler22, consider this solved!
2 Likes
Thank you Giedrius for your patch, i’m extremly curious to check it out this evening 
1 Like
Give the dude a like!
@Giedrius each Dispatcher acts independently doesn’t it?
So, if (hypothetically speaking) @klavierspieler22 hooked up a second foot-switch (say CC#4) to one of the other keyboards, one could have a duplicate pipeline going down the scenes?
1 Like
Yes, as long as the pipeline was duplicated and adjusted for CC# appropriately.
2 Likes
Big applause!!! It works fantastic with just a small modification. I complemented
CC 3 to 92cycle.mhp (464 Bytes)
a rescale-pipe to rescale cc#3 (footswitch) into cc#92 (scene cc) and changed the Arg 1 to #92 in the following transform-pipes. I would never have come up to this solution on my own. And additionally i became more understanding how midihub/editor works. Tank you very much, also to resonotter for his great effort.
1 Like
yes, problem solved. really great!!
1 Like
It is an insightful way to use Dispatcher
.
Glad it’s got you going.
By the way, I think I’m wrong about this (too)…
second foot-switch … could have a duplicate pipeline going down the scenes?
…cos a “down” wouldn’t start off from the last “up”
Don’t worry about it
I guess this won’t bother me, not to be able going down the scenes from every start point. If i should have a second switch (not yet) may be i’ll let it start from scene 4, so i can decide it is better stepping forwards or backwards.
Going down the scenes works well with using another footswitch assigned to a second keyboard, but as you wrote it doesn’t start off from the last up.
1 Like
Check this out:
It will change the programs in both directions by +/-1 slot, CC 3 for up, CC4 for down. The trick is to produce 7 Note On & Off pairs to make the Dispatcher pipe go 7 steps forward, but as the maximum number of steps is 8, the end result is -1. The classic (i + 7) % 8
trick if only addition and modulo operators are available.
CC 3,4 bidirectional cycle.mhp (569 Bytes)
2 Likes
Hi, it worked perfectly, but if I jump to a different performance, the scene doesn’t reset to 1 but jumps one scene further. Does anyone have a clue how to fix this?
Also, if I press on scene 1 on the yamaha buttons, and than press on the foot switch, it remembered the foot switch scene position, and not the yamaha.
Hey @josrekker,
Giedrius’s Dec2022 solution uses Dispatcher as a key tool, which keeps track of the channels used thus far.
One way to “reset” it –i.e tell it to forget it’s channel memory– would be to Disable then Enable the Dispatcher pipe. Is there any message that gets sent to Midihub when the performance changes?
btw, since Dec2022, Transform got the ability to set a value( or id) directly from the channel of the incoming message.
This means the 8 Transform’s after the Dispatcher can now be replaced with just one.
However…
if I press on scene 1 on the yamaha buttons…
…sounds like you also want the ability to set a value directly.
This makes me think you want different solution involving a value stored in a Transform arguments
Thank you for your comment, but I don’t understand it haha. I tried to figure it out by myself but I can’t get it to work
When the performance changes, it sends a program change message, and also some other cc values, for example, each time it sends CC#89 0
The perfect solution would be; each time I hit the foot pedal on cc#3, the Midihub needs to add value 16 on cc#92. If I press for example scene 2 on the yamaha buttons, it send cc#92 16 to Midihub. When I press the footswitch again the value should go from 16 up to 32.
I have no idea how to achieve this. It would be perfect if I can get some help.
Hey @josrekker,
Take a look at this
Transpose_based_CC_3,4 bidirectional cycle.mhp
I wrote it abt a week ago & late here now, so need to refresh my memory tomorrow but
- it should go up & down in 16’s, plus
- has way to directly reset (currently CC5)
(So CC#92 v=16 can be used instead.)
Sounds like you don’t need steps down but it’s there.
PS. what do want the counter to be set to on PC/ CC#89=0?
Wow thank you, with a few adjustments it is working perfectly!
Yamaha Scene Cycle CC3,4 to 5.mhp (614 Bytes)
1 Like
Oh good.
May be worth knowing, Jos, that I created this patch for a wider audience…
(I could swear I had a full Description somewhere but seem to have misplaced it
)
…so it’s designed to be easily adaptable to different CC inputs, step intervals (inc ±) and CC outputs.
This means it’s a bit more complicated that you need it to be and a few pipes can be removed when you’re confident about what’s going on internally.