Audio and Critical Timing

Hi, I’m working on a music system for an indie game and I would like to program some features that require critical timing. Things like being able to cross-fade between songs and maintain timing for dynamic music cues. Of course, I can’t do this with the audio cue system alone, so I started using blueprints. I can’t for example call events in the audio cue system between loops, or say, loop an audio file along with another audio file at the exact same time. If I loop both of them, they loop independently if one file is shorter then the other.

So my solution was to do my own custom looping using blueprints. However, I can’t achieve seamless looping with this method. The problem is, the blueprint timing isn’t %100 precise. If I use the OnAudioFinish event, there is a noticeable delay between loops. If I set a delay equal to the length of the audio, it’s unreliable, by which it is kinda random whether or not it will be seamless. Sometimes when it loops, it’s either too soon or too late.

So my questions are.

  1. Is there a work around for this?
  2. Is it an issue with blueprints in general?
  3. Is it possible to call events or change values between loops in the audio cue system? This would bypass some work as I know audio cues can loop seamlessly.
  4. Would it make a difference if I switched to C++?

Would appreciate any advice.