Fix RP2040 I2S: always copy to output buffer #5310
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Make RP2040 I2S work again.
The quality of the I2S audio is not great: there are buzzes and noise, which happen erratically. A power cycle or reset can improve things temporarily. However, the quality seems to be the same as in CircuitPython 6.3.0. I'll open another issue about fixing the quality in the long term.
Tested with an MP3 file, a looping
RawSample
sine wave, and WAV files on an Adafruit Feather RP2040. Also did partial testing on a Pi Pico: no differences were found. Also smoke-testedPWMAudioOut
to make sure it still works. PWM audio works better than I2S: there are fewer noisy artifacts.Various audio testing programs I used:
audio-test-programs.zip