Hello, I have been using the playlist for doing layered music with multiple instruments, but ran into some problems. I am sure that I played the playlists at the same time without delays, but during the game there will be some occasional desyncs between playlist that just got worse as game goes on. After some testing I found out the desyncs start to happen when crossfading between the songs in the playlist, but it could also happen when starting the scene. I tried putting them in the same sync group but that does nothing.
Strangely enough in my barebones audio only test scene this does not happen, but during gameplay it does. I am not sure what's the correlation other than it being the framerate(it could get heavy sometimes it is not optimized yet) since like I said I triggered all the playlist in the same foreach. Any help would be appreciated!
This is the default setting for all my playlist they are all basically the same with only different clips.
Also for the one that happens at scene start it is because I called the RestartPlaylist() on all controllers when changing BGM, which apparently does not play nice with the sync group. Fixed that one, but the crossfade problem remains.
In the playlist controller script, the FindOtherControllerInSameSyncGroup() function, the obj.CurrentSongIsPlaying will occasionally return false for all other controllers despite the song obviously being played. This does not occur to all controllers however which is what results in desyncs because some controllers sync and some don't, which get worse as time passes.
I do not know why it returns false however, is it something to do with crossfading? Because if I set the crossfade time to 0 it seems okay? But that would defeat the purpose of using it in the first place as a layered music... My crossfade time is 1 if it makes a difference
I think it return false if the controller that is being asked is already syncing with other controller, like if controller B and C already find the first instance of controller A and is adjusting to it, then you call trigger clip on controller A, then controller A will return null. Although strangely this means since they are all synced to controller A it means they should all be the same...but I found out it is always the first controller instance that is always out of order.
I will continue this tomorrow so I can't reply, but please write some thoughts you have on this, I will see it tomorrow, thanks!