-
-
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
Jog wheel / playposition not aligning to beatgrid of another playing track #10155
Comments
Commented by: fkbreitl This wheel solution by Ronso at the forum
also works for the DDJ-200 without any Javascript function. In addition I could find any documentation about the |
Commented by: fkbreitl From other controller mappings it seems that jog wheels are supposed to use I think there is a bug in |
Commented by: daschuer This is the intended nudge feature. If you play the tracks in sync an you hear a double beat, you can use the jog wheel to nudge the track as if you touch the vinyl to adjust an persistent sync offset. The jog wheel feature are required to be not quantize to avoid a "needle jump" effect. Mapping the playposition and friends like playposition_down_small allow synced seeks if quantize is enabled. But I can imagine that this is hard to map to. What is you use case musically? Doing a beat jump? |
Commented by: fkbreitl I just want tracks aligned when I move them and don't like to press beat sync after using the jog wheel. |
Commented by: ronso0 If it's about the 'playposition' connection it indeed seems broken for controllers. |
Commented by: daschuer It is intended to keep the offset and I think we must not change it, because adjusting the phase is my main jogwheel use case during a transition. I have not jet understand the need to stay in phase when turning the jog wheel. Please explain step by step. |
Commented by: ronso0 This is not about nudge or scratch, it's about the [group],playposition control for 'browsing' the track and it should really behave the same when mapped to controllers. IMO the only way it's relevant is to jump in the track. If the beats aren't aligned anymore beatjump would also not help to find the right place (phase, position in bar or phrase) but 'beats_translate_match_alignment' is needed after jumping. |
Commented by: fkbreitl @daniel Exactly as Ronso0 says, its not about nudging when you touch the wheel from the side. @ronso0 I also thought that something like beats_translate_match_alignment has to happen in addition. It already seem to happen when then track is moved with the mouse. |
Commented by: ronso0 Just to make sure, as this wasn't mentioned yet: |
Commented by: ronso0 I can test this soon. |
Commented by: fkbreitl Yes, that's right. |
Commented by: ywwg how is your controller set up? Is it designed to do a "playposition" seek when the wheel is touched, and a regular nudge when it's not being touched? If so, I suspect what's happening is that after you lift your finger off the wheel, the wheel is still moving. Because it's no longer being touched Mixxx is registering a nudge for a fraction of a second. In some controllers I have special code (https://github.com/mixxxdj/mixxx/blob/master/res/controllers/Vestax-VCI-400-scripts.js#L615) to add inertia to the wheel touch value to account for this. Perhaps we should standardize this somehow. |
Commented by: fkbreitl @owen Yes, this is my controller setup and I have just confirmed that it is the momentum and nudging what stops the aligning. If I do it very slowly the alignment happens as expected. So yes, I think a general solution is needed to avoid this. Otherwise every controller mapping would need your workaround. Thank you for explaining the cause of the problem. |
Commented by: ywwg The solution in the scripts I've written is basically:
This would probably have to be written in javascript. Unfortunately we're in a state where we have an old, barely-supported js library, and no replacement new one, so it's not really possible to add new js library functions right now. |
Commented by: fkbreitl The timer fix by @owen also workes for me.
Maybe this is what Mixxx should do by default. |
Commented by: fkbreitl ... if control of this timer is really needed (for high momentum jog wheels?) and not everybody is happy with a reasonable value that suits all controllers and DJs (of a few seconds?). |
Commented by: fkbreitl @owen I just see now your comment #15, now. |
Commented by: ywwg In my use case, I use wheel touch to set and unset the scratch2_enabled mode. (This is default behavior for jog wheels). With this mode, the DJ definitely wants to hear all of the momentum of the jog wheel. For a fast jog mode (where playposition is being set) I do agree that jogging should stop when the button is released, and then all wheel updates are ignored until the wheel stops. It's complex, but I think it makes sense to do different things with the inertia period. For now I don't think we should make a generic mixxx solution. There are enough different kinds of controllers and wheels that we're better off with one-off solutions for now. |
Commented by: ywwg I implemented my new suggestion here: https://github.com/mixxxdj/mixxx/pull/3074/files#diff-845b0cd1bdf75c9c259ab036da160e11dac7ba8088693a20febdd1df59d2694e It works really well! |
Commented by: ywwg (look for "TraktorS3.Deck.prototype.jogButtonHandler" and the stuff below that) |
Commented by: fkbreitl And here an improved version using just a jog_disabled variable instead of a function.
https://github.com/fkbreitl/mixxx-ddj-200-mapping/blob/master/Pioneer-DDJ-200-scripts.js Could somebody please help us with to get the DDJ-200 mapping into the Mixxx repository. |
Commented by: fkbreitl In summary: the reason for synced tracks not getting aligned after the jog wheel was scratched is that because of its momentum it rotates further after it is released. |
Issue closed with status Fix Released. |
Reported by: fkbreitl
Date: 2020-10-06T10:32:06Z
Status: Fix Released
Importance: Undecided
Launchpad Issue: lp1898701
Attachments: [Video demonstrating the issue](https://bugs.launchpad.net/bugs/1898701/+attachment/5420865/+files/Video demonstrating the issue)
Since I haven't received an answer at https://mixxx.discourse.group/t/jog-wheel-not-snapping-to-beatgrid/20044 I am wondering if it could be a bug for all controllers in general.
Unfortunately I have no other controller to test this.
But for the Pioneer DDJ-200 the problem is the following:
When I use the jog wheel of the track does not snap to the beatgrid of the track on the other deck.
I have beat sync turned on and it works when I shift the track with the mouse or finger via touch screen.
I am using Mixxx 2.3 on Windows 10 v1909.
Or is there anything missing in that mapping?
I am using https://github.com/fkbreitl/mixxx-ddj-200-mapping
The text was updated successfully, but these errors were encountered: