Author Topic: A plugin to be able to use foobar2000 / AIMP VU-meters  (Read 28945 times)

BoringName

  • Sr. Member
  • ****
  • Posts: 916
Being the fool that I am, I thought I would try and get this thing somewhat accurate. I know it's not going to be used as a measuring device but it should be in the ballpark.

So using this one as a base Luxman M900 I plotted out all the peak levels and what angle the needle needed to be using a test file for levels.

The peak values are logarithmic so I ended up with a formula like this: angleOffset = 38.9734 + 10.50794 * Math.Log(PeakAvg)

Fun times.

This works pretty good for the Luxman skin but not so great on others. The scales used differ a bit  -60/+3, -40/+10,  -20/+5 etc..and they use inconsistent spacing for needle marks. After dicking around with this for a while I thought I'd check out how AIMP handled them all. The bloody thing isn't even remotely accurate haha. They just plotted a straight line between the min and max angles. So the only times it's accurate are when no sound is playing and when the level gets to zero (~46 peak value). For the Luxman skin the needle just floats around -40 and -20 which is completely wrong. Can't really blame them though, this logarithmic crap is doing my head in a bit.

At this point the AIMP skins mostly work except the skins where the needle is upside down. I'm just trying to work out how I can scale it a bit for skins with different ratings and needle mark spread without breaking my brain. It's impossible to have something that works for all of them but I'm hoping to find a happy medium that's closer to the mark than the AIMP implementation. Maybe with a small/medium/large setting to adjust the logarithmic curve a bit for different layouts.

I know most people probably don't care and just like the visuals of the needle flicking around but that's where I'm at.

hiccup

  • Hero Member
  • *****
  • Posts: 9140
I know most people probably don't care and just like the visuals of the needle flicking around but that's where I'm at.

Well, I'm the kind a guy that appreciates both accuracy and nice flickering around ;-)
But these two are not always best friends when it comes to VU meters.

Getting needles to work as good as possible has probably been my greatest challenge when designing VU meters.
How it responds can be set using the 'knots editor':



When first starting with this I thought if entering the 'correct' dB values all would be hunky-dory.
But it usually isn't.

So I have been tweaking and tweaking until I got the best possible result from a visual perspective:

- the needle needs to move nicely at very soft volumes (e.g. the beginning of many classical tracks)
- the needle should make good use of the space available between let's say somewhere between -30dB end -3dB (where the most action will be)
- it should only go into the red with really loud passages or peaks (and not be pushed stuck at the most right position)

I have PMed you a link to a VU meter of mine that I think has a good compromise between accuracy and pleasent needle action.
It works very well for all sorts of music (dynamics) that I throw at it.

It also contains some test files someone created with sine waves at a sequence of levels.
I think it shows that trying to make a VU meter using actual dB values doesn't work well.

For having accuracy, a design using LEDs would probably be best.

'digital' LEDs can by the way also be combined with an 'analogue' needle:



Thanks for all the time and effort you are putting into this!
Needle(ss) to say it's much appreciated.
 

sveakul

  • Hero Member
  • *****
  • Posts: 3285
Thanks BoringName for your update!  It was interesting to note your finding that the AIMP "skinned" VU meters were not really calibrated at all but just bouncing around a midpoint.  I was wondering if that also applied to the two "stock" analog meters supplied in every AIMP install (Plugins/aimp_analogMeter/aimp_analogMeter.dll/Skins/Classic.zip, Night.zip, which appear as two choices in the Visualizations window.  Or are those more accurate?

hiccup

  • Hero Member
  • *****
  • Posts: 9140
I modified the VU meter to include LEDs.

So now it has kind of best of both worlds:
-  The needle will act like what VU meters are intended for (giving a good impression on the perceived loudness)
-  The LEDs act as peak indicators, and I have set them to represent the actual dB levels. (I've not checked if that is also the factual result)
    (edit, I guess it does not have 'digital precision? Since then it would never show values above 0dB?)



(the gif won't do the smoothness of the needle full justice. Also know that in foobar2000 you can set the rise time for the VU meter, so you could make it less 'nervous' or even more responsive)
Last Edit: August 23, 2024, 01:10:40 PM by hiccup

sveakul

  • Hero Member
  • *****
  • Posts: 3285
This is cool, hiccup.  Can the colors of the needle/bar be changed also?

phred

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 10276
This is cool, hiccup.
What he said. Tres cool!!!

Is it available for testing with MB?
Download the latest MusicBee v3.6 patch from here.
Unzip into your MusicBee directory and overwrite existing files.

----------
The FAQ
The Wiki
Custom Forum Search
Posting screenshots is here

hiccup

  • Hero Member
  • *****
  • Posts: 9140
This is cool, hiccup.  Can the colors of the needle/bar be changed also?
Yes, absolutely. It's all image files.
See the start post of this thread to see some examples of what can be done.

hiccup

  • Hero Member
  • *****
  • Posts: 9140
Is it available for testing with MB?
No.
BoringName is in the process of trying if it can be made to work for MusicBee at all.
So that's all what the latest posts here have been about.
And since it's far from certain that this can be done, it's best to consider this a pipe dream, and two guys having some fun exploring it.

edit:
And me posting teasers for a movie that may never come out:


 
Last Edit: August 23, 2024, 09:11:40 PM by hiccup

phred

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 10276
And me posting teasers for a movie that may never come out:

Yeah, thanks a lot, Pal.   :-)
Download the latest MusicBee v3.6 patch from here.
Unzip into your MusicBee directory and overwrite existing files.

----------
The FAQ
The Wiki
Custom Forum Search
Posting screenshots is here

hiccup

  • Hero Member
  • *****
  • Posts: 9140
Yeah, thanks a lot, Pal.   :-)
No problem phred.
Let me know if you want me to post a VU meter gif of a Beatles song with a high stereo separation.

Those look absolutely fantastic on this VU meter!
(also I am now hearing things that I never noticed before using this VU meter)


well, I won't lie: anything looks and sounds great with this VU meter, including this:


edit
But, as a promise: If (IF) things turn out as I am hoping they will, I will create a VU meter for your 'phred on the outlook' skin that is to your liking.
Last Edit: August 23, 2024, 11:48:01 PM by hiccup

phred

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 10276
Let me know if you want me to post a VU meter gif of a Beatles song with a high stereo separation.
No thanks. I can wait patiently to see what Boring Name comes up with. But thanks for the offer.

Quote
Those look absolutely fantastic on this VU meter!
(also I am now hearing things that I never noticed before using this VU meter)
Oh, I sure you're hearing things. They're probably coming from the adult beverage you're consuming.

Quote
But, as a promise: If (IF) things turn out as I am hoping they will, I will create a VU meter for your 'phred on the outlook' skin that is to your liking.
I'm keeping this comment as a quote and bookmarking it so you can't deny it later.
Download the latest MusicBee v3.6 patch from here.
Unzip into your MusicBee directory and overwrite existing files.

----------
The FAQ
The Wiki
Custom Forum Search
Posting screenshots is here

hiccup

  • Hero Member
  • *****
  • Posts: 9140
I'm keeping this comment as a quote and bookmarking it so you can't deny it later.
If there exists an emoiji for expressing a reservation on someone's promise, it could probably have been used here.
(not sure if this lack of trust is deserved here to be honest)

BoringName

  • Sr. Member
  • ****
  • Posts: 916
Getting needles to work as good as possible has probably been my greatest challenge when designing VU meters.

When first starting with this I thought if entering the 'correct' dB values all would be hunky-dory.
But it usually isn't.

So I have been tweaking and tweaking until I got the best possible result from a visual perspective:

- the needle needs to move nicely at very soft volumes (e.g. the beginning of many classical tracks)
- the needle should make good use of the space available between let's say somewhere between -30dB end -3dB (where the most action will be)
- it should only go into the red with really loud passages or peaks (and not be pushed stuck at the most right position)

I have PMed you a link to a VU meter of mine that I think has a good compromise between accuracy and pleasent needle action.


You might be a bit more invested in it than me :). I just wanted to the needles to be "roughly" in the right place and ended up down a rabbit hole. At this stage I don't think I'll be doing anything to mess with the needle movement other than an overall setting to adjust how quickly it "flickers". I think it looks ok at the moment but I have very little experience with them. Something to tweak later perhaps.

This one thew a spanner in the works - ArtsAcoustic, up until that one the left and right images have been the same dimensions so I need to change my code a bit to cater for that.

I haven't looked at those files yet. I'll have a look over the weekend.

As for your skin you linked here, that will be possible with the AIMP method without the LED's. There is nothing in the config to handle Lamps/LED's like there is with the VUEditor. I'm actually not sure how they implemented that. I'll have to extract all the images and take a look. Maybe they made an image for every possible needle/LED combination.

Thanks BoringName for your update!  It was interesting to note your finding that the AIMP "skinned" VU meters were not really calibrated at all but just bouncing around a midpoint.  I was wondering if that also applied to the two "stock" analog meters supplied in every AIMP install (Plugins/aimp_analogMeter/aimp_analogMeter.dll/Skins/Classic.zip, Night.zip, which appear as two choices in the Visualizations window.  Or are those more accurate?

They are not as bad as the others but not great either. It would have made sense if they were accurate and others weren't as it's not really AIMP's fault how people design the layout of the skins. Most of them probably just spread the markers around in whatever way looks the best and don't care if it's not accurate as long as the needle looks cool.

Those 2 are weird really. Why is there such a big gap between -1 and 0?, it makes no sense. There is no way you could make that skin work accurately without customising the values to suit it.

Back to it I guess. I'm in the middle of ripping down my garage at the moment so not sure how much time I'll have but good chance I'll have something out in a week or two that will handle the AIMP skins and there is a lot of those - AIMP Skins

phred

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 10276
If there exists an emoiji for expressing a reservation on someone's promise, it could probably have been used here.
¯\_(ツ)_/¯

Quote
(not sure if this lack of trust is deserved here to be honest)
Only in jest.
Download the latest MusicBee v3.6 patch from here.
Unzip into your MusicBee directory and overwrite existing files.

----------
The FAQ
The Wiki
Custom Forum Search
Posting screenshots is here

BoringName

  • Sr. Member
  • ****
  • Posts: 916
Ok I looked at those files.

So when you extract to Frame1 and Frame2 folders, the frame1 folder holds all the images related to needle movement and the Frame2 folder holds all the images related to the LED. So it probably draws the LED frame first and then draws the needle frame over the top but the spots for the LED are not transparent on the needle frame and they need to be for that method to work, maybe the transparency info gets lost when extracting to BMP.

Or maybe it just alternates drawing each frame and it happens that fast ours eyes think it's one image, not sure if that would actually work. Kind of like interlaced video files.

I think Steve needs to find a new web hosting service, I get problems can be hard to find but it's been weeks....