Digital filters?

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

I just got into DSP techniques by browsing through some textbooks stated as references in the DSP domain. What I figured out was that i you want to set up a digital filter, you can get to choose between IIR filters and FIR filters, you've got the collection of formulas from which to derive your filters coefficients, then you've got a variety of windowing functions to choose from. I aslo understood that IIR filters are the only one with analog equivalents and that they work with no latency. FIR filters can be derived to be phase linear, but the samples must be buffered to perform the computation.
I had the strong impression that the full DSP filtering theory was developped something like 40 years ago and that then it was refined to reach its full maturity in the early 90's.

So what's so esoteric and secret about VST digital filters? It seems like everyone with enough spare time could grab a textbook and design a digital filter given a set of required characteristics. Seems to me that there's no big deal, as much of the hard work has been done during the 60's and 70's, I mean all the sampling theory, z-transform and everything...
Same for how tubes work, some dudes figured out how they act on the sound something like 30 years ago. So is it that hard to code that?

Is it really so hard to design a IIR filter that sounds good?

Post

The FabFilter is the most authentic emu IMO.
Its the only filter with almost no stepping...compared to say, impOSCar, where you can actually hear the stepping...the fabfilter is the closest to real analouge.

So, making a digital filter has been done and done well, so I´m not really shure what you are on about.


edit: about tubes, that has been done too...think voxengo.

Post

monsterbeetle wrote:So what's so esoteric and secret about VST digital filters?
Making them sound good. :P

;) Urs

Post

Urs has a very good point: making a filter that sounds good (and is easy to use, i might add) is the most important thing, and it still eludes many developers.

RE: tubes. i'd be interested to hear directly from Aleksey just what Warmifier is doing under the hood. However, i doubt that will ever happen. (i wouldn't if i were him.) i'm guessing that it is a pinch of analog modelling tossed in with a whole heaping pile of fudging it. i don't mean to knock it or anything--i think that it sounds quite good--but everything that i've read on the subject of modelling tubes tells me that one would need a ridiculous amount of upsampling to pull it off legit. My apologies to Aleksey if he actually has figured out a way to do it.

there was a thread going on the dsp mailing list about it. i think that the best that one can hope for is to figure out a good way of fudging it.

Post

monsterbeetle wrote: Is it really so hard to design a IIR filter that sounds good?
Be our quest! Teach us !
Digital != analog
Analog filter has nonlinearity, it continuouse in time domain (not predicted like digital one).
2 separate worlds.
Show up with some examples ! :?:

Post

tranceinstitute wrote: Be our quest! Teach us !
...
Show up with some examples ! :?:
It's a shame your arrogance is not well matched by your comprehension skills, mate.

Try carefully reading monsterbeetle's post again, and see if you can spot why your reply was unnecessarilly (if a little predictably) snide. :roll:
Someone shot the food. Remember: don't shoot food!

Post

I don't think I hear any stepping in Ohm Force's Frohmage filter (tho I will listen closely tonight to make sure!).

Post

hi,

What do you guys call stepping?
I've never heard of it.

cheers

remy

Post

valley wrote:
tranceinstitute wrote: Be our quest! Teach us !
...
Show up with some examples ! :?:
It's a shame your arrogance is not well matched by your comprehension skills, mate.

Try carefully reading monsterbeetle's post again, and see if you can spot why your reply was unnecessarilly (if a little predictably) snide. :roll:
:lol:

I think it's partly a language problem, and partly what you are implying
:wink:
Last edited by spaceman on Wed May 26, 2004 8:34 am, edited 1 time in total.
My other host is Bruce Forsyth

Post

FIR is a special class of IIR. Basically, FIR is y[z] = H[z]x[z] where everything is z-transformed.
IIR is G[z]y[z]=H[z]x[n], so with G[z] = 1, you obtain... FIRs. It's also called ARX because you have an auto-regressive part - G[z] - with an exogen variable. You can play with noise too :D.
One you have your analog filter with it's transfer function in p - Laplace domain or iw for Fourier domain -, you can transform it into digital. This method leads automatically to causal filters, so the response to an impulsion strats after the impulsion - as every newton physical system is -, by appliying bilinear transform or something else, but it is basically an approximation of derivative, integrative systems.
Causal will lead to no latency - but you'll have to manage circular buffers ;) -, anti-causal will lead to latency as you'll have to wait for the impulse to say that, for instance, 3 samples before you have to put 0.5 in the buffer. So 3 samples later means 3 samples of latencies.
Am I clear enough :D ?

Post

I think that by "stepping" they mean that they hear "steps" in the cutoff when altering it via CC or GUI. Which really has nothing to do with the filter really. But I'm not sure. Hey, guys, if you mean something else, please explain :)
Stefan H Singer
Musician, coder and co-founder of We made you look Web agency

Post

Hi

Speaking of emulation of analog filters in digital there are lots of problems.

1. Digital LTIs do not have the same transfer functions as their analog prototypes. There is distortion at high frequencies.

2. Synth filters are not LTIs since they are modulated. This subject is not covered at all in typical DSP textbooks, and lots of interesting things can happen here.

3. Modeling analog nonlinearities (even when they are fully understood and a good enough mathematical model exists for them) in digital form is a pain in the part of the body one uses for thinking :D

Re tubes. See filters 3. I'm not much into tubes, but I'm also not sure if these 30 years old models of tubes that you are talking about are precise enough to cover all important aspects of their sound. They are just models, so they don't 100% match the real world.

Hope this helps.

Best regards,
Dr Sync

Post

+1, from one tube to another, the differences can be big!!

You can begin modeling non-linearities... by linearizing them : instead of using a condensator, you you an RLC section with an R in parallel, ... But this can be very time consuming - for you and the PC... -

Post

I didn't mean any arrogance here, just asking questions.

DrSync had it right, modulation is not covered in textbooks, and that's where the hard part resides, modulation is continuous in analog filters, whereas it can only be faked to a certain extent in DSPs, you get steps. all right.

But when you say digital filter alias the high end, isn't over sampling (192kHz) the simplest and only answer to that?

Concerning tubes, you'll find a good collection of models around, saying the amplitude, order and offset of each harmonic they create. But concerning compression it's a whole different problem in its own, hard to figure out....

Well I guess there are still some aspects of sound our brains figure out (subjective sound quality) that cannot be fully captured by mathematical models...

I fact I just wanted to know what filter you'd use to simulate air damping, that's why I took a plunge into some DSP literature.


Thank you guys!

Post

monsterbeetle wrote:But when you say digital filter alias the high end, isn't over sampling (192kHz) the simplest and only answer to that?
No, it's not the only way ;)
There are a few transforms to make the gap between analog and digital. As I said, it is how you modelize the relationship between z and p. You can use something like p = 1 - z, p = (1-z)/(1+z) or something like that - it is the bilinear transform, it should be more precise than the first one, which is without the corrector factor too, but you can found it easily on the web -, z = e^p I believe exists too, ...

You can make your own transform to bridge the gap, it's only a matter of precision used. At higher frequency, the approximation is less and less correct so the error raises up. In my courses, I remember that my teachers made us found these transforms based on different approachs. It should be found on the web how they were meant and created, so if you want something more precise in one domain, you should be able to correct the transform at your convenience.

Post Reply

Return to “DSP and Plugin Development”