Add Biquad Filters to audiodelays.Echo and audiofreeverb.Freeverb - #11196
Merged
Merged
Conversation
tannewt
requested changes
Aug 14, 2026
tannewt
left a comment
Member
There was a problem hiding this comment.
A couple suggestions. Overall I'm excited for more synth improvements!
…`synthio.Biquad` (disallow `list`)
Author
|
@tannewt All up-to-date now. Let me know if you'd like to see any other changes. |
tannewt
approved these changes
Aug 19, 2026
tannewt
left a comment
Member
There was a problem hiding this comment.
Looks great! Nice and clean. Thanks!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This update expands the capabilities of
audiodelays.Echoandaudiofreeverb.Freeverbby addingsynthio.Biquadfilter support internally to their audio processing chain.Echo
The
audiodelays.Echo.filterproperty filters samples before they are stored in the echo buffer to be recalled later. This can produce a "tape-like" effect when repeated echos are processed through the filter on each iteration.Freeverb
The
audiofreeverb.Freeverb.pre_filterandaudiofreeverb.Freeverb.post_filterproperties allow the incoming sample to be filtered going into and out of the reverb algorithm. These new "Pre-EQ" and "Post-EQ" allow deeper control and shaping of the reverb effect while maintaining the integrity of the original sample.Demonstration
Results
This above program was recorded using Audacity over USB Audio under 4 conditions: dry echo, filtered echo, dry reverb, and filtered reverb. filter-tests.zip
All tests were run by a Waveshare RP2040 Zero. In some tests, audible popping can be heard. This is likely due to buffer underflows caused by the slower processor and the computational requirements of these effects or the experimental nature of
usb_audioin its current state.Notes
audiofreeverb.Freeverb. After using the effect under each circumstance, I determined that it would be useful to have both options. "Pre-EQ" does a good job of "taming" the reverb by reducing the effect of sudden pops which can cause the reverb to act abruptly. "Post-EQ" is more artistic in the way that it shapes the reverb output.audio-module/audiofilters/__init__.c). This has definitely helped simplify implementation and reduce flash usage, but there is likely room for improvement with performance. I'd appreciate direction on how best to share these methods.