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

"Chopping" in FL Studio when using Host Sync for timing #7

Open
cllunsford opened this issue Dec 30, 2023 · 10 comments
Open

"Chopping" in FL Studio when using Host Sync for timing #7

cllunsford opened this issue Dec 30, 2023 · 10 comments
Assignees
Labels
bug Something isn't working FL Studio

Comments

@cllunsford
Copy link
Collaborator

cllunsford commented Dec 30, 2023

User observes chops/repeats of timing when using Host Sync with FL Studio. Not observed when using MIDI for timing.

In recorded video, the clock gets to the end of the cycle and then skips backward a bit (sometimes once, twice, or none) before continuing with the next cycle.

Seen with: v2.5.1-rc.1

@cllunsford cllunsford added bug Something isn't working FL Studio labels Dec 30, 2023
@cllunsford
Copy link
Collaborator Author

I was not able to reproduce this issue after an initial attempt.

Installed FL Studio, registered the 64-bit plugin. Opened Mobius, set the Sync Source to "Host" for Track 1. Confirmed that raising/lowering the tempo in FL Studio changed the tempo within the Mobius plugin. Recorded a short loop and was able to hear the click track play back on loop without any skips, chops, or timing resets.

@cllunsford
Copy link
Collaborator Author

Able to reproduce now with FL Studio v21.2.2 and Mobius VST v2.5.1-rc.2.

Looks to be a drift correction event. Here's a log from a playback sequence with a number of stutters that align with the drift corrections.

One drift event looks like this:

00000045	6.49865818	[41352] 0 0: SyncTracker Host: Bar offset 207 drift 4	
00000046	6.49878359	[41352] 0 0: SyncTracker Host: Beat pulse 244 advance 40707 drift 0	
00000047	6.95855284	[41352] 0 0: SyncTracker Host: Beat offset 206 drift 20358	
00000048	6.95868540	[41352] 0 0: SyncTracker Host: Beat pulse 245 advance 20354 drift 0	
00000049	7.42847538	[41352] 0 0: SyncTracker Host: Beat Start offset 205 drift 20359	
00000050	7.42854500	[41352] 101 122118: Sync: Tracker Host start point, loop frame 122118 dealign 0	
00000051	7.42855501	[41352] 0 0: Sync: Beginning drift correction for tracker Host	
00000052	7.42860937	[41352] 101 7: Sync: Drift correction of track 1 from 7 to 101766	
00000053	7.42867661	[41352] 0 0: SyncTracker Host: Drift correction of tracker from 7 to 101766	
00000054	7.42870140	[41352] 0 0: SyncTracker Host: Beat pulse 246 advance 20354 drift 0	
00000055	7.42875767	[41352] 101 101978: Layer: Capture fade tail, 128 frames at 8199	
00000056	7.42881918	[41352] 101 101978: Layer: Starting play fade in at 109958	
00000057	7.88761997	[41352] 0 0: SyncTracker Host: Beat Start offset 210 drift 1	
00000058	7.88766384	[41352] 101 122118: Sync: Tracker Host start point, loop frame 122118 dealign 0	

Full log:
host-sync-drift.log

@jlarson2000
Copy link
Contributor

Thanks for your work here...
Drift correction is normal, but should be relatively rare and not obvious. It is host dependent as not all hosts are accurate with VST sync pulses and there could be other configuration differences. Most plugins don't care about host pulse variance, they just adjust their timing. But since we're playing audio it needs to be more precise. I saw a comment about the Mobius cycle length not matching the FL bar length. This is normal, cycle length is independent of host bar length. I don't think this should impact sync drift though. If this happens a lot, the first thing I'd check is sample rate. Mobius probably has assumptions about a 44.1 rate and if the host is using 48 that could cause problems.

@cllunsford
Copy link
Collaborator Author

Thanks, Jeff. I'd been operating under the assumption that this was some fallout from the 64-bit update. I'll compare to other hosts, as well, and check the sample rates and configurations.

@cllunsford cllunsford self-assigned this Jan 3, 2024
@jlarson2000
Copy link
Contributor

FL Studio was always a temperamental host when I was testing with it. That was 10 years ago, and I gave up on it since not many users were interested in it at the time. It would be nice if we could make it work today, but it seemed to have a philosophy about the way things "should work" and didn't like plugins that didn't follow those rules. My focus was always Ableton and Logic on Mac.

@jlarson2000
Copy link
Contributor

In other news, I've begun rewriting the front end in Juce which will eventually include all the VST/AU/OSC interfaces. It's going to take awhile but at some point I'd like to reconnect with you and work toward building a simplified Mobius core library that can run inside it. I thought about rewriting the whole thing, and it is due for that, but I'd like to work on that second. The first priority is to get the old code working in a modern plugin environment with a new UI.

@cllunsford
Copy link
Collaborator Author

Sure, that sounds great, please reach out when you'd like to sync up.

@cllunsford
Copy link
Collaborator Author

Playing with some settings in FL Studio, I've noticed that in the Plugin Wrapper settings, enabling "Use time offset" for the Mobius plugin seems to stabilize the timing a bit and drastically reduces the amount of skips/drift correction in short loops.

image

I'm reading through FL Studio's docs to see what their various delay compensation features do to figure out where the misalignment is happening with Mobius' host sync.

Wrapper settings: https://www.image-line.com/fl-studio-learning/fl-studio-online-manual/html/plugins/wrapper.htm

Use time offset - When loading old projects (made prior to FL Studio 20.7), try turning this off for any plugin that is unexpectedly out of sync. Usually this setting will be off and you should check 'PDC' and 'Fixed size buffer' settings for out of sync plugins.

Mixer PDC: https://www.image-line.com/fl-studio-learning/fl-studio-online-manual/html/mixer_trackprops.htm#Mixer_PDC

@cllunsford
Copy link
Collaborator Author

Also interesting to see FL Studio's list of "plugins behaving badly" https://support.image-line.com/action/knowledgebase/?ans=145

In many cases, the solution is to use one (or more) of these settings:

  • Use fixed size buffers (w/ or w/o Process maximum size buffers)
  • Notify about rendering mode
  • disable 'Allow threaded processing'

Enabling "Use fixed size buffers" w/o "Process maximum size buffers" seems to have a similar calming effect for Mobius as "Use time offset."

@ClaudioCas
Copy link
Collaborator

In other news, I've begun rewriting the front end in Juce which will eventually include all the VST/AU/OSC interfaces. It's going to take awhile but at some point I'd like to reconnect with you and work toward building a simplified Mobius core library that can run inside it. I thought about rewriting the whole thing, and it is due for that, but I'd like to work on that second. The first priority is to get the old code working in a modern plugin environment with a new UI.

Really good news! Last year krawumski said he started working with JUCE, unfortunately we haven't heard from him again, but it's possible he could help Jeff with development if he had some free time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working FL Studio
Projects
None yet
Development

No branches or pull requests

3 participants