Macro for Matching Audio Clip EQs

Ok I have been slaving over the Graphic EQ for a while trying to match the equalization between audio clips recorded in different settings.

I’ve been largely unsuccsessful… getting close, but still noticing a significant difference in various clips within my project.

UNTIL…

I had the idea to export the desired EQ spectrum to a .txt, and then do the same thing with the target clip’s spectrum.
I then pasted them into a spreadsheet, and subtracted the dB values of the desired-target… and viola! Exact dB values for each frequency to use in my matching!

However… I have over a dozen clips to fix, so this becomes a painstaking process of moving the sliders around to match a chart like below:
EQ adjustment chart.jpg
So what I’m wondering, is if some software genius on this forum (which I am not) may be able to suggest a way to automate this process, and then export an EQ “spectrum matching profile” preset for the Filter EQ. If you export a filter EQ’s preset, it looks something like this:

FilterCurve:f0=“81.533255” f1=“94.606077” f10=“468.80159” f11=“521.29625” f12=“562.69543” f13=“2002.5155” f14=“2984.6615” f15=“8962.8215” f16=“9116.3298” f17=“11911.892” f18=“16034.235” f2=“105.18025” f3=“180.23727” f4=“215.04856” f5=“245.50226” f6=“298.91247” f7=“397.26477” f8=“397.26477” f9=“451.48432” FilterLength=“8191” InterpolateLin=“0” InterpolationMethod=“B-spline” v0=“-25.100285” v1=“0.17191982” v10=“-5.7449856” v11=“-5.8452721” v12=“-0.22922611” v13=“-0.028653145” v14=“-5.9455585” v15=“-5.9455585” v16=“0.071633339” v17=“0.071633339” v18=“-11.862465” v2=“2.8796558” v3=“4.0830941” v4=“3.1805158” v5=“0.071633339” v6=“-8.8538666” v7=“-9.0544415” v8=“-3.2378225” v9=“-3.137536”

Whereas the Graphic EQ’s profile seems like a much longer text file overall.

So the basic process would be:

  1. Plot & export desired EQ spectrum
  2. Plot & export target spectrum for adjustment
  3. Subtract and generate a “delta spectrum” between the two.
  4. Process delta spectrum data down to a manageable number of data points for use in Filter Curve EQ
  5. Generate a user preset for the Filter EQ.

From there you could manually apply the EQ preset to the target clip in question.

I’ve done this manually, it works beautifully for the project I am on! I am just looking at a mountain to climb if I do all these clips manually.

I’m curious to see what comments you all may have. Let me know if you want any of the text files I’m working with.

Thank you! :smiley:

SpectrumToEqCurve ? … https://forum.audacityteam.org/t/combining-analyze-and-equalize/28133/4
Now the bad news: I don’t think it works in Audacity 3.x.x, only 2.x.x

I think that the plug-in does still work, but it outputs Equalization settings in the old Audacity 2.x format.
For Audacity 3.x you would then need to use the “EQ XML to TXT Converter” (https://manual.audacityteam.org/man/eq_xml_to_txt_converter.html) to convert the settings to the newer “Filter Curve EQ” format.

I read through this thread and I’m not sure I completely understand the goal of the plugin… it looks like it grabs the spectrum profile from a given frequency plot, and then converts it directly into an EQ curve. Is that the case?

My goal is to capture the difference between a given target spectrum, and the spectrum from a desired sound clip, generate the delta, and convert that to an EQ preset.

This looks like the goal of this plugin is to directly convert the given spectrum from a “bad” clip directly into a carbon-copy EQ curve, and then if you desire, invert the curve and flatten out the spectrum of the given clip.
It appears that then you would do the same thing with the spectrum of a desirable clip, not invert it, and apply that one’s EQ curve to the flattened curve in the previous process.

This would take longer than what I’m doing to complete the work I’m trying to achieve… if I’m understanding this right.

If I chart the “adjustment curve” that is to be used to get “Target Spectrum” adjusted to “Desired Spectrum”… the chart on the left is the values of the delta curve, and the chart on the right shows the difference that the chart on the left is plotting:
EQcharts.jpg
Since yesterday I’ve added a VLOOKUP to my spreadsheet, and had it search the closest values to those bands listed in the graphic EQ effect. I then manually adjust the EQ per the table as shown:
kadjustments.jpg

HOWEVER: If I feed this plugin the delta curve, I should be able to generate an EQ curve that will adjust my audio clip from that, correct? That would take a step out of my process… and it would be the longest step of manually adjusting the EQ sliders.

It looks like there’s a version that has more than 128 points?

I think you are understanding it right.
To copy the eq from one track and apply it to another, using that plug-in, is a two step process:

  1. Use the inverted spectrum of the target track to “neutralize” the spectrum of that track.
  2. Apply the spectrum of the donor track to the target track.

Unfortunately the process is rather long winded now that Audacity has a different Equalization effect.

Audacity’s Filter Curve EQ effect currently has a hard coded limit of 200 points max. There is an issue logged requesting that limit to be substantially raised: https://github.com/audacity/audacity/issues/1596

Ok I’ve optimized as much as I can with simple spreadsheet and cut&paste operations.

The desired curve is at the bottom, the target curve on top:
curves before.png
Once I’ve exported the spectrum of both the desired and target clip curves, done the delta calculation, and the vlookup, the spreadsheet output looks like this:
pasteins.JPG
I take and paste these into the text file for the Filter Curve EQ preset (having generated one at random points and then modifying it):
TXT file preset.JPG
I only need to export the frequency values once, as they will be the same every time (matching the graphic EQ bands, just because they are a good reference). I will need to paste in the “V=”" values every time I want to change a clip… but the match is very good.

Then I import the txt file to the filter curve eq, and apply it to the clip, and afterward the comparison looks like this:
curves after.png
As you can see (ignoring everything below 60hz, as this is a vocal track), the match is pretty good. This is, to me, less work than feeding the desired curve to the plugin mentioned above, and then neutralizing a track, then reapplying the eq curve.

Anyways, if anyone wants the spreadsheet to do their own work with it… you should be able to copy it from here:
https://docs.google.com/spreadsheets/d/1sMzsv5hqkDtvl-gjd_9SnbK0zds-fh4DmFUUjIY0tnE/edit?usp=sharing