electro-smith / DaisySP

A Powerful DSP Library in C++
https://www.electro-smith.com/daisy
Other
839 stars 132 forks source link

Added Freeverb Module #148

Open stephenhensley opened 3 years ago

stephenhensley commented 3 years ago

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

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 commented 3 years ago

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.