Many thanks for your hard work to bring scale aware push bends to the Push 3 MPE surface in Bitwig. I see that as per our previous discussion, you did have to write the implementation code for this yourself.moss wrote: Sun Sep 14, 2025 5:23 pm
[*]Push 3
- New: MPE Pitchbend does now work with the selected scale!
- New: Added support for configuring the pad sensitivity curve incl. a graphical visualisation.
So I'm sorry to bring you pain by reporting that things are not working if you move your 'pitch bending' finger(s) to the left of the pad(s) that were first pressed to trigger the note. The bends end up going up instead of down when moving down from the original note, and then on the way back up towards the original note/pad they start going down instead of up. This is most noticeable if moving finger quite slowly, because the pitches do end up correcting themselves once they reach the pitches that every pad represents, its in all the positions between the centre of each pad that the issue shows up really obviously. At its most noticable, it sounds quite like the sound that old computer games used in racing games where the car is changing gears while increasing speed. The issue doesnt really show itself obviously if your bend is upwards/to the right of the original note triggering pad(s)
I'm not sure if that explanation is good enough so I recorded the resulting pitch data in bitwig and the issue shows up pretty clearly in their visual representation of the per-note pitch bends. Instead of relatively smooth curves downwards from the original note (and in this example, then back up again towards the original note), we get:
(The 'sudden drops' and 'sudden rises' are when we reach near the middle of other pads and the pitch corrects itself to where it should have reached gradually, so its actually the gradual ramping phases in this graph that are the error, they are going in the wrong direction).
In regards the additional config steps you had to detail for users in your recent video, I believe this issue arises mostly because in the standard, simplistic controller scripts that Bitwig includes for other MPE controllers, those really simple scripts make use of "noteInput.setUseExpressiveMidi(true, 0, 48);" stuff. And when UseExpressiveMidi is enabled by those scripts, MPE simply works with built in instruments without users having to make the additional config steps that you detailed. And for plugin instruments, users only have to enable the MPE button on the instrument instance. I am not familiar with the much more complicated world of advanced scripting that your work uses, so I am not able to say whether you can make use of something that behaves the same as setUseExpressiveMidi and have it make use of your scripts own stream of generated MIDI data.
