Lykos153 / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4 stars 4 forks source link

Stop LEDs from turning off after button release #3

Closed Lykos153 closed 6 years ago

Lykos153 commented 6 years ago

The DJ-202 seems to have a hardcoded behaviour for some buttons: The LED is turned off when the button is released. So for those buttons, the MIDI message needs to be resent on release. I'm currently working on this using modified Button objects.

Affected buttons are: Play, CUE, Sync, Keylock

Idk how common this is. Maybe this can be contributed to the components.js

eigengrau commented 6 years ago

In relation to this: this issue also arises when certain buttons are pressed in conjunction with the shift key. I mapped FX cycling to shift+FX1-3 yesterday (will open a PR later today) and noticed that the controller would disable the FX-focused LED for that button.

Also, I found out that in order to disable the sync LED, you need to send another note to the controller.

This is mostly relevant when one disables BPM sync in the GUI. Then, in order for the controller to reflect the correct state, one must send note 0x03. So the note value is shifted by one, which corresponds to the controller’s labelling, where sync off is on the shift layer. One could remap the sync off command so that it corresponds to the controller labelling, but IMHO the long press behaviour works well and allows us to use shift+sync to toggle quantization (this is the default behaviour of components.SyncButton).

eigengrau commented 6 years ago

I think all the LED issues should be addressed so far, though the implementation has not yet been factored into one underlying base class.

Be-ing commented 6 years ago

Idk how common this is.

This is really weird. I have never heard of it on another controller. This is what happens when manufacturers hardcode application logic into controllers' firmware...

Be-ing commented 6 years ago

In relation to this: this issue also arises when certain buttons are pressed in conjunction with the shift key. I mapped FX cycling to shift+FX1-3 yesterday (will open a PR later today) and noticed that the controller would disable the FX-focused LED for that button.

The Hercules P32 firmware also does this changing of LEDs when the shift button is pressed. I made the sendShifted Component property to work around this. This flickering of LEDs when pressing the shift button is bad UX design because shift buttons are pressed to access a variety of unrelated functions. For example, if you want to use the shift + play function and the effects button LEDs change when you press shift when you aren't thinking about effects, that creates a distraction. Here is another example of manufacturers creating hassles by baking application logic into controller firmware. :/

eigengrau commented 6 years ago

Yea, it’s a bit silly. Closing this for now, since I believe we have all the LED self-disable issues covered.