Honestly, do you always write filter algos by hand or are there some popular libraries?

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

soundmodel wrote:Hmm, I think I need to read filter theory more then. I'm already doing my masters (in computational maths) and I still considered filter design to be "a bit tough". But then again, I've been reading mainly about Parks–McClellan and such.
Parks-McClellan is
- somewhat complicated compared to other stuff
- has very very narrow use (designing some very special FIRs, which you probably wouldn't need or use in >90+% cases of music DSP applications)

So, it looks to me you've been looking at stuff which is not really relevant to you, gaining a wrong impression about the complexity of the topic. Keep in mind, that most of the stuff in typical classical DSP texts is not the one of primary importance to a music DSP developer. I'd say one can even do without reading them at all, but rather looking up something music DSP specific. Music DSP field is a very special branch of DSP with a very different set of conditions and requirements.

Post

Z1202 wrote:
soundmodel wrote:Hmm, I think I need to read filter theory more then. I'm already doing my masters (in computational maths) and I still considered filter design to be "a bit tough". But then again, I've been reading mainly about Parks–McClellan and such.
Parks-McClellan is
- somewhat complicated compared to other stuff
- has very very narrow use (designing some very special FIRs, which you probably wouldn't need or use in >90+% cases of music DSP applications)

So, it looks to me you've been looking at stuff which is not really relevant to you, gaining a wrong impression about the complexity of the topic. Keep in mind, that most of the stuff in typical classical DSP texts is not the one of primary importance to a music DSP developer. I'd say one can even do without reading them at all, but rather looking up something music DSP specific. Music DSP field is a very special branch of DSP with a very different set of conditions and requirements.
Then instead of Oppenheim & Schafer, then what should I read for musical DSP only?

Post

soundmodel wrote:
Z1202 wrote:
soundmodel wrote:Hmm, I think I need to read filter theory more then. I'm already doing my masters (in computational maths) and I still considered filter design to be "a bit tough". But then again, I've been reading mainly about Parks–McClellan and such.
Parks-McClellan is
- somewhat complicated compared to other stuff
- has very very narrow use (designing some very special FIRs, which you probably wouldn't need or use in >90+% cases of music DSP applications)

So, it looks to me you've been looking at stuff which is not really relevant to you, gaining a wrong impression about the complexity of the topic. Keep in mind, that most of the stuff in typical classical DSP texts is not the one of primary importance to a music DSP developer. I'd say one can even do without reading them at all, but rather looking up something music DSP specific. Music DSP field is a very special branch of DSP with a very different set of conditions and requirements.
Then instead of Oppenheim & Schafer, then what should I read for musical DSP only?
In principle it depends on what kind of software with which features you're aiming to implement. However, under a kind of typical assumptions of music DSP I could suggest the following.

For the filters I'd (obviously :) ) recommend my own book (The Art of VA Filter Design) or Will Pirkle's Synth book (I haven't read it, but from the contents and previews it seems good). For basics of sampling theory (sampling theorem, sampling and restoration processes) I guess any DSP book would do, including O&S, although it might be better if it's music DSP specific. IIRC some are even freely available on the net, but I can't recommend any specific one since I haven't been looking into that stuff for a long time and don't remember the titles. For the rest I'm not sure, I guess you'll need to google around, maybe even not for books but tutorials and articles.

In the beginning I'd suggest to skip most of the Fourier theory, covering only maybe the most important facts and ideas, but not going into any detail (the introductory chapter of my book should give you an idea of which facts from the Fourier theory I'd consider important). And there I'd strongly suggest to start with continuous-time domain. And you can definitely skip the details of FFT algorithm implementations ;) The most important part here is understanding the relationship between time and frequency domains rather than learning any specific formulas or algorithms.

It's good to be aware of the FIR filters, but you can also skip them for now (unless your goal is designing things like linear-phase EQs).

So as you can see, most of the O&S (discrete time Fourier theory, FFT, FIR filters, IIR filters design by bilinear transform using direct form IIRs) is not high-priority ;)

Post

For the rest I'm not sure, I guess you'll need to google around, maybe even not for books but tutorials and articles.
For the rest I recommend Zoelzer books and then just the RBJ-thing for a start (no need for a book when it's just about 20 lines of trivial formulae).
IIR filters design by bilinear transform using direct form IIRs
Bilinear-transform does not imply any specific topology like biquad. Every generic second-order topology fits, so the transform (or whatever strategy to get coefficients) should be treated as orthogonal to a filter topology in many cases. Like if I'm designing a classic parametric EQ I go with (maybe slightly modified) Simper SVF topo plus Christensen or MZTi coefficients calc (not quite a BLT but still related) for it. While any Moog Ladder VA mambo-jambo would be totally useless for me in this case.

Post

Max M. wrote:
IIR filters design by bilinear transform using direct form IIRs
Bilinear-transform does not imply any specific topology like biquad. Every generic second-order topology fits, so the transform (or whatever strategy to get coefficients) should be treated as orthogonal to a filter topology in many cases. Like if I'm designing a classic parametric EQ I go with (maybe slightly modified) Simper SVF topo plus Christensen or MZTi coefficients calc (not quite a BLT but still related) for it. While any Moog Ladder VA mambo-jambo would be totally useless for me in this case.
To my knowledge most DSP books including O&S bind the bilinear transform discussion to the direct forms, which may give a wrong impression that BLT = direct forms. That's why I suggested ignoring that part in the O&S book, since any discussion of ZDF filters should cover the BLT topic as a byproduct (hopefully) anyway.

Edit: As for RBJ stuff it's highly useful, but one should be careful not to fall into the mentioned direct form trap (unless this is a conscious decision of course). Particularly, the coefficients in the RBJ do imply direct form implementation and one needs to convert them to use something like SVF. In my book I give most of the same formulas in the SVF output terms (in chapter 5). With Zoelzer one needs to be careful in regards to filter topologies, as AFAIK that book doesn't take ZDF topologies into account (which should be the number one choice in most typical cases).

Edit2: actually IIRC, RBJ also lists the analog transfer functions. So if one ignores the discrete time biquad coefficients and takes those instead, one can directly obtain the SVF modal mixture coefficients from there.

Post

Z1202 wrote:For the filters I'd (obviously :) ) recommend my own book (The Art of VA Filter Design) or Will Pirkle's Synth book (I haven't read it, but from the contents and previews it seems good). For basics of sampling theory (sampling theorem, sampling and restoration processes) I guess any DSP book would do, including O&S, although it might be better if it's music DSP specific. IIRC some are even freely available on the net, but I can't recommend any specific one since I haven't been looking into that stuff for a long time and don't remember the titles. For the rest I'm not sure, I guess you'll need to google around, maybe even not for books but tutorials and articles.
Your book, definitely. Pirkle's is useless because of the bad code quality. There is also the Zolzer for general DSP.

Post

Pirkle's is useless because of the bad code quality.
That __stdcall stuff and the code quality is not so much disturbing, the existence of the code and other long uninteresting sections are, but mainly because the time is in short supply unless you are a student. Otherwise it would be useful.
~stratum~

Post

Yes, I agree, he should have kept it at the theory.
But still, it's bad because people cite him as a reference and it gives bad advice for everything in terms of code (I mean, his virtual calls for each sample...)

Post

Z1202 wrote:That's why I suggested ignoring that part in the O&S book, since any discussion of ZDF filters should cover the BLT topic as a byproduct (hopefully) anyway.
Yes, I'd probably should stress that I mean that only in context of "the rest" (like in addition to your book and so on).
Indeed, most of those "general DSP" books are quite... phew for music-dsp (I recall how I was shocked to read some of them just to find out an author goes right to some crazy FIR and FFT stuff after 4 or 5 phrases literally ditching IIRs as useless... Like "Doh! I've just read 300 pages of some tricky math... and still has no idea of how to do a simple 1st-order high-shelf":) ).
So indeed, a more productive start probably would just be to skip the books at all (except the "music" specific books already mentioned above) and go straight to papers (of JAES, DAFX and similar) on the particular areas of interest.

Post

You should use the RBJ filters, they are pretty good and can do most anything you want, as long as you're not trying to use it for analog simulation.

Post

Miles1981 wrote:Yes, I agree, he should have kept it at the theory.
But still, it's bad because people cite him as a reference and it gives bad advice for everything in terms of code (I mean, his virtual calls for each sample...)
They should learn c++ from somewhere else:)
~stratum~

Post

stratum wrote:They should learn c++ from somewhere else:)
I agree. I hope one day there is a book on proper DSP theory and good modern C++.

Post

Z1202 wrote: For the filters I'd (obviously :) ) recommend my own book (The Art of VA Filter Design)
Which can be found where?

Post

dmbaer wrote:Which can be found where?
The Art of VA Filter Design

Post

Max M. wrote:
dmbaer wrote:Which can be found where?
The Art of VA Filter Design
Thanks. I know it looks like I was too lazy to use google, but the fact that the first search result was a Native Instrument site threw me off and I didn't try clicking it. Anyway, found it, downloaded it (free is good), and looking forward to checking it out (once I finish reading the Richard Lyons book).

Post Reply

Return to “DSP and Plugin Development”