AVAudioPlayerNode playAt() not synchronized

I have one main AVAudioPlayerNode that plays constantly. And there are other players that are put in the queue and play when the main player reaches a certain point.

These AVAudioPlayerNode`s should be synchronized to a millisecond. Sometimes 4-10 pieces can be started at a time.


How its works - I store lastRenderTime of the main player on point when need start all scheduled players and then start all needed player with

`player.start(at: lastRenderTime)`


Usually, it's working well and without any latency between sounds.


But, I got some latency on this case:


  1. Running on OLD devices(iPad 2, iPhone 5 etc)
  2. ONLY when MANY players the first time after application startup (For example on iPhone 7 I run 8 players in same time after the application is running and I hear desynchronization between sounds), but all players are running with same player.start(at:lastRenderTime) time.


All player actions I run async with custom concurrent queue.


Spend 3 days on trying fix this. I would like for any pieces of advice.