Failing to defer start of play in Quartz

Hello all,
I’ve been struggling for days on this with both UE4.27 and UE5. Basically, I’m trying to reproduce the lesson “Looping Background Music” from “Introduction to Music with Quartz” on the learning portal, where two 17-bar long music segments play sequentially, the second one looping forever. Both music segments are launched once and for all at initialization time with different QuartzQuantizationBoundaries : the first one with ‘Bar, 1.0, CurrentTimeRelative’ (i.e. play immediately), the second one with ‘Bar, 17.0, CurrentTimeRelative’ (i.e. start to play 17 bars later). But no matter what, both start playing together immediately. Here is a screenshot of my graph. To make the issue more obvious, I got rid of the first music segment to keep only the second one, supposed to start 17 bars after StartClock:

There must be some kind of misunderstanding on my part. Can someone please tell me why the sound starts immediately despite the QuartzQuantizationBoundary of ‘Bar, 17.0, CurrentTimeRelative’ ? It seems to work just fine in the video lesson.

Open up the drop arrow in your Make QuartzQuantizationBoundary node. Make sure Fire On Clock Start is set to false. Hope that helps!

1 Like

Yes it did ! Thanks so much ! :+1:
So weird that this option is ON by default, overriding the Multiplier value, while being hidden in the advanced settings of the node…

Its not “overriding” the multiplier value. The original behavior was when queuing sounds on a stopped clock (at bar “zero”), all multiples fire at bar 1.

One of the things that Quartz improved over Time Synth was the ability to queue up a bunch of stuff on a stopped clock, and have it all start together when you started the clock.

That flag was added later to allow for what you are wanting to do. It default to on because
1.) That was the original behavior, and having it default to false would break existing Quartz implementations
2.) Technically all multiples are divisible by (and should fire on) bar 1