Tone control plug-in

I’ve added the ;categories line and changed "32 bit " to “32-bit” in the “Technical details” as I think that is more correct. I changed “RAM” to “memory” in the ;info line to be user-friendly but feel free to change it back if you wish.

Looking at the Help again, I’ve suggested in “CLIPPING PROTECTION” trying to describe the problem and what to do about it as being more useful than just repeating the ;info line. I’ve had to lose ** WARNING ** to do that, but to me it’s worth it. I guess you could have “CAUTION: CLIPPING PROTECTION”:

  
CLIPPING PROTECTION:
This option automatically lowers the overall
level if necessary to prevent distortion. If used
on long selections it may slow, then crash. If
it's too slow, 'Cancel' to try a shorter section.n

In the “Tips” section I changed to use “Effect > Amplify” rather than “Amplify” for further clarity.

If you disagree with the changes in Clipping Protection, just amend or revert.

As to what happens now, post your final version if you want to amend anything then I guess I will post to -quality Cc to -devel saying I would like to replace Bass Boost with Bass/Treble and take it from there. Others may think it’s OK to have Bass Boost and Bass/Treble or they may say it would be better to add a treble boost to inbuilt “Bass Boost”.



Gale
bass-treble.ny (3.61 KB)

The changes look good.

“RAM” vs. “memory” is debatable as some tools in Windows include swap memory when referring to “memory”, but on balance “memory” may be generally more user friendly.
"32 bit " vs. “32-bit” - you know I’d never even considered that :slight_smile: I believe you are correct.

<<I’ve had to lose ** WARNING **>>
I think it’s still highlighted enough. If it proves to be a major problem with users, we could remove that option altogether, possibly replacing it with a volume control, or just leave it out. “Bass Boost” does not have any protection against clipping.

I’m happy with your amendments.

I would be happy with that as long as it also allows bass and treble to be reduced. Essentially that would be the same as this plug-in but faster, higher up the Effects menu list, and could possibly include protection against clipping without the memory problem. There is however one other drawback to the “Bass Boost” effect, and that is that if there is any DC off-set, the Bass Boost effect will make it considerably worse. If anyone wants to program a new Bass/Treble (boost/cut) effect, I’d be strongly in favour of it filtering out DC.

The main advantage of this Nyquist plug-in over developing the Bass Boost effect is that the Nyquist plug-in is here. http://forum.audacityteam.org/download/file.php?id=2505

Bumping this old thread since it seems to have stalled.

I still prefer Steve’s Bass / Treble plug-in over BassBoost. In fact I never could understand why BassBoost was there at all - it has limited functionality and allows non-sensical values (e.g. +36 dB at 1 Hz).

It seems we could get this done for 2.0.

– Bill

Personally I would prefer the effect to have only two sliders, one for bass and one for treble.

If I recall correctly, the “clipping protection” was added on Gale’s request, but we don’t have clipping protection on the Audacity Equalization effect or other effects that can cause clipping (such as Phaser and Wahwah) so why do we need it here? It makes the effect more complicated and can cause Audacity to crash if used on very long selections.

Amplification and Normalize are already provided as separate effects so I don’t see why we need to duplicate those effects here, especially as the Amplification and Normalize effects can be used on very long tracks without any problems.

If 32-bit float tracks are being used then even if the output of this tone control goes over 0 dB it will not be clipped and can be amplified back down to 0 dB without damage.

If there were just the bass and treble controls then I don’t think there would be any need for the help screens either (it works just the same as bass and treble on a domestic amplifier).

I’d agree with removing the “clipping protection” as it seems to take 7 times longer to process a selection with it on (Gale’s test further up this thread).

– Bill

Thanks for raising it again, Bill.

I skimmed through the thread and don’t see that I asked for the clipping protection (unless that was in another thread). I did note that David used to add it. But given the slowness and the crash risk, and it may reduce the chances of acceptance, I don’t mind losing the feature. I think the feature would be worth having if it wasn’t for the Nyquist issue that causes the problems.

Was the amplification modifier such a bad idea (it was safe / no speed penalty wasn’t it)? Some people do ask for amplification modification even in Equalization, so for a rough and ready one stop job it may still be useful in Bass/Treble. Given practice and similar music, you may get to learn what amplification adjustment will leave the levels about the same. As you said when you wrote to the -quality list in May (without arousing any developer interest):

three sliders; one for +/- bass and one for +/- treble and one for overall +/- output level, all with ranges of +/- 15
dB.

( [Audacity-quality] Replacing BassBoost effect | Audacity ) .

I think turnover frequencies suggested by Bill there are going to be heavy going for novices.

On the assumption that people may more likely be trying to increase both bass and treble, you could even default amplification to a negative amount. On the whole I think that is better than having a “compensatory” amplitude adjustment that would prevent clipping but usually leave the level lower.

I guess if you repost to -quality I’d better throw my weight behind it too this time…



Gale

I’m very glad this topic re-surfaced, since I missed it the first time around. I’m very much in favor of the simplified Bass/Treble controls, especially as I recall two things: 1) Virtually every guitar amplifier I’ve used, and 2) Gale’s repeated observations in other topics that many Audacity users are not technically inclined. Keep it simple, while making it possible for more-skilled users to make it as complicated as they need!

So, how about “EQ” which defaults to 3 bands?

At any rate, the fact that “Bass Boost” is the only effect of its type always seemed to me as though The Developers couldn’t be bothered to add Treble Boost, or anything along the same lines, before they went on to develop the fully-functional EQ effect. I strongly agree that “Bass Boost” should be dropped.

I may not have recalled correctly - it was a very long time ago.
I don’t think that the clipping protection is a “bad” thing in itself, but not really “necessary” and as you say, given the slowness and the crash risk I don’t think it is worth it.

Thanks for bringing that up again. I do much prefer the “amplification modifier” option to normalizing.

It’s a shame that there is no good way to offer “simple / advanced” alternative interfaces. I’ve just noticed that the old “shelf filter” has had over 1600 downloads: Reducing Bass

The overall gain setting ("amplification modifier) is fine if you know what you’re doing, but I think it would be rare to get it exactly right. Better is to work in 32 bit then use Amplify after any EQ to get the “perfect” level.

So my recommendation would be to tear out the clipping protection and submit it as a replacement for “Bass Boost”.

For those of us with a rudimentary ability to read someone else’s code ( :blush: ) it’s easy to add custom turnover frequencies for own own private version.

– Bill

It would also be possible to include “advanced” sliders that are commented out. For example:

....
;control tgain "Treble Gain (dB)" real "" 0 -15 15

;; TO ENABLE THE BASS FREQUENCY SLIDER, REMOVE ONE SEMI-COLON FROM THE BEGINNING OF THE NEXT LINE
;;control tfreq "Treble Half-Gain Frequency (kHz)" real "" 2 1 10

;control bgain "Bass Gain (dB)" real "" 0 -15 15

;; TO ENABLE THE BASS FREQUENCY SLIDER, REMOVE ONE SEMI-COLON FROM THE BEGINNING OF THE NEXT LINE
;;control bfreq "Bass Half-Gain Frequency (Hz)" real "" 400 20 1000

....

I’m not sure if whbjr is asking for a third “mid range” slider? Reducing mid range is often useful to make audio sound less “seedy”, but then we’ll soon be into a mini-equalizer. I think four sliders is the maximum to be considered (for those who don’t enable any hidden extras. A mid range slider might mean we could not call it “Bass / Treble”.



Gale

Sorry for my lack of clarity - I was inspired by the graphic on the Graphic Equalizer - simple Feature Request, which includes a drop-down menu for selecting the number of bands. It shows odd numbers of bands, which is not unusual, except for the “Two-Band EQ” we’re talking about.

In other words, I’m asking for more than one thing, and I’d be happy with either or both:

  • Bass/Treble controls like a stereo system or guitar amp.
  • Variable-Band EQ which defaults to 3.

Would it be better to replace “bass boost” with a built-in effect “tone control” rather than a Nyquist version?

I’ve managed to hack together a “Treble control” (+/- 15 dB high shelf filter) and a “Bass control” (+/- 15 dB low shelf filter) using the existing “bass boost” as a starting point.
What I’ve not been able to do is to put them together into one plug-in as I can’t fathom the Wx code - perhaps Edgar could do that?
Also, the code for Normalizing is already available, so that could be added as an option with a check box.

Yes, definitely! …But I know that Nyquist is the quicker way to get a new plug-in going.

I like the idea of a Normalize checkbox as well. Best wishes for you (and Edgar!) to get all this working - I’m looking forward to the results.

I will do the C++ code but the odds of getting it committed pre-2.0 are tiny. Even post-2.0 will be an uphill battle I suspect.

Updated.
This version does not have the help menu or the normalize feature.

ADVICE:
It is highly recommended to use 32-bit float format for audio
tracks. If this format is used and the output level is
inadvertently boosted too much then it can be brought back
down below 0 dB by using the Amplify effect.

TECHNICAL DETAILS:
Tone adjustment uses two second-order ‘shelf Eq’ filters.
The half-gain point of the filters are set to 600 Hz (bass)
and 2 kHz (treble).

Maximum boost/cut is +/-15 dB for all controls.

Both channels of stereo tracks are amplified equally (linked).

A 10 Hz eight-pole Butterworth high-pass filter is applied
to the entire selection to remove DC off-set and sub-sonic
frequencies.
bass-treble.ny (1.55 KB)