|
|||||||
![]() |
|
|
Thread Tools |
|
|
#1 |
|
DriverHeaven Newbie
Join Date: Sep 2003
Posts: 19
Rep Power: 0 ![]() |
Highpass/lowpass???
I have read a few other posts on these filters and have worked out that they are all set at 12db/octave. If that is the case then what is the Width setting for, what does it Specifically do?? If I wanted to make a 2000hz linkwitz-riley 12db/octave how would I accomplish this. And if I wanted to make this 18 or 24db/octave is this possible.
To all loudspeaker DIYers I think a useful plugin for the KX would be for the width to mean how many db/octave say up to say 60. Or you could make it go from 1-12db and to get steeper slopes you add another low/highpass. Also a selection of filter types butterworth, linkwitz, bessel would be great. Also the lowshelf, does this work like a standard compensation for 4pi radiation? or if you select you freq and db to increase by does it just bump up all the freq below the point you have set or use a typical opposite 4pi transfer function to correctly compensate. This may sound hostile its not meant to be I just want to know what each things do. Cheers Matt |
|
|
|
|
|
|
|
DriverHeaven Newbie
Join Date: Sep 2003
Posts: 19
Rep Power: 0 ![]() |
I have the standard install of KX from the main website if this helps.
|
|
|
|
|
|
|
|
DriverHeaven Newbie
Join Date: Sep 2003
Posts: 19
Rep Power: 0 ![]() |
Come on ppl any ideas no matter how stupid or off the wall
|
|
|
|
|
|
#4 |
|
h/h member-shmember
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,639
Rep Power: 69 ![]() ![]() ![]() ![]() ![]() ![]() |
i'll try to answer (although my english kicks me down when it goes to such theoretic stuff)..
>12db/octave. If that is the case then what is the Width setting for, what does it Specifically do?? Well, it's more like "slang"... The trick is that "Biquad" filters used in present equalizers (both shipping with driver and ones of ufx package) are always treated as "12dB/oct" whatever actuall frequency responce they have (for example biquad allpass often is sayd to be 12db/oct filter even if it has actually _linear_ frequency responce at all)... The reason (probably) is that biquad (e.g. two zero two pole filter) has a maximum possible steep 12dB/oct... (well... hmm... more correct example... biquad lowpass _always_ has 12dB/oct slope when it goes to frequencies where magnitude is close to zero but can have different from 12db/oct slope around "cut-off" frequency (defined at -3dB, -6dB - whatever) - this achived thru "resonance" (which can be both positive (for higher slope) and negative (for smooth)) and that resonance is typically exposed to user as "Width" (also called as "Q", "BandWidth", "Resonance" depending on filter type and filter's vendor) Well, that is not 100% technically correct explanation but... >2000hz linkwitz-riley 12db/octave how would I accomplish this. And if I wanted to make this 18 or 24db/octave is this possible. [correct me if i'm wrong] As i understand (quickly jumping through http://www.google.com/search?hl=en&i...=Google+Search) that "linkwitz-riley" thing is not a different filter type but more like a different definition for the cut-off frequency... so (as again i thought reading googled stuff about) the one of the ways to implement 4-order filter for linkwitz-riley crossover is to connect two standard (butterworth typically) biquads in serial... >To all loudspeaker DIYers I think a useful plugin for the KX would be for the width to mean how many db/octave say up to say 60. Well, the present filters are developed for equalization mostly purposes and that second-order biquads are the best here in terms of "more features at low dsp resources cost"... so.. well everybody use them and we use them too ;)... So it would be cool if you will write (and we always glad to help) that multi-order filters for crossover and other special tasks... >Also a selection of filter types butterworth, linkwitz, bessel would be great. That's again the matter of purpose, some of that special filter types are really unusable for _everyday_ equalization (like elliptic or chebychev), some are not a really a different filter types (again fix me: "Linkwitz-Riley" is the type of crossover not a filter type) and some are make sence only in analog (fix me: does analog bessel prototype loose all of its advantages being transformed into digital (at least as biquad)?) Well, never mind, anyway i don't see any reason why to not implement this ("filter type") option when writing high-order special purpose filter (just do not forget that such option will confuse 90% of users ;) (btw. if the purpose of the filter is "crossover" then you probably _have to_ use -6dB definition for the cut-off frequency) >Also the lowshelf, does this work like a For a "shelving" filter definition try something like http://www.google.com/search?num=100...=Google+Search ;) >...it just bump up all the freq below the point you have set... like that. ---- well, as i sayd some statements above can be absolutely incorrect (or be misprints) so fix me where i'm wrong... :)
__________________
|
|
|
|
|
|
|
|
DriverHeaven Newbie
Join Date: Sep 2003
Posts: 19
Rep Power: 0 ![]() |
Ok tried to attach a pic and it didnt let me so I lost all the post
Anyway i will leave out the first section as it was not important. But this width thing from what I understand you are saying that the width changes the "Q" of the slope selected. Like im going to try and highlight with a few pics. First pic http://members.lycos.co.uk/zxahn401/...matt/highq.JPG This one highlights high "Q" (low width setting??) Next http://members.lycos.co.uk/zxahn401/...tt/mediumq.JPG This one medium "Q" (sort of around 3 width) And http://members.lycos.co.uk/zxahn401/.../matt/lowq.JPG this one low "Q" (width 10) Is this what witdth does?? If so what width corresponds with what Q?? A width of 0.5 will not be a Q of 0.5 |
|
|
|
|
|
#6 |
|
h/h member-shmember
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,639
Rep Power: 69 ![]() ![]() ![]() ![]() ![]() ![]() |
>A width of 0.5 will not be a Q of 0.5
Yes, "width" is "reverse-proportional" to Q (e.g. more width - less q and vice-versa)... The term "width" ("bandwidth") came from band-pass filters where it is more flexible to expose resonanse as width of the passed band in octaves... but there's no world-wide standard for exact relationalship between Q and Width and this is vendor depended (e.g. there're many different definitions for both Q and Width...) Read for example (and for more technically correct decriptions) "The Equivalence of Various Methods of Computing Biquad Coefficients" (by RBJ), "Operator Adjustable Equalizers " (by Rane), etc. (they are available on-line and you'll find it without problems)...
__________________
|
|
|
|
|
|
|
|
DriverHeaven Newbie
Join Date: Sep 2003
Posts: 19
Rep Power: 0 ![]() |
OK cheers for that Max
Ill look in to the papers you recommend Matt |
|
|
|
|
|
#8 |
|
kX Project DSP Engineer
Join Date: Dec 2002
Location: Denmark
Posts: 94
Rep Power: 0 ![]() |
Well, this is not the first complain about the term "width" in the filters I implemented for kX. Width is measured in octaves - a music interval in which 1 octave is equal to a doubling of frequency.
It works the same way as old-school "Q" but with opposite numbering. Low width equals high Q. I still find width more logical for music purposes but if the majority of users would rather use Q I can change it quite easily Cheers Soeren ____________ ...........who became a father for the second time yesterday morning and who is a bit tired at the moment
|
|
|
|
|
|
#9 |
|
DriverHeaven Senior Member
Join Date: Dec 2002
Location: Brazil
Posts: 1,137
Rep Power: 0 ![]() |
Off topic
Congratulations for the new baby Soeren B!
__________________
www.palcomp3.com.br/ed |
|
|
|
|
|
|
|
DriverHeaven Newbie
Join Date: Sep 2003
Posts: 19
Rep Power: 0 ![]() |
Having it as Q would be more a lot more helpful as I would exactly know what the filter is doing then.
Cheers Matt
|
|
|
|
|
|
|
|
DriverHeaven Newbie
Join Date: Sep 2003
Posts: 19
Rep Power: 0 ![]() |
If the Q you select would be the typical Q of say a second order butterworth at 0.707.
Once again cheers Matt. |
|
|
|
|
|
#12 |
|
kX Project DSP Engineer
Join Date: Dec 2002
Location: Denmark
Posts: 94
Rep Power: 0 ![]() |
The kind of Q you can expect to see in the old kX filter bank is explained at
http://www.harmony-central.com/Compu...Q-Cookbook.txt Note: If you are looking for a special high order custom filter (butterworth, chebychev, bessel etc. with fixed settings) with special phase and frequency response I strongly suggest that you design the filter yourself for your particular purpose. There should be several ways of generating filter coefficients for different types using either Matlab or one of the numerous filter designer programs (typically java applets) on the net. We (I) can support a framework for doing n-step FIRs or IIRs so that you can create the types you want. However, these kind of filters will not be small and efficient like the ones implemented in kX (especially those by Max ). They will eat your DSP resources and be a bitch to control (if you want to be able to control them in real-time). I guess this is one of the reasons why no one have implemented them in kX yet. Cheers Soeren |
|
|
|
|
|
|
|
DriverHeaven Newbie
Join Date: Sep 2003
Posts: 19
Rep Power: 0 ![]() |
I have no idea where to start with programming my own plugin, I know absolutely nothing about any of it. I have also just started uni so dont really have the time required to learn something from scratch, as I also have several other projects on the go too, the microcode kinda takes a back seat. I just looked at the website you specified and as far as I can tell the Q that the filter uses is the Q I am after. This ofcourse is just a gut feeling of recognising sections of the page from loudspeaker theory, which related to Q and xovers.
I would still appreciate a width to Q plugin, if it does do what im after then the specialist filters or most frequently used ones are accommodated within this. I mean im no oracle on xovers and the like, but the diff between a butterworth or linkwitz is just the Q of each. Also I understand that each plugin has a roll off of 12db/octave, so thus I can simulate a 12 and 24 db. Would it me possible to get a 6db plugin so 6 12 18 and 24's are possible. Cheers for any help Matt. |
|
|
|
|
|
#14 |
|
h/h member-shmember
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,639
Rep Power: 69 ![]() ![]() ![]() ![]() ![]() ![]() |
I think you messed up with this a bit...
Q, Width... different filter types... So.. Are you trying to make Crossover? And are you thinking of making a new one or constructing it from existing plugins?
__________________
Last edited by Max M.; Sep 24, 2003 at 05:12 AM. |
|
|
|
|
|
|
|
DriverHeaven Newbie
Join Date: Sep 2003
Posts: 19
Rep Power: 0 ![]() |
OK well here goes - filter types...
Right take a basic 12db roll off ok now you can have various different filter types, take butterworth, linkwitz riley, bessel and chebyshev. Ok all have the same plugin, an active lowpass, the frequency is set to 200hz. The difference between them IS the Q. A Q of 0.707 gives you the butterworth filter. A Q of 0.49 gives you the linkwitz filter. A Q of 0.58 gives you a bessel filter. A Q of 1 gives you a chebyshev. So having a Q bar instead of width would enable easy creation of all the above. Set frequecy where you want, add the filter steepness (one or two plugins), then put in the Q. If a 24db linkwitz is needed then each filter is set to 0.707 which sums to a total of 0.49. Or the above for 12db. If a new plugin is made which has Q instead of width then I wont need to make myself anything. But thats not the point, I couldnt make one now if I wanted to new or modifying an existing filter. I hope that clears up what I was saying, if it still doesnt I can give a series of pictures to highlight this. |
|
|
|
|
|
#16 |
|
kX Project DSP Engineer
Join Date: Dec 2002
Location: Denmark
Posts: 94
Rep Power: 0 ![]() |
Ok.
Short one ![]() A Oct. setting of 1.0 equals a Q setting of 0.707 with the filters in the kX package. I have revised the filters to use Q instead (plus a bunch of other fixes and changes). They will probably be in the next kX release If you are _very_much_ in need I can make kxl files for you. /Soeren |
|
|
|
|
|
#17 |
|
h/h member-shmember
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,639
Rep Power: 69 ![]() ![]() ![]() ![]() ![]() ![]() |
>The difference between them IS the Q.
>A Q of 0.707 gives you the butterworth filter. >A Q of 0.49 gives you the linkwitz filter. >A Q of 0.58 gives you a bessel filter. >A Q of 1 gives you a chebyshev. No, no, no... this is absolutely wrong... where did you take that info from? (yes, for example "Chebychev Type I" filter with ripple -3dB gives you the same curve as you've got with Q = 1, but this does not mean that the Q IS the difference between butterworth and chebyshev... Again the same "Chebychev Type I" filter but with ripple -6dB gives you the curve which equal to low-pass with Q = 1.41 etc... these are only special cases for the filters of second-order - nothing more)... btw. Soeren have already made that "by Q" filters for you, but be carefull - you have a litlle incorrect understanding of them...
__________________
Last edited by Max M.; Sep 25, 2003 at 12:45 AM. |
|
|
|
|
|
|
|
DriverHeaven Newbie
Join Date: Sep 2003
Posts: 19
Rep Power: 0 ![]() |
OK well maybe its how my Loudspeaker CAD program uses Q. If I add an active xover it asks me to specify the frequency desired the Q of the filter and then a reference point form which to calculate the components.
I can also ask the program to provide me with a target response. This means it super-imposes the target over the actual response. Now if I put in a target of 12db butterworth 200hz and then I add the filter to a flat response driver with a Q of 0.707 it mimicks the butterworth filter. If I then change the target to LWR and alter the Q to 0.49 it mimicks the LWR, with both the actual response and the target match up. |
|
|
|
|
|
#19 |
|
DriverHeaven Newbie
Join Date: Jan 2003
Posts: 6
Rep Power: 0 ![]() |
12db/octave, or more is what we need.
Last edited by terrapin; Oct 10, 2003 at 10:49 AM. |
|
|
|
![]() |
| Thread Tools | |
|
|