[Jamin] Jamin EQ Preecho, Linear Phase EQ considered harmful.

From: Gregory Maxwell ^lt;gmaxwell_at_gmail.com>
Date: 12/24/05 22:59 EST
Message-ID: <e692861c0512241959q2510d48bj6c22aa93f010c094@mail.gmail.com>
While using jamin to perform some EQ of some audio containing some
very percussive vocals, I noticed what sounded like preecho...  So I
decided to perform some tests, and sure enough, the IR shows some
preecho...  I grabbed the Jamin source and I see that the EQ is linear
phase, so there is no shock that there is pre-echo.

I see there is an option to use an IIR for the crossover for the
multiband compressor.. but no such option for the EQ.

What was the design motivation behind using a linear phase filter for
EQ in a mastering app?

For the multiband compressor crossover it makes perfect sense, the
transition should have low Q, the results are later summed so
preringing usually vanishes, and perfect reconstruction is highly
desirable (which would be impossible with a minimum phase crossover
due to phase shiftage).

For EQ, the subtracted audio will never be added back, so there will
always be pre-echo with linear phase EQs and there is no risk of
problems created by phase mismatch. The ear is far more sensitive to
pre-ringing than postringing so linear phase is not really a good
compromise for an EQ which is expected to be placed last in the signal
chain..

Also, the 'HDEQ' interface implies the ability to create filters which
are steeper than can be created with the current filter length. 
Allowing a longer linear filter would increase the risk of pre-echo
and increase the delay.

Would it be possible to provide an toggle option to use minimum phase
filtering for the EQ? The multiband compressor should stay linear, but
EQ should default to mode which will not risk creating pre-echo.

An alternative would be to perform time-domain massaging of the
filter's IR to produce asymmetric mixed filters which avoid pre-echo.
Such code is available under the GPL in the pre-echo truncation
functions in Denis Sbragion's DRC software
(http://drc-fir.sourceforge.net/).  The pre-echo truncation function
filters the IR with a time and frequency dependant function and then
corrects the departure from the desired magnitude response with a
minimum phase filter.   If such a feature were provided it would be
useful to provide sliders which control filter length and the amount
of preringing suppression (from linear phase at one extreme to minimum
phase at the other)... and augment the HDEQ display to show the
delivered frequency and phase response (and perhaps a time domain
view).


Here is an example test with alternating +6/-6 db bands in the 30band EQ screen:
Jamin test step function result:
http://www.mindspillage.net/braindump/jamin.test.step.ps
Jamin test high resolution octave/cycle plot:
http://www.mindspillage.net/braindump/jamin.test.ps
(thanks to Denis Sbragion for his great octave scripts for IR analysis)


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37&alloc_id865&opick
_______________________________________________
Jamin-devel mailing list
Jamin-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jamin-devel
Received on Sat Dec 24 23:07:27 2005

This archive was generated by hypermail 2.1.8 : 12/24/05 23:07 EST