HydrogenAudio

Lossy Audio Compression => MP3 => MP3 - Tech => Topic started by: mzso on 2011-09-15 13:35:38

Title: How to prevent lame from cutting the spectrum?
Post by: mzso on 2011-09-15 13:35:38
Hi!
I tried increasing the lowpass value, but it didn't do anything useful. It only cut almost everything when I set it too high. But it never would leave the upper portions alone.
Also what's --lowpass-width supposed to do?
Title: How to prevent lame from cutting the spectrum?
Post by: mixminus1 on 2011-09-15 14:16:45
Why do you want to do this?
Title: How to prevent lame from cutting the spectrum?
Post by: pdq on 2011-09-15 14:31:55
As I understand it, the option to eliminate any lowpass filtering was removed in current versions of LAME, because this is generally a bad idea. You might try older versions where this was still possible.

Edit: I think what happened when you set the lowpass too high was it switched from assuming Hz to assuming kHz.

Edit2: I think I got that backwards - below 20 something it assumes this is kHz, above it assumes Hz. To be safe, always specify in Hz so there is no confusion.
Title: How to prevent lame from cutting the spectrum?
Post by: Northpack on 2011-09-15 15:12:16
I tried increasing the lowpass value, but it didn't do anything useful.

Even if it worked it wouldn't do anything useful but possibly lower the perceptual quality of your MP3s. If you absolutely have to avoid low pass filtering, for whatever reason, you should use lossless encoding anyway.
Title: How to prevent lame from cutting the spectrum?
Post by: lvqcl on 2011-09-15 16:02:29
To disable lowpass filter, use --lowpass -1 switch. But chances are high that LAME will remove high frequencies anyway because of its psychoacoustic model.
Title: How to prevent lame from cutting the spectrum?
Post by: mjb2006 on 2011-09-16 00:44:17
The higher-frequency content you're seeking to preserve tends to be more noise-like, thus more difficult to encode...your efforts to preserve it may well starve the rest of the spectrum of bits, impacting the quality at frequencies you're much more likely to notice. MP3 in particular also has difficulty with resolution above 16 kHz; Google "sfb21". At higher bitrates, depending on the characteristics of the audio and the psychoacoustic model, LAME will strategically allow higher-frequency content to be preserved. If you're not getting it, you don't need it. If you still think you need it, abandon MP3 and switch to a lossless format.
Title: How to prevent lame from cutting the spectrum?
Post by: mzso on 2011-09-16 09:12:27
Thanks for the info guys.
To disable lowpass filter, use --lowpass -1 switch. But chances are high that LAME will remove high frequencies anyway because of its psychoacoustic model.

It still cuts. Even with cbr320.
Why do you want to do this?

I was trying to get the best the best out of mp3. Highest bitrate no spectrum butchering and whatnot.
The higher-frequency content you're seeking to preserve tends to be more noise-like, thus more difficult to encode...your efforts to preserve it may well starve the rest of the spectrum of bits, impacting the quality at frequencies you're much more likely to notice. MP3 in particular also has difficulty with resolution above 16 kHz; Google "sfb21". At higher bitrates, depending on the characteristics of the audio and the psychoacoustic model, LAME will strategically allow higher-frequency content to be preserved. If you're not getting it, you don't need it. If you still think you need it, abandon MP3 and switch to a lossless format.

Well mp3 isn't my format of choice. Its not even my lossy format of choice. But since mp3 is pretty much the norm and others are poorly supported... For example I didn't find a free hosting service that hosts vorbis (not to mention flac) and can play them back in the browser, only mp3. Its convenient for showing people something you like.
Title: How to prevent lame from cutting the spectrum?
Post by: db1989 on 2011-09-16 11:14:39
Why do you want to do this?

I was trying to get the best the best out of mp3. Highest bitrate no spectrum butchering and whatnot.
Needlessly diverting bits to frequencies that you will never hear and thus degrading the overall quality of the bitstream including those lower frequencies that you can hear. Right!
Title: How to prevent lame from cutting the spectrum?
Post by: dhromed on 2011-09-16 12:15:01
Right!

It's not unreasonable for people who aren't familiar with the internal workings of mp3 to assume that dropping things like lowpass will improve the sound quality and get them the "best possible mp3", even though in fact the opposite happens (regardless of audibility).

Title: How to prevent lame from cutting the spectrum?
Post by: Northpack on 2011-09-16 12:36:42
I was trying to get the best the best out of mp3. Highest bitrate no spectrum butchering and whatnot.

You will achieve exactly the opposite of your intention. You will make your MP3s sounding worse when you force the encoder to keep all frequencys up to 22kHz.

See: there are many very clever people involved in the development of MP3 encoders. Do you really think that anything the encoder does - after more than 10 years of development - isn't well-founded and optimized for best possible quality? Do you really assume you know better than them?
Title: How to prevent lame from cutting the spectrum?
Post by: mzso on 2011-09-16 12:40:17
Why do you want to do this?

I was trying to get the best the best out of mp3. Highest bitrate no spectrum butchering and whatnot.
Needlessly diverting bits to frequencies that you will never hear and thus degrading the overall quality of the bitstream including those lower frequencies that you can hear. Right!

I actually tested it. could definitely hear above 19k. Plus vorbis cuts above 20k even at q5 and doesn't cut anything at q7. Also that's why I combined it with the highest bitrates.
Title: How to prevent lame from cutting the spectrum?
Post by: Northpack on 2011-09-16 12:46:15
I actually tested it. could definitely hear above 19k. Plus vorbis cuts above 20k even at q5 and doesn't cut anything at q7. Also that's why I combined it with the highest bitrates.

I'm afraid you've missed the point. It doesn't matter what you can hear. I can hear up to 20kHz, when listening to a sine wave signal, yet I can't tell the difference between music containing frequencies up to 22kHz and the same track low-passed to 17kHz, when conducting a proper (ABX) listening test. And this is not a singular deficiency of mine but a psychoacoustic principle MP3 and other lossy encoding technologies take advantage of.

Vorbis however is based on a very different approach than MP3 and is much more efficient at encoding high frequency content above 16kHz, thus vorbis can afford the "luxury" of keeping those frequencys - MP3 can't.
Title: How to prevent lame from cutting the spectrum?
Post by: halb27 on 2011-09-16 13:11:37
I do second this.
I don't think in real life music a lowpass of 17.5 or even 16.7 kHz is ABXable with the exception of extremely few listeners.
And Lame's standard lowpass is higher with the highest VBR modes.
Title: How to prevent lame from cutting the spectrum?
Post by: ShotCaller on 2011-09-17 20:38:34
I agree with all the above statements that what you are trying to do is probably not going to improve your encode quality. However, LAME 3.99 beta now uses a lowpass filter at 21.5 kHz for VBR, so it seems the LAME developers have an interest in trying to preserve these high frequencies, for whatever reason...
Title: How to prevent lame from cutting the spectrum?
Post by: db1989 on 2011-09-17 20:50:50
LAME 3.99 beta now uses a lowpass filter at 21.5 kHz for VBR
Of all levels?
Title: How to prevent lame from cutting the spectrum?
Post by: ShotCaller on 2011-09-17 21:59:39
At -V 0. Didn't try the others, but I assume they are lower.
Title: How to prevent lame from cutting the spectrum?
Post by: mzso on 2011-09-18 00:34:47
At -V 0. Didn't try the others, but I assume they are lower.

It even cuts lower with cbr320.
Title: How to prevent lame from cutting the spectrum?
Post by: lvqcl on 2011-09-18 00:46:25
There are more ways than one to kill a cat lower the quality of MP3 files.
Title: How to prevent lame from cutting the spectrum?
Post by: greynol on 2011-09-18 01:02:55
That reminds me of Carter on Hogan's Heroes saying it was "easy as cake".
Title: How to prevent lame from cutting the spectrum?
Post by: Satellite_6 on 2011-09-18 01:44:22
At -V 0. Didn't try the others, but I assume they are lower.

It even cuts lower with cbr320.



I though that 320 cuts off at 20k, while -v0 cuts off at 19k (not that it matters).

Can someone provide a link?
Title: How to prevent lame from cutting the spectrum?
Post by: ShotCaller on 2011-09-18 04:10:17
Uh, you guys are forgetting I am talking about 3.99 beta not 3.98.4

By the way, -V 0 in 3.99 beta actually has a lowpass filter set at 22.1 kHz.  -V 1 is at 19.5 kHz (.5 kHz higher than in 3.98.4) -V 2 is at 18.5 kHz and -b 320 is at 20.5 kHz (both the same as 3.98.4)
Title: How to prevent lame from cutting the spectrum?
Post by: mzso on 2011-09-18 09:59:36
Uh, you guys are forgetting I am talking about 3.99 beta not 3.98.4

By the way, -V 0 in 3.99 beta actually has a lowpass filter set at 22.1 kHz.  -V 1 is at 19.5 kHz (.5 kHz higher than in 3.98.4) -V 2 is at 18.5 kHz and -b 320 is at 20.5 kHz (both the same as 3.98.4)

No I didn't. I just tried CBR320 and V1 with it. And it only preserved the spectrum with V0.
I though that 320 cuts off at 20k, while -v0 cuts off at 19k (not that it matters).

Can someone provide a link?

You can find the beta here: http://www.rarewares.org/mp3-lame-bundle.php (http://www.rarewares.org/mp3-lame-bundle.php)
Title: How to prevent lame from cutting the spectrum?
Post by: db1989 on 2011-09-18 12:23:40
By the way, -V 0 in 3.99 beta actually has a lowpass filter set at 22.1 kHz.  -V 1 is at 19.5 kHz (.5 kHz higher than in 3.98.4) -V 2 is at 18.5 kHz and -b 320 is at 20.5 kHz (both the same as 3.98.4)
See, your initial statement could have been (mis?)construed as reporting that all VBR modes of LAME 3.99b lowpass at 21.5 kHz, which I doubted.
Title: How to prevent lame from cutting the spectrum?
Post by: ShotCaller on 2011-09-18 18:35:57
Ok
Title: How to prevent lame from cutting the spectrum?
Post by: arfgh on 2011-12-07 14:39:01
as i have seen at the moment, only lame 3.93.1 disable completly the lowpass with the switch -k, that now isnt used.
With lame 3.99.3 can be disabled with -lowpass -1, but 21,9 khz
Title: How to prevent lame from cutting the spectrum?
Post by: hightype on 2014-09-26 22:50:00
I would like to "up" this topic - I wanted to achieve the same, that is, a full-spectrum mp3 without any lowpass filtering on any frame... I was experimenting with older versions of LAME and although the files produced by 3.90 to 3.93 are quite close at high bitrates (320 cbr being the best obviously), but as lvqcl suggested, still there is lowpass filtering on _some_ of the frames.

I wonder if it is possible to finetune LAME's psychoacoustic settings so that no masking or filtering is done on any of the frames? (sorry but I didn't read into it too much)

(I know it is advised against and can produce artifacts/ringing/etc. but my point is theoretical - by this I'm simply going for the 'perfect look' of the spectrum analysis of the file and not for optimal perceived sound transparency)

Thanks for the help!
Title: How to prevent lame from cutting the spectrum?
Post by: saratoga on 2014-09-26 23:14:41
I wonder if it is possible to finetune LAME's psychoacoustic settings so that no masking or filtering is done on any of the frames? (sorry but I didn't read into it too much)


Yes I believe it should be possible.  In principle you could make an mp3 encoder that just allocated a minimum number of bits to each frequency band. 

If you're not interested in quality, starting with a more simple MP3 encoder might be easier than LAME.  Maybe shine or the old ISO reference encoder would be easier to understand.
Title: How to prevent lame from cutting the spectrum?
Post by: lvqcl on 2014-09-26 23:27:51
I wonder if it is possible to finetune LAME's psychoacoustic settings so that no masking or filtering is done on any of the frames? (sorry but I didn't read into it too much)

Try to lower the quality: -q 9.
Title: How to prevent lame from cutting the spectrum?
Post by: ExUser on 2014-09-26 23:39:25
I'm pretty sure there's an old version of LAME that will do that. Possibly Blade, too.
Title: How to prevent lame from cutting the spectrum?
Post by: hightype on 2014-09-26 23:52:50
Thanks for the replies!

Unfortunately I didn't find the other encoders (other than Blade messes up everything above 16 kHz, suggesting that it won't do this well), however, with LAME 3.90.3, I got the best results using the --noath switch together with -k (at both CBR and VBR files). Still some frames get lowpassed.

However, for some reason I can't get the -q over 5... it works from 0 to 5 but not above it (so I wasn't able to try -q9 in 3.90.3...  :-/
Title: How to prevent lame from cutting the spectrum?
Post by: nastea on 2014-09-27 09:57:05
As far as I can remember BladeEnc didn't do any low-pass filtering when encoding to 256 or 320 kbps CBR mp3, so you might give that another try. (just put -256 or -320 on the last line of bladeenc.cfg)
Title: How to prevent lame from cutting the spectrum?
Post by: LithosZA on 2014-09-27 11:43:44
You could also look at Helix MP3 and maybe SHINE MP3
Title: How to prevent lame from cutting the spectrum?
Post by: Mach-X on 2014-09-28 02:45:05
Just because you can hear a 20khz sine wave doesn't mean your ears can pick it up at reference level to a 1khz one, or that your transducers can reproduce them the same way. I don't recommend listening to 20khz waves at all without absolutely making sure its at the same amplitude as a comfortable 1khz wave. Its stupid and can damage your hearing permanently. Ask anybody with tinnitus. And for what? To get an mp3 waveform to match a lossless one? That's stupid too because it defeats the purpose of what lossy encoding is trying to achieve. There's only an octave (8 notes) between 10khz and 20khz and very little musical information in there. I've downsampled music from 44.1 to 32 before and couldn't tell the difference. Try lame -v2 and abx test against the original. You might find you don't need the inaudible frequencies above 16khz and just enjoy the music.
Title: How to prevent lame from cutting the spectrum?
Post by: hightype on 2014-09-28 04:28:45
Well, thanks for the tips... I still would like to try to do this with LAME.

As for the 'why?' question I think it's rather a perfectionist thingy. While not audible, it is still comforting just to know that the full spectrum of the file is preserved and look at its spectrogram. I think most people who would like to do the same have the same reason.

My personal goal would be to finetune LAME to produce ~190-230 kbps VBR files that have the full audio spectrum. (As stated earlier, LAME 3.90.3 gets close with --noabr -k at 320CBR but still some frames get lowpassed).
Any further help in this would be greatly appreciated.
Title: How to prevent lame from cutting the spectrum?
Post by: saratoga on 2014-09-28 04:37:26
As for the 'why?' question I think it's rather a perfectionist thingy. While not audible, it is still comforting just to know that the full spectrum of the file is preserved and look at its spectrogram.


Hopefully you realize this, but just because a spectrogram shows you energy at those frequencies does not mean its actually the same as the audio you input.  MP3's scalefactors do not allow accurately quantizing very high frequency content very well, so you should not be looking at a spectrogram to judge these (which is what I get the impression you are doing).

If you have some irrational desire to encode that stuff, you should be using FLAC or some other lossless.
Title: How to prevent lame from cutting the spectrum?
Post by: hightype on 2014-09-28 05:22:57
I see... yes, there were discussions about this, that is, encoding ultra high frequencies accurately is a weakness of the format itself.
Even the FFT analysis shows visible gaps in frames where no lowpassing was applied - that's the best MP3 could provide.

Nevertheless, still there is lowpass filtering applied on some of the frames, due to psychoacoustics (sorry but I didn't read into this very much) - is there a way to finetune psychoacoustics in a way that it won't apply any lowpass filtering on any of the frames?
(As suggested I tried various quality settings like -q0...9 but it didn't work)
Title: How to prevent lame from cutting the spectrum?
Post by: saratoga on 2014-09-28 06:50:53
I see... yes, there were discussions about this, that is, encoding ultra high frequencies accurately is a weakness of the format itself.


So you don't care about what is encoded, so long as it shows up on a spectrogram?  Tried adding white noise? 

Nevertheless, still there is lowpass filtering applied on some of the frames, due to psychoacoustics (sorry but I didn't read into this very much) - is there a way to finetune psychoacoustics in a way that it won't apply any lowpass filtering on any of the frames?


You mean without writing your own code to do so?
Title: How to prevent lame from cutting the spectrum?
Post by: nastea on 2014-09-28 07:49:43
Hightype, just in case...
lame -V 0 --lowpass 22.5
Title: How to prevent lame from cutting the spectrum?
Post by: Kohlrabi on 2014-09-28 09:05:02
Nevertheless, still there is lowpass filtering applied on some of the frames, due to psychoacoustics (sorry but I didn't read into this very much) - is there a way to finetune psychoacoustics in a way that it won't apply any lowpass filtering on any of the frames?
The whole point of using LAME and lossy encoding is to have strong psychoacoustic models to decrease the filesize while maintaining perceived fidelity. If you circumvent the models you will only get worse audio quality. I don't understand why you'd want that. If you're concerned about retaining the higher frequency content, LAME (or another psychoacoustic codec) is obviously the wrong choice. You'd likely be more happy with using FLAC, like saratoga already suggested, or using an MP3 encoder without psychoacoustic models, which will likely sound far worse than LAME.
Title: How to prevent lame from cutting the spectrum?
Post by: lvqcl on 2014-09-28 09:17:06
As for the 'why?' question I think it's rather a perfectionist thingy.

Decreasing audio quality is hardly perfectionist.
Title: How to prevent lame from cutting the spectrum?
Post by: LithosZA on 2014-09-28 09:27:19
Quote
As for the 'why?' question I think it's rather a perfectionist thingy. While not audible, it is still comforting just to know that the full spectrum of the file is preserved and look at its spectrogram. I think most people who would like to do the same have the same reason.

It won't be comforting for me at all knowing that I sacrificed audio quality for a nice spectrogram image. If you are a perfectionist then you should use a lossless format such as FLAC like most people here suggested.

For a lossy format it is comforting for me to know that the encoder did its best with the limited bits to keep the quality as close as possible to the original. By doing whatever was necessary like throwing away things I would not be able to hear. More bits for other stuff.
Title: How to prevent lame from cutting the spectrum?
Post by: hightype on 2014-09-28 18:20:03
In general, I'm aware of the fact that the very concept and purpose of MP3 is to compress audio by removing frequencies that are inaudible.
I'd like to reiterate that my point and goal is theoretical (or experimental), I'd like to 'push the envelope' in a way to see how much LAME is able to retain from the original spectrum, without applying any lowpass filter on any of the frames.
(Edit: my reasons for using LAME is the VBR option and also it seems to be the most widespread and compatible with most player software and hardware. Xing would be the other choice but its sound quality is not as good.)

Saratoga: well, if I'd be a coder, I'd probably already have solved this

Nastea: thanks for the tip! I'll see if it will work with older versions and will get back if it does.
Title: How to prevent lame from cutting the spectrum?
Post by: probedb on 2014-09-28 18:59:44
In general, I'm aware of the fact that the very concept and purpose of MP3 is to compress audio by removing frequencies that are inaudible.


Erm, nope, you've misunderstood.
Title: How to prevent lame from cutting the spectrum?
Post by: hightype on 2014-09-28 20:28:41
Nastea: looking into this, the problem with the --lowpass switch is that it only disables the 'global' polyphase lowpass filter, which is applied to the whole file.
Disabling this is not enough in itself because the psychoacoustic algorhythm that comes after this, still does lowpassing on certain frames (that are not too complex or contain only few highs).

My guess is that the 'ATH related' and 'PSY related' switches could be finetuned in a manner so that no lowpassing whatsoever is done. Since I'm not knowledgeable in these (and it's too complicated for me to start to learn/experiment with them), that's why I'm looking for advice or help from users who know how these work.
Title: How to prevent lame from cutting the spectrum?
Post by: Kohlrabi on 2014-09-28 21:35:37
My guess is that the 'ATH related' and 'PSY related' switches could be finetuned in a manner so that no lowpassing whatsoever is done. Since I'm not knowledgeable in these (and it's too complicated for me to start to learn/experiment with them), that's why I'm looking for advice or help from users who know how these work.
Feel free to download the LAME sources and work on that. I doubt that someone will spend any development time to aid you in this completely pointless endeavour. But feel free to make an offer. I'd guess 4000-5000$ for two weeks of development time might be a good start, but it's really hard to tell, since I do not know about the complexity and necessary technical expertise.
Title: How to prevent lame from cutting the spectrum?
Post by: hightype on 2014-09-29 17:05:28
Well, it's not that important to cause controversy or anger. Maybe someone will come up with some solution in the future.
Title: How to prevent lame from cutting the spectrum?
Post by: pdq on 2014-09-29 17:37:36
Have you looked at free format mp3? Perhaps that will do what you want.
Title: How to prevent lame from cutting the spectrum?
Post by: hightype on 2014-09-29 18:14:03
PDQ: I did a quick test with other encoders but they don't seem to even come close to LAME in preserving the spectrum. Free format MP3 could very well do the job but it is reported to have compatibility issues (going over 320 kbps it's not hard to imagine). Thanks for the tip anyways.
Title: How to prevent lame from cutting the spectrum?
Post by: saratoga on 2014-09-29 18:29:17
Saratoga: well, if I'd be a coder, I'd probably already have solved this


This is a really weird thing to do, so the odds that anyone has written the code to make it happen are near zero.  I'd say take a look at a few other encoders, maybe one of them is close enough to what you want by chance (although I doubt you will get exactly what you're hoping for). 

Failing that, you'll have to start learning how to program.
Title: How to prevent lame from cutting the spectrum?
Post by: hightype on 2014-09-29 18:43:26
Yep, got it. It also has the potential for abuse.
Title: How to prevent lame from cutting the spectrum?
Post by: Gecko on 2014-09-30 17:06:56
A: My JPEGs sound weird. How to fix?
B: You can try to XYZ, but your images will actually look worse.
A: Yes, but I want my JPEGs to sound good. I am a perfectionist.

Same principle; equally absurd.
Title: How to prevent lame from cutting the spectrum?
Post by: hightype on 2014-09-30 22:31:24
FYI. my goal had nothing to do with preserving so-called 'spectrogram images' (popularized in the '90s & early 2000s by experimental electronic musicians), even though in theory the more accurate a compressed file's FFT image is, the more gets preserved from such images... (but this is way off topic)
Title: How to prevent lame from cutting the spectrum?
Post by: saratoga on 2014-10-01 00:36:09
even though in theory the more accurate a compressed file's FFT image is, the more gets preserved from such images...


This is kind of, true, but its a pretty dumb way to think about it.  You can't really judge the accuracy of an FFT from the image of the log of the intensity.  You've already thrown away 99% of the information before you even begin, and the part you keep isn't necessarily the most relevant. 
Title: How to prevent lame from cutting the spectrum?
Post by: halb27 on 2014-10-01 06:19:15
The best way to preserve extremely high frequencies with lame is to use a very high lowpass value, as was said before. This prevents the a priori cut-off in the encoding process.
Sure the encoding processes itself eliminates part of the spectrum, everywhere in the spectrum. It's its very purpose. This is much more of concern with frequencies which are audible well, not at the high end of the spectrum. Adressing this feature as a frequency cut-off process is wrong thinking. Instead it is a process which potentially covers every frequency (including the high end of course).
The losses at the high end are just more easily to see in a spectogram, chance for audibility of these losses however is much lower compared to the bulk of frequencies containing musical content.
So you're looking at the wrong thing and thinking of the wrong thing only because it's easy to have a look at it.
 
But if you insist in optically keeping the extreme high end: the lossyWAV compressing mechanism doesn't use the extreme high end of the spectrum and doesn't use a lowpass at all, AFAIK. The overall procedure might still affect the high end though (not sure about it).
So you might give lossyWAV (followed by FLAC) a try. A great intelligent encoding scheme anyway.
Title: How to prevent lame from cutting the spectrum?
Post by: Dynamic on 2014-10-02 17:46:33
FWIW, lossyWAV can only affect the noise level in the high-end, which is likely to be essentially invisible on a spectrogram. I never filters frequencies out of the audio, just reduces the bit-depth smartly so should look essentially identical on a spectrogram. The -X setting even achieves less than 320 kbps typically.

Regarding the OP, I understand most of what you want. I think you want MP3 for the utmost in compatibility, you want LAME to encode it for about the best quality and perhaps for gapless support, yet desptie its inaudibility you also want a spectrogram that looks like the original CD's for some warm fuzzies in your heart and will accept the potential for harming audio quality slightly in rare circumstances in return.

Essentially, you want to retain the high-frequencies coarsely but to waste relatively few bits on encoding them as they are inaudible and don't need to be accurately reproduced. No developer is likely to modify the psychoacoustic model to provide this purely visual feature to an MP3 encoder unless they have a "business case" for it in attempting to sell it to gullible audiophools.

The way to reduce bit-wastage on high frequencies in LAME is to use the -Y switch (search the Knowledgebase Wiki). This still allows accurate encoding of 0-16kHz material which is what matters to the sound in almost all real music. It allows the psychoacoustic model to represent the higher frequencies much more coarsely, which should be inaudible in the vast majority of real music, thereby avoiding the huge waste of bits normally required, but it will just lower the precision, which will rarely cause holes in the spectrogram or a visible change in spectrogram intensity or colour.

Test this setting:
lame -V 0 -Y --lowpass 22.05
and see how it "looks". (or 22.5 maybe, if allowed)

Also, there were changes to the VBR algorithm in LAME 3.98 / 3.99 / 3.100 so you could try LAME 3.97 which is also a very good encoder just in case it might not be quite as clever at omitting inaudible high frequencies when available bitrate is restrictive and thus cause dips in the visible spectrogram.

Doing this will hopefully only degrade sound quality significantly on really hard problem samples - maybe fatboy (Kalifornia) and few others where 320kbps bitrate is too limiting and will otherwise just cause higher bitrates in exchange.