Async audio isn't that bad imo. It solves "some" issues, but not the ones everybody loved. In short, async audio allows us to look a bit into the future. So we could ignore the emulation time variance and stream the audio on real time which reduces the latency a bit.
But the average emulation time should be the real time, else the music stops long before the game expect the music to finish. Just search on the issue tracker for music stopping issues. So it can't be used to get smooth audio for non 100% emulation speed, but it would allow us to generate some ms of audio and to stretch further on (sync audio will increase the latency much more with smooth stretching).
We also have to care to not underrun the emulated fifo. As the emulation if often blocked for >200ms in cut scenes, we have to block the audio, so there will always be stutters (or crashes, which one is better?)
But the average emulation time should be the real time, else the music stops long before the game expect the music to finish. Just search on the issue tracker for music stopping issues. So it can't be used to get smooth audio for non 100% emulation speed, but it would allow us to generate some ms of audio and to stretch further on (sync audio will increase the latency much more with smooth stretching).
We also have to care to not underrun the emulated fifo. As the emulation if often blocked for >200ms in cut scenes, we have to block the audio, so there will always be stutters (or crashes, which one is better?)
