My question: what is the “Alpha” input on the out of the box HighPass and LowPass nodes (in the DSP section)?
It seems to take a value between 1 and 0. Beyond that, I’m not sure what I’m hearing. Is this the cutoff frequency? Like is the 0 - 1 value a percentage of the sample rate or something or ... ? What is this exactly? I’ve tried googling low pass filters but it’s a little over my head.
What I’m up to ... I’m on a quest to find or create a bandpass filter that can accept insanely high Q levels without self-oscillating. I’m trying to improve on my formant filter design. It turns out I had been translating the bandwidth values from the csound format table from Hz to Q incorrectly. The correct Q values range from around .01 to around 25!
So now I have a better sounding filter bank, but all of the tasty ZDF filters self oscillate pretty bad on the high end. You can hear the improved formants over the whistling though, so I suspect I’m onto something! I just need a bandpass filter that can do it, maybe?
Here's an alpha to cutoff converter. alpha is an alternative way to express the cutoff frequency of the filter. It does not affect the slope (Q) value. The high and lowpass nodes are 2nd order filters which have a 12db per octave slope. They don’t have a resonance adjustment. The SVF filter I posted is also a second order filter but features a bandpass output. Higher order digital filters tend to be unstable so higher slopes are typically created by cascading multiple first or second order filters. I've attached a unit-gain bandpass filter. fc is the cutoff frequency, R is resonance, a is audio in. R varies between 0 and 1 with 1 being the max. Keep the resonance close to zero to avoid oscillation. Try putting a couple in series to get a steeper cutoff.
The nodes reference specifies them as 12db/octave filters, however our resident filter guru @SansNom is correct. After reading his post I did some testing and they are indeed 1st order filters (6dB/octave) rather than 2nd order as the documentation states.
I’m trying to use that to make a formant filter in Audulus, which ... actually I’ve done a few different ways now. I’ve been able to get some sounds, but there are a couple of things I want to improve on.
1) my previous iterations used too much CPU to really be useful in context with other stuff you might want to build to drive it ... for instance sequencers and stuff.
2) my previous iterations sounded ok at best. I want to be able to make the really gnarly throaty sounds like this:
Ok, so what I did, was I just ran my signal through a HiPass, then a LowPass and used @stschoen’s Hz to Alpha converter to set the cutoff frequencies to +/- half the bandwidth specified in the csound table, giving me a kind of hacky bandpass filter.
As mentioned above, these are 6db/oct so ... I stacked 8 of them in a row and it did start to sound pretty formant-y.
However, it’s just sort of missing that aggressive, bitey sound I’m after. I suspect what I need is just the right amount of resonance.
Anyone know the math around the dB/oct specification? Like, when I stack 8 of them together like this, what’s that equivalent to?
Much as I would like to take credit for the converter, it was @SansNom' s creation. As far as the dB/octave filter slope, its related to the order of the filter. As you cascade sections you increase the order by one for each section. So two first order filters cascaded create a second order filter etc. Each increase adds approximately 6dB to the slope assuming identical sections. because your sections are not identical (different gain) it would be difficult to say exactly
For formant filters you need to add "Q" (resonance). You may need to stack 2 resonant BP filters in a row to increase the bandwidth but then the resonance and gain of each BP must be adjusted accordingly. You can have a look at the Human Voice 330 patch filter section to see it in action. So these 6 dB/oct filters are not really good for what you want to do.
You might want to try the unit gain bandpass filter I posted earlier in the thread. It's a 2nd order (12dB/octave slope bandpass with adjustable resonance. two in series will give you a 24 dB/octave slope which is pretty steep.
@stschoen , your unit gain bandpass sounds great in this context! I very much like the sound, however the effect still seems a bit subtle to me, even 4 filters deep. Suspect there’s something wrong with my approach still.
Also it eats CPU (anything that needs an expr node does, unfortunately). But the sound is pretty great. Check it out