git-moss / DrivenByMoss

Bitwig Studio extensions for many controllers: Ableton Push I/II, Akai APC40mkI/mkII/mini, Fire, Arturia Beatstep, Novation Launchpads / Remote SLs, NI Maschine / Komplete, Open Sound Control (OSC) and many more.
https://www.mossgrabers.de/Software/Bitwig/Bitwig.html
GNU Lesser General Public License v3.0
562 stars 142 forks source link

Feature request - Generic Controller: Adjust black and white keys velocity #369

Closed tdddblog closed 6 months ago

tdddblog commented 10 months ago

Some MIDI controllers, such as M-Audio Keystation or Oxygen Pro have different velocity / weight / resistance for white and black keys. It is a known issue and these controllers could not be used with velocity sensitive instruments. Please include velocity fix / compensation option in generic MIDI controller driver.

The fix is very simple. This is how I implemented it in Logic Pro's Note FX Scripter plugin:

black = [1,3,6,8,10];

function HandleMIDI(event)
{
  if(event instanceof NoteOn) 
  {
    r = event.pitch % 12;
    // Is it a black key?
    if(black.includes(r)) 
    {
            // Bump up velocity 20%
        vel = Math.round(event.velocity * 1.2);
        if(vel > 127) vel = 127;
        event.velocity = vel;
    }
    Trace(event.velocity)
  }
  event.send();
}
git-moss commented 10 months ago

Intersting, wasn't aware of the issue. It needs a different approach with Bitwig but it is not hard but needs some work. Will add to the wishlist.

git-moss commented 6 months ago

I was looking into this but sadly I can only adjust the velocity for all keys but not for individual ones via the Bitwig API.