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

Convolution reverb #7817

Open
blancoberg opened this issue Oct 2, 2024 · 4 comments
Open

Convolution reverb #7817

blancoberg opened this issue Oct 2, 2024 · 4 comments
Labels
DSP Issues and feature requests related to sound generation in the synth Effects Feature Request New feature request UX Issues related to user experience (UX) - mouse, touch, keyboard, MIDI inputs, etc.
Milestone

Comments

@blancoberg
Copy link
Contributor

Describe the solution you'd like:
A convolution reverb in the effect lane.
This has already been discussed in surge discord, but though I could post it here as well as a reminder.

A convolution library that is potentially a candidate for this could be FFTConvolver:
https://github.com/HiFi-LoFi/FFTConvolver

@blancoberg blancoberg added the Feature Request New feature request label Oct 2, 2024
@baconpaul
Copy link
Collaborator

The primary problem I’ve faced when thinking about this (because yes that fft convolver works well) is the workflow around saving loading managing and patch including the irs. (The second thing is ir sample rate mismatch but that’s fairly well understood).

Writing a good version of that workflow is the primary thing that’s stopped me from doing a cr with this lib

@mkruselj
Copy link
Collaborator

mkruselj commented Oct 2, 2024

A lot of that workflow can be factored with Shortcircuit's missing content handling I think.

My main takeaway here is that IRs should not be embedded into the patch file by default. They can be larger than wavetables. This can and will easily bloat the size of patch banks. And so there should be a factory IR path, a user IR path, and a way to optionally embed IRs into the patch when saving (just like we do with tunings). Patches should also be able to reference the IRs through relative paths of course (especially in case of, say, no user IR path, relative path should then be taking the path of the patch as base).

But at that point, we might as well do the exact same thing with wavetables, as this would probably very much help in reducing the size of our factory bank (I bet a decent amount of patches share the same wavetables)...

@mkruselj mkruselj added DSP Issues and feature requests related to sound generation in the synth Effects UX Issues related to user experience (UX) - mouse, touch, keyboard, MIDI inputs, etc. labels Oct 2, 2024
@mkruselj mkruselj added this to the Surge XT 1.x milestone Oct 2, 2024
@baconpaul
Copy link
Collaborator

I completely agree that if we had all of short-circuits missing resolution code available, finished, shared, and portable into surge, we could use that.

But that does make me wonder why you labeled this a Surge XT 1 milestone issue! :)

@mkruselj
Copy link
Collaborator

mkruselj commented Oct 2, 2024

No specific XT1 release, easy to bump later as we see fit 😀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DSP Issues and feature requests related to sound generation in the synth Effects Feature Request New feature request UX Issues related to user experience (UX) - mouse, touch, keyboard, MIDI inputs, etc.
Projects
None yet
Development

No branches or pull requests

3 participants