Page 1 of 1

How to use ShiftSelector?

PostPosted: 31 Mar 2019, 23:25
by dnine
Any documentation on how to use ShiftSelector, for both input and output?

Re: How to use ShiftSelector?

PostPosted: 02 Apr 2019, 13:02
by dnine
I've been able to get input and partial output working using the "mod(ShiftSelector)" functionality.

What I'm trying to achieve is to control two players (or more) from a single deck controller (Behringer CMD PL-1).
By default this controller has a deck switching button which, when pressed, causes all controls to still output the same message but on a different channel. Pressing the button cycles the 4 available channels.

While this works, it has some drawbacks:
  1. When using less than 4 decks you need to press the button 3 times to go from deck 2 back to 1. You could create duplicate mappings for decks 1/3 and 2/4, but there are some challenges getting endless encoders/pitch bend led output messages mapped (there seems to be no way to send MIDI output to multiple channels at the same time for CC messages).
  2. It is very hard to see what deck is currently selected using the tiny indicators. Large illuminated buttons are preferred preventing stopping the wrong track...

To work around these limitations I wanted to promote the "1" and "2" buttons on the controller to deck selection buttons.
These should change color when selected to clearly indicate what player is active and allow you to directly switch to the wanted deck/player by choosing the other button.
The ShiftSelector seems made for this purpose.
It can store a modifier state from 1 to 7.
Then this state is active as modifier for all controls (including the deck select buttons, don't let this catch you!) on the controller. It can then be used to direct messages to the correct player, and direct software output (led) messages to the correct control.

Using trial, error and perseverance I've managed to map input and partial output (see below). What I currently haven't found yet is how to have the ShiftSelector buttons themselves light up correctly.
The other buttons like Play, Cue, ... all light up only when they are active for the current player, as expected.

I will post some snippets with documentation later, but you can take a look at my mappings in a Github open repository: ... r.mappings

Not that this is a work in progress!