Advanced audio equaliser

:+1:

Well, since there seems to be all benefits and no losses then it’s best to make it Bass & Treble match the other two EQs.

These are fantastic and much-needed additions! A few early thoughts…

  1. In the 15-band EQ, the numbers would be easier to read if there was a space between the frequency and the “Hz” unit. As in, “1750 Hz” is easier to read than “1750Hz”.

  2. In the 15-band EQ, to my eye, the labels flow better if “10000 Hz” and “20000 Hz” are kept in Hz rather than suddenly converting to kHz. On a vertical graphic EQ, I would totally understand the kHz. But when they’re horizontal, the alignment just looks better to me and is easier to visually scan in long-form.

  3. In the parametric EQ, I get the impression that Gain was listed first to create the visual appearance of the modified gain curve. I can see the value, but there’s so much other stuff between Gain spinners that the curve isn’t very apparent. I’m normally used to Frequency being listed first. When eye-scanning the UI to figure out which band I need to modify, I need to locate the proper Frequency before I modify any Gain. That’s easier to find if Frequency is listed first. When I hear a sound I don’t like, I know the frequency of it by ear, then search the UI by frequency, not by Band 1/2/3. But that’s just me, which may not be the common use case.

  4. Could there be presets added for ducking music? This would be different than riding a Gain filter. I’m thinking two presets, maybe “Duck music by -6 dB” and “Duck music by -12 dB”. Rather than lower all frequencies like a gain filter would, the Duck presets would only lower the frequencies of human speech, with the voice fundamentals between 100-250 Hz being lowered moreso than higher octaves due to energy differences. The idea is to create an “EQ hole” in the music track that can now sum with the speech track without clipping or creating a swell in the speech range. The purpose of having two presets is so that -6 dB can enhance basic intelligibility, while -12 dB can produce an all-out duck effect like a radio commercial. Then, users can keyframe the filter by bouncing the keyframe points between the “(default)” preset and a duck preset to duck their music tracks without having to shell out to Audacity or a DAW. (The -6/-12 dB values are mere guesses until we see the actual response characteristics of this filter.)

True, graphic EQ is normally vertical. But horizontal is equally comprehensible, and the benefit as mentioned earlier is spinner boxes with direct text input. Totally worth it in my book.

1 Like

It will be a very useful and important addition to Shotcut. I’m really looking forward to it and thank all those who make it possible.
A Parametric Equalizer would be the best.
Normally you don’t have to change all frequencies. With spoken language, there are hardly more than four. (E.g. 100 Hz, 350 Hz, 2460 Hz, 11.000 Hz depending on the voice and the microphone) And if you can change exactly the necessary ones, that would be ideal.

Hello,
this Parametic Equalizer would be perfect: 3 bands and Low Shelf and High Shelft - nothing more is necessary.
Please, dear Shotcut makers, build the eq exactly like this! This tool is needed by everyone who wants to make sophisticated videos.
Micha

Thanks for all the discussion and ideas, everyone.

Done

Done

Done

Sounds like a good idea to me. Would you be willing to create the presets and then I can add them? This could be done during the beta period when a build is made available. Or I can make a build available sooner than that.

I looked at the existing “Bass & Treble” filter some more - including the source code. I found that the three parameters operate on 100Hz (low), 1000Hz (mid) and 10,000Hz (high). Also, the bandwidth of each frequency is narrow. Adjusting the sliders really just creates notches or peaks that those specific frequencies.

If anyone is curious, an easy way to test this is to open a “noise” producer, apply the filter, and look at the results in the Spectrum scope.

I decided to create a new filter that is based on the same filter as the parametric equalizer. I have fixed the slope and frequency and give the user gain adjustment. It works out like this:

“Low” = Low shelf with frequency = 200Hz & slope = 0.5
“Mid” = Band 2 with frequency = 1000Hz & Q = 1
“High” = High shelf with frequency = 5000Hz & slope = 0.5

Band 1 & 3 are not used (gain = 0)

I think this new filter produces results that are closer to the typical “Tone” controls that people are used to.

During the beta period, I would be open to suggestions to modify the fixed values of frequency, slope and Q. Any user would be able to test suggestions by trying different combinations with the new Parametric equalizer filter.

I have also marked the existing “Bass & Treble” filter as hidden. It will continue to work in projects that already use it, but it will not be available for new projects. We should direct users to the new 3-band eq.

I have set the names of the three new filters as:

  • Equalizer: 3-Band
  • Equalizer: 15-Band
  • Equalizer: Parametric
4 Likes

Hello brian,
thank you very much for the work, it is wonderful, I am very happy. But where or how can I try these new equalizers?

During the beta period which is always right before the next new version is released.

Probably next month

1 Like

What does Band 1 & 3 are not used mean?
No dB adjustment for those bands?

To be honest, I kind of like the Bass & Treble filter. I use it quite often to quickly boost some songs.
The 100kHz slider and it’s narrow bandwidth seams to be just perfect to enhance the bass drum

But I guess I’ll be able to do the same with the Parametric EQ

The underlying filter implementation has 2 shelves and 3 bands:
https://www.mltframework.org/plugins/FilterLadspa-1204/

I mapped two shelves and 1 band to the three sliders - low, mid, high. The other 2 bands are not needed.

1 Like

Sure!

@Austin, speaking of presets, I looked at Audacity.

  • For Graphic EQ Audacity has these presets: Bass Boost, Bass Cut, RIAA, Treble Boost, Treble Cut.
  • For Filter Curve EQ Audacity has all the above presets plus these: 100Hz Rumble, AM Radio, Low rolloff for speech, Telephone, Walkie-talkie.

I wonder if they could be added to any of Shotcut’s Equalizer filters. Would you know how to make equivalents?

I could probably figure out the settings from their source code and map them over as a start point. They may have to be tweaked depending on the response characteristics of the filters since not all EQs are the same.

1 Like

Hello, I am testing: v22.01 BETA
I am thrilled how you managed to include this Equalizer: Parametric. It also seems to work well already.
My question: What do the numbers at Q (0,0 up to 4,0) mean? Q is surely the bandwidth. How do you convert these numbers to dB? Or: What do I have to set for e.g. -3 dB or +5 dB?

To cut 3 dB on an audio track, set the Frequency to the middle of the range you want to affect. Set the Gain to -3 dB. Adjust the Q while listening until it sounds good by ear. The purpose of Q is to change how wide the impact of this cut or boost is, and there is no mathematical formula to tell you when it sounds good, or when it will fit the musical style you want.

There will be general principles, like using a high Q to surgically cut a 60 Hz hum. Or using a low Q to gently shape the tone of a guitar. But the exact value has to be determined by ear.


Q is a ratio that describes the bandwidth.

Let’s say you want a spike that cuts 500 Hz such that being +/- 100 Hz of 500 will be 3 dB different than at 500 Hz itself. The formula for Q would be:

Center / Bandwidth =
Center / (High - Low) =
500 / ( (500+100) - (500-100) ) =
500 / (600-400) = 2.5

This is why low Q is wideband while high Q is a sharp spike.

The 3 dB difference between center and edge frequencies is part of the definition of bandwidth used by equalizers.

That’s the simple version. The more complex version uses squares of frequencies to keep the curve audibly symmetrical. More info here, but the concept of “low Q is wider bandwidth” remains:

https://www.andyc.diy-audio-engineering.org/parametric-eq-parameters/index.html

1 Like

Hello @Austin,
thank you very much for your help. How do you know all this?
Why don’t you work with dB values for Q? That would be much more familiar and easier for musicians and video artists.
I had my voice analyzed for a particular microphone and found good values at the following settings.

  1. Hi-pass 100 Hz -12 dB Low Shelf
  2. 350 Hz -5,0 dB Q (Flankensteilheit) Slope 3-4dB
  3. 2.640 Hz +5,0 dB Q (Flankensteilheit) Slope 3,0 dB
  4. Low-pass 11.000 Hz -12 dB Hi Shelf
    How do these look when implemented in the new EQ of Shotcut?
    Do the values fit? Especially the slope and Q values?

Low Shelf 100 Hz, Gain -12,0 dB, Slope 0,5
Band 1 350,0 Hz, Gain -5,0 dB Q 2,5
Band 2 2.640,0 Hz, Gain 5,0 dB, Q 2,5
High Shelf 11.000,0 Hz, Gain -12,0 dB, Slope 0,5

With best thanks in advance
mickae

@Micha, you are free to ask questions and post if you found any issues about the new Equalizer filters in the beta thread. That’s why I tagged you in it. :slightly_smiling_face:

Hello @DRM,
unfortunately, I don’t understand English that well, and I don’t know the forums that well either. Was not it right that I had asked Augustin here that?

Used to be a recording engineer. Still have the gear… might get back into it one day.

EDIT: The parametric EQ filter was originally labeled with Q for bandwidth. It was later discovered that the underlying filter was using Octaves for bandwidth. So, all the discussion below about Q can be ignored as the filter doesn’t actually work this way. Bandwidth in this filter is simply the number of octaves that will be affected. If you’re coming from a commercial DAW, this is different than Slope, which is measured in dB/octave.

dB basically refers to volume. But dB by itself doesn’t tell the equalizer how far away from the center frequency that the volume should be reduced or boosted. This is what Q does. It’s a ratio because the ear’s frequency response is not perceptually linear, meaning “width” would mean very different things in low range vs. high range if a ratio was not used.

Google tells me that this means “edge steepness” (I don’t know German). I have no idea what the 3-4 dB slope means in connection to EQ. How far away from 350 Hz should it be changing volume by 3-4 dB? That part isn’t defined. We need Q as a ratio for that.

The values in your sample are still within the range of 0-4. Is it possible those values actually are Q and not dB? Those are steep Q’s, but maybe they are knocking a specific resonant frequency or noise characteristic of that mic.

EDIT: Sorry, I literally got lost in translation. :slight_smile: I think slope or edge steepness in this case is referring to how much effect the EQ puts on the signal based on distance from the center frequency. This kind of edge steepness is measured as dB per octave by default, where octave gives us our width. I’m not sure if there is a way to mathematically convert one to the other… never tried. Q is generally used out of tradition from the analog days, when that ratio actually meant something about resonance in the underlying circuit design. It still works in digital, but yeah, dB/octave might be more musician friendly.

It’s worth using those values as a start point. However, all EQs have their own signature, their own unique sound. The same settings on two different EQs will sound different because their processing mechanics are different. So at best, this is a start point, and then the values would need to be tuned by ear to find the best sound again.

This is a great place for audio theory discussion, because Q theory is not specific to the beta release. If the equalizer fails to work as expected, then that should be reported to the beta thread.