Author Topic: VUMeter Plugin  (Read 50590 times)

sveakul

  • Hero Member
  • *****
  • Posts: 3265
I saw this just recently posted at the Foobar forum, not sure how it may help here but interesting:

Interesting indeed! I've asked if they would be willing to share some info on how to do it. Cross all your appendages.
This was just posted on another thread about the project that I missed before:
https://hydrogenaud.io/index.php/topic,126646.msg1051567.html#msg1051567

I volunteered to test this and got a PM from oops that a new preview release is coming in a few hours and he will send me the link (dopbox) when it is available.  If you are not already in contact with him I will PM the link to you and hiccup when I get it.

BoringName

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

Changes
- Musicbee version 3.6.9040 required for VUMeter to work. You may also need this updated file MusicBeeBass.dll
- New option Ignore Replay Gain. When enabled the meter will ignore any volume modification including Pre-amp, REPLAYGAIN_TRACK_GAIN and RVAD tag values for the current playing track. It will display as if the volume slider is at 100% in WASAPI Exclusive mode. Stream information changes do not take effect until the track changes or you stop the song and play it again. If you pause a song, change something that effects volume and then push play, the meter will not be accurate for the duration of the track.
- VUMeter will now obey the maxLevel setting.
- "Use Skin Colour" option replaced with a dropdown option: Background Color. 4 options available including black and 3 different colours from the current skin. These are the background colours for the SkinTrackArtistPanel, SkinInputControl and SkinInputPanel.
- Needles will no longer display outside the bounds of the meter.

Barring the need to fix any immediate bugs, that will probably be the last update for a while as the next lot of changes I want to implement are quite large and I have a feeling nutting out the foobar bin file stuff is going to take a while. Although it's good to have some progress on that front.

hiccup

  • Hero Member
  • *****
  • Posts: 9108
New version - VUMeter1.7.zip
Thanks for the update and all the changes/improvements.
But I 'm sorry to say it seems to have quite a few issues.
- the needle frequently sticks and remains at a high position (even after the signal ended)
- MaxAngle doesn't seem to function at all anymore
- the new background colour option doesn't provide the background colour identical to  the Track Information panel
  and colours #2 and #4 seem to be identical
  (tested with Elemental skin)

I did update MusicBee using the latest patch, and used the bass.dll that you linked to.
But I tested this only very briefly. Will do some proper and more thorough testing tonight.


sveakul

  • Hero Member
  • *****
  • Posts: 3265
I wonder if the added "Edit" Steven mentions in his post below has anything to do with some of the issues.  Personally I haven't tried 1.7 yet.
https://getmusicbee.com/forum/index.php?topic=41272.msg228363#msg228363

sveakul

  • Hero Member
  • *****
  • Posts: 3265
I volunteered to test this and got a PM from oops that a new preview release is coming in a few hours and he will send me the link (dopbox) when it is available.  If you are not already in contact with him I will PM the link to you and hiccup when I get it.
I'm still trying to get a working link for the new Foobar component.  He sent me one via DropBox, but it keeps wanting me to "sign in to verify your identity" and "create a Google account", and there is NO WAY to bypass it.  I saw this is a well-known issue on the web, and seems to derive from the sharing party creating the link in the wrong way (naming recipients instead of just using "create link").  I was able to bypass the web interface and download "a" file using wget.exe of the correct size but Foobar rejects it as being corrupted.  Anyway I passed all this along to oops and we'll see what happens.

BoringName

  • Sr. Member
  • ****
  • Posts: 916
But I 'm sorry to say it seems to have quite a few issues.
- the needle frequently sticks and remains at a high position (even after the signal ended)
- MaxAngle doesn't seem to function at all anymore

That's a strange one, it seems to be working fine for me. Since Steven implemented some of the new api features there was an issue that caused the meter to stick high and go where it shouldn't (ie past the maxAngle) but I've put in checks for that and haven't experienced that issue again. I can't see how it could happen again with the fixes I put in place. But it seems I've missed something, I'll need some info on when it triggers. I did a bunch of tests in shared and exclusive mode and it's never happened again. Frustrating!

- the new background colour option doesn't provide the background colour identical to  the Track Information panel
  and colours #2 and #4 seem to be identical
  (tested with Elemental skin)

These are the skin elements available to me in the API.
SkinSubPanel, SkinButton,  SkinInputControl, SkinInputPanel, SkinInputPanelLabel and SkinTrackAndArtistPanel

With those I can query the following elements
Foreground, Background and Border

Foreground tends to be the text colour. On my current skin, Background and Border colours were always the same.

I can also query the skin elements by Default or Modified State.

If you look at the screenshot in this post
https://getmusicbee.com/forum/index.php?topic=41902.msg228339#msg228339

Aside from the light blue highlight on "settings" those are the 3 colours that show up for me when in the "Background Colour" dropdown. I'm using the Absolute Zero skin.

I'm still trying to get a working link for the new Foobar component.

I got a copy of that already. If they don't get back to you on it I'll ask them if I can share it with you.

On the foobar front, with oops help I've been able to extract the background image and some other data about the skin. Getting the needle/led info is a bit more complicated but it's looking promising.

phred

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 10267
He sent me one via DropBox, but it keeps wanting me to "sign in to verify your identity" and "create a Google account", and there is NO WAY to bypass it.
Ahhh ... but there is if you use Firefox. I was having this same issue on Dropbox and another of other websites where I didn't have, nor did I need an account.

You should already have installed the uBlockOrigin addon to Firefox. Open Options and select the My Filters tab and enter this
Code
||accounts.google.com/gsi/*$xhr,script,3p
and click Apply Changes. You'll never see that popup again.

And if you're not using uBlockOrigin,  you should. Once installed you can get rid of a good number of other privacy addons.

You're welcome    :)
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: 9108
But it seems I've missed something, I'll need some info on when it triggers. I did a bunch of tests in shared and exclusive mode and it's never happened again. Frustrating!
I agree ;-)
I tested again.

- a clean install of MusicBee 3.6.9041 P
- copied the latest bass.dll
- installed VUMeter 1.7.0
- default audio settings

The needle acts very strange, sometimes looking stuck a bit and also moving very 'shaky' and off-beat.
It's surprising to me that for you it's working fine, and also that nobody else is seeing or reporting this.
I'm not sure what more testing I could do when this is happening with such a clean install.

Quote
These are the skin elements available to me in the API.
SkinSubPanel, SkinButton,  SkinInputControl, SkinInputPanel, SkinInputPanelLabel and SkinTrackAndArtistPanel
Then neither of those is probably getting the background colour of the Track Information panel(s).
The only person that could confirm that and would be able to do something about it will be Steven.
Let's hope he reads this.

While at this, it would probably be good to try and define the most common locations where users might place the VU meter, so to avoid some guessing, trial and errors.
So for me it would be next to the Track Information panels, which would require to get the bg of "ElementPanel.Default".
If you have your own ideas or preferences for it, you could use the Sample Skin to find the exact name of the required skinning element.
Or post a screenshot and I'll figure it out.
Last Edit: October 02, 2024, 07:22:33 PM by hiccup

BoringName

  • Sr. Member
  • ****
  • Posts: 916
It's surprising to me that for you it's working fine, and also that nobody else is seeing or reporting this.

Yeah, I'm seeing it. That's a flaw in my testing as I muck around with the test files more than anything else and obviously hadn't watched it with a normal song. It's clearly stuffed, I honestly don't know how I didn't pick up on that and It is surprising no-one else reported the issue. I'll see what I can do.

Bee-liever

  • Member
  • Hero Member
  • *****
  • Posts: 3871
  • MB Version: 3.6.9255 P
I just updated and am also having troubles with 1.7

When using 'Ignore ReplayGain' needles slowly climb until at maximum but are otherwise unresponsive. It's like the values are being added or something.
MusicBee and my library - Making bee-utiful music together

BoringName

  • Sr. Member
  • ****
  • Posts: 916
I've updated the zip - VUMeter1.7.zip

Same version number. I've just reverted to use NowPlaying_GetPeak instead of using the raw PCM data. Which is a change I made close to release. I'd done a crapload of tests in all different modes with test files using GetPeak for the normal data and PCM data when ignore replaygain was ticked and hadn't noticed anything which is how the problem slipped through. Thinking everything was working fine I changed the normal data to use PCM as well and clearly didn't check the results enough.

There is either something wrong with that stream or how I'm handling the data (most likely).

Bee-liever

  • Member
  • Hero Member
  • *****
  • Posts: 3871
  • MB Version: 3.6.9255 P
I've updated the zip - VUMeter1.7.zip
Tried again but same result with 'Ignore ReplayGain'
MusicBee and my library - Making bee-utiful music together

BoringName

  • Sr. Member
  • ****
  • Posts: 916
Tried again but same result with 'Ignore ReplayGain'

Did you update the musicbeebass.dll?

What's your EQ preamp set to?

Is it the same for all tracks and do they have replaygain tags?

edit: also make sure you are on 3.6.9041. Actally 3.6.9040 should work too. actually it wont. Sorry I should have mentioned you will need 9041 now I have updated the link.
Last Edit: October 03, 2024, 01:39:34 AM by BoringName

BoringName

  • Sr. Member
  • ****
  • Posts: 916
or how I'm handling the data (most likely).

It was certainly this. I've updated the zip again so it's back to how it should have been at initial release.... sorry.

The basic gist of it is some of the raw data wasn't getting cleared when new data came in so it was muddying up the peak values.

I'm not sure that was the cause of Bee-liever's issue though.

BoringName

  • Sr. Member
  • ****
  • Posts: 916
Then neither of those is probably getting the background colour of the Track Information panel(s).

From my testing this is where the 3 colours other than black in the dropdown come from in the musicbee skin file.
SkinTrackAndArtist  - Panel.ChildBody.Default.
SkinInputPanel - InputPanel.Default
SkinInputControl - Controls.InputControl.Default

The TrackInfoPanel element in my skin is blank so I guess it's defaulting to the ChildBody colour.

Just testing some of the other options .
SkinInputPanelLabel seems to inherit from InputPanel and nothing I enter seems to override it. I tried - InputPanelLabel.Default, InputPanel.Label.Default, LabelInputPanel.Default. I also tried combinations of lowercase and putting an S on the end of label.

SkinSubPanel inherits from Panel.ChildBody.Default and nothing I tried would work.
SubPanel.ChildBody.Default
SubPanel.Default
Panel.SubPanel.ChildBody.Default
Panel.SubPanel.Default
Panel.Panel.ChildBody.Default
Panel.Panel.Default

I also tried upper and lower case alternatives. Not sure where to go from here.

edit: Just to clarify, I was trying all these things in the skin XML file.
Last Edit: October 03, 2024, 04:31:33 AM by BoringName