easyeffects icon indicating copy to clipboard operation
easyeffects copied to clipboard

Level meters are terrible

Open Diranus opened this issue 8 months ago • 3 comments

The level meters are terrible to read.

I'm unable to tell how much headroom I have left which makes it difficult to set up some filters like compressors.

The level meters may work with modern chart hits with no in dynamics in them but music with lots of dynamics exist. In that case, the meters go crazy bouncing up and down way too fast.

If you increase the update intervals in the settings, the meters just lag instead and still don't show the true level.

In my opinion, a level meter should behave more like this:

  1. Maintain a history of audio samples since, say last 500 ms.
  2. Rectify that (make all positive)
  3. Find the highest one and if it is higher than the bar, let the bar "shoot" at it.
  4. If not, let the bar decay slowly until 3 happens again
  5. Put dB ticks below them.

Bit hard too explain^^ Just look how the level meter of audacity behave. It shows peak and RMS at same time in a useful way (if you right-click and disable the rainbow effect).

Diranus avatar Apr 20 '25 03:04 Diranus

Maintain a history of audio samples since, say last 500 ms.

The meters on Calf plugins native window do something like that. The displayed number is the peak from the recent time window. While the level bar is free to move as audio buffers come. It seems the best compromise to me. I intend to do this in the future. Right now there are plenty of other things with higher priority.

Rectify that (make all positive)

This did not make sense to me. Negative values should be shown as they are.

Find the highest one and if it is higher than the bar, let the bar "shoot" at it.

Annoying to implement without a customized level bar just for this. It is not impossible but I doubt it will ever happen.

Put dB ticks below them.

Besides the fact this requires the creation of a customized widget I am not convinced this make things better visually.

wwmm avatar Apr 20 '25 05:04 wwmm

You can put Level Meter and check Momentary Bar and True Peak, which can give information that is closer to what you want.

Mlocik97 avatar May 02 '25 13:05 Mlocik97

Btw. point 2:

Rectify that (make all positive)

Make no sense at all, because positive values means hard clipping. You can't have positive gain in output. Also, what would be maximum value if gain indicators would be in positive? Only thing I can think of is value 0 to 1. But it wouldn't reflect gain in dB units, but gain in % of amplitude. Which I think is much much worse indicator of how something is loud, as it doesn't scale in linear way. E.g. difference between 0.3 and 0.6. isn't equal to difference between 0.6. and 0.9 (so incrementing gain by 0.3 would have weird effect when based on input gain, output could increase much more or much less than intended. Even on UI level, it makes no sense as it indicates such behavior. So we should use gain in dB units, which are and always should be negative.

Mlocik97 avatar May 17 '25 08:05 Mlocik97

The Qt branch has some improvements in this direction.

wwmm avatar Aug 23 '25 18:08 wwmm