Thank you for your donation!


Cloudsmith graciously provides open-source package management and distribution for our project.


BruteFir integration
#21
@jijopujolo if you can find that reference back it would be very helpfull ?

I used now the bandwith calculations from https://www.audiorecording.me/parametric...s.html/amp, but those outcomes differs ~ 2x from the actual used bw of EqFa4p.

Anyway to ease use the configuration interface is now using Q instead of bw. It would be great to have more well-founded Q calculation.
Reply
#22
Would that this were a simple subject, but designing digital audio filters is anything but.

For a peek under the covers, have a look at https://mycourses.aalto.fi/pluginfile.ph...s-Vesa.pdf and its references.

Regards,
Kent
Reply
#23
(10-30-2020, 06:50 PM)bitlab Wrote: @jijopujolo if you can find that reference back it would be very helpfull ?

I used now the bandwith calculations from https://www.audiorecording.me/parametric...s.html/amp, but those outcomes differs ~ 2x from the actual used bw of EqFa4p.

Anyway to ease use the configuration interface is now using Q instead of bw. It would be great to have more well-founded Q calculation.

The first try yielded nothing, but I'll look harder.
What I gathered at the moment are only indirect/oblique references such as:
  1. https://www.superbestaudiofriends.org/in...ost-143291
  2. https://www.head-fi.org/threads/measurem...t-14087626
  3. https://gist.github.com/tresf/5f6cbd86f6...diff-L4339
Just to be clear, if I understand correctly you're using the bandwidth in Hertz (f/Q), while my assumption was to use the bandwidth in octaves (N).

Relation between Q and N:
Quote:N = ln(1 + 1/(2*Q^2) + sqrt(((2*Q^2 + 1) / Q^2 )^2 / 4 - 1)) / ln(2)
(source: AutoEq usage page)

Some values:
Quote:Q -> N (bandwidth in octaves)
8 -> 0.1802
4 -> 0.3597
2 -> 0.714
1 -> 1.3885
0.5 -> 2.5431
0.25 -> 4.1655
0.12 -> 6.1585
source:
http://www.sengpielaudio.com/calculator-bandwidth.htm

I have no idea if these values would make sense in EqFA4p.

Some additional references:
https://www.ranecommercial.com/legacy/note170.html
http://www.sengpielaudio.com/Umrechnungs...Filter.pdf

I seldom use equalizers, but when I do I use AutoEq* as a reference, so having Q in the GUI would be wonderful.
*: at the moment I'm using bmc0's system wide dsp and while I'm happy with the results and I have a commandline switch between my presets, I certainly miss a GUI

Disclaimer: I'm way out of my field of expertise, so please forgive me if I'm just wasting everybody's time.

(10-30-2020, 07:34 PM)TheOldPresbyope Wrote: Would that this were a simple subject, but designing digital audio filters is anything but.

Amen to that!
Reply
#24
Quote:I have no idea if these values would make sense in EqFA4p.

This is the crux of the difficulty. Since Tim Goetze didn't see fit to give proper definitions to the adjustable parameters in EqFA4p (http://quitte.de/dsp/caps.html#EqFA4p) we're left to try to infer them from the text description

Quote:Four Mitra-Regalia peaking equaliser filters in series; a vector arithmetic re-implementation of Fons Adriaensens "Parametric1" equaliser[fafil] with minor differences. 

Parallelisation of the serial filter organisation causes the output to lag by three samples. 

The bw control sets the bandwidth of a single filter, lower values corresponding to increasing resonance. 

and from the code itself.

I started walking the code last year (hence the link to the overview presentation about M-R filters I recently posted) but I never finished. Unfortunately, at the moment my notes are somewhere in a moving box full of papers (my FINO stack---first in, never out). 

One can conjecture from the stated limiting values of the bw parameter (0.125 - 8) what one will, but it would be more comforting to be able to relate the parameters explicitly to the equation(s),

Kudos to all of you for pushing the ball forward, by the way.

Regards,
Kent
Reply
#25
I validate the calculations for Q to BW by comparing against the parameteric EQ of APO.
The tests was an 1kHz with a 6 boost for with 3 different Qs; Q=1, Q=2, Q=4.

The first image show the results. I would say close enough ;-)

Next a more complex correction is performed with 10 bands, the results are shown in image 2.
The center frequency and bandwidth looks ok to me, only a little difference in gain.


Attached Files Thumbnail(s)
       
Reply
#26
Quote:[quote pid='27053' dateline='1604855250']
(11-08-2020, 04:33 PM)Coustard Wrote:
(11-02-2020, 02:57 PM)bitlab Wrote: @Coustard to migrate existing settings:  Q = 0.5 / BW  (where BW is the EqFa filter bandwidth, not general bandwidth)

Actually, and at the risk of sounding ungrateful, are you sure? I know this is an oft-quoted conversion but I've just spent an afternoon capturing EQ curves from moOde6 .71 in REW and it doesn't look right.

Methodology: 
1. Play white noise from moOde, set a single band of EQ to +10dB at 1kHz at various bandwidths and capture averaged (16x) RTA curves in REW. 
2. Play white noise in Apple Logic (DAW), set a single band of built-in EQ to +10dB at 1kHz at various Q factors and capture as above.
3. Visually match curves (example attached)
4. Tabulate.

I should say that I tried a variety of Eqs in Logic ('standard' types rather than Ye Olde recreations) to confirm kind of consensus on curve shape and they all basically agreed.

Results (moOde BW v Logic Q):
0.2      3.8
0.3      2.6
0.4      1.9
0.5      1.5
0.6      1.3
0.7      1.1
0.8      1
0.9      0.93
1         0.79
1.1      0.75
1.2      0.71
1.3      0.67
1.4      0.6
1.5      0.54
2         0.4

My undergraduate maths is too rusty to work out the relationship but it's plainly not linear. Assuming the maths involved is the same for the new 12-band Eq then this will work okay for me as a look-up table, but it would be nice to have an equation.

Varying gain changes things a bit too - moOde's eq becomes slightly broader than Logic as I reduce band gain but I can live with that.

There's some interesting stuff at http://www.sengpielaudio.com/calculator-bandwidth.htm but their equations still don't produce what I'm seeing in REW.

As I said, I don't want to appear ungrateful - it's great to have the facility and this is more about curiosity than anything else.

On the contrary, I am grateful that someone else also took a look at it :-)

To prevent clutter of the release hread;  shall we take the discussion to an other exsiting thread http://moodeaudio.org/forum/showthread.p...316&page=3 ?
I have also added there one of my measurements. Also I have some issue with gain when I combine multiple filters I see an issue with the gain, see the result there.

[/quote]

Used tools:
  • RightMark Audio Analyzer 6.4
  • Equalizer APO 1.2.1 as reference for the frequency response of a parametric EQ.

My test procedure:
  • Generate with RightMark Audio Analyzer a test WAV with calibration signal and a sine wave sweep for 16bit 44.kHz.
  • Play the test signal with a test source (moOde or APO).
  • Record the signal with RightMark Audio Analyzer.
  • Analyze the recorded signal with RightMark Audio Analyzer.
The signal stays in digital domain with use of only SPDIF.
Reply
#27
(10-29-2020, 02:00 PM)bitlab Wrote: I have increased the range of freq from 20-14000 to 10-18000 and from bw to 0.06-16 of the EqFa12p filter. 
Validation is shown in the attached image.

@bluefuzz is the Q of 8 enough ?

Yes I think a max Q of 8 is OK. Although REW's auto EQ settings often default to a Q of 10. Most of the headphone settings I've looked at from Oratory, Crinacle etc. (via AutoEQ) rarely get above 6 or 7.
Reply
#28
@Coustard I know that bandwidth calculator and few weeks ago. And I even tried that math to see if that comes close:
I wrote a script where you can provide the fc and Q and it will calculate the rest.

Code:
fc=50.00Hz Q=1.00 bw=1.00 fl=30.9 fh=80.9 fd=50 bw_eqfa=0.50 N=1.388
fc=1000.00Hz Q=16.00 bw=0.06 fl=969.2 fh=1031.7 fd=62 bw_eqfa=0.03 N=0.090
fc=1000.00Hz Q=8.00 bw=0.12 fl=939.5 fh=1064.5 fd=125 bw_eqfa=0.06 N=0.180
fc=1000.00Hz Q=4.00 bw=0.25 fl=882.8 fh=1132.8 fd=250 bw_eqfa=0.12 N=0.360
fc=1000.00Hz Q=2.00 bw=0.50 fl=780.8 fh=1280.8 fd=500 bw_eqfa=0.25 N=0.714
fc=1000.00Hz Q=1.00 bw=1.00 fl=618.0 fh=1618.0 fd=1000 bw_eqfa=0.50 N=1.388
fc=1000.00Hz Q=0.50 bw=2.00 fl=414.2 fh=2414.2 fd=2000 bw_eqfa=1.00 N=2.543
fc=1000.00Hz Q=0.25 bw=4.00 fl=236.1 fh=4236.1 fd=4000 bw_eqfa=2.00 N=4.165
fc=1000.00Hz Q=0.12 bw=8.00 fl=123.1 fh=8123.1 fd=8000 bw_eqfa=4.00 N=6.044


Attached Files Thumbnail(s)
   
Reply
#29
(11-01-2020, 10:52 AM)bitlab Wrote: I validate the calculations for Q to BW by comparing against the parameteric EQ of APO.
The tests was an 1kHz with a 6 boost for with 3 different Qs; Q=1, Q=2, Q=4.

The first image show the results. I would say close enough ;-)

Next a more complex correction is performed with 10 bands, the results are shown in image 2.
The center frequency and bandwidth looks ok to me, only a little difference in gain.

That's really cool. So moOde7 Q values will be accurate?

My day is complete. Thank you.
Reply
#30
@Coustard I can garantee nothing, we can only do our best to make it as accurate as possible  Big Grin
I tried the BW as in octaves (dived by 2), but that was clearly not a match.
Also if you take look at the AutoEQ HD800s example, you see a difference between APO and EqFap.

We made the transfer function from Q to bw not part of the filter library but of moOde it self.
In this way we can easy and fast update the transfer function if we find a better solution.

For completeness hereby both transfers plotted (BW A = yours, and current BW =0.5/Q):
   

If you have any doubts about the correctnees just let me know.
Reply


Forum Jump: