DaisySP icon indicating copy to clipboard operation
DaisySP copied to clipboard

Added Freeverb Module

Open stephenhensley opened this issue 5 years ago • 1 comments

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
  • [x] 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 avatar Feb 25 '21 07:02 stephenhensley

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.

stephenhensley avatar Mar 03 '21 05:03 stephenhensley