While working on PicoDrive I found the audsrv implementation a bit lacking:
-
If the audsrv backend on IOP runs low on samples it will replay the buffer over and over, right down to telling you about the buffer being miraculously filled again. New samples then don't have space in it, and the reverberating audio you get remembers me of old GSM mobiles in bad reception conditions.
It simply can't discern "ringbuffer full" from "ringbuffer empty"... so it wraps around and around.
-
it sets the ringbuffer to half full on set_format without clearing it. Hence, there's always some old audio from the buffer played out first.
-
stopping will keep all unplayed samples and there is no way to clear the audio ringbuffer.
While working on PicoDrive I found the audsrv implementation a bit lacking:
If the audsrv backend on IOP runs low on samples it will replay the buffer over and over, right down to telling you about the buffer being miraculously filled again. New samples then don't have space in it, and the reverberating audio you get remembers me of old GSM mobiles in bad reception conditions.
It simply can't discern "ringbuffer full" from "ringbuffer empty"... so it wraps around and around.
it sets the ringbuffer to half full on set_format without clearing it. Hence, there's always some old audio from the buffer played out first.
stopping will keep all unplayed samples and there is no way to clear the audio ringbuffer.