Traktor Kontrol S4 Mk3: add 4 effect units#14895
Conversation
acolombier
left a comment
There was a problem hiding this comment.
Couple of surface comment, haven't tested it yet!
| shift: function() { | ||
| this.group = this.unit.group; | ||
| this.outKey = "group_[Master]_enable"; | ||
| this.outConnect(); | ||
| this.outTrigger(); | ||
| }, | ||
| unshift: function() { | ||
| this.outDisconnect(); | ||
| this.outKey = undefined; | ||
| this.group = undefined; | ||
| this.output(false); | ||
| }, |
There was a problem hiding this comment.
This feature, which allows to enable post fader FX seem to be entirely lost. Could we move it so it can still be used somewhere? (e.g shift+long press)
There was a problem hiding this comment.
Ah, that was the intention.
Then it would be good to make it a quick toggle / powerwindow button, ie. act on press.
And the other function (switch effect unit?) could be the longpress function as it's not time-sensitive.
| // onShortPress: function() { | ||
| // // TODO dummy impl to avoid "Unknown control [EffectRack1_EffectUnit1], " | ||
| // // TODO seems this slips through in Button -> defaultInput() | ||
| // // console.warn(`focusButton shortPress`); | ||
| // }, |
There was a problem hiding this comment.
Well, I saw that warning being logged.
But I'll test again.
Uses Mixxx' standard effects mapping, supports effect focus mode. https://manual.mixxx.org/2.5/en/chapters/effects#controller-effects-mapping
4618da8 to
a2ddfa3
Compare
acolombier
left a comment
There was a problem hiding this comment.
Sorry for coming back so late to this! I am planning to test this in the coming days! Feel free to prepare the manual update already :)
| console.warn("ERROR! new S4Mk3EffectUnit() called without specifying any unit numbers!"); | ||
| return; |
There was a problem hiding this comment.
How about throwing an exception? Otherwise, this will log the failure but will carry on the execution in a "broken" state.
| if (numbers.length > 2) { | ||
| console.warn("ERROR! new S4Mk3EffectUnit() called with more than 2 unit numbers!"); | ||
| return; | ||
| } |
There was a problem hiding this comment.
Same here - exception instead?
| if (numbers.length > 2) { | |
| console.warn("ERROR! new S4Mk3EffectUnit() called with more than 2 unit numbers!"); | |
| return; | |
| } | |
| if (numbers.length !== 2) { | |
| throw Error("S4Mk3EffectUnit() constructed with more or less than 2 unit numbers!"); | |
| } |
| let numCount = 0; | ||
| for (const num of numbers) { | ||
| if (typeof num === "number") { | ||
| numCount++; | ||
| } | ||
| } | ||
| if (numCount < numbers.length) { | ||
| console.warn("ERROR! new S4Mk3EffectUnit() called with array that contains other types than numbers!"); | ||
| return; | ||
| } |
There was a problem hiding this comment.
| let numCount = 0; | |
| for (const num of numbers) { | |
| if (typeof num === "number") { | |
| numCount++; | |
| } | |
| } | |
| if (numCount < numbers.length) { | |
| console.warn("ERROR! new S4Mk3EffectUnit() called with array that contains other types than numbers!"); | |
| return; | |
| } | |
| if (!numbers.every(num => typeof num === "number")) { | |
| throw Error("S4Mk3EffectUnit() constructed with array that contains other types than numbers!"); | |
| } |
| shift: function() { | ||
| this.group = this.unit.group; | ||
| this.outKey = "group_[Master]_enable"; | ||
| this.outConnect(); | ||
| this.outTrigger(); | ||
| }, | ||
| unshift: function() { | ||
| this.outDisconnect(); | ||
| this.outKey = undefined; | ||
| this.group = undefined; | ||
| this.output(false); | ||
| }, |
| // empty 'key' is not considered in Button/PowerWindowButton | ||
| onShortPress: function() {}, | ||
| onShortRelease: function() { | ||
| // console.warn("focusButton shortRelease"); |
There was a problem hiding this comment.
Comment cruft
| // console.warn("focusButton shortRelease"); |
There is a bunch of them in the file, and they seem to have been added for a one off debugging, so I don't think it make sense to keep them, are you happy to remove them?
Thanks for taking the time to review. The manual is here mixxxdj/manual#777 |
|
Tested this mapping and unfortunatelly, I was unable to get the effect 3 and 4 to work as expected. |
Are you happy to make that PR a draft till you get a chance to look into this? |
|
Sure. |
Uses Mixxx' standard effects mapping, supports effect focus mode.
https://manual.mixxx.org/2.5/en/chapters/effects#controller-effects-mapping
This is an attempt to merge the midi-components effect unit into the S4 one.
Bonus: the previous effect focus state is restored
I've been using a minimal, hacky version of this since.. a week after I got the S4 ; )
and finally I managed to backport this and clean it up!
Features / Extras
In addition to the standard fx mapping
Breaking changes, due to switch to Mixxx standard mapping:
Meta knobs 1 | 2 | 3 | Mix knob
Effect toggles 1 | 2 | 3 | Focus button
(before it was X | 1 | 2 | 3)
(we may find a way to integrate that, but this had no prio for me)
TODO