Book: The Art of VA Filter Design 2.1.2

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

Z1202 wrote:
Robin from www.rs-met.com wrote:
Z1202 wrote:
Robin from www.rs-met.com wrote:edit: of course, this formula applies to the analog filter, for the digital one, one has to take frequency warping into account ....more work to do.
Personally, I'd assume at least 88kHz SR and ignore the "minor" warping in the audible range :)
hmm...najaaa...neee. i'll see if i can work it out.
Well, you won't get a symmetric shape anyway ;)
of course not. but perhaps i can at least match the lower bandedge.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Robin from www.rs-met.com wrote:the formula at the bottom of the page to prescribe a desired bandwidth in octaves to calculate the damping coeff "R" did not give me the results, i expected.
Okay, it seems to be
R=abs(omega-1/omega)/(2*sqrt(K+1))
(simply forgot to take the square root of the denominator)

Post

Robin from www.rs-met.com wrote:the formula at the bottom of the page to prescribe a desired bandwidth in octaves to calculate the damping coeff "R" did not give me the results, i expected.
BTW, why don't you use complex arithmetics in your script? Will save you a bunch of manual work.

Post

Robin from www.rs-met.com wrote:...perhaps i can at least match the lower bandedge.
OK - actually that was conceptually easy, but computationally, it may be a bit expensive:

compute the unwarped lower bandedge frequency "fl" from center frequency "fc" and bandwidth "B":

Code: Select all

fl = fc / 2^(B/2); 
compute warped center frequency and warped lower bandedge frequency (as radian frequencies, but that is actually not important):

Code: Select all

wc = (2/T)*tan(2*PI*fc*T/2); // prewarped radian center freq
wl = (2/T)*tan(2*PI*fl*T/2); // prewarped radian lower bandedge
T = 1/fs, fs being the sample-rate.

compute warped bandwidth from wc and wl:

Code: Select all

B' = 2*log2(wc/wl);
...putting it all together into a single formula, the following mess results:

Code: Select all

B' = 2*log2((tan(PI*fc/fs))/(tan(PI*(fc/pow(2,B/2))/fs)));
...variables in this formula are fc: center frequency, fs: sample-rate, B: unwarped bandwidth and the output is the warped bandwidth B'

in production code, it's probably better to somehow combine the partial steps from above because the warped radian frequency wc is needed anyway and would be recomputed here inside this formula (up to a factor) which is a waste of one call to tan(). it perhaps can be streamlined a bit (and WTF is this 2*stuff/2 in these tan-computaions? :oops:). i didn't bother. however. blah. just in case, someone wants to use it.
Last edited by Music Engineer on Fri May 25, 2012 12:58 pm, edited 2 times in total.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Z1202 wrote:
Robin from www.rs-met.com wrote:the formula at the bottom of the page to prescribe a desired bandwidth in octaves to calculate the damping coeff "R" did not give me the results, i expected.
BTW, why don't you use complex arithmetics in your script? Will save you a bunch of manual work.
because i did it manually before (in my derivation, i needed a magnitude-response expression - so i had it around already). but yes, you are right. i just didn't think of it.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

The main link
http://ay-kedi.narod2.ru/VAFilterDesign.pdf
has been updated to revision 1.0.3 featuring minor fixes.

Post

Mirror at http://www.discodsp.net/VAFilterDesign.pdf updated :) Thanks for your great work.

Post

Thank you so much for writing this book and giving it to us. I have been searching for more information on this topic ever since reading the original thread.

I found quite a few papers that helped a bit, but I skimmed the book last night and it seems very comprehensive!

Thanks so much :)

Post

Thanks a lot for this book ! I have used for years DF2 for SVP filters, it gaves me the will to try the other implementations

Post

Z1202 wrote:The main link
http://ay-kedi.narod2.ru/VAFilterDesign.pdf
has been updated to revision 1.0.3 featuring minor fixes.
Hi Vadim, can you please let me know how you derived the equations for the non-linear filter in section 4.6 and 4.7 of your document?
The Glue, The Drop - www.cytomic.com

Post

Hi Vadim,

I just read your first post in this thread and it says you got the equations from Antti's paper and from Marco Civolani / Federico Fontana paper. It is traditional to give references to people that came up with ideas by naming them and having a citation so people can look at the original paper. This is pretty easy to do eg:


---- snip from Vadim's pdf file http://ay-kedi.narod2.ru/VAFilterDesign.pdf section 4.6 ---
4.6 Advanced nonlinear model

The nonlinearity introduced in Fig. 4.9 does a good job and sounds reasonably close to a hardware analog transistor ladder lter, however this is not how the nonlinearities in the hardware ladder really work. Antti Huovilainen [11] has proposed a more advanced method that introduces nonlinearities into the underlying 1-pole lowpass filters as follows (Fig. 4.11).

-----

Then in the appendix something like:

[11] Antti Huovilainen, "NON-LINEAR DIGITAL IMPLEMENTATION OF THE MOOG LADDER FILTER"
Proc. of the 7th Int. Conference on Digial Audio Effects (DAFx'04), Naples, Italy, October 5-8, 2004
The Glue, The Drop - www.cytomic.com

Post

Hi Andy

Generally you are right. Although a couple of remarks:

- I didn't use their results. They just happened to publish them (or possibly also obtained them) earlier than me. I have developed the ZDF approach and a nonlinear model of the Moog filter completely on my own. For that matter, I didn't use any sources (at least not directly) when writing the book or deriving the materials. So it's about crediting the pioneering work, not the sources.

- In this regards, IIRC my first post, I was also asking for the community advice regarding other pioneering acknowledgements I was missing (and I'm pretty sure, I'm unaware of most of them), and I'd rather address at least several such issues in one go. Since you raised this question anyway, I wonder, what are your ideas in this regard, or whether you can point me to more pioneering work items.

- I also wonder, whether then it's more appropriate to credit the pioneering work in the acknowledgements section, next to crediting Bob Moog's VCF invention :)

Edit: I'm currently aware of a number of works at least partically related to (just some of) the topics covered. But then I even didn't read most of those articles in detail, just glanced through them. Frankly speaking I'm not too eager to read all of them, just to make sure which invention was first published where (in order to make a proper reference). And in most cases I guess it's not as straightforward as in Antti's model case. That's the reason I'd rather just do "a pile of credits" in the acknowledgements section. But then I was hoping someone would point me to the works I missed so far (like you just did with Antti's model ;) )

Regards,
Vadim
Last edited by Z1202 on Fri Jul 13, 2012 1:29 pm, edited 1 time in total.

Post

andy_cytomic wrote:Hi Vadim, can you please let me know how you derived the equations for the non-linear filter in section 4.6 and 4.7 of your document?
So, does this question still hold (i.e. do you want to know how exactly did I analyse the circuits)? Or was this basically asking about my sources?

Regards,
Vadim

Post

[Written new message with quoting instead of editing, removing this one]

Post

Z1202 wrote:
andy_cytomic wrote:Hi Vadim, can you please let me know how you derived the equations for the non-linear filter in section 4.6 and 4.7 of your document?
So, does this question still hold (i.e. do you want to know how exactly did I analyse the circuits)? Or was this basically asking about my sources?

Regards,
Vadim
I didn't want to put words in your mouth, since I was not sure if you derived the equations independently or not, which is why I asked the question as I did. I'll reply in a new post now to the more important points.
The Glue, The Drop - www.cytomic.com

Post Reply

Return to “DSP and Plugin Development”