bitwig/bitwig-extensions

Arturia Keylab MKII: some help understanding what happens and maybe an API bug

Opened this issue · 2 comments

Hi,

I'm trying to solve what looks like a bug in the Arturia Keylab MKII 49 controller script.

Context:

  • this controller allows to select a track and solo it (pretty standard)
  • there are two ways to select a track
    • either by scrolling with a big wheel in the center of the device
    • or by pressing one of the eight available mixer slices' selector button (selects position 1 to 8 in the current track bank)

Expected behavior:

  • solo button should solo the currently selected track

Actual behavior:

  • 🟢 solo button works when track was selected using the scroll wheel
  • 🔴 solo button does nothing when track was selected by pressing a button selector (even though the UI displays the track as selected)

The code:

Observations:

It seems that binding the wheel to the CursorTrack (bullet 2) does something more than what selectChannel() does (bullet 3) when pressing one of the buttons. Because then solo() (bullet 1) works.

API Reference:

The CursorTrack class seems to implement Cursor and CursorChannel. The former offers selectPreviousAction() (and its counterpart) but the latter only offers selectChannel().

  • select(Previous|Next)Action() is implicitely executed on wheel scroll (by layer.bind(), that's my guess)
  • selectChannel() is explicitely executed on button press

I'm guessing in the first case something happens that makes solo() work, and it's missing in selectChannel().
So the issue could as well reside in the Controller Script API, in other words I can't fix it by myself.

What next?

Could you please help me understand this and point me towards the right direction?

Thanks 😄

Just ran into same issue. Using 8 buttons to select track breaks solo, mute and arm buttons. Thinking could be fixable by calling selectNext/Previous multiplte times or by remapping those buttons to scroll the cursor track instead. Or use them for anything else because now they are broken

Not an API bug, using MidiView I realized that pressing one of the 8 SELECT buttons will change what MIDI mute/solo and arm send out. I will make a pull request for a patch that maps different button note codes correctly.