c0redumb / midi2vjoy

MIDI to virtual joystick mapping
BSD 2-Clause "Simplified" License
96 stars 31 forks source link

Korg nanoKontroller Does not Register Buttons #21

Open KO0I opened 3 years ago

KO0I commented 3 years ago

Dear lovely midi2vjoy developers,

Preface

I have a Korg nanoKontrol2, and so I want to preface that a lot could stem from the quirks of this specific device hardware+firmware of which I am ignorant, but I wanted to mention the conditions and outcomes in case any of it could be addressed. I have found a workaround, though ugly and somewhat incomplete. I like the promise of this software and hope that I can find a better solution.

No Button

Using the guide, I was able to create a reasonable-looking conf file and when running it, the sliders and knobs work! Ok good, but the button presses did not seem to register, though the mapping in the log was dutifully mapping the button presses to the desired button. I have 33 buttons on the first device and the default number on the second. I figured I could map the sliders/knobs to X,Y,Z, etc. and the buttons to buttons. At the following link you will see that the knobs get through, but the buttons mapped to 1 through 7 on vJoy device 1 do not.

Button m_type is unusual

The first sign of trouble came when testing, and may be obvious to the developers in the previously linked gif. This device lists all buttons with an m_type of 176. The buttons did not register as 144 as anticipated. Regardless of device 1 or 2 being the target, the Korg nanoKontrol would not show the buttons being pressed in game or in the Game Controllers -> Properties window.

Workaround

My first workaround was to map all these buttons to joystick, but only SL0 and SL1 register. This is good because I have a way to map buttons to something, but it is not good because I have only two buttons I can associate per vJoy device. This means that to use the 33 buttons on my device, I have to break them into 17 vJoy to remap to each devices' SL0 and SL1. This alone may be more than the 16 devices I think vJoy is able to support.

Conclusion:

My first and big problem is why button presses (of m_type 176 for mysterious Korgy reasons) aren't mapping to vJoy. Is there a limitation that buttons that happen to have the wrong m_type cannot act as de-facto buttons? Is it instead vJoy refusing to call "sliders" as "buttons" because of the m_type?

So my second and little problem is with the inconsistency between SL0 and SL1 v.s. the other axes. I don't know what X, Y, Z, etc. axes look for but SL0 and SL1 are not limited by.

Thanks and 73, KO0I