Live data from Hacker News

Let's Write a Reverb (2021)

signalsmith-audio.co.uk

11–20 of 65 posts

Re: Let's Write a Reverb (2021)

#12
post #2

Is it possible to model reverb using a neural network (e.g. wavenet or LSTMs) for real-time use? Is this what something like Neural DSP is doing under the hood?

For reverb I don't see much practical use, mainly because you can capture a pretty-much-perfect recreation of a real space with an impulse response. No need for thousands or millions of rounds of training a network. For unrealistic reverbs, you have the problem that to get training data you'd have to invent several unrealistic reverb effects to apply to sounds. And once you've made those effects, there's not really any reason to neural-netify them.

For NeuralDSP it's a bit different because they use NN's to simulate a guitar amp circuit which is a nonlinear system and so there's no simple way to "capture" the effect the way that you can for reverb sims or speaker sims. And while you can make a very accurate model using something like SPICE, that won't run in realtime. With traditional amp modeling you basically take the SPICE version and try to optimize and cheat as much as you can so it can run in realtime, at the cost of accuracy.

So that's what NeuralDSP's goal is, a system that approximates the amplifier but can also be computed in real-time, except done using a trained NN instead of a human-optimized variant of the SPICE circuit.

They have a couple whitepapers on their website, though none of them go deep enough to really give away their secret sauce. But basically according to them, making a NN model of an amplifier at a fixed setting is fairly simple. Where they had to get novel with it is adjustable settings/parameters. E.g. turning the drive up, or turning the treble down. Just capturing a few hundred or thousand models based on adjusting parameters and cross-fading between them doesn't sound realistic. So they had to come up with a larger model architecture that can "learn" those parameter changes.

https://arxiv.org/pdf/2403.08559

Re: Let's Write a Reverb (2021)

#13

I came expecting DSP code but was pleasantly surprised by this! If anyone has any other interesting ones to share about how audio hardware and software are built, I'd love to see them!

Sean Costello of Valhalla DSP is doing excellent work with his designs. He's got a series of blog posts that delve into various approaches for designing reverb algorithms:

https://valhalladsp.com/2021/09/20/getting-started-with-reve...

https://valhalladsp.com/2021/09/22/getting-started-with-reve...

Re: Let's Write a Reverb (2021)

#14
Fantastic article from start to finish. Great explanation, great audio samples, and from a first skim the C++ example looks very readable.

> I haven't found any good resources on this particular diffuser design. I found a couple of forum posts and a paragraph from a book

When I read this my first thought was "this is a link to a comment by mystran on KVR, isn't it?" And yep. If you're looking for some obscure DSP knowledge, all Google searches eventually lead to a comment by mystran.

Re: Let's Write a Reverb (2021)

#15
post #3

Easily the most approachable yet complete writeup I've seen on the topic. I've always noticed an aura of esoteric dark magic around writing good algorithmic reverbs, this makes it seems less daunting. Since the author does a quick comparison between convolution and algorithmic reverbs, I'll mention how I often combine them: a small/medium convolution reverb, plus a long algorithmic reverb. The convolution can perfect…

Take a look at the articles on Valhalla's site. They're another goldmine https://valhalladsp.com/learn/

Re: Let's Write a Reverb (2021)

#16
Very nice tutorial, and extremally nicely done!

It's worth knowing that some of those effects can also be achived (of course much much more simplified) in all modern browsers using the Web Audio API. I created mobbler[0] using that, and I also wrote a small tutorial on how some of the effects can be achieved using simple modules (it might seem too complex at first glance, but you can just look at the pictures)[1].

[0]: https://github.com/Megaemce/mobbler

[1]: https://github.com/Megaemce/mobbler/wiki/Tutorials

Re: Let's Write a Reverb (2021)

#18
post #2

Is it possible to model reverb using a neural network (e.g. wavenet or LSTMs) for real-time use? Is this what something like Neural DSP is doing under the hood?

Not sure about Neural DSP or reverbs in general, but real-time neural network based DSP seems very possible. The open source Neural amp modeler[1] would be a good place to start diving in. [1] https://www.neuralampmodeler.com/the-code

It is 100% possible and there are a slew of tricks you can use to get big performance boosts with negligible cost to accuracy.

Re: Let's Write a Reverb (2021)

#19
post #6

Earlier quoted context omitted.

Not sure about Neural DSP or reverbs in general, but real-time neural network based DSP seems very possible. The open source Neural amp modeler[1] would be a good place to start diving in. [1] https://www.neuralampmodeler.com/the-code

I have tried NAM but with limited success in modeling some time-based effects (e.g. octave shifting). However, I have not tried to model reverb effects.

To handle time-based effects you need a custom architecture.

https://www.research.ed.ac.uk/en/publications/neural-modelli...

Don’t use NAM. Learn PyTorch.

Re: Let's Write a Reverb (2021)

#20
post #2

Is it possible to model reverb using a neural network (e.g. wavenet or LSTMs) for real-time use? Is this what something like Neural DSP is doing under the hood?

For reverb I don't see much practical use, mainly because you can capture a pretty-much-perfect recreation of a real space with an impulse response. No need for thousands or millions of rounds of training a network. For unrealistic reverbs, you have the problem that to get training data you'd have to invent several unrealistic reverb effects to apply to sounds. And once you've made those effects, there's not really a…

It’s not that hard, you just collect a lot of data. Much easier with a robot turning the knobs. Predict the next sample based on input and knob settings.
Post reply on HN