Change to Crossfade and Headphone Preview?

Hello all. A quick question that is puzzling me and making me worry about my memory!

I used Mixx a while ago and have just come back to it and got the latest version (to work on my Mac with Big Sur).

I thought previously that when cross fading my headphones would play the opposite of what was sent to the mix. So if track A was sent to the mix, track B would be in my headphones and vice versa. Then I’d beatmatch by having one headphone on and one headphone off.

Now I see you are meant to use the PFL / Headphone buttons to send whichever track you want to your headphones and it will play regardless of the crossfade position. I see the logic for this, but it is perhaps a bit less convenient as I have to keep switching the buttons, rather than just having the cue track always in my phones.

Was what I remember from before ever true? Or am I imagining it? Thanks in advance for any thoughts.

I’m not aware it ever worked like that automatically.
Sounds like a good idea, though.

You may have been using a controller mapping that does exactly that, depending on the crossfader position.

Thanks for the reply, maybe it was another DJ software I tried and I’m just getting mixed up! I’ve never used a controller before so think it must have been the default setting in whatever I was using.

The crossfader in mixers has always been a feature affecting the output, not the headphones. (At much, I saw a 4 channel Mixer where you could select which channels the crossfader affected to)
I’ve never seen crossfader doing what you describe. (It might exist in some software, but I’ve never seen it)

An option in some applications is that when loading a track on a deck, the PFL automatically switches to that new deck. That can be seen in Virtual DJ, and I did so in my Mixxx mapping for Hercules DJ Console 4-mx.

if you use a controller you can implement that in your script.
you’d need to map the crossfader to a new function like YourControllerPrefix.crossfader() instead of the regular [Master], crossfader control.

untested example code snippet assuming the crossfader sends signals between 0 (fully left) and 127 (fully right):

if (value === 0) { // fully left
    engine.setValue("[Channel1]", "pfl", 0);
    engine.setValue("[Channel2]", "pfl", 1);
} else if (value === 127) {
    engine.setValue("[Channel1]", "pfl", 1);
    engine.setValue("[Channel2]", "pfl", 2);

for more info check Midi Scripting · mixxxdj/mixxx Wiki · GitHub