-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Pitch of deck 1 is changing when skipping on paused deck 2 #11788
Comments
Is 2.3.5 also affected or is this a 2.4.0 regression? |
I can not reproduce it with 2.3.5 |
No, sync leader has been introduced in 2.4.0. Bringing @ywwg into the loop since they implemented the sync leader feature. |
Addressed by #11831, no? |
Bug or feature? The workaround is to open ~/.mixxx/mixxx.cfg and add This will restore the 2.3 behaviour where both tracks are synced to a steady tempo. #11828 exposes this hidden setting in the deck preferences. |
This edge case is occurring because you are seeking deck2 unquantized, which means now deck 1 is out of phase with deck 2. The sync algorithm needs to speed up or slow down deck 1 to get it back in line with deck 2, otherwise deck 1 is not quantized to deck 2 as requested. There are a few user fixes:
A possible programmatic fix would be to call sync-quantize on deck 1 when the seek on deck 2 occurs -- this is risky from a musical perspective, but so is randomly jumping around on another deck without respect for beat matching. Given the three workarounds I would propose not to fix this. If you have a valid musical use-case for setting up the decks like this, I would like to hear it, but as it is it sounds like an artificial situation that would not happen in a live context. |
When doing a gig I often switch between sync and manual mixing, because I have a lot of analog recorded tracks with old equipment (beat is often moving around). Sometimes I end up in this situation with headphones on to search in deck 2, and I don't recognize the yowling of deck 1 which is playing for the crowd :-( But I will check the settings which are introduced with #11828 |
OK that helps me understand the problem. If I understand correctly: You might be playing a track on deck 2 and have it on Sync Leader, and then you load a new track there and it's still on sync leader? I thought we had some support for a track giving up Leader automatically when a new track is loaded, but that might not be the case. |
Stopping or loading a new track with Sync Leader is almost always going to cause problems, so I'm not sure we should allow this case :/. Yeah currently if there's an explicit leader we keep it as leader even if the deck is stopped: A way to test out the alternative would be to try this conditional instead -- I think this would be sufficient?
|
Thanks. Do I need to build Mixxx by myself to test the your code or is there a way to change this somewhere at standard beta installation? |
Yes, you need to apply the changes @ywwg proposed to the code base and compile Mixxx. |
Currently I have no environment to compile Mixxx, but I will set up one in the next time. This can take some weeks, currently I'm very busy with other tasks. |
I can whip up a PR with this change and we can make a build available to you |
Fixes mixxxdj#11788 Propagate playing/audible state to the bpmcontrol. If a Leader is not playing, we should not use it for sync adjustment or phase seeking, because that causes audible artifacts. Moreover, we surrender an explicit leader if it is stopped. In the past we had thought of explicit leader as a persistent user choice, but in reality it is more likely to be a temporary setting which the user would like us to fix when it stops being relevant. There are lots of issues with having a stopped deck as leader, so this seems like the right choice.
let's try this: #12388 |
The build succeeded but I'm not sure where the artifact uploaded to: https://github.com/mixxxdj/mixxx/actions/runs/7071856992/job/19250031825?pr=12388 |
Thanks a lot for your work, I hope I can test this within the next weeks. Btw, the artifacts are here: https://github.com/mixxxdj/mixxx/actions/runs/7072994159 |
This issue becomes worse, if the stopped leader has dynamic tempo. Than a seek like you do when cuing up can change the playing follower. |
I have tested the #12388 and it solves only the "forgotten" explicit master. I think we originally have introduced the explicit master to follow everything even scratching. Now we have only problems and no benefit. Do we? How about disable the explicit master feature for the 2.4 release and allow to select the implicit master instead? |
I added a reply in the PR. I agree the current solution is still not great. I wonder if a simpler solution is just to make the "explicit" button only update which deck is the "implicit" leader. That might be sufficient |
This helps work around stopped-leader bugs, like mixxxdj#11788. We can reenable this later if we can fix those issues.
We should also merge the manual update |
Excellent, thanks for resolving this issue. I tested the most recent beta, now the problem should never happen again. |
Bug Description
This seems to be only when sync on both decks is enabled, sync leader is deck 2 and deck 1 is quantized
Please let me know when I should do some other tests.
Version
2.4.0-beta
OS
Ubuntu 22.04.2
The text was updated successfully, but these errors were encountered: