Does that mean EqualizerAPO can specify the number of Coefficients in an IIR?? 😱Nothing prevents using them with EqualizerAPO ... also, you can even use those Orban's higher order filters as well ... -> abandon everything else from that script shown above and use
Filter: ON IIR Order 4 Coefficients `b0` `b1` `b2` `b3` `b4` `a0` `a1` `a2` `a3` `a4` where a's and b's are the z-plane coefficients from orbans calculations.
If so, we can use that for Simple Arbitrary IIRs
Sigh, SPDIF in at 24/96 on an external soundcard is not easy to find cheap. Finding a corner I can hide the PC in after the audio remodelling that is ongoing seems the best option!
IIRC, biquad coefficients for 44.1kHz RIAA EQ filter my EqualizerAPO script spits out has magnitude error of around +-0.3dB
I doubt anyone can hear a difference, that's not the point. I saw you asking around the DSP forums for better solutions with a single biquad, there are none.
Attached comparison between Orban's and my MZT based RIAA filter against analog model (notice that error in my filter is quite small at below 10kHz area).
Thanks jiiteepee.
For comparison, here are results from Scott’s single biquad and dual biquad at 48KHz
Please notice these are measurements at the output of 2x4 MiniDSP. Droop at LF and spikes are not due to the DSP coefficients.
See this post for details
http://www.diyaudio.com/forums/analogue-source/298896-digitizing-vinyl-31.html#post4924752
George
Attachments
...
I saw you asking around the DSP forums for better solutions with a single biquad, there are none.
Reason for my queries after any fitting methods has been the different implementation strategy I'm using for my phono equalization software (as like in PhonoEQ). My point has been to find method which can be used in realtime calculation of any order coefficients (remember that I need to calculate coefficients for ~40 different filter types to be working at any samplerate --> if only those basic samplerates are counted then its needed to have hundreds of coefficient sets to fill the requirement).
Method you used in your fitting implementation is unusable for realtime processing and the method Orban used is out of our head.
I have tried many and actually found good enough for my purposes (though not implemented yet in any of available software).
As an addendum to my previous post: ... not forgetting the custom filters where you can set/tune value for up to 4 time constants freely w/o samplerate limits --> quite a many possibilities then.
44.1kHz biquad RIAA EQ prepared using programmically fitted s-plane coefficients with MZT method (MZT transformation method seen in my recent EqualizerAPO script) already gives good enough results (though alternatively I'm able to produce same filter programmically the way that the error below 17kHz area is less than +-0.1dB ... who prefer which) --> see attachment.
IMO, it's all the same who has the most accurate filter for 44.1kHz or 48kHz because of the less than 0.1dB difference between them is not even hearable.
44.1kHz biquad RIAA EQ prepared using programmically fitted s-plane coefficients with MZT method (MZT transformation method seen in my recent EqualizerAPO script) already gives good enough results (though alternatively I'm able to produce same filter programmically the way that the error below 17kHz area is less than +-0.1dB ... who prefer which) --> see attachment.
IMO, it's all the same who has the most accurate filter for 44.1kHz or 48kHz because of the less than 0.1dB difference between them is not even hearable.
Attachments
Last edited:
OTOH I have 24/96 biquads to burn so I might as well use them! I think your use case and mine are almost at different ends of the digital scale 🙂
I have tried many and actually found good enough for my purposes (though not implemented yet in any of available software).
Sorry if I mis-understood. Mathematically the optimization problem is ill-conditioned so ordinary optimizers like the one in Excel don't work. I tried to explain that to someone else here doing speaker equalization with bi-quads, the answers are just wrong most of the time returning poles outside the unit circle (unstable filter). I was just trying to be technically correct, there are certainly ways to get close enough.
OTOH I have 24/96 biquads to burn so I might as well use them! I think your use case and mine are almost at different ends of the digital scale 🙂
24/96 is a good choice for archive purpose (target is lossless as like WAV, FLAC, etc.) and direct listening (I prefer 192kHz for direct listening) but, also remember that when you need to go to say CD or mp3 formats then there's extra processing to do (SRC, dithering) which may drop the quality.
Fortunately mp3 supports 48kHz so 96kHz is OK but if your target is Redbook CD format (44.1kHz/16-bit) then some people suggests using 88.2kHz instead of 96kHz.
I have to trust the miniDSP re-sampler on that. It's a case of real benefits (active crossover) outweigh audio paranoia. Archiving will be a different route.
Sorry if I mis-understood. Mathematically the optimization problem is ill-conditioned so ordinary optimizers like the one in Excel don't work. I tried to explain that to someone else here doing speaker equalization with bi-quads, the answers are just wrong most of the time returning poles outside the unit circle (unstable filter). I was just trying to be technically correct, there are certainly ways to get close enough.
My optimization (fitting) method is based on "binary search" so, it takes only few attempts to find the best solution before filter coefficients are taken into use --> works well for building the filters in realtime the way I need it to work.
My optimization (fitting) method is based on "binary search" so, it takes only few attempts to find the best solution before filter coefficients are taken into use --> works well for building the filters in realtime the way I need it to work.
Arguing mathematics probably bores everyone here so I won't do it anymore. You have underconstrained the problem by only moving the free zero this gets a close solution but not the best solution (with only one free parameter any optimizer would work). Yes I agree it probably does not matter.
IIRC the Neumann SX-74 cutterhead is only capable of ±2 dB 20-20 kHz.
Funny you say that, I just visited an uber audiophile's site where .01dB analog RIAA was important. Listening to some Harry Partch tonight, just intonation is just wrong enough for me to love it.
Funny you say that, I just visited an uber audiophile's site where .01dB analog RIAA was important. Listening to some Harry Partch tonight, just intonation is just wrong enough for me to love it.
Scott, mentioning Harry Partch makes me smile... If you like Partch you may also like the Ives 3 quarter tone pieces for 2 pianos - awesome music, and here's a link to it being played on vinyl and you can hear the clicks and pops https://www.youtube.com/watch?v=_LgBT3anNUU (keeping it on topic)
Scott, mentioning Harry Partch makes me smile... If you like Partch you may also like the Ives 3 quarter tone pieces for 2 pianos - awesome music, and here's a link to it being played on vinyl and you can hear the clicks and pops https://www.youtube.com/watch?v=_LgBT3anNUU (keeping it on topic)
Thank you I am familiar with Ives through comments by the guitarist John Fahey, I'll check this out.
What is this MZT method? Have you got a reference to a simple explanation?44.1kHz biquad RIAA EQ prepared using programmically fitted s-plane coefficients with MZT method (MZT transformation method seen in my recent EqualizerAPO script) already gives good enough results (though alternatively I'm able to produce same filter programmically the way that the error below 17kHz area is less than +-0.1dB ... who prefer which) --> see attachment.
What is this MZT method? Have you got a reference to a simple explanation?
Short description : https://en.wikipedia.org/wiki/Matched_Z-transform_method
...
You have underconstrained the problem by only moving the free zero this gets a close solution but not the best solution (with only one free parameter any optimizer would work).
...
Actually, much more than that.
The documentation says ..Does that mean EqualizerAPO can specify the number of Coefficients in an IIR?? 😱
If so, we can use that for Simple Arbitrary IIRs
Adds a generic IIR filter with the given order and coefficients. The number of coefficients must be 2*(order+1).
The transfer function of the filter is
IIR.png
As the filter coefficients are normally dependent on the sample rate, the If command or inline expressions should be used to supply the correct coefficients for the current sample rate.
Although it is possible to use the IIR filter type to implement the same BiQuad filters that are supported by the other filter types, this is not advisable because the execution time will be higher.
George & Bill, is EqualizerAPO something yus guys are willing to use?The transfer function of the filter is
IIR.png
As the filter coefficients are normally dependent on the sample rate, the If command or inline expressions should be used to supply the correct coefficients for the current sample rate.
Although it is possible to use the IIR filter type to implement the same BiQuad filters that are supported by the other filter types, this is not advisable because the execution time will be higher.
If so, I'll start work on a small simple IIR that incorporates Scott's RIAA as well as EQ for the M97 (I think) that George measured for Bill.
Any preference for 44.1kHz or 48kHz? I take it the idea is to use a flat preamp which might be Wayne's or Guru Wurcer's.
We still have to decide which Test Record to believe.
Attachments
Last edited:
- Status
- Not open for further replies.
- Home
- Source & Line
- Analogue Source
- Digitizing vinyl