[Empeg-general] Re: VU Meter numbering?

Prolux Real Time Visuals prolux at empeg.com
Wed, 6 Mar 2002 19:02:00 GMT


Okay to clear up what the visual is actually displaying I'll tell you exactly what the needle deflection means.

Each needle represents each channel (left & right) - For mono MP3s the visualisation library is conned into thinking it has a stereo signal with the same data in each channel regardless of the current visual.

Each needle can deflect by a maximum of 90 degrees.  At any point in time the actual deflection of a needle is the decay damped rms of the audio.  That is to say that if the rms of the current frame exceeds the decay damped value from previous frames that rms value becomes the new decay damped value, if it does not then the previous decay damped value is used and then decayed by a constant amount.

According to Time's reference this means that the visual is correctly named as the rms signal is used.  The decay damping (and lack of attack damping to some extent) can be regarded as the method used to digitally model an analogue VU meter.

Given that the samples used in generating the RMS value are 16 bit signed then the maximum possible rms value (based on a square wave) is 32767.  

Because the positioning of 0db sets at what point the rms value is being measured relative to it is important that this point is meaningful.  The convention in analogue electronics is to use the rms of the maximum possible sine wave to measure the signal relative to.  Our signal is bounded by the square wave maximum so this would be a logical choice (to position 0db at the far right of the scale) - However it is would probably be more in keeping with the theme of an analogue vu meter to use the sine wave to position 0db.

Therefore the position of 0db should be:

(90 degrees divided by the square root of two)degrees from the left of the scale.

The square wave is 3db louder than the sine wave so that positions another point at the far right of the scale.

The far left of scale is -infinity decibels (subject to debate), it just remains to make the scale meaningful between 0db and -infinity db.

Hope all of this makes sense,
Toby.