Mapping CC Data Values to different Data Values

Having just purchased B-3X, I’m trying to map it to controls on my Crumar Mojo 61 keyboard. I have the B-3X using the default SK profile and many of the mappings work out of the box. However, I did need to map the percussion and vibrato/chorus CCs.

I’ve encountered an issue with the vibrato chorus settings.
The Mojo 61 sends the following data values on CC 73:
V1 0
C1 25
V2 50
C2 76
V3 101
C3 127

The B-3X expects the following values (edited):
C1 0-21
V2 22-42
C2 43-63
V3 64-84
C3 85-105
V1 106-127
I’ve been playing around with the MIDI filter, Controller Map and managed to get all combinations working except V1 using the following Filter settings:

Reassign CC 73 Coarse to CC 73 Coarse on channel 1, 25-127 to 0-105

Somehow I need to be able to reassign/map data value 0 to 106-127 for V1, but if I add a second Filter Item for this, then it seems to supersede the previous mapping. I’ve tried changing the order of the filters and copying the event, but I haven’t been able to solve it yet.
Any ideas? @brad ?

Can you show a screen shot of the filter that won’t work and a preceding filter example that did?

This filter partially works, but doesn’t handle the case for Data Value 0 mapped to (106-127):
It works regardless of the setting of Discard, Clamp, Slide.

This filter never changes from V1:

If I change the order of the filters it never changes from V3.

I think the issue is that we are missing an option for ‘No Action/Pass Thru’, if the Input Range doesn’t match. I want the second rule to fire if the first rule doesn’t match, but the only options are Discard, Clamp, Slide.
Another solution might be some math functions (add and modulus in this case).

Understood. Do you have performer version and racks? Even if you don’t the way I would go is to have multiple filtered routes to one output port like this rack here. See if it works for you
Your filters cancel out so this method uses each one of the filters as a route to get around the no pass through condition. All filters are set to Discard so there should only be the numbers you want and not stream of them on a MIDI monitor

SnapShot 3647

MOJO to B3X.cantabileRack (15.2 KB)

Let me know if it helps, works ! lol :grin:


1 Like

Yes, Performer.
Yes, my B-3X is in a Linked Rack, along with VB3-II, although only one is enabled at a time.
Nice work-around Dave!!!
I implemented a modified version of your work-around. I was able to get away with only two filters, one for V1 and then a range for the rest. Here’s a screenshot:


Hey David, I edited my post above ^^^^^

It also could be done with bindings FWIW


1 Like

Try using “Discard” instead of “Clamp”, then the filter with two mappings ought to work.

I tried Discard, but didn’t seem to fire the second filter item if the first filter had data that was out of range.

Hmm, then next suggestion would be to check the “Copy event” in the first mapping (but NOT the second, otherwise you will affect the setting twice … ).

I tried that too, but copying the event also causes problems because the copy is still sending the same CC, but with the original value - which overrides the mapping. See Dave’s post above. He suggested a work-around where the filtering is done in the route, using multiple routes. In this case the CC comes in on all routes, but is discard if the mapping value doesn’t match.

Thanks Dave! I like the bindings solution - it seems more natural. It also seems that it would be more efficient than filtering all incoming Midi. You’ve been a great help with this! Thank you!

1 Like

You’re welcome David!

I’m glad it worked out. I want to thank @TorstenH for cluing me in to to Copy Event function in the remapping filter that has been staring at me all this time. I am still figuring out how it behaves but it is a cool thing so away I go investigating it …