• ### signal inversion and matrixes for reverb mixing

I'm beginning to try to understand some basic reverbs from scratch. I know it's a huge topic, and at my level (not quite new to pd but no formal dsp education) I'm unlikely to get too deep into it unless I learn how to read algebra. I've looked at rev~1 + rev~2 to being with, but the reverb outlined in

seemed decent and well explained. It helped me grasp the basics of what is going on to begin with, but I'm still struggling to know how to implement some aspects of it.

It relies on "shuffling and inverting" multiple delay signals as an alternative form of an allpass, but I can't really understand how to variously invert multiples of a single delayed signal. Am I better off looking to the more standard allpass examples in the documentation H.15.phasor and passing the multiple delayed signals through this?

There's also two matrixes referenced, the Hadamard and the Household, and wondered if anyone had any tips on how they work, what it might look like in PD...are the matrixes combinations of additions and subtractions of signals, like in the rev2~ reverb example?

• Posts 5 | Views 651
• I can't open the video, but what you describe seems to refer to reverberators based on feedback delay networks (FDN). You can find a lot of useful information about this and other techniques in Julius O. Smith's "Physical Audio Signal Processing" book, including references to the original papers by Gerzon and Stautner/Puckette, and there is also a section about different matrices used in FDN reverberators. As for the implementation in Pd: Both rev2~ and rev3~ use Hadamard matrices. So you are guessing exactly right: It's just adding and subtracting/inverting delayed signals, and then normalizing by a factor of 1/sqrt(2) per stage. See also G08.reverb.pd from the audio examples.

• Thank you, appreciate the link, and for feeding back about the Hadamard matrix. I guess there's no way around just having to learn how to read calculus if I want to work with filters...

• @RT-Chris This should help you out.......... R282.zip
Open connected.pd and then dive down to see how the things you asked about are achieved.
The filters are constructed using [expr] to calculate the coefficients for [biquad~] according to THE filter cookbook......... http://shepazu.github.io/Audio-EQ-Cookbook/audio-eq-cookbook.html
The heavy lift is done in hpsh.pd and lpsh.pd and they are vanilla abstractions.

Actually I came across this reverb whilst looking, like you are, for a way to do the calculations.
In Pd extended there existed [lowshelf] [highshelf] and [equalizer] as externals in the ggee library to do the same more efficiently.
They have been available again for a while for 64-bit Pd... but they were AWOL for a couple of years during the 32>>64bit change.

You will need [lp8_cheb~]..... another filter... for the patch to run in vanilla.
You should be able to find it in the iemlib library, and other parts of that library...... [filter~] for example...... are required for that to create properly.
David.

• Amazing, that's really very helpful, thank you David!
I've been keen to explore beyond the standard lop, hip and bp too, so this will help a lot with that too. Yeah I'm beginning to understand the general idea of how it works, but implementing it is another thing. This will help a lot. One of those moments when I think I've learned enough to feel I've broken through to some kind of intermediate stage, and then...

Posts 5 | Views 651
Internal error.

Oops! Looks like something went wrong!