After a lot of trial and error I have made significant progress.
This is the function that crashes Mixxx on both my computers:
[code]NumarkMixtrack3.setLoopMode = function(deck, manual) {
NumarkMixtrack3.manualLoop[deck-1] = manual;
NumarkMixtrack3.setLED(NumarkMixtrack3.leds[deck]["manualLoop"], !manual); //TODO: fix setLED
engine.connectControl("[Channel" + deck + "]", "loop_start_position", "NumarkMixtrack3.onLoopChange", !manual);
engine.connectControl("[Channel" + deck + "]", "loop_end_position", "NumarkMixtrack3.onLoopChange", !manual);
engine.connectControl("[Channel" + deck + "]", "loop_enabled", "NumarkMixtrack3.onReloopExitChange", !manual);
engine.connectControl("[Channel" + deck + "]", "loop_enabled", "NumarkMixtrack3.onReloopExitChangeAuto", manual);
var group = "[Channel" + deck + "]"
if (manual){
NumarkMixtrack3.setLED(NumarkMixtrack3.leds[deck]["loop_start_position"], engine.getValue(group, "loop_start_position")>-1); //TODO: fix setLED
NumarkMixtrack3.setLED(NumarkMixtrack3.leds[deck]["loop_end_position"], engine.getValue(group, "loop_end_position")>-1); //TODO: fix setLED
NumarkMixtrack3.setLED(NumarkMixtrack3.leds[deck]["reloop_exit"], engine.getValue(group, "loop_enabled")); //TODO: fix setLED
}else{
NumarkMixtrack3.setLED(NumarkMixtrack3.leds[deck]["loop_start_position"], false); //TODO: fix setLED
NumarkMixtrack3.setLED(NumarkMixtrack3.leds[deck]["loop_end_position"], engine.getValue(group, "loop_enabled")); //TODO: fix setLED
NumarkMixtrack3.setLED(NumarkMixtrack3.leds[deck]["reloop_exit"], false); //TODO: fix setLED
}
}
[/code]
Most of the Javascript errors can be fixed by replacing all instances of
deck-1
with
deck - 1
Those spaces seem to make a big difference!
There are still a couple of errors, but they can be ignored and the script works ok. That said, I think a lot of it isn’t working - my meter lights don’t work for example. But yes, most important buttons are functioning… hurray.