mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.38k stars 1.26k forks source link

Follower Sync for Vinyl Control #8040

Open mixxxbot opened 2 years ago

mixxxbot commented 2 years ago

Reported by: geoffn100 Date: 2015-05-20T23:28:56Z Status: New Importance: Wishlist Launchpad Issue: lp1457231


Currently using Mixxx 1.12 for my Digital Vinyl System on a Windows 8.1 OS & it's a major improvement over 1.11 in many ways for this. I'd like to suggest a feature that I recently used on a friends Traktor based system. 'Soft Sync' when using time code vinyl or CDs on their system syncs the BPM for the playing deck irrespective of the pitch adjust on the actual turntable/CD. This is perfect in a turntablist situation like the mini-battle I was involved in with my friend as all I had to do was load the next track when coming out of a beat juggle & drop it on the beat. This took seconds & sounded awesome in that situation rather than having to manually beatmatch using the pitch adjust. It didn't sync the phase of the beats so this still has to be done using the vinyl/CD, eg. scratching & dropping on the beat.

This is copied from a review of Traktor, describing the workings a bit better.

"One of my favorite new features, and probably the most significant update in Traktor Pro 2 is the new syncing ability when using timecode. In previous versions of Traktor it was not possible to keep sync on permanently when using timecode CDs on Vinyl due to the nature of a turntables constantly fluctuating in pitch. Traktor now has a new “Soft-Sync” feature that allows you to keep sync permanently on when using timecode, and Traktor will keep the BPM’s permanently Sync’d for all of the decks without syncing the phase. With the new Audio 10 DJ, which has 4 phono preamps, you can now mix 4 Traktor Decks using 4 Turntables and play all 4 turntables in perfect sync all night without even having to set beatgrids for your tracks! You would simply turn the sync button on for all 4 decks and the BPM’s would be matched automatically for you all night. All you would have to do is nudge the platter of the turntable until the beats are locked and they will never go off beat!"

Currently in Mixxx if you hit 'Sync' it disables timecode control completely & syncs both the BPM & the beat phasing of the playing tracks. If you then re-engage vinyl control the BPM is instantly affected by the pitch control on the actual turntable so there's no way of emulating this feature by manually doing it temporarily.

Can this feature be developed within Mixxx 1.12? Ideally the 'Sync' button when using vinyl control would operate similar to the Soft Sync in Traktor whereby it only aligns the BPM of the track leaving control of the phasing to the timecode vinyl or CD. Although this may not make much sense to midi users, it seems a worthwhile update & will keep Mixxx up to date with the other offerings for those of us who use vinyl/CD control.

Many thanks in advance.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2015-05-21T06:06:44Z


Thank you for the bug repor

Can this feature be developed within Mixxx 1.12?

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2015-05-21T07:21:37Z


Thank you for the bug report!

Can this feature be developed within Mixxx 1.12?

Not for Mixxx 1.12 since it is already feature complete, but for one of the later versions.

I think I do not get the point. Who is the master of transport in which state?

If you beat-match with vinyl control, the vinyls set the tempo and in absolute mode the position.
Once you engage Sync the transport is controlled by the sync master.

Now you want that the speed is still controlled by sync master, but vinyl control is still possible ?!

We face the state that the vinyl sets a different tempo than the sync master.
What will happen if you change the speed of the vinyl? Will there a constant offset? Why do you touch the vinyl in the synced situation?

I can think of a controller mode, where it is still possible to scratch and pitchbend in sync mode. Is that you demand?

Since the vinyl pitch is not digital const, It is we need a rule when the speed should follow vinyl control in the sync state.

mixxxbot commented 2 years ago

Commented by: geoffn100 Date: 2015-05-21T07:43:20Z


Hi, thanks for the reply.

This would basically mean that the tempo of any track would be locked to the already playing track in Mixxx & remain so for any further tracks selected until the sync is turned off. What I assume to be the speed detail of the track on the time code would have to be separated from the positional data in this sync process so you could still scratch & carry out all the turntablist actions without disabling the tempo sync. It sounds very similar, if not exactly like what you describe for the controller.

Hope this is clearer?

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2015-05-21T07:59:42Z


Please explain exactly which turntable actions will work and which not. The critical point of this feature is: "When will the vinyl control overrides the master sync transport"

This mode will only be applicable in relative mode, right?

Can you prepare a list or table with turntable actions and the results in different modes or something?

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2015-05-21T13:15:19Z


We actually already have this feature in the code, but it is turned off due to some bugs.

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2015-05-21T13:17:02Z


oh actually I misread that. What I wrote is the ability to sync an internal deck to external timecode, so multiple tracks can be controlled by one timecode vinyl (including scratching, etc). This sounds a bit different, like they are mostly ignoring the pitch from the vinyl.

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2015-05-21T13:19:02Z


OK I get it, when you push sync they figure out the ratio of whatever the vinyl slider is at to what it needs to be to be in sync, and then they just apply that ratio to the vinyl pitch. That would be pretty easy to do, but I'll have to figure out how that fits in with our current workflow (since our master sync is much better than traktor's :))

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2015-05-21T13:26:46Z


oh yeah and with our existing code, if you turn quantize on it will keep the beats in sync too. So basically this should work well with minimal work. I can foresee some issues with that part if beatgrids are slightly off, so that may take some tweaking. Definitely not going in to 1.12, but it should be no problem for the next release.

mixxxbot commented 2 years ago

Commented by: geoffn100 Date: 2015-05-21T22:21:29Z


Thanks for the replies, & I definitely agree on the sync being better than Traktor now I've played around with it a bit. I can pretty much emulate this with vinyl control turned off & using a mouse to badly scratch the current tracks.

Owen, I think you've nailed it with what you suggested. Basically if I'm playing a hip hop/breaks set at say 100bpm, I'd like to hit a sync function that will keep the following tracks at this BPM, ignoring the pitch on the turntable whilst engaged, but allow me to alter the position by back-cueing & scratching etc. with the time code vinyl. The next tracks loaded in to Mixxx would also then be locked at 100bpm so they could be scratched in, mixed in or even dropped on a half beat, all at the same BPM until the sync is turned off again & the turntable pitch control takes over.

If you need a tester for anything like this on future releases, I'm more than happy to provide feedback.