I need to remap MOD-Wheel to PITCH-bend for keyboard Midiplus X-8 III

Hello, I need a midi translation for the keyboard Midiplus X-8 III bought from thomann and if it can be done in Midi Translator, I plan to buy the Bome software also from thomann.

The keyboard has two 8 cm touch strips (ribbons) for Pitch Bend and MOD “wheel” both with leds to show the position . The pitch bend starts from center so you get only 4 cm UP/DOWN and also gliding must start exactly from the middle point which is inexact and hard to find only with a LED indicator.

I need the MOD strip to send pitch bend messages in the following way : The MOD leds show that the value jumps (I will also check in a MIDI monitoring app) for example :

If I touch the MOD strip (0..128 values) from 20 to 40 it should send Pitch bend (-64 to 64 range) of 0 to 10 (incrementing and half the value of the MOD)

If I touch the MOD strip (0..128 values) from 100 to 80 it should send Pitch bend (-64 to 64 range) of 0 to -10 (decrementing and half the value of the MOD).

Also the PITCH value must return to zero when a new note is played.

I think this is the normal mode of operation for PITCH strip with all Workstations that have ribbon : Korg Triton, Yamaha Motif/Montage, Korg Kronos/Pa5x, Roland AX-edge (I didn’t check them all). Starting from the midde position is not precise and many touch strips are done like that (Native Instruments Kontrol keyboards and Maschine, Ableton Push 2-3 controller but this one has double length ribbon 16 cm).

I found another topic that seems similar but I don’t think it addresses the same behavior mentioned (with the values of the CC MOD wheel jumping when touching the ribbon).

Please help me with this script, it should be easy for someone who knows the software, I started watching the tutorials but I work in another job and I don’t have enough time to study all the functions of Midi-Translator.

Thanks a lot for the great software,

Great day !

Hi and welcome to the Bome community!

Very strange request but I think I accomplished it.

Translator 1-0 takes the incoming Mod CC and scales the value per your request. Here are the calculations in rules. I also added log messages as a troubleshooting aide.

// 20-40 to -64 to +64
if qq<20 then Goto "Skip"
if qq>40 then Goto "Skip"

// input range = 21
// output range =128
// offset = -64

//scale it
// offset
tt=qq-20
// scale
tt=tt*128
tt=tt/20
tt=tt-64

Log "Log calc1 incoming value = %qq% - modified value = %tt%"

Goto "Done"
Label "Skip"

// 80 to 100 to 64 to -64
if qq<80 then Goto "Done"
if qq>100 then Goto "Done"

//scale it
// offset
tt=qq-80
// scale
// output range
tt=tt*128
tt=tt/20
// offset output
tt=tt-64
// reverse direction
tt=tt*-1
Log "Log calc2 incoming value = %qq% - modified value = %tt%"

Label "Done"

Translator 1.1 sets pitchbend back to 0 when a note-on message is received.

I have a MIDI thru path to allow the note (and all other messages) to pass through to the outgoing port.

Here are my aliases that I use.

You can learn more about aliases from this tutorial.

And here is the project file.

Mod-Wheel-to-Pitch-Bend.bmtp (3.5 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Hi Steve, thanks for the script but I think there are some problems with the script. Maybe you can check with your MIDI keyboard LaunchKey MINI mk3 that seems to have same ribbon strips :

In the log window it shows NOTE ON being converted to PItch bend instead of remaining same Note On :

IN 1.1 Note On on ch. 1 with any note set “pp” to note=83 with any velocity=52
OUT 1.1 Pitch Bend on ch. 1 with bend:0 (0x00)

Also the script seems to convert only the intervals that I gave as example : 20 to 40 and 100 to 80.

It should convert the moves on the MOD STRIP (wheel) to respective PITCH bends : if I slide up on the MOD STRIP 20 units from its 128 units it should be converted in 10 units up on PITCH, because PITCH is centered and has half the range

Also the conversion from MOD to PITCH strip seems to work only for the specified intervals

153: 1.0:17 Log calc1 incoming value = 39 - modified value = 57
154: OUT 1.0 Pitch Bend on ch. 1 with bend:tt=57
155: IN 1.0 Control Change on ch. 1 with CC#:1 (0x01) and any value set “qq” to value=40
156: 1.0:17 Log calc1 incoming value = 40 - modified value = 64
157: OUT 1.0 Pitch Bend on ch. 1 with bend:tt=64
158: IN 1.0 Control Change on ch. 1 with CC#:1 (0x01) and any value set “qq” to value=41
159: OUT 1.0 Pitch Bend on ch. 1 with bend:tt=-5000000
160: IN 1.0 Control Change on ch. 1 with CC#:1 (0x01) and any value set “qq” to value=42
161: OUT 1.0 Pitch Bend on ch. 1 with bend:tt=-5000000

The problem with the MOD STRIP is that it doesn’t JUMP to specific value for ex if the LEDS indicate a low value and I press high value it seems from the indicator LEDS to jump immediately to the high value but the LOG window show that it goes sequentially to the higher value by going through all the intermediary values like a mod wheel and not a strip. This means that if the MOD (wheel) is on low/est point and I want to slide from the high/est point downwards, I have to press the STRIP in the high point before next NOTE ON.

It seems strange this request because the manufacturers implemented the PITCH strip in the MIDI controllers with a center that also is not marked (only the AKAi seems to be marked by a bump in the middle) and also by halving the range it gets very short and unprecise.

I didn’t check all of them but the Hydrasynth ribbon works as required by me (although the investment in one is very costly only for the ribbon) and also I think most of the top workstations and keytars that have PITCH ribbon you can start the sliding from anywhere and not being concerned with finding the exact center point, for example when wanting a longer slide you start at the opposite end of the ribbon, but all MIDI keyboards have the ribbon centered : MIdiplus, Arturia, Novation, Native Instruments, Akai, ABLETON PUSH etc.

I fixed this, I forgot to turn of swallow in translator 1.1.
We both reset pitch bend in transator 1.1 and send the note-on using the MIDI thru path.

1: MIDI IN [Launchkey Mini MK3 MIDI]: 90 3C 38
2: MIDI OUT [Bome MIDI Translator 2 Virtual Out]: E0 00 40
3: MIDI OUT [Bome MIDI Translator 2 Virtual Out]: 90 3C 38

I programmed it literally like you requested. You didn’t say what you wanted one with the Mod strip outside of the 2 specified ranges.

Please provide what values one want for output across the whole 0-128 input range.

I don’t think I will be able to control what the LED’s show on the Mod strip.

I also cannot control the value of the incoming MIDI based on where you touch the strip. Maybe it is best to try and convert absolute value to relative value, but with doing that, there might be some scaling issues. For instance if it is scaled 0-127 and you press on value 64 you will have a range of 64 in both directions but if you press on 32 you will have a larger upper range than lower range.

So it looks like you want wherever you start on the MOD strip to be at center position, right? Again, there may be a problem with the range values depending on where you put your finger. I’m also confused why you only want a 128 range for pitch bend where the normal pitch bend range is 16384.

Does the pitch bend strip work OK if you use it instead of the MOD strip? Not sure why you are not just using the native pitch bend strip.

Here is the project with tne not to pitch bend reset fixed.

Mod-Wheel-to-Pitch-Bend-2025-10-03.bmtp (3.5 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Hi, Steve, you are right that the pitch range should be 16384. I thought it would be simpler to map it with -64/+64 range.

If you have the Novation controller with the strips please check the script with it because I think there can be many errors or things that don’t work as expected.

The pitch bend works OK but it is hard to find the center being marked only by one LED and I hoped to get a double range with the MOD strip. The biggest problem is that the MOD strip doesn’t JUMP to another value when pressed (as it’s LEDS indicate) but it goes through all the intermediary values like a real MOD wheel. This means that if I have a NOTE on pressed and I try to slide on the MOD strip I also need to start exactly from the current position (shown by it’s Leds) otherwise it will send all the intermediary values from it’s current position to the position where I press.

For example if I wanted a long upwards pitch bend I thought it could be done on the MOD strip by sliding from a low value to a high value without taking extra care about the starting point. But this behavior (like a wheel that goes through all intermediary values and not jumps to the starting point) makes it very difficult to implement. It would be needed to press two times at the starting point : first press before next NOTE ON to set the starting point (like moving the WHEEL to that position) and the second press in ~ the same point + glide in desired direction. This poses one more problem if the direction gets changed the script should remember the starting point as ZERO pitch and allow UP/DOWN alternate movements on the ribbon.

Theoretically the PITCH ribbon can be “used” for pitch bending but not having a reference BUMP on the ribbon (only AKAI has on it’s ribbons and probably ABLETON PUSH), and being very short (4cm in one direction and even smaller on smaller keyboards ) makes it very unprecise .

Maybe it takes more practice but I am not happy to take this challenge knowing that all well thought Workstation ribbons (Yamaha Motif/Montage, Korg Triton/Kronos, PA3x-5x) and Keytar like Roland AX-EDGE / AX Synth work as it should be (taking any new starting point as the ZERO PITCH) , makes the ribbons on the most MIDI keyboards hard to use and imprecise. Also the vertical direction of the ribbons is not natural, many having horizontal ribbons. The horizontal and centered ones and not very long (like the ABLETON Push that is double size) I think are more difficult to control than a good joystick like on Korg keyboards for example.

I think I will try this weekend to test the ribbons more and if it is too hard to control the pitch with the Ribbons I think I will exchange the MIDIPLUS x-8 III keyboard with a KORG i3 (with joystick) or a Hydrasynth that is the best solution I found so far but “far” too expensive and large to use it only for the ribbon. One great thing is that is can have the ribbon calibrated to the coresponding pitches on the keyboard. The perfect ribbon would be like on the KORG RK-100s under the keyboard (not upward like Kurzweil, Arturia and all synths with ribbon) and with the functionality of the Hydrasynth ribbon : if I have a note pressed and start sliding on the ribbon, it takes the starting position as the ZERO pitch and if it is calibrated to have same pitches as the keyboard , you can also know the pitch where the sliding end (landing pitch) so you can continue the melody on the keyboard from that point.

Also there are alternatives on the iPAD : Geoshred that need learning like guitar, and probably apps for sliding on the ipad touchscreen.

Also it would be great if we could use the LAPTOP touchpad to control pitch bend and modulation as most Piano keyboards don’t have the wheels for PITCH/mod. The laptop touchpad can be used also for other CC controls (dividing the touchpad in 2-4 zones etc).

Sorry Steve for writing so much, I got a little too enthusiastic because of your interest in solving the problem. Most of the programmers that I communicated dismiss the problems or my new ideas very fast , probably they can’t think outside the “box”.

I will try to find some solutions this weekend and if not possible I can still return the keyboard and take one with better ribbons or joystick although the price difference is not justified.

Thanks a lot for your interest and help.

Yes, I need to think on this more. I see the the design of using strips for pitch bend and modulation may not be the best approach for the reasons you mentioned. There is nothing from the strips that differientiates an initial touch from a general movement and if you need to calculate the zero position at initial touch you need to determine when initial touch happens. Also depending on how far off center you are at initial touch, the scaling would need to be adjusted from that touch point. This presents a challenge in maybe not being about achieve the entire range you desire.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

I did a little testing on my controller.

For me, PB if pressed near the center does nothing until I go off center. If pressed slightly off center it’s starting point is the actual value based on where I pressed on the strip. When released, it always goes back to zero (not jump but pretty fast). I haven’t analyzed the timing here.

For the mod strip, the initial value when pushed, is based on the touch location. When released, it stays at that location unless touched again. It never tracks back to 0.

So maybe the logic for the mod strip is that if the starting location is greater than say 70 (64+6), you assume that you will be doing PB down and scale range of 70 to 16384 based on the real starting point.
If you touch at say 58(64-6), you assume you will be doing PB up and you scale 58 to 16384. You always set the virtual starting point for pitch bend to 8192 (zero if bipoler).

If you press between 58 and 70, then you do nothing since you don’t know which way you plan on bending. (Similar to how what the PB strip does).

Then the issue is how do tell when you release your finger so that you know to set PB back to center. There doesn’t seem to be any unique release trigger on the MOD strip. It just stops sending CC so you might need a timer to determine that if it hasn’t changed with say 100ms, you must have released your finger and set PB back to center.

Maybe it would be better to just repurpose a few buttons on your controller to handle PB up and PB down. If they can programmed as velocity sensitive, we could also use how hard you press to control the bend speed? Maybe even use the lowest 2 keys on your keybed for this function instead of playing notes.

Your thoughts? Is this how your strips behave?

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz