Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Freeverb Module #148

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from
Draft

Added Freeverb Module #148

wants to merge 4 commits into from

Conversation

stephenhensley
Copy link
Collaborator

@stephenhensley stephenhensley commented Feb 25, 2021

This adds an implementation of the Freeverb algorithm.

A few things still need to be done before it's ready, but it's working.

TODO

  • More flexible tuning (i.e. custom tuning header, or not editing consts for tuning)
  • Sample rate based scaling of tuning values
  • Test Replace and Mix block processing functions
  • Make DaisyExample project and test on hardware
  • Create a FreeverbBuffer type that can be passed in during init for the buffers. This will allow buffer allocation on the external SDRAM.
  • Fill out inline documentation where it makes sense.

Other considerations

This module is yet another reminder that we don't really have a standard method of dealing with stereo modules. So it'd be nice to consolidate that behavior across the various modules.

Also I added the equivalent versions of the lowpass feedback comb filter, and allpass fitlers from the original Freeverb source, which add another variant of those filters. For now they're in the effect folder, though they should probably move to .. well filters. They are prefixed with "Fv" for clarity from the others.

@stephenhensley stephenhensley marked this pull request as draft February 25, 2021 07:17
@stephenhensley
Copy link
Collaborator Author

Got an example running on daisy. Seems there are some issues with the block based functions (had underruns on first attempt there).

Will dig in a bit more tomorrow. Want to consider the most user-friendly way to tune the delays for the filters.

We could go the route of the diffuser/fx_engine in #122 , but part of my hesitancy on that PR is the legibility the buffer creation there. Though, both of these PRs have very similar pieces that can be consolidated to something familiar by the time they're done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant