Triple Midi Pedal - Programming "Pedal Zones" / mapping / ranges

Hello.

I’ll get straight to the problem.

I have a Roland RPU-3 pedal, that has 3 TRS cables, one for each pedal.

I’ve connected each one to a MIDI Solutions Pedal Controller, and then connected them to DIN 1, 2, 3 on the midihub.

I am basically gonna use this setup to sustain different parts on the KORG PA5-X arranger.

What I am trying to achieve using the midihub:
Each pedal will have 3 pedal zones.

0-54
55-100
101-127.

Each of this zones will send a CC 64 (Sustain) message on a particular channel.

Pedal 1:
Zone 1 ( 0 - 54) will send CC 64 127 on Channel 3
Zone 1 ( 55 - 100) will send CC 64 127 on Channel 1
Zone 1 ( 101- 127) will send CC 64 127 on Channel 5, 6

Pedal 2:
Zone 1 ( 0 - 54) will send CC 64 127 on Channel 5, 6
Zone 1 ( 55 - 100) will send CC 64 127 on Channel 1
Zone 1 ( 101- 127) will send CC 64 127 on Channel 3

Pedal 3:
Zone 1 ( 0 - 54) will send CC 64 127 on Channel 1
Zone 1 ( 55 - 100) will send CC 64 127 on Channel 3
Zone 1 ( 101- 127) will send CC 64 127 on Channel 5, 6

One of the issues I’m encountering is due the continous flow of messages on the pedal.

I did have a solution for this using the Midi Solutions Event Processor, but I decided I’d really love the MidiHub for a change.

Basically using the EVP, I would use the trigger message function, that would only trigger a message when it would detect that a particular message of your choice had a value between a range you selected.

Using the midihub, the closest I got was using transform messages to “map” the zones, had to use two transform messages for each zone, one for going in the “range” and one for coming out of it.

After that I had a transform that would switch between the CC Number and the CC Value, so that I could use the range filter, 1- 126.

Almost a perfect solution. Unfortunately, I can’t find a way to only have messages trigger once per range. That leaves me with CC 64 0 messages for the whole range…

The PA5-X is really not that great when it comes to support and midi reliability when it comes to more complex setups like mine,

Roland FR-8X, MidiHub(Pedals) → MioXL → PA-5X, Montage M6 , some lines ran thru EVP and back into the Roland for some registry modifiers.

This would be my file, without the last transform to switch back to normal CC 64 messages.

test map pedala.mhp (577 Bytes)

Would greatly appreciate the help.

Hey, @mariusturneanu (and welcome to MH forums :smiley: )

I wonder if we could adapt your CC output to fit CC Toggling behaviour?

Check this out:

Toggle+-

see how only one value is output when the incoming value crosses the threshold.

This means that, if an intermediary stage scales its output to…

  • reject → < 64
  • accept → ≥ 64
    … then later Transforms/CC Tables can use the reduced outcomes to produce the “once per range” outgoing message you want

All sounds a bit devious, I know: I’ll try to upload an example later! :smile:

tbc…

Hey, @mariusturneanu, could you clarify: did you want the pedals to send CC 64 = 0 once when outside a given channel’s 127 range?
So for e.g Pedal 3, Channel 3 gives CC 64 = 0 when incoming CC is 54 or 101?

This seems to be the intention from the pipes, but I wanted to be sure



Plus, I’m working on the assumption that CC 64 on Channel 6 is a copy of CC 64 on Channel 5
(I think that’s what you intended the last two Transforms in each pipeline to do)

OK, @mariusturneanu , I think I have a solution.

Here’s a Monitor list where the Incoming CC64 from the Ch1 pedal (pedal 1?)

things to note:

  • I’ve made the Incoming Ch1 CC64 channel 11 and made it pale grey to distinguish
    Plus, my encoder skips values when turned fast…
    …and I’ve also hidden some rows for ease of reading

  • the results show the outcomes for one pedal-down then pedal-up

Do these results look about right?

With this approach we have 11 outgoing messages for for about 50 incoming

Here’s the important pipework


(CC Table mappings not complete, Ch.6 duplicate Transform not yet included)

Not uploading the patch right now in case I’ve misunderstood the precise spec.

I’ll take a second look once I’m know that I won’t be sending something incorrect
(in English we say "“Barking up the wrong tree” :laughing:)





Hey @Giedrius, while I did use CC Table for this, to get the “different values only” part I fell back on a 1.16 version of the Discarder idea just to get the job done.
It felt like leveraging the toggle mapping idea would need another stage of abstraction; What’s your hunch?