update Hercules P32 mapping#1200
Conversation
following the redesign of Deere, effect unit assignment buttons are associated with decks
now that Components supports shift + effectFocusButton to toggle EffectUnits
Now that they do not adjust beatloop_size out of sync with the actual loop size
I got confused many times because the encoders are labelled symmetrically but nothing else on the controller is. So make the entire deck asymmetrical.
and remove reloop CO which was removed from PR mixxxdj#1187
beatloop_toggle no longer deactivates loops
now that loop_move_forward/backward have been removed
|
Who is able to review this? |
|
Wiki page has been updated. |
now that shift + sync toggles quantize
|
Ready for merge? It would be nice if Hercules could test all the new features with a master build. |
| this.alignBeats.send(P32.padColors.blue); | ||
|
|
||
| this.enableEffectUnitButtons = new components.ComponentContainer(); //fii | ||
| this.enableEffectUnitButtons[1] = new components.EffectAssignmentButton({ |
There was a problem hiding this comment.
Perhaps create these in a loop?
There was a problem hiding this comment.
A loop would require some math for calculating the second byte of the MIDI messages, which I think is a bit overcomplicated when there are only 4 iterations. Sometimes it's easier to just copy & paste.
There was a problem hiding this comment.
Alternative to math:
this.enableEffectUnitButtons = _.map([0x40, 0x41, 0x3c, 0x3d], function(midi, index) {
return new components.EffectAssignmentButton({
midi: [0x90 + channel, midi],
effectUnit: index + 1,
group: this.currentDeck,
on: P32.padColors.blue,
off: P32.padColors.red,
});
});There was a problem hiding this comment.
No need to use Lodash for this, standard Array.prototype.map works.
| }, true); | ||
| } else { // right turn | ||
| engine.setValue(this.currentDeck, 'beatjump_1_forward', 1); | ||
| engine.beginTimer(200, function () { |
There was a problem hiding this comment.
Why is this timer necessary here?
There was a problem hiding this comment.
So the button on screen lights up. Thanks for the reminder about this. I'll factor this out into a common function for common-controller-scripts.js.
There was a problem hiding this comment.
But why delayed by 200ms? I trust the the code is necessary actually and I think I've had to do it as well - at least setting something to 1 and then back to 0 immediately without delay.
Would definitely be nice to have factored out, thanks!
There was a problem hiding this comment.
The delay is so the skin button lights up briefly. If it is set to 1 then immediately back to 0 there is no response on screen. For this particular case, there are no skin buttons that light up with beatjump_1_forward, so it doesn't really make a difference. But for buttons like eject it does make a difference.
| engine.setValue(this.currentDeck, 'eject', 0); | ||
| }, true); | ||
| } | ||
| engine.setValue(this.currentDeck, 'eject', value / 127); |
There was a problem hiding this comment.
No longer triggerControl?
There was a problem hiding this comment.
No, I realized that wasn't appropriate here because there is a button up event... although, thinking about it again, this implementation requires that the Load button is released before the Shift button, which is the problem I solved for Components Buttons in #1271. I think I'll refactor this to use Components.
| engine.setValue(this.group, 'play', 0); | ||
| } else { | ||
| engine.setValue(this.group, 'eject', 1); | ||
| engine.beginTimer(225, function () { |
There was a problem hiding this comment.
Can use new triggerControl here?
also rearrange the code from top to bottom in order of how the controller is arranged
By default, the mapping is mirrored like the encoders' labels
The LED displays on the controller can show a maximum of 64.
ceb2ab3 to
8ebe756
Compare
|
Ready for merge? |
|
Ping. Ready for merge? The mapping in master has been broken for some time now with API changes to the Components library. |
|
Is there any reason this has not been merged? |
|
Should I just merge this now, so we can wait for feedback in the beta phase? |
|
Yes. Evidently no one is going to give feedback until this is merged. |
|
Ok, thank you for the work. |
plus miscellaneous bug fixes and code cleanup
depends on