Mixtrack Pro 3

What version of Mixxx are you using and where did you get it from (repo or compiled yourself?)

The laptop I’m running it on is fairly decent (Core i5) and even though the framerate monitor in the settings shows almost a constant 60fps the spinnes and waveform would freeze however the audio and controls would be fine.
Another problem I have run into which might boil down to the fact that I’m using FLACs is that it will play almost half of the track before going completely silent and the only way to fix it is to restart the application.

Currently using Traktor Pro on my Windoze desktop and loving it (better than the VirtualDJ LE and Serato Intro crap which won’t play FLACs that are bundled with the controller) so at least I have something to use while this mapping is being developed.

I run Mixxx 1.12 beta compiled from git and update it regularly. I use RGB (GL) waveforms at 20 FPS with the onboard GPU with my Core i5 and 4GB RAM.

That FLAC issue is critical. Please open a bug report. I play all FLACs and they work fine. If the FLAC is corrupted, it can stop playback although the waveform continues (whereas it used to crash Mixxx). This might be related to this pull request.

That’s atrocious that Serato DJ Intro doesn’t play FLAC. :frowning: That’s also bad on Numark’s end to include demos that don’t work with the included software.

I worded that slightly poorly, I meant that the bundled software doesn’t play my FLACs :blush:

I’ve tweaked the code provided by wallollo by ordering the MIDI mappings in a more methodical order and I’ve provided descriptions for most of the mappings (keep in mind that I don’t have the controller in hand at the moment).
I’ve renamed the files to fit with the naming convention and adjusted the names of the functions.

Here’s the MIDI preset and the script

Those links point to the same URL.

You can also use the wiki page for the description.

I’ve now fixed the links and changed the description :slight_smile:

Ive tested the numark mixtrack 3 with wollolo’s mapping and can confirm it does work but only partially.
Things that don’t work:
Mpc pads,
100mm pitch sliders,
strip search,
filter nobs,
headphone buttons(yes headphone buttons are also on the mixtrack 3)
jog wheels,
and the search nob/shift button.
please fix and im also working with a friend to develop mixtrack 3 mapping!
Yours truly,
Epicnb89

I’ve finally got around to compiling 1.12 on my Fedora machine (the bugs I was having from the RPMFusion version are now gone!) and finally got my Mixtrack 3 (after Amazon sent me two Pro versions, when I had ordered the standard version).

I’ve been able to test my modified mapping and it works perfectly! Most of the functions are working and perfectly usable, jogwheel and pitch faders work perfectly!

Sounds like it is not loading the script file, just the MIDI mappings. My version and wallolo’s version work perfectly on my Linux and Windows machines.

Awesome! Could you make a pull request against the 1.12 branch? Also, please use the new sync_enabled control for 1.12 rather than beatsync to take advantage of master sync lock.

Is there a reference documenting all the 1.12 controls? The one on the wiki seems to be for 1.11

The page on the wiki is kept up to date with development, with the Mixxx version the control was added marked by the superscript numbers. Take a look at this wiki page for more info about new controls in 1.12.

I’ve now got the cue LEDs and hotcue LEDs to work, and I’ve changed the way the play/pause LEDs work so that it mirrors the onscreen buttons (so you can now use the different cue modes).

You can download the files from the same link as before.

Next step is to get the quick effect control mapped to the filter knob.

I’ve been having problems getting the js to work. All errors seem very similar:

Uncaught exception at line 725 in file /home/.mixxx/controllers/Numark-Mixtrack-3-scripts.js: TypeError: Result of expression 'NumarkMixtrack3.shiftKey' [undefined] is not an object.

or

Uncaught exception at line 581 in file /home/.mixxx/controllers/Numark-Mixtrack-3-scripts.js: TypeError: Result of expression 'NumarkMixtrack3.scratchMode' [undefined] is not an object.

This is on the 1.12 beta1 on Linux Mint 17.2 x64. Any thoughts on how to get it going?

EDIT: Still struggling to get it going. I think the problem is something to do with the way each deck is identified, but my limited knowledge of Javascript precludes me deciphering that bit of the script.

im having trouble with wolloolo’s numark mixtrack pro 3 mapping with the mixtrack 3.
Here is the code problem:

  • Check to see that the MixxxControl names are spelled correctly in the mapping file (.xml)
  • Make sure the MixxxControls in question actually exist. Visit this wiki page for a complete list: mixxx.org/wiki/doku.php/mixxxcontrols

MIDI output message 0x91 0x02 has invalid MixxxControl [Channel1], sync_enabled
MIDI output message 0x92 0x02 has invalid MixxxControl [Channel2], sync_enabled
please help!

Are you using 1.12 beta?

no. And i don’t know where to get it either

It’s on the Mixxx download page: mixxx.org/download/

Anyone got any thoughts on the Javascript problem outlined above (using InverseSandwich’s files)? I can’t decide whether it’s a Mixxx bug or a problem with the script itself.

I can confirm that commenting out this removes the error messages, but doesn’t make the script work:

[code]NumarkMixtrack3.groupToDeck = function(group) {

var matches = group.match(/^\[Channel(\d+)\]$/);

if (matches == null) { 
	return -1;
} else {
	return matches[1];
}

}[/code]

EDIT: I’ve now tried the mappings on a different computer/OS. Mint 17.2 Xfce, Mixxx 1.12 beta. It’s a nightmare. Mixxx crashes after clicking OK after selecting the mapping. You can get the mapping to stick if you choose another inbuilt one first, then switch to the custom map. However, Mixxx then sometimes crashes on startup. If it doesn’t crash, the Mixtrack doesn’t work on any of the controls. I can’t even get to the situation I’ve outlined above where the javascript constantly fails.

EDIT2: Sorry for these updates, trying to give as much information as possible. I’ve discovered that if you delete the functionprefix=“NumarkMixtrack3” in the midi map, Mixxx becomes a lot more stable - ie. it doesn’t crash on startup and the midi map loads, but that’s when I start getting Javascript errors (as you might expect). Still not sure if this is a problem with Mixxx or the script file. Clearly something is going seriously wrong when Mixxx tries to call the script with the function prefix.

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.

The only thing I can’t seem to get working is the filter knob. I tried adding each deck’s 0x04 as the filterCutoff for [Channel1] and [Channel2] to the xml, but it doesn’t do anything. It looks like there’s currently some workaround in the .js that uses the loaded effect racks, but that isn’t working for me either. Also, the filter knob isn’t in the MIDI learning wizard. Maybe if that got added to Mixxx, it should be as easy as running through each knob through that.

EDIT: I think they’re reworking the EQ controls so that the filter knob does in fact count as an effect. I wish they’d keep it simple and leave it like the rest of the EQ filters.