Hello
I have a few questions regarding audio and Quartz.
I’m building a music system using Quartz, and I’m using it to queue up multiple (at most around 8) music layers to play at a specific point. A music layer consists of a main wave asset and optionally an entry wave asset (at most a few seconds long, and used for crossfading and in general smoothing the transition).
Early on when building this out, I noticed that sometimes Quartz has trouble starting the metasounds with entry wave assets in time. And I read on UDN (I think) that it’s because Quartz needs to go through the wave assets used in the metasound graph. So I gave it some buffer time between the queue time and the quantized play timing, and that seemed to work.
But now, it’s starting to happen again, but much more randomly. Sometimes it’s playing all my layers at the correct time, but other times it’s only playing metasounds with main wave assets at the correct time, while metasounds with both main and entry wave assets are delayed by up to 10 seconds (probably until the next time the musical boundary occurs again).
For now I’ve increased the buffer time from 100 ms to 200 ms, and that seems to work, but this is starting to worry me - especially the random nature of it.
Does the platform affect the performance of Quartz, and would I need to increase the buffer time even more for e.g. Switch 2? If I increase the buffer time too much, the system’s flexibility start to suffer.
Is there any way to configure Quartz to alleviate this problem? I haven’t been able to find anything in project settings.
Would it help if I staggered the queueing of Quartz events slightly? At the moment I’m queueing up 8 metasounds, a handful of notifies, 1 transport reset and potentially a BPM change or a StartOtherClock - at the same time - worst case.
Am I perhaps reaching the limits for what Quartz was designed to do, and do I need to do some things differently/scale back?
Thanks!
[Attachment Removed]