Skip to content

add new audiotools.SpeedChanger module for WAV/MP3 speed changing#10900

Merged
tannewt merged 4 commits intoadafruit:mainfrom
todbot:audiotools_speedchanger2
Mar 31, 2026
Merged

add new audiotools.SpeedChanger module for WAV/MP3 speed changing#10900
tannewt merged 4 commits intoadafruit:mainfrom
todbot:audiotools_speedchanger2

Conversation

@todbot
Copy link
Copy Markdown

@todbot todbot commented Mar 27, 2026

This adds support for adjustable playback speed / rate to audio streams (Wavefile, MP3Decoder, etc),
addressing issue #10881.

It is a reworking of the idea from #10882 to apply to more than just WaveFile.

New CIRCUITPY_AUDIOTOOLS definition added, only enabled for raspberrypi builds.

Copy link
Copy Markdown
Member

@tannewt tannewt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks fine. My only gripe is that audiotools is vague and likely to have other stuff thrown into it. I'd prefer something more specific like audiospeed (which better matches audiodelays). Are you ok with that change? Claude should make quick work of it.

@todbot
Copy link
Copy Markdown
Author

todbot commented Mar 30, 2026

Yeah audiospeed is fine, if a bit fine-grained. I can make the change.
I was struggling for a good top-level name to indicate what SpeedChanger was just one of: a class of audio stream wrappers that weren't effects but low-cost transformers or utilities. Like stereo<->mono swapper, L-R center-cut, phase invert. I'm not sure how useful those would be in CircuitPython, so I don't have a strong hold on audiotools.

Copy link
Copy Markdown
Member

@tannewt tannewt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Thank you!

@tannewt tannewt merged commit b13a842 into adafruit:main Mar 31, 2026
658 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants