The standalone decoder can be built on Linux with "make" and the files it creates can be played with "aplay -c2 -r 44100 -f S16_LE"
I'm not sure this is really worth taking (and it'll conflict with the optimizations already accepted anyway) but it let me see that some "scratchiness" in file playback was not intrinsic to the library, but must be something about the details of CircuitPython or hardware.
The standalone decoder can be built on Linux with "make" and the files it creates can be played with "aplay -c2 -r 44100 -f S16_LE"
I'm not sure this is really worth taking (and it'll conflict with the optimizations already accepted anyway) but it let me see that some "scratchiness" in file playback was not intrinsic to the library, but must be something about the details of CircuitPython or hardware.