Fixing channel imbalance with EQ accurately?
Jul 1, 2023 at 1:14 PM Thread Starter Post #1 of 7

maaz

New Head-Fier
Joined
May 19, 2023
Posts
20
Likes
15
Location
Lithuania
I did a lot of testing of my IEM with frequency test tones and a balance slider and got bunch of data. I have like 40 frequencies with a db number of how much exactly I should boost or reduce them for the sound to be even.

I have an equalizer with separate L and R channels with peak, shelf, pass and band filters. How can I make the most accurate EQ curve using this data? Is there some kind of tool where I could input frequencies with gains and get an automatic graph that smoothly connects the dots and calculates Q values for me to use in a parametric EQ?
 
Last edited:
Jul 1, 2023 at 8:14 PM Post #2 of 7
Just install APO equalizer and Peace front end. In peace there's a hearing test that will run through the frequencies on each side, then it makes a custom correction profile. Best way to compensate for your setup and also personal hearing at the same time.
 
Jul 2, 2023 at 4:26 AM Post #3 of 7
Just install APO equalizer and Peace front end. In peace there's a hearing test that will run through the frequencies on each side, then it makes a custom correction profile. Best way to compensate for your setup and also personal hearing at the same time.
Thanks for the suggestion. It says it does only "important" frequencies 1k to 5k which is not nearly good enough, the gain values are rounded to .5 and then there is a limit to bands too (why on earth is it all so limited?). Even at like 60hz I can tell a 0.3db difference when attentively listening.

I made a parametric preset by adjusting Q values manually (it gets very messy at >10k, changing one value changes the others) and it works wonderfully, totally transformed my IEMs. But still I think there's some room for improvement.
 
Last edited:
Jul 2, 2023 at 1:08 PM Post #4 of 7
I had to document all this for another project, so I thought it might be useful here.

An outline tutorial example of what is involved with using the major EQ type - a parametric EQ system, with my particular headphone system:

I have a system with a Samsung Galaxy S-4 tablet acting as the music source, mostly ripped and downloaded CD music files (16/44), android operating system. This source drives a Denafrips Terminator II DAC via USB, with a Sparkos Audio Aries headphone amp and Monoprice AMT (Air Motion Transformer) headphones.

I found that the superb AMT headphones required considerable midrange EQ, so I researched different Android USB apps and selected UAPP (USB Audio Player Pro), which is specialized for Android and has a USB processing module somewhat better sounding than the Galaxy Android processor, optimizing the USB digital data processing for the interfaces between Galaxy Tablet source and the driven DAC,.and also furnishes a very sophisticated parametric EQ app called Toneboosters, embedded in UAPP and. requiring a small fee for enabling it. The Toneboosters parametric EQ contains 6 different filters of several selectable types, like digital bell and analog bell (peaking filters), and low shelf (for low frequency boost or cut) and high shelf (for high frequency boost or cut). Parameters of each filter (which have to be set) include frequency in Hz, amplitude in dB, and Q (damping factor).

This parametric EQ system can be enabled by selection and payment of a few bucks in the UAPP screen. Then a music selection is cued up and Toneboosters selected. It then requires setting the parameters for the 6 parametric EQ filters. My AMT headphones require, to compensate for this slump in midrange response, one filter with a considerable boost or 4-5 dB in the midrange around 2.5 kHz, and with a moderate Q damping factor of 0.83. The Q value controls the time and frequency response implemented for the filter selected. A peaking or bell filter is used to establish a peak or dip in response.

Greatly facilitating the EQ parameter setting process is the frequency response graphic display, which shows and identifies each of the 6 filters plus giving the parameter values, and most crucially, displays the summed overall frequency curve from 20 - 20kHz resulting from all the filter parameter settings. If all 6 filters aren't needed, the amplitude parameters of the unneeded filters should to be set to 0, so that they are essentially out of the sonic picture.

Low Q values create a broad frequency response filter with values of 0.7-0.8 being about optimal damping, that is, transient response with minimal ringing. Higher Q values steepen the filter response so it can suppress narrow peaks or dips caused in the headphones, with the result of some ringing in the filter response.

According to information on the blog for these AMT headphones, the peak filter for the AMT was needed to be +5 dB at 2.5 kHz with a Q of 0.83. This Q establishes a broad or gradual frequency range coverage of the filter, at least 2 octaves, peaking at 2.5 kHz and sloping off to minimal value at 7 kHz or so.

I should mention that the other main type of EQ is the multiple bell peaking filter "slider" type where there is a spaced array of individual narrow band peaking filters with fixed preselected Q and frequency parameters, and settable amplitude of course. There generally is no global overall filter response display, making it difficult to visualize the cumulative frequency response of the EQ. And shelf type filters are hard to achieve with the "slider" type of EQ.

The next step is to set the last Toneboosters EQ parameter, which is the overall gain of the entire filter. In my case I selected -3.4 dB, required to minimize peak clipping. Peak clipping response is also displayed on one of the precursor Toneboosters displays.

The last step is to listen to the music selection and decide if the tonal balance and overall reproduction are better and are satisfyingly remedying the sonic problems to your ear.

If not, then you either adjust the parameters of the enabled existing filters, or create new filters by enabling some of the formerly disabled ones.

In a tweaking process, you then work out the optimal filter EQ arrangement.
 
Last edited:
Jul 2, 2023 at 1:40 PM Post #5 of 7
I had to document all this for another project, so I thought it might be useful here.

...
I'm familiar with the general process, that's roughly what I've been doing with Peace and Neutron. I thought maybe someone is aware of a more efficient method when dealing specifically with channel imbalance and a massive number of eq bands.
 
Jul 3, 2023 at 4:59 AM Post #6 of 7
I did a lot of testing of my IEM with frequency test tones and a balance slider and got bunch of data. I have like 40 frequencies with a db number of how much exactly I should boost or reduce them for the sound to be even.

I have an equalizer with separate L and R channels with peak, shelf, pass and band filters. How can I make the most accurate EQ curve using this data? Is there some kind of tool where I could input frequencies with gains and get an automatic graph that smoothly connects the dots and calculates Q values for me to use in a parametric EQ?
My noob approach from almost 10 years ago is probably not the cleanest way, but hey, it should work:
Use REW(Room EQ Wizard) to create the EQ for each channel. First, and this is the dirty part, you need to make a .txt with your gain values but with the negative of the amplitude you want to get applied.

So if your initial work gave you one channel with frequency and gain respectively:
20 +2
30 +3
40 +4
50 +5
80 +2
150 -4

etc. Then you need to make a .txt that will show:

20 -2
30 -3
40 -4
50 -5
80 -2
150 +4

With a space between each frequency and amplitude value(long ago I needed to a "," as separator but not anymore, IDK if it's a change in REW or if it's some setting option within the program, so I hope what I tell you will just work as is). For the negative of all gain values, I'm sure there is a simple trick in Excel like multiplying everything by minus one and get the result.

Now you open REW and in recent versions you just drag and drop the .txt into REW(or you can go to "File"=>"Import"=>Import frequency response". It will make a corresponding graph. In my example, we get this little marvel
kjhjkjhkjhkjhk.jpg


You click on EQ
Screenshot 2023-07-03 093044.jpg


The pop up window has a lot to play with, and you might decide to do so. On the right you want to expand and tweak Equalizer, Target settings and filter task(the first 3, Modal Analysis and Resonances aren't meaningful here)
-In Equalizer, if you don't know, I would suggest to start by picking the last option "Generic", and if your EQ happens to want another form of data then just try another option at the end when the EQ is already generated, until the data looks like what you need.
-in target setting
Screenshot 2023-07-03 094240.jpg

I would suggest going with those settings, they determine the target curve to aim for, as you want the opposite of the data you entered, so the target should be dead flat.
Target level is the one you'll need to set yourself, you can press "calculate target from response" just below it, and it will automatically set a value. But then it might disregard anything below the line, and you may or may not like that. If you wish for the entire graph to be factored in(you probably want that in your case), then just move the target level until it's below your graph everywhere(not too far away, though!).

-Filter tasks. Here you tell the program the frequency range of the EQ generated, how much gain you allow for each boost and in total, and with "flatness target", how precise the EQ should be. 1dB is the best this can do!!!!, that looks bad but remember that you're generating a curve and what matters is for the overall curve to follow well for good psychoacoustic result, not that one point is always good down to 000.1dB precision. In practice, it's pretty good, IMO.
Anyway, you need to handle all those settings depending on the amplitudes you reach in your .txt and how crazy you're willing to go with EQ(number of filters and max Q). If you see something going wrong along the way, you can always come back to this step and change those values until things makes more sense.

Now you're done, you press:
Screenshot 2023-07-03 095808.jpg

If you went with the entire line below your graph, you'll get a warning, just proceed. And you can see the graph of the filters or the applied EQ(just click whatever you wish to see on the graph, but it's just for you to confirm that the predicted curve is rather flat).
Screenshot 2023-07-03 102108.jpg


If it doesn't open automatically, click here:
Screenshot 2023-07-03 101555.jpg

And there is the EQ we wanted, with Q values for a correction rather close to your initial data curve.
Screenshot 2023-07-03 102239.jpg

This by be the end for you.
Or in the "Filter Tasks" panel, you have a bunch of options you can try and ways to export the data that may or may not work directly with your EQ if it has such an option as importing profiles.

Now you do all that again for the other channel, and you should be good if I didn't mess up somewhere. :sweat_smile:
 

Users who are viewing this thread

Back
Top