Description
I appear to have made some data which despite being even in length (4930 samples = 2465*2) when passed to audio.RawSample
with channel_count=2
and then sent to output with play()
with loop=True
it will play but the A0/A1 will not stay synchronised and drift around. At 100kHz playback it takes 60 seconds to return to being very briefly in sync. I might expect this if I passed an odd number of samples, e.g. 9 could end up as 5 looping on DAC0 and 4 looping on DAC1.
Code is rather large because it contains the data as a list, see https://github.com/kevinjwalters/circuitpython-examples/blob/master/pygamer/audioio-phasebug.py. In that example there's a boolean which controls whether to replace the data values with an alternate set of rising values without changing the total number of values (samples). Doing that makes the bug go away, the bug appears to be very dependent on the data values with no obvious explanation.
This does seem rather unlikely so there's a minor chance I have made an error here...
BTW, what's the intended behaviour for audioio.RawSample
if it's given a number of samples which are not exactly divisble by the channel_count
?