Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Auto DJ overwrites fader position of controller #12563

Closed
1fabi0 opened this issue Jan 14, 2024 · 12 comments
Closed

Auto DJ overwrites fader position of controller #12563

1fabi0 opened this issue Jan 14, 2024 · 12 comments
Labels

Comments

@1fabi0
Copy link

1fabi0 commented Jan 14, 2024

Bug Description

When disabling Auto dj before the next track loaded, let's say on deck a, deck a is not usable via main out any more, cues work fine but main out is just silence. Fix that I found out is to re-enable auto dj let it load next track into deck a and disable auto dj again.

I use mixxx on ubuntu, and I used a ddj sx2 as controller but I believe controller doesn't matter in this case.

Version

2.3.6

OS

Ubuntu

@1fabi0 1fabi0 added the bug label Jan 14, 2024
@ronso0
Copy link
Member

ronso0 commented Jan 14, 2024

AutoDJ uses the crossfader to blend tracks.
After the last transition it remains wherever it is. Compared to re-centering it, this avoids a potential volume drop #10702 #10683

@1fabi0
Copy link
Author

1fabi0 commented Jan 14, 2024

So the problem is rather that is not resetting / or ignoring crossfader positions of controllers. At least after disabling auto dj, is there like any good practice to avoid this crossfader situation

@ronso0
Copy link
Member

ronso0 commented Jan 14, 2024

Mixxx doesn't poll the controller, it receives change signals from it.
Additionally, the crossfader is usually mapped with 'SoftTakover'. To make the Mixxx xfader sync instantly as soon as you move it slightly, you need to remove that option from the mapping.

@1fabi0
Copy link
Author

1fabi0 commented Jan 14, 2024

Ah OK so after using auto dj it is required to move the xfader to reset it from auto dj, or is there a option to disable xfader completely like serato has, to set it to center always(also for auto dj) ? Because For me at least it is also possible to crossfade with faders.

@ronso0
Copy link
Member

ronso0 commented Jan 14, 2024

Because For me at least it is also possible to crossfade with faders.

As I said, AutoDJ works with the crossfader.
There is a stone old feature request to make it use Vol faders instead.

Ah OK so after using auto dj it is required to move the xfader to reset it from auto dj

no, that doesn't "reset" anything, that only ensures the controller xfader matches Mixxx' xfader.

@1fabi0
Copy link
Author

1fabi0 commented Jan 14, 2024

OK check

But would it be possible to completely separate autodj's crossfader from the actual crossfader, I feel like the controller should be the single source of truth for such values, it is very confusing if the software doesn't care about the position of faders on controllers and overwrites it with new values. How should somebody using the controller now that crossfader center can mean crossfader left that's just confusing

@1fabi0 1fabi0 changed the title Auto DJ blocks main out on one deck Auto DJ overwrites fader positions of controller Jan 14, 2024
@1fabi0 1fabi0 changed the title Auto DJ overwrites fader positions of controller Auto DJ overwrites fader position of controller Jan 14, 2024
@ronso0 ronso0 closed this as not planned Won't fix, can't repro, duplicate, stale Jan 14, 2024
@ronso0
Copy link
Member

ronso0 commented Jan 14, 2024

So you want prohibit changing Mixxx controls on screen / programmaticaly while a controller is attached? That would be horrible UX.
And it would prevent magic like BPM sync etc.

AutoDJ is supposed to jump in and do transitions while DJs are n/a. When they're back to take over they of course need to check a few things, like in real b2b situations, just screen vs. controller.
Only to avoid that basic decks check you suggest to add some other engine/layer for AutoDJ which is super complicated?

@1fabi0
Copy link
Author

1fabi0 commented Jan 14, 2024

I think for auto dj specifically for this one it could be quite simple like backing up the real crossfader position and keeping it in sync with the real fader position, auto dj could do its thing and then put the crossfade back to value to the one in backup store as soon as disabling auto dj

Also I think it is a feature depending thing if I enable magic things happening then I'll expect magic things, but like this one I expect auto dj to be disabled and my controller to be correct now

@ronso0
Copy link
Member

ronso0 commented Jan 14, 2024

backing up the real crossfader position and keeping it in sync with the real fader position, auto dj could do its thing and then put the crossfade back ... as soon as disabling auto dj

Imagine this:

  • you're on deck1 AutoDJ (crossfader is fully left)
  • enable AutoDJ, the queue is processed
  • the last track is loaded to deck2 (right)
  • then AutoDJ is disabled
  • crossfader jumps back to the left
  • you won't hear anything on main

As you can see it's a bit more complicated. And it needs to be predictable, like the current implementation.
But please keep in mind: Mixxx is a DJ application. As a DJ you need to watch your decks, but more importantly the mixer, the heart, or rather the brain were the main mix is created.
And AutoDJ is just an addon.
I understand what you're trying to achieve. Though, the AutoDJ processor code is already a whopping 1.800 lines, and IMHO this already requires more than enough maintenance. Therefore I'm reluctant to add more magic (= more expectations we to fulfill).

@mxmilkiib
Copy link
Contributor

Would remembering the value of every controller input received in the current session be that hard? Or is it more just integrating that into what happens when AutoDJ is turned off? Wondering in case anyone wishes to tackle this in future.

@ronso0
Copy link
Member

ronso0 commented Jan 14, 2024

It is about the fact that the current position from the controller would be applied instantly as soon as AutoDJ is disabled.
Unexpected, will cause #10702

@mxmilkiib
Copy link
Contributor

mxmilkiib commented Jan 15, 2024

This is about returning the crossfader to the pre AutoDJ position, not explicitly to the centre.

(And not specifically instantly, could be a slewed transition)

I guess though the last values of all controls manually changed since the start of the session, via controller or UI, would have to be remembered upon the enabling of AutoDJ, to make the experience consistent.

Though I guess the edge case there might be "what about when a value is changed by the user during AutoDJ time?". Then, if it's from controller, record, n if from UI, just leave Mixxx to do the same thing it does atm.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants