Skip to content

Add controller mapping for Numark Party Mix II - #16155

Open
rrrapha wants to merge 4 commits into
mixxxdj:mainfrom
rrrapha:party-mix-2
Open

Add controller mapping for Numark Party Mix II#16155
rrrapha wants to merge 4 commits into
mixxxdj:mainfrom
rrrapha:party-mix-2

Conversation

@rrrapha

@rrrapha rrrapha commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

The Numark Party Mix II (https://www.numark.com/product/party-mix-ii) is very similar to the Numark Party Mix.
The main differences are:

  • There are no buttons for "scratch-mode".
  • The jog-wheels are touch-sensitive.
  • There are filter knobs for each channel.

I tried to keep the differences to the Numark Party Mix mapping as small as possible. I think it makes sense to keep these mappings in sync.

@rrrapha
rrrapha force-pushed the party-mix-2 branch 5 times, most recently from d3d9ab0 to ada392d Compare March 14, 2026 00:03
@ronso0

ronso0 commented Mar 14, 2026

Copy link
Copy Markdown
Member

Thank you for this PR!

Please squash the fixup commit into the mapping commit.

Why did you run pre-commit on the Mk1 mapping?
Wrt reviewability, it would be good to have (temporary) commits:

  • clone the Mk1 -> Mk2 mapping
  • apply Mk2 changes

This would allow reviewers to spot the changes and not have to review the cloned parts of the Mk1 again.
Before merge commits can be squashed (one for the eslint fixes for Mk1, and one for the new Mk2 mapping)
Do you think that's feasible?

@rrrapha

rrrapha commented Mar 15, 2026

Copy link
Copy Markdown
Contributor Author

Thank you for this PR!

Please squash the fixup commit into the mapping commit.

Why did you run pre-commit on the Mk1 mapping?

I did this because pre-commit was running on the new Mk2 mapping and I wanted to keep the diff between the two mappings small. If you compare Mk1 to Mk2 you will only see the relevant changes.

Wrt reviewability, it would be good to have (temporary) commits:

* clone the Mk1 -> Mk2 mapping

* apply Mk2 changes

This would allow reviewers to spot the changes and not have to review the cloned parts of the Mk1 again. Before merge commits can be squashed (one for the eslint fixes for Mk1, and one for the new Mk2 mapping) Do you think that's feasible?

I can do this next week, I'm on holyday right now ;-)

@cokeramirez

Copy link
Copy Markdown

I tried testing the mapping first I was getting this error:

Uncaught exception: :1:
ReferenceError: NumarkPartyMix is not defined

Backtrace: @:1

I rebooted because I think that might be on my side, and the mapping loads but the only things working are the filters and the crossfader for some reason.

I'm on W11, 2.7-alpha-209-gee7c69792f (HEAD)

@rrrapha
rrrapha force-pushed the party-mix-2 branch 2 times, most recently from 1085021 to 9337f1d Compare March 21, 2026 12:06
@rrrapha

rrrapha commented Mar 21, 2026

Copy link
Copy Markdown
Contributor Author

I tried testing the mapping first I was getting this error:

Uncaught exception: :1: ReferenceError: NumarkPartyMix is not defined

Thanks for testing! I was able to reproduce this issue and I think it is fixed now.
Strangely, on windows, I sometimes have to reboot for the controller to work. Other than that, everything works for me, except the touch sensitive jogweels are a bit unreliable. (I suspect this is a power supply issue because I don't have a powered USB-hub.)

@cokeramirez

Copy link
Copy Markdown

It runs now! what's missing (I put in bold what I thinks are must in an official mapping):

  1. Basically all led visual feedback:
  • hotcues led backligth is reseted after you push the pad, so it's basically overriden by the hardware, only comes back if you cicle through all the modes and come back to hotcues
  • loops don't have visual feedback if on/off
  • samples have the same problem of hotcues, the feedback dissapears when pressing the pad, and the same problem than loops, there is no visual feedback of a loop playing
  • effects doesn't need a feedback if they are temporary as they are now, but I think it would be more useful for them to be switchable (although it might confuse beginners, see my comments on the second layer)
  • play doesn't have any feefaback
  • sync doesn't have any feedback

For hotcues (and samples) I would turn the pads completely OFF when there is no loaded cue/sample, is ay more clear than the difference between DIM and ON

  1. The second layer of all modes:
  • samples should delete the sample
  • loops in the official serato lite mapping let you control in out points... I think halving and doubling, and beatjump are way more useful, but for a default mapping halving and doubling could be nice
  • samples could stop the sample, as they are currently stopped with the same button, the default action should be to replay the sample when you spam the button
  • second layer of fx is used to change the fx in the official mapping, and to change the fx timing, both have no use in mixxx in my opinion, maybe the second layer could make the fx switchable instead of temporary so you don't confuse beginners with an fx that is stuck?
  1. the browse encoder push is missing

  2. The light show functionality of the controller

The jog wheels work well, but I feel they are too sensitive when forward nudging, in my mapping I have the forward nudging cut short so it easier to drop beats whie scratchin,but _I haven't touched a vinyl or pro controller on ages so I don't know which behaviour is better. With this mapping I always push forward to hard and pitch up the first part of the beat when dropping.

I don't know why you say they are unreliable, for me although it doesn't have my prefered behaviour, they do behave exactly the same always.

I made a custom mapping (with heavy use of AI) of the party mix 2 (https://mixxx.discourse.group/t/numark-party-mix-ii-numark-party-mix-live-mapping/28861/35) where I squeezed a lot of functionality with the second layer (beat jump, beat roll, loop size, scratch on/off, tempo range, quantize on off, 5 lightshow selection, brake effect on the play button, fx intensity) and I made the lights conform to the actual state of the program, but I'm pretty sure it doesn't follow any mixxx good practice, so I don't know any of the fixes there are useful, with exception of the ligth part, as I didn't see any other mapping that used the lightshow aspect of the controller, and it is working on my version.

@cokeramirez

Copy link
Copy Markdown

About the windows behavior, is a current bug on W11, if you ever disconnect your controller in a session you will never be able to connect it again, having MidiView always open fix this as it doesn't let windows to lose connection with the controller if you close mixxx or change mapping for example. So they key is always have some kind of midi connection alive so you don't have to reboot.

@tuulikauri

Copy link
Copy Markdown

I'm pretty sure it doesn't follow any mixxx good practice, so I don't know any of the fixes there are useful, with exception of the ligth part, as I didn't see any other mapping that used the lightshow aspect of the controller

Lightshows are usually avoided in Mixxx mappings. With the new controller "settings" dialog though perhaps the core devs would accept a setting to turn flashing lights/vegas mode on. Here's the mapping guide, lots of other good stuff in there too: https://github.com/mixxxdj/mixxx/wiki/Contributing%20mappings#blinking-leds

current bug on W11

Here's more info about the current Windows Update midi bugs, and how to fix them; "not working after disconnecting" sounds like the inMusic driver bug: https://support.inmusicstore.com/en/support/solutions/articles/69000876838-my-midi-controller-is-detected-but-unresponsive-after-windows-update and https://devblogs.microsoft.com/windows-music-dev/windows-midi-services-rollout-known-issues-and-workarounds/

@cokeramirez

Copy link
Copy Markdown

Lightshows are usually avoided in Mixxx mappings

is there any other controller beside the party mix that has a light show integrated? this is like a core functionality of the party mix line, I have it implemented on my mapping and it works well

I've been making experiments with wireshark and serato lite and there is some kind of sysex in serato that overrides the default hardware lighting of the unit *when serato is open, the lights are not overriden by the hardware anymore!) I solved this with timers everytime you let go of a button, but I'm trying to pinpoint this sysex msg, maybe we just have to put it on the init function and the hardware won't interfer with the lights anymore.

@cokeramirez

Copy link
Copy Markdown

I used AI to analyze the serato "handshake" and I ended up with this sysex that work on init:

    //new sysex for turning ligths off
    midi.sendSysexMsg([0xF0, 0x00, 0x20, 0x7F, 0x03, 0xF7], 6);
    midi.sendSysexMsg([0xF0, 0x00, 0x20, 0x7F, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xF7], 12);
    midi.sendSysexMsg([0xF0, 0x00, 0x20, 0x7F, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xF7], 12);

    NumarkPartyMix.heartbeatTimer = engine.beginTimer(250, function() {
        midi.sendSysexMsg([0xF0, 0x00, 0x20, 0x7F, 0x05, 0xF7], 6);
    });

the heartbeat is crucial, serato sends it every 250ms and virtualdj every 400ms, without it the controller start to override mixxx lights,

I have no idea how this work, I hope we can get some opinion of someone more knowledgable.

With this change the hotcue buttons and the sync reflect the real state of the software even if you touch them on the hardware!

@rrrapha
rrrapha force-pushed the party-mix-2 branch 3 times, most recently from 492759e to 0199889 Compare March 24, 2026 16:35
@cokeramirez

Copy link
Copy Markdown

I tested this version, visual feedback seems to be working good.

The browse knob click doesn't work well, I noticed it works to come back to the song list, but you can't move to the other panels.

I just saw I put that the second layer of sampler should delete the sample, I was describing the CUE POINT BEHAVIOR, sorry for the brain fart.

The scratch behavior is very bad when you drop a beat, it goes with too much speed.

I will test it a little deeper on the next version, but it seems to be going well!

@rrrapha

rrrapha commented Mar 26, 2026

Copy link
Copy Markdown
Contributor Author

I tested this version, visual feedback seems to be working good.

The browse knob click doesn't work well, I noticed it works to come back to the song list, but you can't move to the other panels.

Strange, the browse knob click works for me. I can move to other panels by pressing the button while rotating the knob. (As described here: https://manual.mixxx.org/2.7/en/hardware/controllers/numark_party_mix)

I just saw I put that the second layer of sampler should delete the sample, I was describing the CUE POINT BEHAVIOR, sorry for the brain fart.

The second layers of hot cue and sample do behave correctly in my opinion, don't you think?

The scratch behavior is very bad when you drop a beat, it goes with too much speed.

I guess the parameters of components.JogWheelBasic could be adjusted to change this behaviour.
The jogwheels have a different problem for me though: They do not always register whether or not I'm touching the surface. Sometimes scratching works, sometimes not ..

I will test it a little deeper on the next version, but it seems to be going well!

@rrrapha

rrrapha commented May 19, 2026

Copy link
Copy Markdown
Contributor Author

After testing it out a bit, I'm happy with the mapping as it is now. It would be great if it could be merged soon.

There is also a pull request for the documentation: mixxxdj/manual#862

@ronso0

ronso0 commented Jun 12, 2026

Copy link
Copy Markdown
Member

@cokeramirez Can you confirm the mapping incl. all required LED feedback works now?

@cokeramirez

cokeramirez commented Jun 14, 2026

Copy link
Copy Markdown

The leds are working however sample playing has no ligth feedback at all

Things I think that should be fixed before adding it as an official mapping:

  • The navigation knob doesnt' change focus between panels (it only goes to the song list panel, and stays there)
  • The sync button doesn't work for me, if you press it on the screen you see the led updating on the controller, but pressing the physical sync button does nothing

Details I think that could be improved after the first version:

  • Eq's are soft take over, so sometimes I move them and they do nothing.
  • Loop feedback is a solid color, should blink
  • Samples should have light feedback when playing
  • Fx should have a tail (currently is mapped to the on off switch so they get cut aburptly, very frustrating, I think pressing should turn on the fx and put the fx knob to 75% or something, and letting it go should bring the fx to 0 without turning the fx off so you can have a tail fx)
  • We should add the light show feature to the official mapping
  • The jog scratch response could be tighter (when scratching if you throw it with a little forward momentum the song will accelerate too much i nmy opinion)
  • We should add an option to disable "scratch mode" (I have an issue with the right jog activating itself and ahve read online at least one person with the same issue, also the controller is so tiny is very easy to touch the wheels by mistake)

@rrrapha

rrrapha commented Jun 16, 2026

Copy link
Copy Markdown
Contributor Author
* **The navigation knob doesnt' change focus between panels** (it only goes to the song list panel, and stays there)

* **The sync button doesn't work for me**, if you press it on the screen you see the led updating on the controller, but pressing the physical sync button does nothing

Thank you for testing.
I can't reproduce these two issues. The browse knob and the sync button work perfectly for me. (I'm using 2.5.6 on Windows 11 and 2.6.0-beta on OpenBSD.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants