Author Topic: VUMeter Plugin  (Read 50593 times)


sveakul

  • Hero Member
  • *****
  • Posts: 3265
Thank you very much!!

I tried like hell to figure out how to extract the graphics though to do a slight color change, and that VUEditor has me stumped.  Made me appreciate the EASE of dealing with the AIMP analog and LVU meters in comparison.  What I was trying to do is brighten up the colors a bit--for the green, going to RGB (2, 234, 2) and for red to (255, 13, 13).  And changing the color on the needle pointer to what you used on your original needle for that skin (an orange color).

If I asked you to do this I'd feel like one of those "OK, now make it look like this!" ingrate types so whatever you do thanks for the effort you took in doing what's already there.  I met my match with that VUEditor.

BoringName

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


I'm on 3.6.9041, I can't remember if there was a significant change between this and 9040. So if it doesn't work on 9040 try updating.

Changes
- Fixed a couple of issues that caused some AIMP skins with upside down needles to not work and others to extend past the maxAngle.
- Pre-Amp ignored if equaliser is not enabled.
- The top option in the background colour dropdown will now open a color picker so custom colours can be entered. Of course you can't change the colours of the colour picker dialog form because that would be crazy wouldn't it? Just enjoy some windows 95 nostalgia for a few seconds. I am aware if you choose one of the preset skin colours and restart musicbee, both the preset colour and the custom button will show the same colour and tick.
- No of samples slider changed to buffer size. This will delay the meter slightly. Around 16-18 seems to make it match up with the wave meter for me. The interval slider may have a small effect on this.

edit: I suppose what I should do is automatically enter the skin colours as custom colours on the colour picker and just have the one button for colours. Maybe next version.

Edit: I was meant to do something with the old sample no setting but in typical fashion, only remembered straight after I posted this. This can still be altered manually in the mbVUMeter.Settings.xml file. It's either getting set to 1 and removed next version or I'll add a third slider for it. Probably the former.
Last Edit: October 11, 2024, 05:57:50 AM by BoringName

hiccup

  • Hero Member
  • *****
  • Posts: 9108
I tried like hell to figure out how to extract the graphics though to do a slight color change, and that VUEditor has me stumped.  Made me appreciate the EASE of dealing with the AIMP analog and LVU meters in comparison.  What I was trying to do is brighten up the colors a bit--for the green, going to RGB (2, 234, 2) and for red to (255, 13, 13).  And changing the color on the needle pointer to what you used on your original needle for that skin (an orange color).
I chose these colours because in my opinion they created the best total balance for this skin.
And I am stubborn in the sense that I don't want to create or publish something my eyes don't agree with ;-)

You are correct in that creating a VU meter using VUEditor is no easy feat.
Especially when you start completely from scratch. That certainly took me a while.
But when you have all the image and settings files that the creator of that skin used available, it shouldn't be that difficult to figure things out and modify it a bit.
So I send you a PM with those. With some trial and error and searching the web on how to use VUEditor it should be doable.

sveakul

  • Hero Member
  • *****
  • Posts: 3265
New version - VUMeter1.8.zip

- No of samples slider changed to buffer size. This will delay the meter slightly. Around 16-18 seems to make it match up with the wave meter for me. The interval slider may have a small effect on this.

Edit: I was meant to do something with the old sample no setting but in typical fashion, only remembered straight after I posted this. This can still be altered manually in the mbVUMeter.Settings.xml file. It's either getting set to 1 and removed next version or I'll add a third slider for it. Probably the former.

I just installed 1.8 right over 1.6, same settings, and I'm sorry this version has serious problems.  I'm using the DejaVU Compact LED Calibrated Elemental meter as before, and 1.8 "jacked" it big-time.  On "Linear", it stays basically left pegged at -60, while with that unchecked it reverts to this STIFF, jerky back and forth needle movement all at about half scale and with no lit LED "trail."  I went back to 1.6 and immediately the near-perfect movement of this meter on all fronts came right back;  bye-bye, 1.8!

An anomaly I noticed related to what you talked about with the sample change to buffer size:  in the xml file, the setting label for <sampleNo> remained, and took on whatever the new "buffer size" number was set to on the slider--there was no separate "<buffersize> settng.  So how would that jibe with being "set to 1 and removed" if this is where the buffer number is being stored?

Sorry to be the bringer of bad news.

BoringName

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

I just installed 1.8 right over 1.6, same settings, and I'm sorry this version has serious problems.

What do you have set for the following
- WASAPI
- Ignore Replaygain
- Pre-amp (equaliser)

Edit: Also I assume you are on the latest version. You 100% have to be on 9040 possibly 9041.

An anomaly I noticed related to what you talked about with the sample change to buffer size:  in the xml file, the setting label for <sampleNo> remained, and took on whatever the new "buffer size" number was set to on the slider--there was no separate "<buffersize> settng.  So how would that jibe with being "set to 1 and removed" if this is where the buffer number is being stored?

I need some sleep, I repurposed that variable and didn't rename it like I should have so whatever value it has in the XML file is the the buffer size. Sorry. It will be whatever you set the buffer size slider to. What the sample no used to represent is no more.

edit: I'm seeing an issue in exclusive mode with ignore replaygain checked. No idea what's going on there as I didn't mess with that... /sigh I'll look into it.
Last Edit: October 11, 2024, 09:49:47 AM by BoringName

sveakul

  • Hero Member
  • *****
  • Posts: 3265
What do you have set for the following
- WASAPI
- Ignore Replaygain
- Pre-amp (equaliser)

I use wasapi exclusive.

I never use any replay gain tag or setting on anything, so didn't bother checking "Ignore Replay Gain"...  so you'd know I went the distance, I re-installed 1.8, and DID check that setting--and VOILA, PROPER METER MOVEMENT HAS RETURNED!!!  It might be a good idea to rename this setting, or even reverse the functionality and call it "Replay Gain in Use."

I use the EQ at all times but never use pre-amp.

Thanks for the explanation on the tag label.  I'm one of those people who actually goes and looks at that stuff :)

So it's welcome back to new version 1.8!!  And thanks.

BoringName

  • Sr. Member
  • ****
  • Posts: 916
I use wasapi exclusive.


My problem was I didn't let the streaminfo kick in. It only updates when the track changes so if you change settings mid song they might not be reflected until the next track plays.

I expect your issue was with the volume setting. In exclusive mode, the peak values I'm supplied by Musicbee are modified by the volume slider. This doesn't happen in Shared mode. When "ignore Replaygain" is checked, VUMeter will adjust the peak values as if the volume slider is set to 100%. (which is how it is in shared mode).

hiccup

  • Hero Member
  • *****
  • Posts: 9108
I've been doing some side-by-side comparison of the needle action and response between AIMP, foobar2000, and BoringName's VUMeter.
And the clear winner is........   BoringName's VUMeter!

For me it has hands-down the best and most satisfying needle action of all three.
One thing that also sets it apart is how well the needle functions while indicating RMS values, and the peak indicators perfectly indicating peak values.
I may be wrong, but I think neither AIMP nor foobar2000 is able to do that?


-----------------------------------------------


About audio/video sync:

That's a bit of a complicated one.
I tested this using two different soundcards, an on-board audio chipset, and a USB connected DAC.

For both I found that setting the (currently repurposed) buffer size to 22 gives perfect sync.
So, I thought: great, problem solved.
And also if that value proves to work for all users, it could be set internally without the need to make it adjustable.

But... same as pretty much everything that we've encounterd during this quest, things keep being more complicated than could be hoped for.

I noticed two different issues:

1.
The sync-offset works perfectly for the needle, but it doesn't do anything for the peak indicators.
So while the needle will be in perfect sync, the LEDs are not, and are leading the signal significantly.

2
I found that when using my USB DAC in WASAPI (exclusive) event mode, both the needle and the peak indicators are in perfect sync when the buffer size is set to its lowest value (1)
But that is only when 'event mode' is selected. (the best option for DACs that can handle that)
As soon as event mode is off, I need to set the value to 22 again.
(which will happen a lot since I use that computer for many purposes)


So, the above findings result in two different requests/suggestions:

1. have the buffer offset working for both the needle (RMS) and the peak indicators.

2. if possible, make the plugin 'event mode active?' aware.
    When it is active, have the buffer size set to the minimum value. (1)
    When it's not active, use the value that works for all other scenarios. (22)
    (It's my guess that it's not only for my DAC that it works like this but it will be the case for all DACs using event mode)


-----------------------------------------------


I have created/tweaked two versions of my DejaVU Compact Calibrated skin that should work very well for testing.
An AIMP version and a foobar2000 version.
They should make it easy to compare the pros and cons of either.

download AIMP-foobar2000 test skins

BoringName

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

Changes
- Sample no setting changed to buffer. Sorry this will probably reset whatever value you currently have set so you need to recheck the slider value after updating.
- LED will now obey buffer settings.

One thing that also sets it apart is how well the needle functions while indicating RMS values, and the peak indicators perfectly indicating peak values.

I've actually removed any kind of averaging. The mobility settings are doing all the work. It basically acts as an average because it smooths out the peaks.

1. have the buffer offset working for both the needle (RMS) and the peak indicators.
2. if possible, make the plugin 'event mode active?' aware.

1. already done.
2. Not possible currently. I can track when the output mode is changed but there is nothing to indicate whether the event mode checkbox is ticked. If no one argues with your 1 / 22 settings I can make 22 the default and have a setting for event mode that sets it to 1 when enabled but it will have to be manually toggled at this stage.

I have created/tweaked two versions of my DejaVU Compact Calibrated skin that should work very well for testing.
An AIMP version and a foobar2000 version.
They should make it easy to compare the pros and cons of either.

Thanks, that will be very handy when the time comes. I have a feeling getting the foobar meter to scale properly is going to be a bit tricky.

hiccup

  • Hero Member
  • *****
  • Posts: 9108
I've actually removed any kind of averaging. The mobility settings are doing all the work. It basically acts as an average because it smooths out the peaks.
Oh, so it is not RMS but peak based.
That will be why it looks more lively than AIMP and foobar2000 then.

Note that the new test version of DejaVU Calibrated is now 'calibrated' for RMS indication.
So a 0 dB sine-wave will now point at -3 dB.
Which makes sense considering how AIMP VU meters will usually work, and how this 'smoothing' functions, resembling RMS a bit.
(let me know if you disagree)

hiccup

  • Hero Member
  • *****
  • Posts: 9108
New version - VUMeter1.8.1.zip
Changes
- Sample no setting changed to buffer. Sorry this will probably reset whatever value you currently have set so you need to recheck the slider value after updating.
- LED will now obey buffer settings.

and:
- LEDs now all light up continuously, irrespective if music is playing or not.

;-)

BoringName

  • Sr. Member
  • ****
  • Posts: 916
Oh, so it is not RMS but peak based.
That will be why it looks more lively than AIMP and foobar2000 then.

If you were previously running the sample no. setting at 1 then it was peak then too. Setting it higher didn't make the meter look better for me and you seemed to agree so I didn't see much point of keeping it if the mobility settings were delivering a satisfactory result. Another thing that may make it better is I'm running it at 60FPS, it wouldn't surprise me if other software was running at 30FPS or less.


and:
- LEDs now all light up continuously, irrespective if music is playing or not.

;-)


And this is why I don't do this for a living, I'd be given the boot pretty quickly.

New version  - VUMeter1.8.2.zip

Changes
- Led will now operate correctly when "LED use peak" is enabled...... or will it?
- Setting "Lock Aspect to Y Axis" removed. The window will now automatically lock the appropriate axis based on the panel size. This was so stupidly easy to implement it's embarrassing I didn't do it from the start.
Last Edit: October 12, 2024, 07:06:27 AM by BoringName

hiccup

  • Hero Member
  • *****
  • Posts: 9108
New version  - VUMeter1.8.2.zip
- Setting "Lock Aspect to Y Axis" removed. The window will now automatically lock the appropriate axis based on the panel size.
Great, working very well.

About the buffer:
Am I correct that what we called '22' is now (the default) '1'?
That seems to be working well.
But (as I described before) for when using event mode, it would now need the option to set it to some '-20'?
Can that be done somehow?
(sorry for being a bit OCD on this stuff ;-)

BoringName

  • Sr. Member
  • ****
  • Posts: 916
Am I correct that what we called '22' is now (the default) '1'?

I haven't made any changes in that regard. I thought it would be better to wait and see if anyone else had any input on it just in case it's a hardware specific thing. 22 works for me but I'm not a great measuring stick for this kind of thing.

If I do change it, I'll remove the slider, set the value to 22 and have an option on the context menu for "Event Mode" that sets it to 1.