Hi all, I’m trying to make a simple music sequencer with stable timing on 16th notes. I’ve implemented TimeSynth in C++ using 16th note events, and it is mostly solid but occasionally stutters. I’ve watched Dan’s TimeSynth livestream (v useful!) and done the research and from what I gather it seems we’re still at the mercy of the game thread and the only way to get a solid rhythm is to sync to the game frame rate. Is that correct or am I missing something? Failing that can anyone recommend a plugin solves the problem? Many thanks!
Yes it is ! (possible)
The way I understand it, the only way to get a solid rhythm is to detach its source from the game frame rate.
Time Synth is your frame-independent click generator, which runs its own sample-accurate clock, on its own thread,
Where it’s busy keeping DSP time and doesn’t care about game time issues.
Making stuff happen in sync with that click, however, does take place on the game thread (Blueprints in my case) and that’s where timing may shift.
So problems may occur, if I got Dan’s point right, for example when scheduling something to the next 16th note event :
We might find ourselves with very little time to act, and a hiccup in the game could delay our call just enough to make it arrive late,
And miss the Time Synth train that leaves on time no matter what
Ironically, I got in the forum today to ask a question about that (very useful indeed!) Livestream :
In his introduction Dan expresses his longing for a futureland where multiple Time Synths can be linked & synced under a master clock -
I was wondering if there were any news in that area ever since…
Because you see, (please correct me if I’m wrong) back then Dan referred to getting audio onset markers and data, as a “Pie in the Sky”,
And we now have it with Audio Synesthesia, so why not dream about a multi-actor time machine ?
A project I’m involved in could greatly benefit from something like that, so any thoughts would be appreciated.
Being able to spatialize several sound sources and have them triggered in quantization, would be a small dream come true
Either way, big thanx to the dedicated audio team, keep up the great work !
Hi Ebarkani, thanks for the reply. Yes, even with a minimal project running on a fast Mac, all C++ no Blueprint, the game thread is occasionally missing sync, that’s just for 16th notes at 120 bpm. I was hoping there would be a way for the game thread to tell Timesynth to schedule TSclips to play back at specific times on the audio thread, which would presumably cure the problem.
This seems like something audio guys have been trying to get working for years without success, and looking at some of the amazing stuff Dan and Aaron are up to I’m sure they would want a time accurate sequencer for their own work. So it leads me to suspect that it’s currently impossible in Unreal - it’d be super helpful to either have that verified, or be pointed towards a solution
A little update - I’ve realised that the timing stuttering is not caused by a conflict between Timesynth and the game thread but Audio Buffer Underruns. I’ve set my device audio buffer to 1024 which I would imagine is plenty but still get these warnings:
So the question is, how do you initialise the Pool Size for TImesynth (ideally in C++)? Or is there another buffer I should be setting?