I have several hundred data points that represents an EQ correction curve, where each point contains frequency, magnitude, and phase (-1..+1). The frequencies are distributed exponentially, not linearly. Magnitude is expressed as a multiplier. A log-plot of this data is very smooth in appearance.

What is the best way to apply this correction curve to digital audio samples in real time (as a software plugin or implemented on DSP hardware)?

  • 1
    $\begingroup$ So is your goal to draw a frequency response curve (let's leave it to magnitude for the moment) as gain (either multiplier or dB) vs. frequency, and from that you want to get a digital filter that matches (to some degree of accuracy) that frequency response? Is that what you want to do? How much software muscle do you want to put into this? (I don't think you want the Parks-McClellan or Least-squares design, but perhaps a good Kaiser-windowed inverse FFT is doable.) Also, what's the spacing in log-frequency? Every octave? Or 1/3 octave? Or 1/12 octave? $\endgroup$ Jul 11 '18 at 3:47
  • $\begingroup$ I would prepare a set of filters to implement the EQ curve and then use a 'normal' processing method to apply EQ to the samples. Search Github or sourceforge to find some examples for processing part ... maybe Matlab or Octave for filter design. $\endgroup$
    – Juha P
    Jul 11 '18 at 7:20
  • $\begingroup$ Wouldn't an IFFT require magnitude and phase in a linear spacing of frequencies? The log spacing for frequency of my data is just about 1/35th of an octave. I'm only trying to find a mathematical way to use this data as an EQ curve. $\endgroup$ Jul 11 '18 at 14:07
  • $\begingroup$ Also, I'm not looking for a static solution for just one data set, so manual filter design is not what I'm looking for. I need to be able to take any sort of frequency-magnitude-phase plot in log-spacing and apply it as an EQ curve. $\endgroup$ Jul 11 '18 at 14:08
  • 1
    $\begingroup$ So, maybe IR path then ... IIRC, this PEQ project has a feature (a.fsdn.com/con/app/proj/equalizerapo/screenshots/…) you could follow sourceforge.net/p/equalizerapo/code/HEAD/tree/trunk $\endgroup$
    – Juha P
    Jul 11 '18 at 14:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.