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

Improve filter processing and clean up API #304

Merged
merged 39 commits into from
Aug 8, 2023

Conversation

m-m-adams
Copy link
Collaborator

@m-m-adams m-m-adams commented Aug 4, 2023

WIP on #105

  • Move filterset to a public/private API
  • Integrate filterset config into filterset
  • Split out individual hp/lp filters into their own classes
  • Move stereo rendering into filter classes to remove explicit sample increment calls in render functions

Summary: ~10% gain in mono filtering, 60% gain in stereo filtering, much easier API
No audible changes

@m-m-adams m-m-adams force-pushed the filter_refactor branch 8 times, most recently from b741677 to bd79526 Compare August 6, 2023 17:39
@m-m-adams
Copy link
Collaborator Author

Sorry for all the force pushes, I'm bughunting and needed to clean up the commits to be atomic

@m-m-adams
Copy link
Collaborator Author

Initial tasks are all complete now, but I've found a new one that will be necessary

  • Move stereo rendering into filter classes to remove explicit sample increment calls in render functions

@m-m-adams m-m-adams changed the title Clean up filter API Improve filter processing and clean up API Aug 7, 2023
@m-m-adams m-m-adams marked this pull request as ready for review August 7, 2023 15:40
@m-m-adams m-m-adams mentioned this pull request Aug 7, 2023
6 tasks
Copy link
Collaborator

@stellar-aria stellar-aria left a comment

Choose a reason for hiding this comment

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

Just some nitpicks, but at least one (the git conflict) is blocking. Otherwise LGTM.

CMakeLists.txt Outdated Show resolved Hide resolved
src/deluge/dsp/filter/svf.cpp Outdated Show resolved Hide resolved
src/definitions_cxx.hpp Outdated Show resolved Hide resolved
src/deluge/dsp/filter/filter_set.h Outdated Show resolved Hide resolved
src/deluge/dsp/filter/hpladder.cpp Outdated Show resolved Hide resolved
src/definitions_cxx.hpp Outdated Show resolved Hide resolved
src/definitions_cxx.hpp Outdated Show resolved Hide resolved
src/deluge/dsp/filter/filter_set.cpp Outdated Show resolved Hide resolved
src/deluge/dsp/filter/hpladder.cpp Outdated Show resolved Hide resolved
src/deluge/dsp/filter/hpladder.h Outdated Show resolved Hide resolved
src/deluge/dsp/filter/filter.h Outdated Show resolved Hide resolved
src/deluge/dsp/filter/filter_set.cpp Outdated Show resolved Hide resolved
src/deluge/dsp/filter/filter_set.cpp Outdated Show resolved Hide resolved
src/deluge/dsp/filter/filter_set.h Show resolved Hide resolved
Copy link
Collaborator

@sapphire-arches sapphire-arches left a comment

Choose a reason for hiding this comment

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

couple more minor nitpicks but otherwise LGTM. Nice cleanup, thanks!

src/deluge/dsp/filter/hpladder.h Outdated Show resolved Hide resolved
src/deluge/dsp/filter/svf.h Outdated Show resolved Hide resolved
src/deluge/dsp/filter/svf.h Outdated Show resolved Hide resolved
@m-m-adams
Copy link
Collaborator Author

Cool - I'll address those and I think I can move the boiler plate linear to log frequency stuff from the filter implementations to the template as well

@m-m-adams
Copy link
Collaborator Author

Should be good to go now

src/deluge/dsp/filter/filter.h Outdated Show resolved Hide resolved
src/deluge/dsp/filter/filter.h Show resolved Hide resolved
src/deluge/dsp/filter/filter.h Show resolved Hide resolved
@jamiefaye jamiefaye added this pull request to the merge queue Aug 8, 2023
Merged via the queue into SynthstromAudible:community with commit aa3d0bc Aug 8, 2023
2 checks passed
@m-m-adams m-m-adams deleted the filter_refactor branch August 8, 2023 22:20
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.

None yet

4 participants