Author Topic: VUMeter Plugin  (Read 50595 times)

sveakul

  • Hero Member
  • *****
  • Posts: 3265
Good luck on sorting that meter math out, I'm glad you're taking that level of interest in accuracy--seems like a rare commodity these days.

Something for your comments: https://mega.nz/file/DB5lCA4I#WRaycQJqeaeR9dX0Xnzyzf4txkkLSogGz9idmgaUFYM

1.  An LVU skin, Pick Meter 2, which played in AIMP has a beautifully fine-segmented and responsive scale--see the included GIF for how it looks in AIMP.  However, also notice that in its skin zip one of the two PNG images shows as "0 bytes" size but has a 1,139 "packed" size.  This results in MusicBee rejecting it with an "unable to read skin" message--understandably, but then how the heck does AIMP LVU have no problems with it?

2,  A second AIMP-LVU skin, ILT4-30M.zip, has undamaged PNG files but LVU Meter 1.4 just will not open it.  Plays fine in AIMP LVU with a background "glow" effect to the LED's that I was hoping could be used in MusicBee too.

BoringName

  • Sr. Member
  • ****
  • Posts: 916

1.  An LVU skin, Pick Meter 2, which played in AIMP has a beautifully fine-segmented and responsive scale--see the included GIF for how it looks in AIMP.  However, also notice that in its skin zip one of the two PNG images shows as "0 bytes" size but has a 1,139 "packed" size.  This results in MusicBee rejecting it with an "unable to read skin" message--understandably, but then how the heck does AIMP LVU have no problems with it?

2,  A second AIMP-LVU skin, ILT4-30M.zip, has undamaged PNG files but LVU Meter 1.4 just will not open it.  Plays fine in AIMP LVU with a background "glow" effect to the LED's that I was hoping could be used in MusicBee too.

1. Very strange, 7-zip extracts all the files but displays an error and the kaha2.png image is empty. Using windows to extract it only extracts the okho.png and kaha1.png, it misses the settings.ini file.

Anyway, I recreated the kaha2.png, try this one - Pick_signal_2.zip

2. That's my fault and will be fixed in the next version. I didn't account for LVU skins that used the same image for both channels. ZipArchive doesn't like you trying to open the same entry twice.

edit: If you really want to use the second skin and don't want to wait for the next version you can modify it to work. Just unzip it, copy channels.png to channels2.png and change the ini file so the png field under the "right" section equal channels2.png. Zip the files back up. Remember to zip the files, not the folder they are in.

hiccup

  • Hero Member
  • *****
  • Posts: 9108
The ini file might need to be changed first. You have a Maxlevel of 3 but the meter goes to +6. Which is ok if the MaxAngle is set to the 3 indicator. These 2 settings should be consistent.
Then just change the ZeroLevel to -6 and run it in AIMP with a test file. Once the level gets to -6 the needle will point to zero on your meter. Each level increase after that should correspond to where your indicators need to be placed. eg) when the level gets to -3, the needle will be pointing where you need to place the +3 indicator. -4 to +4 etc....
I just tried a quick and easy fix for AcuVU:
I left ZeroLevel at 0dB, and set MaxLevel to +6dB
Then I set the ReplayGain value for a 0dB test file test file to +6dB.
In AIMP the needle then indeed lands exactly at the +6dB marker.
With the current VUMeter version the needle shoots off the scale and probably lands somewhere in Australia.

Thanks for the detailed info about using advanced formulas to possibly use in an Excel sheet.
I already have an Excel sheet where I can input the lowest and the highest x-axis position of the scale on an image, and the sheet will spit out the positions for the inbetween dB values and also the angles for min max and zero.
But I cheated a bit, not using complicated logarithmic formulas, but entering a list of fixed whole dB values that I got using this online calculator:
https://www.silisoftware.com/tools/db.php
this one is also useful:
https://www.daycounter.com/Calculators/Decibels-Calculator.phtml

I'll try to digest all that you have explained a bit better when I have some more time and a better focus.

hiccup

  • Hero Member
  • *****
  • Posts: 9108
PS
I was wrong when I said that many AIMP skins would be using other values for ZeroLevel than 0dB.
I did have a couple in my testing set, so I assumed there would be many more, but I see the values for it are set somewhere between 0.1 and 1.
So that is probably just some oversight or careless use of the parameter by the creators of these meters.
Checking more VU meter skins for this, I also couldn't find any other skin that uses anything other then 0dB.

BoringName

  • Sr. Member
  • ****
  • Posts: 916
Looking at those links you provided, I can see I was implementing the log equations wrong so maybe ignore all those formulas I listed. They work ok but it seems the 20 x log10(PeakValue) equation is more accurate. When I originally tested it I was using LN in libreoffice when I should have been using LOG.

And now I'm going to go drink bourbon until I forget how much time I wasted due to that error.

sveakul

  • Hero Member
  • *****
  • Posts: 3265
1. Very strange, 7-zip extracts all the files but displays an error and the kaha2.png image is empty. Using windows to extract it only extracts the okho.png and kaha1.png, it misses the settings.ini file.

Anyway, I recreated the kaha2.png, try this one - Pick_signal_2.zip

2. That's my fault and will be fixed in the next version. I didn't account for LVU skins that used the same image for both channels. ZipArchive doesn't like you trying to open the same entry twice.

edit: If you really want to use the second skin and don't want to wait for the next version you can modify it to work. Just unzip it, copy channels.png to channels2.png and change the ini file so the png field under the "right" section equal channels2.png. Zip the files back up. Remember to zip the files, not the folder they are in.
Thanks for your fast reply when you're in the middle of all the other work!  Turns out the Pick Signal 2 skin just takes up too much space for me in order to display properly--in AIMP, you've got that large resizable auto-aspect "Visualization window" that can be moved around anywhere.  I did the fix for the other one and it works fine, but the response is just too slow compared to the analog meters.  I keep coming back to AL-65 it seems.

Thanks hiccup too for figuring all these new adjustments, can't wait to see all the posted meters re-upped with all these new revisions, but hey man take your time and remember it's worth it even though sometimes it feels there's like 4 people actually enjoying them based on the lack of other posts here (same with the CEN Spectrum)--come on folks, let's hear from you!  There's more to life than playlists and replay gain.

voodoopunk

  • Full Member
  • ***
  • Posts: 212
Thanks hiccup too for figuring all these new adjustments, can't wait to see all the posted meters re-upped with all these new revisions, but hey man take your time and remember it's worth it even though sometimes it feels there's like 4 people actually enjoying them based on the lack of other posts here (same with the CEN Spectrum)--come on folks, let's hear from you!  There's more to life than playlists and replay gain.

I hesitate to comment as it's not a plug-in that I'll be using, Hiccup put it best in one of his posts a while back, there's not much use for a VU meter in a player. Apart from pretty.
Black Flag - The First Four Years

phred

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 10267
And now I'm going to go drink bourbon until I forget how much time I wasted due to that error.
And to think you could've finished the garage by now.   
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
And to think you could've finished the garage by now.   

Other builder couldn't help me so looks like I'm going to be doing it. Ridiculous situation really.

So forget my previous post with the formulas listed there. These formulas are more accurate.

C#
db = 20 * Math.Log10(peakValue)
peakValue = Math.Pow(10, db / 20)
LibreOffice
db = 20 * LOG(peakValue)
peakValue = 10 ^ (db/20)

I didn't drink enough. I was probably one google result away from saving HOURS on that crap. Bit surprised the site was plugging values into didn't come up with those formulas either....

Anyway, those formulas have made everything look better, especially when using a db offset.

ZeroLevel is definitely a way to add an offset with the AIMP skins. The db offset I've implemented was something foobar did and not something you can do in the AIMP player so that was the creators method to let users offset the meter. And it seems AIMP ignores the maxlevel/maxangle settings in terms of scale when the signal is above zero. While I am trying to make the skins behave like they do in AIMP, I think that is something I will change, if I can figure it out.

BoringName

  • Sr. Member
  • ****
  • Posts: 916
New version - VUMeter1.5.zip

Changes
- The meter will now finish moving before the process is stopped when a pause/stop occurs.
- db offset (mouse wheel) will now correctly apply a decibel offset for LVU skins instead of the previous method.
- db offset will adjust the meter more accurately for AIMP skins.
- MobilityPositive and MobilityNegative are now implemented. They are only approximations and won't match AIMP exactly. General range from 0.01 to 0.10 but you can put higher values with diminishing returns. Lower numbers are slower. Positive will cap out at 1.6 and Negative 4.4  When set to the same values, MobilityPostive will be about 2.75x faster than MobilityNegative. That's just how AIMP is setup. If the settings are missing from the ini file, it defaults to 0.05 for negative and 0.06 for positive. If they are set to zero it disables any movement manipulation. They are disabled for LVU skins as they seem to be set that way in  AIMP.
- The Needle will no longer move past the MaxAngle setting value and should scale correctly at values above zero. AIMP was doing it how theorised earlier in the thread, the skin I was testing with was setup wrong  :'(  I'm a slow learner on that one.

If hiccup can do one of those gif comparisons of the needle between Musicbee and AIMP that would be great. I don't have any screen recording stuff setup for that. I've left the sliders in for now but I might repurpose those later. Leave the sample interval at 15 and reduce the number of samples to 1 and see how it looks. I think AIMP maybe doing some averaging but not much. Once the number of samples gets over 5 it seems to soften the movement too much to match AIMP. Just have a play around between 1 and 5 and see what you think.

There are a few skins that have the wrong MaxAngle settings so if you adjust the db offset and it doesn't look right when the needle is past zero, check the skin.ini file before reporting a problem.

Also Hiccup, not sure if you are aware but some of your skins are not accurate. AL-65 Elemental and Deja Vu Compact Elemental are incorrect when running the test files, with VUMeter and AIMP.

sveakul

  • Hero Member
  • *****
  • Posts: 3265
Now, THAT'S INTERESTING...  I just discovered, by chance, that having MB volume set to "use logarithmic volume scaling" has a major effect on VUMeter plugin readings.

At normal use of the MB volume control range, with logarithmic volume enabled as has been my usual,  I was seeing VU meter readings with peaks around -5, sort of odd says I especially with a compressor/limiter VST active with 0db as its target.  Just by chance I lowered the MB slider to a 1% position in response to some sudden loud music and noticed that the VU meter began showing -1 to +1db peaks.  Increasing the slider past 1% to my normal position and the VU meter reading immediately dropped back to what I had thought was normal.

I then disabled logarithmic volume scaling, and found that now regardless of the volume slider setting the VU meter would now show approx. 0db peaks, except when the music itself was a low enough level so as not to be affected by the -7db threshold level I have set on my compressor/limiter (LoudMax), such as with classical music.

Another effect of disabling logarithmic volume was that using the "Linear" option on  VUMeter produced a MUCH more active meter movement than before, albeit peaking at lower levels than having it off.

This testing was done with VUMeter 1.5, analog AL-65 and Grundig (from AIMP) meter skins, and Sample interval/samples at 15/3.  MusicBee using the Wasapi Exclusive output as always.

Conclusion:  the enabling of logarithmic volume scaling has an obvious "unrealistic" lowering effect on VUMeter readings except at the lowest volume setting, while disabling it produces expected peak meter levels and more active movement in general.  Man you learn something new every day.  I did have to reduce my external speakers' volume control to give me more "range" with the slider to avoid blasting myself, haha..  Anyway, THAT'S BETTER!

BoringName

  • Sr. Member
  • ****
  • Posts: 916
Now, THAT'S INTERESTING...  I just discovered, by chance, that having MB volume set to "use logarithmic volume scaling" has a major effect on VUMeter plugin readings.

This must be due to a combination of something else. When I run the test files they read exactly the same whether I have logarithmic volume scaling checked or not and moving the volume slider up and down has zero effect with either setting.

the -7db threshold level I have set on my compressor/limiter (LoudMax)

Possibly something to do with this.

hiccup

  • Hero Member
  • *****
  • Posts: 9108
New version - VUMeter1.5.zip
Wow!

Things are looking very good.
It seems that the intake of bourbon doesn't have negative effects on your brain powers.
(or maybe there was far too much ice in it)

Tomorrow I'll try to give some more detailed comments on my findings.
But now it is bourbon time for me, and I've learned that it is better for me to then try to stay away from keyboards.

But here's a GIF of one of my test tracks (Jessie Ware - Swan Song) looking very good on a calibrated version of AL-65:

I'll also post some side-by-side comparisons with AIMP tomorrow, but I have the feeling we have now entered the phase where it is not so much about 'better' anymore, but maybe more about 'different'. Which will probably be fine.

Great!

sveakul

  • Hero Member
  • *****
  • Posts: 3265
This must be due to a combination of something else. When I run the test files they read exactly the same whether I have logarithmic volume scaling checked or not and moving the volume slider up and down has zero effect with either setting.

the -7db threshold level I have set on my compressor/limiter (LoudMax)

Possibly something to do with this.
Well I unchecked that VST the first test I did.  I've had it, I found what works for me now and I'll stick with that.  The VST host in MB is a bug fest anyway--try this VST and it works by itself, add another that works by itself directly after that and the whole thing crashes, etc etc.  The hosts in Foobar v2 and AIMP 5.30+ are rock solid in comparison.

sveakul

  • Hero Member
  • *****
  • Posts: 3265
But here's a GIF of one of my test tracks (Jessie Ware - Swan Song) looking very good on a calibrated version of AL-65:

Great!
Yes it is--hiccup, any chance of getting this newly calibrated version of AL-65 posted for us fans?