DSPRelated.com
Forums

Techniques behind arbitrary response or "drawable" equalizers?

Started by Unknown June 14, 2016
robert bristow-johnson  <rbj@audioimagination.com> wrote:

>well there *are* convolutional reverbs out there in the world. even >though they are trying to implement a specific detailed impulse >response, you can think of them as trying to implement a specific >detailed frequency response. with a very long FIR you can get a lotta >detail in the frequency response.
When I was designing reverbs I used both FIR and IIR filters. The IIR provides the "tail" of the reverb, whereas the FIR's were used both for the early impulse response and also, FIR all-pass sections (which gives less coloration for the same echo density). This was long enough ago that a pure-FIR reverb would not have been economical for real-time. Steve
What about the LMS method which was suggested elsewhere as a real-time alternative to Parks-Mccellan? Here one claims that PM is too computationally intensive for real-time.

http://dsp.stackexchange.com/a/31887/16003

Is there more than PM and LMS in this filter genre?
robert bristow-johnson wrote:
> On Saturday, July 2, 2016 at 3:16:08 PM UTC-4, Les Cargill wrote: >> >> A deeply ignernt question might be: > > no, it's not and earlier in the thread others were alluding to it. > >> >> Why is this framed in terms of FIR? Wouldn't it be "easier" to >> compose multiple IIR? >> >> There are lots of VST plugins which do this not by allowing an >> arbitrary EQ "shape" but rather by allowing a small number of >> "points" to be placed and "splining" those into a "shape". Each >> point may have a Q setting as desired > > is the graphic EQ implemented as cascaded parametric EQs. Jot and > Oliver have recently published or presented regarding this and > earlier Abel and Berners had. and i had this idea too, but never > published it. (it's a good reason to choose the Cookbook definition > of Q or BW over the EE definition for peaking EQ filters.) >
I'd describe it as "cascaded parametric EQ implemented with a graphic UI."
>> >> At least for audio, these tend to fit the use cases of EQ better - >> you want a cut @ 4k, a shelf boost @ 100Hz, that sort of thing. An >> EQ I now use just has knobs like it was a piece of equipment. >> >> Perhaps I am answering the question I want to be asked rather than >> the question actually asked, but that's because the question I want >> asked makes more sense to me. > > yeah, but it seems that the OP wanted to do something with the FFT. > and then that points, sorta, to "fast-convolution" and then designing > the filter is like designing any other FIR filter. >
Yeah.
>> As a general biased observation, I don't see things that do what >> the OP wants much in the wild. > > well there *are* convolutional reverbs out there in the world. even > though they are trying to implement a specific detailed impulse > response, you can think of them as trying to implement a specific > detailed frequency response. with a very long FIR you can get a > lotta detail in the frequency response. >
Absolutely.
>> And indeed, a FIR of a composed-IIR filter would be easy enough to >> make, but my general observation is that convolution is uglier than >> direct IIR filtering for realtime processing. > > totally agree. why bother implementing an IIR as an FIR? unless you > are implementing it as a Truncated IIR (TIIR) which is really an FIR > implemented with internal recursion. (a moving-sum or moving-average > is the simplest example.) > > r b-j >
-- Les Cargill
Have you checked the GraphicEQ implementation found in EqualizerAPO (open
source project at sourceforge -
https://sourceforge.net/projects/equalizerapo )?
---------------------------------------
Posted through http://www.DSPRelated.com
On Sunday, July 3, 2016 at 12:41:07 PM UTC+3, jtp_1960 wrote:
> Have you checked the GraphicEQ implementation found in EqualizerAPO (open > source project at sourceforge - > https://sourceforge.net/projects/equalizerapo )? > --------------------------------------- > Posted through http://www.DSPRelated.com
So any idea what the technique there really is? A filterbank?
On Sunday, July 3, 2016 at 12:41:07 PM UTC+3, jtp_1960 wrote:
> Have you checked the GraphicEQ implementation found in EqualizerAPO (open > source project at sourceforge - > https://sourceforge.net/projects/equalizerapo )? > --------------------------------------- > Posted through http://www.DSPRelated.com
So any idea what the technique there really is? A filterbank? A filterbank might actually be one of the easier methods since there are good filter libraries available that have typical FIR filters with the typical parameters.
>On Sunday, July 3, 2016 at 12:41:07 PM UTC+3, jtp_1960 wrote: >> Have you checked the GraphicEQ implementation found in EqualizerAPO
(open
>> source project at sourceforge - >> https://sourceforge.net/projects/equalizerapo )? >> --------------------------------------- >> Posted through http://www.DSPRelated.com > >So any idea what the technique there really is? A filterbank? > >A filterbank might actually be one of the easier methods since there are >good filter libraries available that have typical FIR filters with the >typical parameters.
Actually, I have not looked the source code since . He describes the EQ this way: "GraphicEQ", which can act as a regular, fixed-band graphic equalizer (via the GUI) but also supports variable bands so that any desired frequency response can be specified. Internally, it is implemented via convolution with a generated IR. --------------------------------------- Posted through http://www.DSPRelated.com
On Sunday, July 3, 2016 at 1:50:05 PM UTC+3, jtp_1960 wrote:
> >On Sunday, July 3, 2016 at 12:41:07 PM UTC+3, jtp_1960 wrote: > >> Have you checked the GraphicEQ implementation found in EqualizerAPO > (open > >> source project at sourceforge - > >> https://sourceforge.net/projects/equalizerapo )? > >> --------------------------------------- > >> Posted through http://www.DSPRelated.com > > > >So any idea what the technique there really is? A filterbank? > > > >A filterbank might actually be one of the easier methods since there are > >good filter libraries available that have typical FIR filters with the > >typical parameters. > > Actually, I have not looked the source code since . He describes the EQ > this way: > > "GraphicEQ", which can act as a regular, fixed-band graphic equalizer (via > the GUI) but also supports variable bands so that any desired frequency > response can be specified. Internally, it is implemented via convolution > with a generated IR. > > --------------------------------------- > Posted through http://www.DSPRelated.com
So it's a convolution reverb applied to equalization? I was actually thinking this as a viable implementation as well. But am not sure how convolution differs from windowing or frequency sampling methods.
On Sat, 2 Jul 2016 14:19:40 -0500, Les Cargill
<lcargill99@comcast.com> wrote:

>Eric Jacobsen wrote: >> On Sat, 2 Jul 2016 02:07:47 -0700 (PDT), Matti Viljamaa >> <viljamaadsp@gmail.com> wrote: >> >>> What about the windowing design method? >>> >>> The one where the FIR coefficients are designed by taking iFFT of a "desired magnitude response". >> >> Usually the windowing method is illustrated by taking an ideal desired >> time-domain impulse response, like a sinx/x, and applying a windowing >> function to make it practical for digital application. >> >>> Wouldn't this be fairly simple for this application, since then one could pretty much iFFT what the user has drawn into the GUI and there's your filter? >> >> As has been mentioned a few times, this doesn't work well unless >> significant constraints are put on the frequency domain construction >> of the sampled frequency response. Sharp transitions in the frequency >> domain will lead to undesired effects, i.e., you can't draw an >> "arbitrary" filter response and expect it to be realized without a lot >> of caveats. >> >> >> >> > >A deeply ignernt question might be: > >Why is this framed in terms of FIR? Wouldn't it be "easier" to >compose multiple IIR? > >There are lots of VST plugins which do this not by allowing an >arbitrary EQ "shape" but rather by allowing a small number of >"points" to be placed and "splining" those into a "shape". Each >point may have a Q setting as desired > >At least for audio, these tend to fit the use cases of EQ better - you >want a cut @ 4k, a shelf boost @ 100Hz, that sort of thing. An EQ I >now use just has knobs like it was a piece of equipment. > >Perhaps I am answering the question I want to be asked rather >than the question actually asked, but that's because the >question I want asked makes more sense to me. > >As a general biased observation, I don't see things that do >what the OP wants much in the wild. And indeed, a FIR of a >composed-IIR filter would be easy enough to make, but my >general observation is that convolution is uglier than direct IIR >filtering for realtime processing. > >-- >Les Cargill
Since nobody has heard from the OP what he really wants, it's hard to say. However, my own real-world application is one example of a "drawable" FIR equalizer that can not easily be done with conventional parametric EQs. The application is for auditory research, where there is often a need for a sound chamber to deliver acoustic noise (especially band-limited noise) that has a flat passband. That means that the system must apply an inverse correction for the response of the sound system. The raw system response is easily measured, such as by driving it with a simple flat noise source and measuring the response with a flat-responding mic. (Flat condenser mics are easy to come by, if expensive. Flat sound systems are not, with the possible exception of electrostatics... which have their own set of problems.) So given the arbitrary sound system response, you can easily derive the proper driving source response to get the desired acoustic response, That's essentially the kind of "drawable" EQ we have been discussing, only here applied to a flat white source instead of to (say) music program material. Instead of manually drawing an arbitrary target response using a bunch of sliders, etc, you get the target reponse from your prior system response measurement. The beauty, of course, is that the operator doesn't have to fiddle with controls to flatten the response by eye... it's pretty much a turn-key system. (But see below.) I suppose this approach could be used in sound reinforcement to produce flat room response, but since a real room is not as simple as a sound exposure chamber for a box of rodents, you'd have to decide "flat at which seats?" issues. I vaguely recall seeing an "active" sytem describe many years ago in the AES Journal, where they had multiple subsystems to handle sections of a large hall, but I don't recall if they described the EQ approach... could have been something much simpler than we are talking about here. Whether for sound exposure or room EQ, there is one caveat that many people don't consider. This has nothing to do with whether you use manual EQ or an automated FIR approach. It is that you can't blithely correct for deep dips without drastic overall power reduction. Consider a simple system with a single power amp, and a speaker with a 12 dB dip at frequency F. To correct for that, the EQ needs to provide a 12 dB peak at F. That means the amp has to provide 4x the voltage (16x power) at that frequency, which means you need to leave that much headroom at other "flat" frequencies. Other than response flattening, I can't think of a good real-world example that cries out for FIR-type solutions. The OP has hinted that he has dynamic response concerns, as though he is changing the drawn reponse rapidly in real time. That seems to imply he is not manually drawing the target response, but getting it from some other real-time process. Background MLSA on the room during a live performance? Seems a much tougher nut to crack than the EQ issue! Best regards, Bob Masta DAQARTA v9.20 Data AcQuisition And Real-Time Analysis www.daqarta.com Scope, Spectrum, Spectrogram, Sound Level Meter Frequency Counter, Pitch Track, Pitch-to-MIDI FREE 8-channel Signal Generator, DaqMusiq generator Science with your sound card!
I'm trying to perform FIR filtering based on data obtained from FFT analysis. And I desire to have the filtering adjust between FFT analysis frames. Perform a sort of dynamic equalization based on the FFT analysis.