getmusicbee.com

MusicBee & Add-Ons => Customizations => Plugins => Topic started by: BoringName on September 07, 2024, 12:56:31 AM

Title: VUMeter Plugin
Post by: BoringName on September 07, 2024, 12:56:31 AM
The VUmeter Plugin is available to download - VUMeter (https://getmusicbee.com/addons/plugins/518/vumeter/)

Installation

Open Musicbee
Hamburger Menu->Edit Preferences->Plugins->Add Plugin

Browse to the zip file and click open

If you already have the 3DBee plugin installed the Add Plugin method will most likely state a file permission error. If this happens just extract the zip file to the Musicbee\plugin folder.


Once installed go to -
Musicbee->View->Arrange Panels

In the available elements panel you should have a vumeter option. Drag this to whatever panel you want to display the VU Meter.

Adjust the panel to suit the size of the selected skin. The aspect ratio of the image is currently locked and based on the width so set the desired width first and then adjust the height so it fits.

Right clicking the VUMeter screen will give you some options.
Skins – Change the current skin
Linear – Checked by default, this is the method used to calculate the position of the needle. You may find some skins are more accurate and/or look better with this unchecked.
Rescan Skins – When you add a new skin, click this for it to appear in the skins menu.

Rolling the mouse wheel over the VUMeter screen allows you to adjust the decibel level (kind of, it’s not overly accurate). While it does alter the range of the needle it also makes it a bit more erratic.

I have included a few sample skins including one made by Hiccup (AcuVU). As the name suggests, Hiccup’s skin is accurate when the Linear option is ticked. I also included a second skin I found (Night Bars) that is accurate. Most of the available skins are not accurate at all, they have been designed for aesthetics not accuracy.

One of you creative folk should make a skin like Night Bars but with Light Sabers.

Currently the plugin supports AIMP skin formats found at the link below, Just click on the image of one you like on this page and it should take you to the post to download the zip file.
https://www.aimp.ru/forum/index.php?topic=52865.0

You need to unzip these into the Plugins\VUMeter\VUSkins folder. The easiest way is to save the zip file into Plugins\VUMeter\VUSkins, right click the file and select “extract all” then click extract. This will create a folder for that skin with the necessary files inside. The Plugin uses the skin folder name as the skin name in the right click menu.
You can delete the zip file after it’s extracted. Make sure to check the Skin.ini file in the skins directory as a lot of them do not have the correct settings, I found the MinLevel setting was quite often incorrect.


As of version 1.2 the plugin supports zipped skins so you can just drop the zip file into Plugins\VUMeter\VUSkins and it will work.

If the “Add Plugin” method worked above and you are using the installed version, the VUSkins folder will most likely be located in a path similar to this
C:\users\username\AppData\Roaming\MusicBee\Plugins\VUMeter\VUSkins

In the portable version they will be located in a folder similar to this
C:\Musicbee\Plugins\VUMeter\VUSkins

Issues

- This doesn’t work with WASAPI exclusive mode. - Fixed from version 1.1 and latest patched version of musicbee

 - There is a resizing issue if you use VUMeter in the floating window panel. The height adjustment seems to be upside down so it limits how big you can make it. I will discuss this with Steven.

- The image files are scaled to fit the window, because of the scaling there can be some anomalies with the image where things might not line up perfectly. Especially if the skin is using low resolution images. If you encounter any slight visual problems, adjusting the size of the panel slightly will probably fix it.

- I had an issue with the Night Bars skin where there was a small notch moving up and down with the bar. When I opened the images in an editor this notch did not exist. I re-saved the files and this made the notch disappear.

 - As previously mentioned. A LOT of the skins are not accurate at all. The Linear option mimics AIMP’s implementation. Unchecking this option provides a logarithmic calculation of the needle position. I probably wasted a lot of time trying to work that out under the impression it was a better way to do it but really, AIMP’s implementation is probably best. The real issue is the skins have not been created to be accurate. I have left the option in place as it does make some skins somewhat more accurate and/or look better.

 If you want accuracy you will need to use AcuVU/Night Bars, create your own or modify an existing skin to make it accurate.  If you just like seeing a needle flick back and forth there is quite a lot of skins available on the page I linked. I might keep a list of accurate skins in the thread as they are found.

- I haven’t tested that many skins so if you find one isn’t working properly, let me know and I will try and get it working correctly. Note – This is in regards to the needle flying out of view or other display issues,  it doesn’t include meters that are not accurate.  Make sure to check the correct settings are in the Skin.ini file before reporting problems.

- If you also use 3DBee you might find sometimes when you resize the Vumeter window that 3DBee will start displaying in the same size window as VUMeter while the rest of the 3DBee panel is frozen. I don’t know what causes this, it must be some cross contamination with OpenGL being used by both plugins, Resizing the 3DBee window or restarting Musicbee should fix it.

I’ll provide some more info later for people that want to create their own skins.
Title: Re: VUMeter Plugin
Post by: aktor on September 07, 2024, 09:24:13 AM
It sure looks nice but it uses way too much CPU power, MB goes from 0,0001  to 25% (peaks at 80°) on Rayzen 5500U. Big problem.
MB is the latest version 3.6.9010.
Windows 11 updated.
Video:  Driver File Version: 31.00.21912.3005 (English)
      Driver Version: 31.0.21912.3005
         DDI Version: 12
      Feature Levels: 12_1,12_0,11_1,11_0,10_1,10_0,9_3,9_2,9_1

Setting frames to 30 is a little bit better.
When using WASAP exclusive as you said  doesn't display vumeter values but it does use CPU power. There is a background process.

Wishlist: Stereo/combined mode option (one or two meters as is common with analog vumeters)
Title: Re: VUMeter Plugin
Post by: sveakul on September 07, 2024, 09:38:50 AM
- This doesn’t work with WASAPI exclusive mode.
BoringName, first congrat's on the release of such a sophisticated plugin for MusicBee!

However, I have to say my excitement was wrecked when I saw the first item on your Issues list.  "Say it ain't so, Joe!"  I use WASAPI exclusive mode "exclusively" with MusicBee because it produces the best sound for my ears, and a music player is all about SOUND first.

Can you give a brief description as to why Wasapi Exclusive CANNOT be used with the plugin, while other audio visualizers like the CEN Spectrum can?  The AIMP player from which the VU meters sprang has no problems using its plugin with Wasapi exclusive output.

Can the plugin be used with ASIO output instead, if W-E is a no-go?

Unless the answer to the second question is "yes,"  I have to reluctantly bow out of its use myself.
Title: Re: VUMeter Plugin
Post by: aktor on September 07, 2024, 10:03:14 AM
I been using WASAPI exclusive for years and now i switch to shared. I can't hear the difference. It is all about the audio  latency and win 10 fixed that. And the latency is all about playing or producing music and not listening.
What is your CPU usage level when using vumeter?
Title: Re: VUMeter Plugin
Post by: sveakul on September 07, 2024, 10:16:11 AM
I been using WASAPI exclusive for years and now i switch to shared. I can't hear the difference. It is all about the audio  latency and win 10 fixed that. And the latency is all about playing or producing music and not listening.
What is your CPU usage level when using vumeter?
What concerns me is that only Wasapi-Exclusive and ASIO completely avoid a trip to the Windows Mixer.  I don't have vumeter installed yet, pending BoringName's response to my last post, but will report on CPU if I do.  Can you post a screenshot of the meter panel you are now using?
Title: Re: VUMeter Plugin
Post by: BoringName on September 07, 2024, 01:06:25 PM
It sure looks nice but it uses way too much CPU power, MB goes from 0,0001  to 25% (peaks at 80°) on Rayzen 5500U. Big problem.
MB is the latest version 3.6.9010.
Windows 11 updated.
Wishlist: Stereo/combined mode option (one or two meters as is common with analog vumeters)

I'm using a Ryzen 5 7600 with windows 10 and I can't get Musicbee to get over 5% CPU even if I scroll the hell out of 3DBee at the same time I'm running a test file for the VUMeter.

I'm also not seeing any "background" usage in exclusive mode.

After fixing a friends laptop this week running windows 11, all I can say is windows 11 can die in a fire and I won't be doing any testing on that OS, Sorry. I can't see any reason at all for the VU plugin to be hitting 25%, that's insane. There is nothing in there that should be that demanding.

As for your wishlist, options to choose which meters to show are planned.
Title: Re: VUMeter Plugin
Post by: BoringName on September 07, 2024, 01:12:34 PM
Can you give a brief description as to why Wasapi Exclusive CANNOT be used with the plugin, while other audio visualizers like the CEN Spectrum can?  

The simple answer is I don't know. I only noticed the issue just just before I was about to post the plugin. I'd already delayed posting the plugin due to all the website shenanigans and didn't want to delay it further.

Rough guess might be because I'm using the Naudio library to query the audio device and maybe that's locked out because Musicbee has exclusive access. I will have to do some research on it.

edit: and to answer your ASIO question, sorry that doesn't work either.
Title: Re: VUMeter Plugin
Post by: aktor on September 07, 2024, 01:18:54 PM
Can you give a brief description as to why Wasapi Exclusive CANNOT be used with the plugin, while other audio visualizers like the CEN Spectrum can? 

The simple answer is I don't know. I only noticed the issue just just before I was about to post the plugin. I'd already delayed posting the plugin due to all the website shenanigans and didn't want to delay it further.

Rough guess might be because I'm using the Naudio library to query the audio device and maybe that's locked out because Musicbee has exclusive access. I will have to do some research on it.



A lot of VST vumeters also didn't work with exclusive mode.
Title: Re: VUMeter Plugin
Post by: aktor on September 07, 2024, 01:31:30 PM
It sure looks nice but it uses way too much CPU power, MB goes from 0,0001  to 25% (peaks at 80°) on Rayzen 5500U. Big problem.
MB is the latest version 3.6.9010.
Windows 11 updated.
Wishlist: Stereo/combined mode option (one or two meters as is common with analog vumeters)

I'm using a Ryzen 5 7600 with windows 10 and I can't get Musicbee to get over 5% CPU even if I scroll the hell out of 3DBee at the same time I'm running a test file for the VUMeter.

I'm also not seeing any "background" usage in exclusive mode.

After fixing a friends laptop this week running windows 11, all I can say is windows 11 can die in a fire and I won't be doing any testing on that OS, Sorry. I can't see any reason at all for the VU plugin to be hitting 25%, that's insane. There is nothing in there that should be that demanding.

As for your wishlist, options to choose which meters to show are planned.

Does the plugin use only CPU or also GPU?
Also about background process.
VU METER  is in pannel
When playing CPU spike
When pausing still CPU spike.
When stopping CPU usage normal.
Placed into Programdfiles86\Musicbee CPU usage drops to 20 % and "background process" goes away.
Title: Re: VUMeter Plugin
Post by: BoringName on September 07, 2024, 11:39:34 PM

Does the plugin use only CPU or also GPU?
Also about background process.
VU METER  is in pannel
When playing CPU spike
When pausing still CPU spike.
When stopping CPU usage normal.
Placed into Programdfiles86\Musicbee CPU usage drops to 20 % and "background process" goes away.

The plugin uses both CPU and GPU. Maybe for some reason on your system it's not using hardware to draw the image and the CPU is doing all the work? Its the only reason I can think of for the CPU to be so high.

The plugin is setup to stop drawing the meter when the music is stopped or paused. It also checks the playstate periodically and if no song is playing it will stop. When you change the skin it will run for a little while just so the new skin is displayed and then it will stop if no song is playing.

I wasn't intending on people playing with the framerate but I did leave the option in the XML for possible future use. Everything is run off the framerate, I needed to limit how often the frame is drawn and also limit how often the audio is sampled. It was just easier to lump it all in together.

Changing the framerate effects how often audio samples are taken and how often it checks the playstate. At 60FPS it's every 30 seconds, 30FPS it's every minute. 30FPS also means it's sampling the peak data half as often so you will notice the needle will not move the same.
Title: Re: VUMeter Plugin
Post by: phred on September 08, 2024, 02:21:41 AM
Using MB 3.6.9014 P.

I installed the plugin by extracting the files and placing them in plugins directory. Positioned the VUMeter panel in the lower right sidebar. Played a track and it works. Very nice. I tested all four skins and they're working as expected.

With MB closed, I downloaded hiccup's DejaVU skins and extracted all six to G:\MusicBee\Plugins\VUMeter\VUSkins. Launched MB and  none of the skins are working (no movement of needles.) Not the four included in the plugin's zip, nor hiccup's six. Exited MB, removed hiccup's skins, launched MB, and the four default skins still do not work. Closed MB, removed all of the plugin's files (.DLLs and skins) and restarted MB, played a track and all seems normal. Exited MB, installed the plugin and it's default four skins, and restarted MB. Played a track and the skins are not working.

I then tried putting the meter as a floating window, saw the issue you mentioned but the needles still didn't move. When I unticked the floater in the panel config and added back to where it was originally (lower right sidebar) MB threw this error:
Code
9/7/2024 9:05:47 PM - 10.0.19045.0 - 3.6.9014.38238P - System.ObjectDisposedException: Cannot access a disposed object.
Object name: '#=ztCnISMIcvHfKsYDzkA=='.
   at System.Windows.Forms.Control.CreateHandle()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.ControlCollection.Add(Control value)
   at System.Windows.Forms.Form.ControlCollection.Add(Control value)
   at #=zkVeMgIxXhhF9BfCrZlpLyXY=.#=zDTHJELQ=(Control #=z7S5NXtI=)
   at #=zvPmJo7aD6sroOzVPSi7fX7s=.#=zDTHJELQ=(Control #=z7S5NXtI=)
   at #=zziapYCHkKIL0B5EplaYmmhGl87_u.#=zu6tTUJjTFwFH(#=ztt6cRBfm7he6 #=zg__Ik9c=, Boolean #=zG5pTnsiSrZv04CgNQw==)
   at #=zziapYCHkKIL0B5EplaYmmhGl87_u.#=zwQkNOsuRu_VO(Boolean #=zcOnfLKIsgZ_uUoto$w==, Boolean #=zqyGiT1lKtqzM)
   at #=zziapYCHkKIL0B5EplaYmmhGl87_u.#=zfCXwpcY2tu4q3AJ_aISLuTyI3lun.#=zOgklf368i2wP.#=zMyQZypCpf82y()
   at #=zziapYCHkKIL0B5EplaYmmhGl87_u.#=zfCXwpcY2tu4q3AJ_aISLuTyI3lun.#=zOgklf368i2wP.#=zU5RWQ17zKxdW(Object #=z0TOEPTs=, EventArgs #=zTAVcBww=)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at #=zkxPwEgpbqlyH5MwA11oLVr4=.OnClick(EventArgs #=zTAVcBww=)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Restarted MB and placed the meter in the lower right sidebar and played a track but again, the meters are not working. The error log shows this:
Code
9/7/2024 9:06:58 PM - 10.0.19045.0 - 3.6.9014.38238P - System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidCastException: Unable to cast object of type 'NAudio.CoreAudioApi.Interfaces.MMDeviceEnumeratorComObject' to type 'CoreAudioApi._MMDeviceEnumerator'.
   at CoreAudioApi.MMDeviceEnumerator..ctor()
   at MusicBeePlugin.audioDevice..ctor()
   at MusicBeePlugin.pluginLogic.startPlugin(MusicBeeApiInterface lnkApi)
   at MusicBeePlugin.Plugin.ReceiveNotification(String sourceFileUrl, NotificationType type)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at #=zb1GcBWSkGklkX$LMig==.#=zqHOVe3GaBxHU()

Note that during all these tests, I tried with "lenear" on and off. And I rescanned the skins each time.

Hope you've got enough information here to provide a fix.

Thanks.
Title: Re: VUMeter Plugin
Post by: BoringName on September 08, 2024, 02:57:04 AM
Hope you've got enough information here to provide a fix.
Thanks.

The meters working and then not working after restarting Musicbee is very odd. What do you have the output set to in Player Settings?

It did just occur to me that I have set the plugin up to query the default audio device and people may have musicbee setup to not use the default audio device set in windows. So that's an issue....

I think I know the problem with the disposed object error.

Not sure about that second error. Looks like it might be an incompatibility between musicbee and the NAudio library I'm using.

I've created another thread asking for some info on what might be a method to get the data from Musicbee instead of the audio device. That should solve your issue and the WASAPI Exclusive problem.
Title: Re: VUMeter Plugin
Post by: BoringName on September 08, 2024, 03:55:15 AM
I was able to replicate the issue with the disposed error. I'm not 100% sure it's my fault. It's an issue with the floating window of some sort.

Steps to reproduce
Put the vumeter into a panel and click apply.
Drag the vumeter from that panel to the floating panel and click apply.
Drag the vumeter to another panel. The vumeter window will now have the panel configuration page as it's background (weird).
Drag the vumeter to any other panel other than the floating panel and it errors at this point. If you drag it back to the floating panel it doesn't error.

But you can drag it between any other panels and it isn't a problem, it's only after you have dragged it to the floating panel and out again.

If you untick the vumeter from the panel it's in, click apply, then drag the vumeter to a new panel and click apply, the error never happens even with the floating panel. It's only when you drag it from one panel to another with the floating panel involved.
Title: Re: VUMeter Plugin
Post by: BoringName on September 08, 2024, 07:36:54 AM
Sorry WASAPI Exclusive users, I don't think there is any way around that problem for the foreseeable future. The musicbee API doesn't have a method for me to get that data from Musicbee and exclusive mode seems to lock me out of the device.

The raw data stream mentioned in the other thread seems to be for C++ code and mine is written in C#. Plus I have no idea how to get volume peak values from raw PCM data. From a quick google something like that without some sample code to go off is probably beyond me.

I've changed it to make sure it uses the output device selected in Musicbee instead of the windows default device. I'll probably push out a new version tomorrow. Not sure it will fix Phred's problem though, that is an odd one.

edit: Steve has just added a new api command for peak values so I should be able to sort out the WASAPI problem.
Title: Re: VUMeter Plugin
Post by: sveakul on September 09, 2024, 08:14:24 AM
edit: Steve has just added a new api command for peak values so I should be able to sort out the WASAPI problem.
You had me scared until this part!!  Looking forward to the Wasaspi-Exclusive version--thank you Steven and BoringName.
Title: Re: VUMeter Plugin
Post by: BoringName on September 09, 2024, 10:38:16 AM
New Version VUMeter1.1.zip (https://www.mediafire.com/file/qcisxr29la4n7lh/VUMeter1.1.zip/file)

Changes
- VUMeter now works in WASAPI Exclusive mode.
- Minimum Musicbee version required  3.6.9018. You can get the patched version here - https://getmusicbee.com/patches/MusicBee36_Patched.zip
- Peak values are now retrieved directly from Musicbee instead of the audio device.
- Removed NAudio library. Naudio.dll can be deleted from the plugin folder once updated. This should fix Phred's problem.
- Peak sampling is no longer linked to the framerate.
- Lowered the playstate check to 15 seconds. This is still linked to framerate. ie) at 30FPS it will check every 30 seconds.

The playstate check is just in place so VUMeter isn't using CPU when nothing is playing.
Title: Re: VUMeter Plugin
Post by: BoringName on September 09, 2024, 10:57:19 AM
I'm going to wait to while just to make sure the AIMP skins are working ok and no major errors reported.

Then moving forward I will look at supporting the LVU Skins (https://www.aimp.ru/forum/index.php?topic=54005.msg331447#msg331447). Supporting those skins should also make it possible for LAMP/LEDS to be added to the AIMP skins as well as the needle.

As far as the Foobar skins go, I've hit a bit of a dead end there. While it shouldn't be difficult to convert them to the AIMP format, they most likely will lose any accuracy and it would be a very manual process. Unless someone comes up with a way to unpack the BIN files (other than the editor extraction method) I don't think I'm going to be able to do much there.

I've stuck the bin files in every online file analyzer I could find, I've de-compiled the DLL and EXE of the plugin but I know nothing about Delphi and don't really know what I'm looking at. It gave me some hints but not enough to get anywhere useful.
Title: Re: VUMeter Plugin
Post by: phred on September 09, 2024, 01:23:48 PM
Thanks BoringName, but there's still no joy here.

Using MB 3.6.9018 and VUMeter 1.1

Set the meter to be in the lower part of the right sidebar and using any skin from the ZIP. Launched a track and there's still no movement of the needles. Tried the other three skins and the same result - no movement. Typically I use WASAPI shared. But also tried exclusive and DirectSound with no difference.

I then put the meters in a floating window. Still no movement. Then I dragged the meters from the floating window to the lower right sidebar and got this error...

Code
MusicBee v3.6.9018.33710P  (Win10.0), 9 Sep 2024 8:14:

System.ObjectDisposedException: Cannot access a disposed object.
Object name: '#=z8$pAChtyNR9TsebcPA=='.
   at System.Windows.Forms.Control.CreateHandle()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.ControlCollection.Add(Control value)
   at System.Windows.Forms.Form.ControlCollection.Add(Control value)
   at #=zlaX4bVxzSN1gY8OokRxL8x0=.#=zIFRO0Jw=(Control #=zu_XQi8k=)
   at #=zWS4fE84iG023zFm61fWoVnk=.#=zIFRO0Jw=(Control #=zu_XQi8k=)
   at #=z09qWh4vN1pxXik4I5_AJNu9yIDR5.#=zh7WzTcSnBG_m(#=zx9khceqPIm5Y #=zp_P$VYw=, Boolean #=ztnynhcXxlmCs5KeFxQ==)
   at #=z09qWh4vN1pxXik4I5_AJNu9yIDR5.#=zm9tdxp6y9smd(Boolean #=zcRWjBoLPvNxR0R7G1w==, Boolean #=zFqDNeoCoUVnu)
   at #=z09qWh4vN1pxXik4I5_AJNu9yIDR5.#=z40T2IVGLSEusAJT4wLxmQyEe9LzA.#=zCUyzp6vHgqYe.#=zyMxeqLuA4ulg()
   at #=z09qWh4vN1pxXik4I5_AJNu9yIDR5.#=z40T2IVGLSEusAJT4wLxmQyEe9LzA.#=zCUyzp6vHgqYe.#=zQvlir00vvCvh(Object #=zTiuP_8k=, EventArgs #=zYI1p7L0=)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at #=z4KQEmLYFKcS8h5G3MN3v5Jc=.OnClick(EventArgs #=zYI1p7L0=)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

I didn't take the time to see if this is the same error as I first reported when moving from a floating window back to a panel within MB, but the behavior is the same.
Title: Re: VUMeter Plugin
Post by: BoringName on September 09, 2024, 02:29:34 PM
I haven't done anything about the floating window problem. I'm not sure if that's my issue or Musicbee.

As for the needle not moving there is only 2 things I can think of and if they don't solve it I'm stumped.
1. Make sure the player volume in Musicbee isn't set to zero.
2. Hover the mouse pointer over the VUMeter window and roll the mouse wheel. It should display a small tooltip showing an adjustment value like 1.00db, 2.00db etc.... make sure this is set to zero.
Title: Re: VUMeter Plugin
Post by: boroda on September 09, 2024, 03:05:01 PM
@BoringName, only hiccup's meters are working for me ("AcuVU", "DejaVU", and "SPL MK2" series). all included meters (except for "AcuVU") are not moving at all (for both linear and logarithmic scales). mouse wheel changes nothing for them.  :-\

btw, could you add the option to always show only 1  meter (average of left and right channels)?
Title: Re: VUMeter Plugin
Post by: aktor on September 09, 2024, 03:33:31 PM
Can confirm Boroda's problem. Ver.1 worked for me. Excessive CPU usage still there.
Title: Re: VUMeter Plugin
Post by: BoringName on September 09, 2024, 04:15:58 PM
Made a silly mistake.  >:(
Updated the original link - VUMeter1.1.zip (https://www.mediafire.com/file/qcisxr29la4n7lh/VUMeter1.1.zip/file)

I haven't changed the version number.

That should fix the issue of the needle not working on some skins.

The excessive CPU usage isn't something I am able to replicate. If you look in task manager, does the GPU usage go up when it's running? I can't get my CPU to go over 5% and the GPU goes up 1-2% when it's running. At this point it's either a windows 11 issue and/or an issue with your particular machine.

edit: The angry emoji doesn't work.  Need to replace the > with >
Title: Re: VUMeter Plugin
Post by: aktor on September 09, 2024, 04:46:58 PM
Now it works.
GPU usage around 5%.
CPU around 20%
When playing stops it goes down gpu 0% and cpu 0%. In task manager.
Tried 3 different cpu monitor winglets. So inconsistent one 5% other 100%.

Users please report your CPU/GPU usage and your Windows version.

Wishlist: Option to hide header bar.
Title: Re: VUMeter Plugin
Post by: phred on September 09, 2024, 05:10:11 PM
The updated 1.1 got the earth needles moving again. With all skins.

At first I tried the two suggestions offered earlier (MB volume not at 100% and mouse wheel over meter window to 0db. Neither changed anything.

Then I saw the message regarding someone making a silly mistake  ;) . Downloaded and overwrote the DLLs and all is well.

When playing CPU runs 30-40% and GPU is fairly steady at 11% on Win10. When playing is stopped, CPU runs 10-15% and GPU at 2-3%.

I would also like an option to hide the VUMeter header bar.
Title: Re: VUMeter Plugin
Post by: hiccup on September 09, 2024, 06:15:54 PM
Thanks again for your fantastic work and effort on this plugin BoringName, it's much appreciated.
Things are working pretty well for these initial versions already.

What is not so great yet is the needle action.
It's quite jerky, and is also seriously 'behind the beat'.

AIMP on top, which is pretty much spot on on the beat:

(https://i.imgur.com/G3gdaV2.gif)



There is also a small graphics flaw when using VU meters that use 'two needles on top of eachother' trickery.
As you can see here, the bottom needle does not get covered by the glass:

(https://i.imgur.com/rkAF8LL.gif)


And:

Would it be possible to have the plugin panel using the colour of the skin for the background instead of being black?

Also notice that the VU meter here has been cut off a couple of pixels on the right side:

(https://i.imgur.com/mIIFGDj.png)


edit:

about CPU load:

AIMP playing without VU meter:
0 – 1%
activating the VU meter makes no difference and doesn't seem to increase load

MusicBee playing without VU meter:
0 – 0.2%
with VUMeter active 0 – 2%

Title: Re: VUMeter Plugin
Post by: Mr. Trev on September 09, 2024, 08:06:09 PM
On my system I get 10%CPU and 1%GPU using VU meter. Without VU meter MB typically draw less than 1%CPU (I typically use WASAPI exclusive, but also tried directsound and got the same load). The needle movement seems pretty slow compared to the clips hiccup posted

For the record, I'm running Win 10 (build 19044.4412) and using a AMD Ryzen 7 6800H CPU
Title: Re: VUMeter Plugin
Post by: aktor on September 09, 2024, 08:17:54 PM
To me it seems way to much resource consuming. 5500U gets 20%.
Title: Re: VUMeter Plugin
Post by: sveakul on September 09, 2024, 08:20:39 PM
btw, could you add the option to always show only 1  meter (average of left and right channels)?
Getting ready to try out the new plugin, but wanted to add my +1 to Boroda's wish above. a lot of us don't have the screen real estate to show double meters.  For L/R displays, bar-type displays are a better choice, like the new javascript Foobar meters below:

(https://i.imgur.com/JjdN9Cp.png)

(https://i.imgur.com/0Gm5xPm.png)
Title: Re: VUMeter Plugin
Post by: BoringName on September 09, 2024, 10:32:17 PM
What is not so great yet is the needle action.
It's quite jerky, and is also seriously 'behind the beat'.
AIMP on top, which is pretty much spot on on the beat:

I've increased the sample rate which should hopefully improve the delay. I had lowered it a bit when I changed to querying musicbee while I was testing out the RMS data. Looking at that GIF, mine also peaks a little higher so increasing the number of samples averaged should improve that and possibly the jerkiness. I'll have a play around.

There is also a small graphics flaw when using VU meters that use 'two needles on top of eachother' trickery.
As you can see here, the bottom needle does not get covered by the glass:

Can you give me links to these two Skins, I can't see them on the AIMP page. I assume you have tried altering the size a little bit, sometimes that fixes visual glitches.

Would it be possible to have the plugin panel using the colour of the skin for the background instead of being black?

I assume you mean make the black part the colour of the Musicbee skin?

You can just resize the panel to remove that black part but I should be able to do that for people that want to create a skin using a background image with transparent areas.

Having an option for displaying a single meter is on the to-do list. I had planned on doing that before moving on to trying to support the LVU skins,  I should have mentioned the previous post.

I will also add an option to remove the header.

I have no idea whats going on with the CPU usage. I can understand it being high on old machines but 20% on a modern machine seems bonkers to me, there is just nothing there that should be chewing through that much CPU. I do have another machine here running an old Xeon with a very low spec GPU, I'll see how it runs on there and it might give me some clues but if that also runs low I really have no way of testing to sort that problem out.

edit: tested it out on my other machine. It's running a Xeon E5-2640 v3. This CPU had it's 10 year anniversary 2 days ago. The CPU doesn't get above 4%, that's with a Geforce GT 1030 graphics card which gets to about 40% but 10% of that seems to be from using VNC to connect to it.

I assume the posters stating the CPU hitting 20% are talking about the Musicbee process specifically and not overall CPU usage?
Title: Re: VUMeter Plugin
Post by: Mr. Trev on September 09, 2024, 11:21:19 PM
My MB process will sit between 9.5-10% with VU running.
Some further playing around I did. I had MB running with music playing. CTRL-ALT-DEL to bring up the task manager and MB completely crashed. If task manager is already running before I start MB I can switch back and forth no prob.
I also discovered that if VU meter is active (I have it currently in the right sidebar) MB will launch with the same 10% CPU load - even before I start playing music.

Could it be a conflict with any other plugins? In your first post you mentioned possible issues with 3Dbee. I did have it installed, but not being used. I uninstalled it just to see if that'd help, but no change
Title: Re: VUMeter Plugin
Post by: BoringName on September 09, 2024, 11:45:12 PM
My MB process will sit between 9.5-10% with VU running.
Some further playing around I did. I had MB running with music playing. CTRL-ALT-DEL to bring up the task manager and MB completely crashed. If task manager is already running before I start MB I can switch back and forth no prob.
I also discovered that if VU meter is active (I have it currently in the right sidebar) MB will launch with the same 10% CPU load - even before I start playing music.

Could it be a conflict with any other plugins? In your first post you mentioned possible issues with 3Dbee. I did have it installed, but not being used. I uninstalled it just to see if that'd help, but no change

Is there any info in the musicbee error log about the crash ? Musicbee menu->Help->Support->View Error Log

If you wait 15-30 seconds after starting Musicbee with no music playing, the CPU usage should drop to zero, assuming no other installed plugins are using CPU.

I think the CPU usage discrepancy is just variations in the hardware being used. Aktor's CPU has a clock frequency nearly half that of mine so that's going to make a difference. Then there is the GPU, what drivers are installed, the operating system. There is just too many variables that are out of my control and without having access to a machine that is suffering from high CPU I can't see how I will be able to sort that one out.
Title: Re: VUMeter Plugin
Post by: Mr. Trev on September 10, 2024, 01:06:42 AM
Just took a look and there is nothing in the log. There was no error or anything - MB just closed (maybe it wasn't really a "crash" - but it consistently happens)

You were right about the CPU eventually dropping to 0

As another experiment I decided to do a clean portable install. Grabbed 3.5p, the 3.5 updates and the 3.6 updates. Installed MB and your plugin. Everything was working sweetly. CPU was under 1%, GPU was ~4%. The VU needles were much faster. As soon as I tried loading my old library, that's where the slowdown began.
Now the library is pretty big (+120K tracks) and lives on a NAS so I don't know if that would affect it.
I'm currently scanning the folders to build a new library and see if the slowdown still occurs - maybe the old library is corrupted in a way your plugin can't handle?
Title: Re: VUMeter Plugin
Post by: boroda on September 10, 2024, 01:23:19 AM
needle is now moving for all skins.

cpu usage is 10-15%, gpu usage is 5% when MB is playing music (win10, core i7-7700HQ @ 2.80GHz).
Title: Re: VUMeter Plugin
Post by: boroda on September 10, 2024, 01:47:33 AM
just an idea: reset meter sensitivity adjustment to 0dB at double-click.
Title: Re: VUMeter Plugin
Post by: aktor on September 10, 2024, 09:30:20 AM
I got this error randomly. Had to hard stop MB. After that all layer settings were screwed.

10/09/2024 10:06:06 - 10.0.22631.0 - 3.6.9018.33710D - System.ObjectDisposedException: Cannot access a disposed object.
Object name: '#=z8$pAChtyNR9TsebcPA=='.
   at System.Windows.Forms.Control.CreateHandle()
   at System.Windows.Forms.Control.get_Handle()
   at System.Windows.Forms.Control.GetSafeHandle(IWin32Window window)
   at System.Windows.Forms.ToolTip.Hide(IWin32Window win)
   at System.Windows.Forms.ToolTip.TimerHandler(Object source, EventArgs args)
   at System.Windows.Forms.Timer.OnTick(EventArgs e)
   at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


WISHLIST: Higher resolution background jpgs. Maybe set a standard. Like if common screen resolution is 1920x1080 then vertical Vu meter's skins jpg should be width x 800 and horizontal 1200 x length. Or in HD res for full screen floating window. Also maybe offering different (HD, SD UHD) versions of skins if available


Title: Re: VUMeter Plugin
Post by: BoringName on September 10, 2024, 10:34:26 AM
I got this error randomly. Had to hard stop MB. After that all layer settings were screwed.

10/09/2024 10:06:06 - 10.0.22631.0 - 3.6.9018.33710D - System.ObjectDisposedException: Cannot access a disposed object.
Object name: '#=z8$pAChtyNR9TsebcPA=='.
   at System.Windows.Forms.Control.CreateHandle()
   at System.Windows.Forms.Control.get_Handle()
   at System.Windows.Forms.Control.GetSafeHandle(IWin32Window window)
   at System.Windows.Forms.ToolTip.Hide(IWin32Window win)
   at System.Windows.Forms.ToolTip.TimerHandler(Object source, EventArgs args)
   at System.Windows.Forms.Timer.OnTick(EventArgs e)
   at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


WISHLIST: Higher resolution background jpgs. Maybe set a standard. Like if common screen resolution is 1920x1080 then vertical Vu meter's skins jpg should be width x 800 and horizontal 1200 x length. Or in HD res for full screen floating window. Also maybe offering different (HD, SD UHD) versions of skins if available


If that error involved using the floating window it's already been mentioned multiple times. I suspect it's an issue with the embedded OpenGL element I use as 3DBee has a similar issue when switching back and forth between the floating window. A temporary solution is to untick whatever element VUMeter is in, click apply and then add it to a different panel and click apply. If you just drag it from one panel to the floating window and to another panel it will error. I don't like that it happens but I really have no idea of the cause at the moment and there is a workaround that works so It's not high on my list.

The images are scaled to whatever size the panel is set to. I think the percentage of users with a full screen floating window for their VU Meter will be exceptionally low. A vast majority are going to have them set to less than 1/4 of the screen size so except for people running 4k monitors, anything over 1/4 of 1920x1080 is a waste really.

That being said, I'm not setting any standards, people can do whatever they want. If you want 4k images for your VU meter, you can do that. Although I expect a full screen floating window of the VU meter isn't going to do your CPU usage any favours.

It will probably be a week or two before I release another version.
Title: Re: VUMeter Plugin
Post by: hiccup on September 10, 2024, 11:04:21 AM
I think the percentage of users with a full screen floating window for their VU Meter will be exceptionally low. A vast majority are going to have them set to less than 1/4 of the screen size so except for people running 4k monitors, anything over 1/4 of 1920x1080 is a waste really.
Not only a waste, but it's even likely that will have negative results.
If you design a VU meter at such high resolutions, chances are very high they will turn out unsharp or unreadable when used at realistic layouts sizes.

Also, if someone has complaints about a VU meter not looking good at very large sizes, he should take it up with the designer of that VU meter skin.
Or design his own VU meters.
It's in no way a concern of the plugin.
Title: Re: VUMeter Plugin
Post by: aktor on September 10, 2024, 01:30:21 PM
As for CPU usage. I tried these two VST VU meter plugins for the sake of comparing.
https://klanghelm.com/contents/products/VUMT
https://www.tbproaudio.de/products/mvmeter2
The increase in CPU usage is negligible, under 2%.

Title: Re: VUMeter Plugin
Post by: BoringName on September 11, 2024, 12:01:21 AM
There is also a small graphics flaw when using VU meters that use 'two needles on top of eachother' trickery.
As you can see here, the bottom needle does not get covered by the glass:
(https://i.imgur.com/rkAF8LL.gif)

I've found the problem with these types of meters. I was drawing the left background,  left needle, left foreground then the same order for the right meter. With these types of skins the right meter needle is overlapping some of the left meter and vice versa so I need to change it to draw left background, right background, left needle, right needle, left foreground, right foreground.

Also notice that the VU meter here has been cut off a couple of pixels on the right side:

(https://i.imgur.com/mIIFGDj.png)


This meter is displaying correctly for me.
Title: Re: VUMeter Plugin
Post by: BoringName on September 11, 2024, 12:28:43 PM
It will probably be a week or two before I release another version.

I lied.

New version - VUMeter1.2.zip (https://www.mediafire.com/file/s1plvcxrnsm5o3b/VUMeter1.2.zip/file)

Changes
- New option to hide the header. Restart of MB required and you might need to resize the window for it to take effect.
- New option to set the background colour to match the current MB skin colour. Note - this can make it hard to find the edge for resizing.
- New option to display a single meter. In this mode the left and right channels are averaged. Not suitable for merged skins (where the 2 meters are made to look like 1).
- Fixed display issues for merged skins.
- Zip files now supported. If you have a folder and a zip file with the same name in the skins folder it will read from the zip file. It will also be listed twice on the context menu. Folder skins are listed first and then zipped skins. Probably better to just run with one or the other, not a mix of both. If you are re-zipping any of the skins make sure you zip the files inside the folder and not the folder itself. ie) The zip file should only contain image files and an INI file, not a folder.
- Better handling of skin file errors. If a skin can't be loaded it will try and load the 1st skin available, if that also fails, the panel will be blank.
Title: Re: VUMeter Plugin
Post by: aktor on September 11, 2024, 01:33:42 PM
Regarding CPU issues. I may have mad a mistake. I recently switched to win11 and didn't notice that in task manager info under processes (25%) for some reason doesn't matched information in details (5%). So
that you know.
Title: Re: VUMeter Plugin
Post by: sveakul on September 11, 2024, 08:01:57 PM
@BoringName:  Thanks for new version 1.2!

Bug: trying to load supplied skins from zip files results in this message "Error loading skin attempting reset" with "OK" superimposed:

(https://i.imgur.com/NXk7K2k.png)

Extracting skins to folders first like 1.1 works fine.

VU window is positioned below the Lyrics panel.  MusicBee 3.6.9018 P, Windows 11 x64.

Edit:  also, can the single meter option be made so that it doesn't need to fit in a double-sized window compared to the dual option?  Something seems backwards there!

(https://i.imgur.com/1e8ACO7.png)
(https://i.imgur.com/s1S5BSD.png)
Title: Re: VUMeter Plugin
Post by: boroda on September 11, 2024, 09:18:05 PM
- Zip files now supported. If you have a folder and a zip file with the same name in the skins folder it will read from the zip file. It will also be listed twice on the context menu. Folder skins are listed first and

It's great, but wouldn't it be better to add an option to the plugin to import zipped meters (and unpack them on importing) manually? of course, to "<MB AppData>\VUMeter\VUSkins" folder (additional support for this folder should be implemented in this case), not to <MB Program>\Plugins\VUMeter\VUSkins" folder.
Title: Re: VUMeter Plugin
Post by: boroda on September 11, 2024, 09:49:47 PM
using the new plugin version CPU usage is 8-9% and GPU usage is ~2%. not sure if BoringName has done something for this. but it's a single (average) meter.
Title: Re: VUMeter Plugin
Post by: BoringName on September 11, 2024, 10:14:30 PM
@BoringName:  Thanks for new version 1.2!

Bug: trying to load supplied skins from zip files results in this message "Error loading skin attempting reset" with "OK" superimposed:


I've updated the link with a fix so just download the same link again. I forgot to account for the portable version when searching for zip files.

Strange how that popup message box looks all distorted. I probably need to give it a fixed font size to stop that.

Edit:  also, can the single meter option be made so that it doesn't need to fit in a double-sized window compared to the dual option?  Something seems backwards there!

It's set to fill the size of the panel. If you want it smaller you can just resize it. If I set it to half the panel, the other half will be blank. I can't resize the panels programatically.

It's great, but wouldn't it be better to add an option to the plugin to import zipped meters (and unpack them on importing) manually?

I'll let you and Hiccup have a discussion on whether they should be unpacked :)

Do you mean have a button that opens a file dialog where the user can select a downloaded zip and it will import it into the VUSkins folder, so the user doesn't have to try and find the folder themselves?

It's not a bad idea but with the differences between portable and installed and issues with file permissions associated with the installed versions, which I think you alluded to with the additional support comment, I don't think I could be arsed. I can imagine scenarios where users dump some in the Musicbee\plugin folder and import others and I don't like the idea of moving users files around to consolidate them on startup (if required).

using the new plugin version CPU usage is 8-9% and GPU usage is ~2%. not sure if BoringName has done something for this. but it's a single (average) meter.

Less calculations need to be made but I wouldn't have thought it would make much difference.

Regarding CPU issues. I may have mad a mistake. I recently switched to win11 and didn't notice that in task manager info under processes (25%) for some reason doesn't matched information in details (5%). So
that you know.

Not surprised, only had my first experience with 11 fixing a friends laptop last week and I hated how hard it seemed to find basic info. They have just moved things around for the sake of it to justify a new version number. I usually skip every second version anyway so I'll wait for 12 although I expect that will be worse than 11 with AI rubbish.

edit: Also just in case anyone is worried about unnecessary writes on their SSDs. When loading zipped skins I don't unzip them to a temp folder to load them and then delete the temp folder when I'm done. I read the files straight from the zip file into memory, no SSD writes required.
Title: Re: VUMeter Plugin
Post by: hiccup on September 11, 2024, 10:22:17 PM
I lied.
So did Katie (https://www.youtube.com/watch?v=7qg3UHoksuw&list=PLJUP6vuIPrIl6YGnVx5WH5xcOn51-BWVm&index=5), and same as with you, we're much the better of it.
So please tell us more sweet little lies. (https://www.youtube.com/watch?v=uCGD9dT12C0&pp=ygUldGVsbCBtZSBsaWVzIHRhbGwgbWUgc3dlZXQgbGl0bGUgbGllcw%3D%3D)
Title: Re: VUMeter Plugin
Post by: BoringName on September 11, 2024, 10:35:04 PM
So did Katie (https://www.youtube.com/watch?v=7qg3UHoksuw&list=PLJUP6vuIPrIl6YGnVx5WH5xcOn51-BWVm&index=5), and we're the better of it.
So please tell us more sweet little lies. (https://www.youtube.com/watch?v=uCGD9dT12C0&pp=ygUldGVsbCBtZSBsaWVzIHRhbGwgbWUgc3dlZXQgbGl0bGUgbGllcw%3D%3D)

I was visualizing this (https://www.youtube.com/watch?v=_wk-jT9rn-8) when I typed that but Steely Dan works too.
Title: Re: VUMeter Plugin
Post by: boroda on September 11, 2024, 10:49:02 PM
It's great, but wouldn't it be better to add an option to the plugin to import zipped meters (and unpack them on importing) manually?

Do you mean have a button that opens a file dialog where the user can select a downloaded zip and it will import it into the VUSkins folder, so the user doesn't have to try and find the folder themselves?

yes.

It's not a bad idea but with the differences between portable and installed and issues with file permissions associated with the installed versions, which I think you alluded to with the additional support comment, I don't think I could be arsed. I can imagine scenarios where users dump some in the Musicbee\plugin folder and import others and I don't like the idea of moving users files around to consolidate them on startup (if required).

of course, it's up to you, and this is not some problem personally for me, but i'm just using "Plugins\ASR Presets" folder as some "predefined presets repository" and "<MB AppData>\ASR Presets" as "presets working folder" in AT&RT plugin to avoid any duplication. all predefined prests are copied by plugin from the 1st folder to the 2nd one on clicking "install all" button, and additional presets can be installed manually (from any folder) by clicking "import" button.

Not surprised, only had my first experience with 11 fixing a friends laptop last week and I hated how hard it seemed to find basic info. They have just moved things around for the sake of it to justify a new version number. I usually skip every second version anyway so I'll wait for 12 although I expect that will be worse than 11 with AI rubbish.

the only good news for me is that all AI rubbish won't work (and don't work in win11, which i don't use for other reasons) in russia, anyway.
Title: Re: VUMeter Plugin
Post by: hiccup on September 11, 2024, 10:52:01 PM
…but Steely Dan works too.
It should. It's probably the greatest pop/jazz band/duo ever.

And,  lying (https://www.youtube.com/watch?v=GhKMVlHz9FQ) is such an underestimated craft.
Title: Re: VUMeter Plugin
Post by: hiccup on September 11, 2024, 11:48:38 PM
New version…
Damn!
Things are looking very good now.

This has certainly been worth the 7 year wait.
After me now enjoying where we're at, I'll maybe put on my critical-hat later to see if I'm able to find some more possible improvements.
But not now. It's just great!
Title: Re: VUMeter Plugin
Post by: sveakul on September 12, 2024, 12:43:27 AM
It's set to fill the size of the panel. If you want it smaller you can just resize it. If I set it to half the panel, the other half will be blank. I can't resize the panels programatically.
But only the dual meter version "fills the size of the panel" using correct aspect ratio, as you can see below.  With the panel size unchanged, selecting "single meter" blows up the size past what the panel size is still set at--in other words, it doesn't use the panel space aspect ratio.  I can't fit the whole meter in the space then without enlarging the panel, which I don't have the space on my skin to do--the single meter image itself is not resizable.  Surely that can be fixed?

Add dual meter to panel space:

(https://i.imgur.com/n0IDNpy.png)

Change to "Single Meter" in menu:

(https://i.imgur.com/I6VhIak.png)
Title: Re: VUMeter Plugin
Post by: phred on September 12, 2024, 02:20:58 AM
There's a graphical glitch in hiccup's DejaVU Compact skin. He's of the opinion that it's a plugin issue and not a skin issue. But I don't see this on any other skin. The glitch extends beyond the frame of the meter and moves with the needle.
Original post to hiccup is here: https://getmusicbee.com/forum/index.php?topic=41696.msg227410#msg227410
(https://i.imgur.com/aXPkH5H.jpeg)
Title: Re: VUMeter Plugin
Post by: hiccup on September 12, 2024, 02:52:38 AM
Dadgummit
Needle action now seems so good that I don't think I care much about having any sort of peak indicators/lamps/LEDs anymore.
While it may be visually intriguing, and it could be some 'fun' having it, it's probably not much of a concrete added value, and perhaps not worth a lot of time or effort trying to get to work. Just saying.
Title: Re: VUMeter Plugin
Post by: hiccup on September 12, 2024, 03:49:27 AM
There's a graphical glitch in hiccup's DejaVU Compact skin. He's of the opinion that it's a plugin issue and not a skin issue. But I don't see this on any other skin. The glitch extends beyond the frame of the meter and moves with the needle.
Original post to hiccup is here: https://getmusicbee.com/forum/index.php?topic=41696.msg227410#msg227410
(https://i.imgur.com/aXPkH5H.jpeg)
I am now having some doubt if this may indeed be a flaw in my VU meter and not something caused by the plugin.
I was probably wrong in thinking that it was caused by the plugin.
So thanks for reporting, and I will look into it a bit better later.
After having enjoyed the bliss and glory of finally having a VU meter to begin with some more.
Title: Re: VUMeter Plugin
Post by: BoringName on September 12, 2024, 04:01:47 AM
Surely that can be fixed?

Two ways to fix it.
1. Unlock the aspect ratio so it becomes a squished mess.
2. Add a margin and justify options so you can centre it or display it on either side if the panel.
(https://i.imgur.com/45haDli.png)

If use skin colour is selected those black parts would be the colour of the current skin.

I don't want to do option 1 so option 2 is what I will implement at some point, unless someone can think of a better idea.

Dadgummit
Needle action now seems so good

That's good to know, I actually forgot to adjust the number of samples to average like I was going to do. All I did was adjust the sample interval back down to what I had initially before I was mucking around with the RMS values from the API peak values command.
Title: Re: VUMeter Plugin
Post by: BoringName on September 12, 2024, 04:13:45 AM
I am now having some doubt if this may indeed be a flaw in my VU meter and not something caused by the plugin.

Technically it's not a glitch. The needle has been rotated to an angle that places it outside the bounds of the background image and foreground image. This has to occur for some skins to work properly. The issue is the panel hasn't been resized vertically to the size of the skin so it's showing the out of bounds part of the needle. The easy solution is to just drag the top of the panel down until the black area is gone.

I guess if I'm going to be adding options for margins to the sides of the meter I should also draw over the empty parts at the top so people can have some blank space at the top of the meter to make their layouts look more aesthetic.

edit: I did notice there is a visual issue if you make it quite big, A vertical line where both halves join. Not sure if that's a problem with OpenGL or if I'm out by one pixel somewhere. Due to the images getting scaled it can introduce some artifacts, especially on diagonal/curved edges. Straight edges are usually ok though, I'll check it out.
Title: Re: VUMeter Plugin
Post by: hiccup on September 12, 2024, 04:39:50 AM
Technically it's not a glitch. The needle has been rotated to an angle that places it outside the bounds of the background image and foreground image. This has to occur for some skins to work properly.
I just checked, and all the images (background, needle, glass) in this VU meter skin of mine have the exact same size properties. (the height being 291px)
So I was assuming that would also be the restricted displayed playground. (as AIMP also behaves)
It's kind of interesting that your plugin also displays what happens beyond that fixed area, but it probably shouldn't?
Are you aware of any VU meter skin that requires this?
Title: Re: VUMeter Plugin
Post by: BoringName on September 12, 2024, 05:08:38 AM
It's kind of interesting that your plugin also displays what happens beyond that fixed area, but it probably shouldn't?

They all do it, the difference is they create the panel for them to be displayed in and draw the meter inside it. Anything that goes outside the bounds of the image isn't seen by the user. Because the panel it's drawn in is always the correct size.

With musicbee I insert an OpenGL element into the panel which can be made to any size by the user. So my draw space is the whole panel and I don't control it's size. When I draw the meter I have the aspect locked down, so I draw it to the width of the panel and the height is determined by the aspect ratio of the original image. If the panel height is greater than the aspect of the image, it won't fill the whole panel which exposes elements that go out of bounds.

If I didn't lock the aspect ratio, the meter would always fill the panel and you would never see out of bounds elements but then the user has to muck around trying to resize the panel to get the aspect right. I thought maintaining the aspect ratio was more important than some empty space in the draw space that I thought most people would just resize to make go away.

It shouldn't be a problem, I can just add a final step to draw over any empty space at the top of the panel with either black or the current MB skin colour and that will hide any out of bounds objects.

I figured out the problem with the vertical line when merged skins are set to a large size, it will be fixed in the next version.
Title: Re: VUMeter Plugin
Post by: sveakul on September 12, 2024, 07:50:19 AM
Surely that can be fixed?

Two ways to fix it.
1. Unlock the aspect ratio so it becomes a squished mess.
2. Add a margin and justify options so you can centre it or display it on either side if the panel.
(https://i.imgur.com/45haDli.png)

If use skin colour is selected those black parts would be the colour of the current skin.

I don't want to do option 1 so option 2 is what I will implement at some point, unless someone can think of a better idea.
My impression was that conforming the single meter to the existing window while maintaining the aspect ratio of the meter interface wouldn't turn it into a squished mess, but that the meter itself would be reduced in size proportionately accurate to itself--naturally resulting in black parts on either the top/bottom or sides of the meter, depending on its original dimensions, just like album art is on most player panels..  It doesn't need to FILL the space, just fit inside it and be "centered" therein, naturally resulting in some empty "black" space either on the sides or its top/bottom depending on its original dimensions.  I think this is what you have illustrated and are proposing in fix #2--if so, I'm completely on board! :)
Title: Re: VUMeter Plugin
Post by: sveakul on September 12, 2024, 09:13:05 AM
Needle action now seems so good that I don't think I care much about having any sort of peak indicators/lamps/LEDs anymore.
While it may be visually intriguing, and it could be some 'fun' having it, it's probably not much of a concrete added value, and perhaps not worth a lot of time or effort trying to get to work. Just saying.
Three of the LVU-type LED meters;  personally I hope BoringName can add that format!  Presented larger than need be, these resize proportionally to fit whatever the AIMP Visualization window is dragged to by the user:

(https://i.imgur.com/9L0HnrU.gif)
(https://i.imgur.com/JVtXgqn.gif)
(https://i.imgur.com/lUGyzTZ.gif)
Title: Re: VUMeter Plugin
Post by: phred on September 12, 2024, 12:55:06 PM
Technically it's not a glitch. The needle has been rotated to an angle that places it outside the bounds of the background image and foreground image. This has to occur for some skins to work properly. The issue is the panel hasn't been resized vertically to the size of the skin so it's showing the out of bounds part of the needle. The easy solution is to just drag the top of the panel down until the black area is gone.
Yes, reducing the height of the window does make the referenced part of the needle not display.
Title: Re: VUMeter Plugin
Post by: BoringName on September 13, 2024, 03:52:37 AM
New Version - VUMeter1.3.zip (https://www.mediafire.com/file/j8zufav2etc8ukr/VUMeter1.3.zip/file)

Changes
- New option to lock the aspect ratio to the Y axis.
- Fixed graphical issue with merged skins where a dividing line could be seen when it was set to a large size.

I had to alter a fair bit more code than I expected to implement the Y axis option, everything seems to be working ok so hopefully I haven't broken anything. Glad I did it as it does make configuring taller skins easier eg) Night Bars.

There is still a graphical glitch that seems to be more prevalent if you lock the Y axis, when you widen a skin to more than half the screen, some of the meter or even all of it may get covered in black (even with the use skin colour option ticked). Restarting musicbee or adjusting the height (even just a tiny bit) make it appear again. I don't have a solution for it, I think it may have something do with the crazy control hierarchy going on to get OpenGL into Musicbee.

It only seems to happen when resizing to quite large sizes so I don't think it's a huge issue.

I haven't done anything about the needle out of bounds issue yet.

Barring the need to fix any serious errors I will slow down with the updates for a while. Really this time....
Title: Re: VUMeter Plugin
Post by: sveakul on September 13, 2024, 07:37:32 AM
Thank you very much for the 1.3 version so soon!!

The addition of the lock aspect ratio to Y axis option has made the difference in single meter display mode being useable at all in smaller spaces.  For example, here is the h&m meter as a single but minus the Y-lock, compared to using the Y-lock, both in the same panel space:

(https://i.imgur.com/hlx3ek6.png) (https://i.imgur.com/Y8dl6AC.png)

The only disappointment is that with meters who use a linear format, while the new option will allow its use as "single meter", a slice of the right end of the meter is always cut off; this is not related to the issue making the panel width half the screen as the panel is the same size as the above two examples:
Edit: Just dawned on me, the plugin is just making a clean half/half slice of dual meters that are joined together by design in the first place, so this is no bug, nothing to adjust!!

(https://i.imgur.com/jeiwRKZ.png)

Thanks again for the new option!  The Phred on the Lookout skin metered up:

(https://i.imgur.com/CGKIHUM.png)
Title: Re: VUMeter Plugin
Post by: BoringName on September 13, 2024, 09:38:09 AM
Edit: Just dawned on me, the plugin is just making a clean half/half slice of dual meters that are joined together by design in the first place, so this is no bug, nothing to adjust!!

Not going to lie, I gave out a sigh when I read your initial post, I was on the way out to dinner and fully planned to give a detailed explanation of how it all worked when I got home. Happy I don't have to now :)

I did mention the single meter option isn't suitable for "merged skins" in the 1.2 change notes. There is probably a better way to describe them but that's all I can come up with for now. Suggestions welcome.

This will probably come back to bite me later but the plugin is could be made 3D capable, so theoretically it could support meters that operate on the Z axis. ie) get closer and further away instead of just rotating left and right/up and down.

edit: I thought I better clarify "is" vs "could be made".
Title: Re: VUMeter Plugin
Post by: hiccup on September 13, 2024, 10:23:10 AM
I did mention the single meter option isn't suitable for "merged skins" in the 1.2 change notes. There is probably a better way to describe them but that's all I can come up with for now. Suggestions welcome.

Perhaps:
- mono image meter (a single image meter. when used for stereo, the left and right meter will look identical)
- stereo image meter (two separate images for the left and right channel)
- combined stereo image meter (two images that need to be displayed together to show the complete stereo meter)

---

The only disappointment is that with meters who use a linear format, while the new option will allow its use as "single meter", a slice of the right end of the meter is always cut off
Technically it is not cutting off anything. It is simply showing the left meter only.
And the left meter (from your screenshot) only has a border at the left, and the right meter only has a border on the right, (well, and top and bottom)

So the 'single meter' option will usually only work well with 'mono image meters'.

Quote
The Phred on the Lookout skin metered up:
You may like (the new) 'DejaVU Compact Phred on the Lookout' meter?
Title: Re: VUMeter Plugin
Post by: sveakul on September 14, 2024, 12:34:42 AM
You may like (the new) 'DejaVU Compact Phred on the Lookout' meter?

Yes, looks great on my Lyrics panel, thanks.

(https://i.imgur.com/WzEKzcv.png)
Title: Re: VUMeter Plugin
Post by: hiccup on September 14, 2024, 07:07:39 AM
Yes, looks great on my Lyrics panel, thanks.
Good to hear/see.

What's your opinion on dB accuracy for these kind of VU meters?
Would you prefer total accuracy (such as with AcuVU) or do you think bending the truth a little bit is OK?
(it makes it easier to chose values that look good, and having them aligned and filling the scale in a visually pleasant way)
Title: Re: VUMeter Plugin
Post by: hiccup on September 14, 2024, 10:21:53 AM
@BoringName
About the 'linear' option:
Is this (still) a useful additional setting to have?
I checked several AIMP meters, and not one shows any improvement when it's unchecked.
Contrary to that: they all work worse, the needle being glued to the minimum position a lot of the time)
If you agree, perhaps just get rid of it to keep things lean and mean?
(it seems to me that the scrollwheel function to in/decrease levels is more than adequate to make some adjustments when needed)

Also:
Am I wrong in thinking that MobilityNegative and MobilityPositive don't have any effect anymore?
Title: Re: VUMeter Plugin
Post by: BoringName on September 14, 2024, 12:36:50 PM
About the 'linear' option:
Is this (still) a useful additional setting to have?

Probably not. I wasted a lot of time on it thinking AIMP's implementation had problems when it had nothing to do with AIMP,  it was the skins themselves. /shakes fist.

I don't like it when people take options out of software but in this case I think it just confuses things and doesn't really help. And as you pointed out, the DB adjustment is available. So I will take it out of the next version.

Am I wrong in thinking that MobilityNegative and MobilityPositive don't have any effect anymore?

I haven't implemented those settings. I assume they are meant to adjust the needle movement speed but I don't think I can implement that with how the plugin works. At the moment any method I can think of would probably make the meter less accurate or out of sync.

I haven't done a lot of testing yet but it seems I have the LVU skins working so that will be in the next version.

The dbs field in the settings.ini file specifies how many pixels of the needle/LED image to draw based on the current decibel level |decibels; pixels|. Can you spot the odd one out?
Code
dbs=8;100|7;120|6;140|5;160|4;180|3;200|2;220|1;240|0;260|-1;280|-2;300|-3;320|-4;340|-5;360|-6;380|-7;400|-8;420|-9;440|-10;460|-11;480|-12;5000|-13;520|-14;540|-15;560|-16;580|-17;600|-18;620|-19;640|-20;660|-21;680|-22;700

The first vertical LVU skin I grabbed to test and it was setup wrong!

Title: Re: VUMeter Plugin
Post by: phred on September 14, 2024, 01:11:19 PM
@BoringName
About the 'linear' option:
Is this (still) a useful additional setting to have?
NO!!! Please do not remove it. Or not until I've done some more testing. A few days ago I found the needles showing a very low level. I enabled linear and they popped right up. Playing around with it a little bit right now, I found one skin that when linear is disabled the right meter doesn't move at all (DejaVU Compact Phred on the Outlook. I will shortly file a report for hiccup on his skins thread.) And some of his others the left meter doesn't move. I need some time to go through all the skins and take notes before I file a report. For the time being, I can report that all four original skins do not move  when linear is disabled.

I'll conduct a full test of all of them in a couple of hours and report back.
Title: Re: VUMeter Plugin
Post by: hiccup on September 14, 2024, 03:20:22 PM
@BoringName
About the 'linear' option:
Is this (still) a useful additional setting to have?
NO!!! Please do not remove it…
… I found one skin that when linear is disabled the right meter doesn't move at all (DejaVU Compact Phred on the Outlook.
… And some of his others the left meter doesn't move.
Those are weird bugs, and obviously not something that should be related to- or possibly fixed by using either linear or logarithmic curves.
Good luck testing. (make sure that you have a clean VUMeter 1.3 install without any leftovers from previous testing?)

If you do find specific VUMeter skins that indeed have some deadened needle action that is brought to live with linear disabled, share which one(s)?
Title: Re: VUMeter Plugin
Post by: hiccup on September 14, 2024, 03:30:13 PM
I haven't implemented those settings. I assume they are meant to adjust the needle movement speed but I don't think I can implement that with how the plugin works. At the moment any method I can think of would probably make the meter less accurate or out of sync.
You could probably describe it as some attack/decay setting for the needle action.
MobilityNegative is affecting needle movement in the downward direction, MobilityPositive is for the upward direction.
It affects the impulse/speed of the needle.

It would be nice to have. An example, on top AIMP, bottom MusicBee.
The AIMP needle is working much nicer (and more realistic) for this VU meter skin.
(but I can completely understand it if it's something that just cannot be ported to your plugin)

(https://i.imgur.com/DYAYdJU.gif)

Such a setting would also be useful if you indeed succeed in getting peak lights to work.
Then you could have the needle acting more relaxed and less nervous, as an 'average loudness' indicator', and the lamps as fast peak indicators.

(PS: as you can see, VUMeter MB is still a bit 'behind the beat'...)
I asked ChatGPT about the IPS for my (budget) CPU, and it said: "132 billion instructions per second is a reasonable estimate"
So that shouldn't be the bottleneck here? ;-)
Title: Re: VUMeter Plugin
Post by: phred on September 14, 2024, 04:39:33 PM
I'll conduct a full test of all of them in a couple of hours and report back.
The test was done immediately following a Windows 10 reboot and with MB 3.6.9018 P.

I tested all 22 (currently) available skins and there's some weird stuff going on.

Overall, with all skins, there is more "movement" of the needles/bars with linear on. I don't know how else to describe it.

Two of the original skins (packaged with the plugin) have issues. M4762 and Hartmann & Braun. With linear enabled, all is well. With linear disabled, there is no needle movement.

Four of hiccup's skins displayed issues:
In the DejaVU Compact series, Elemental, MusicBee3, and Phred on the Lookout are fine with linear enabled. When disabled, there is no movement of the right needle.

In DejaVU Compact, with linear disabled the left needle does not move. Linear enabled is fine.

Let me know if more information is needed in order to fix this. Or, I can just leave liner enabled. As long as it isn't removed.

Example...
(https://i.imgur.com/gbms1Lc.jpeg)
Title: Re: VUMeter Plugin
Post by: hiccup on September 14, 2024, 05:16:00 PM
I tested all 22 (currently) available skins and there's some weird stuff going on.
Only 22?
https://www.aimp.ru/forum/index.php?topic=52865.0

Quote
Two of the original skins (packaged with the plugin) have issues…
Four of hiccup's skins displayed issues…
That's really weird.
Both BoringName and I have been doing some serious testing/developing this stuff for the last couple of weeks, and it looks like neither of us has experienced this kind of bugs. (yet?)

I'm sure you are not on drugs or imagining things, so I am wondering if there might be something specific going on on your system that might be interfering, and causing these issues?
Antivirus software, audio drivers, 3rd party audio software, some particular customised audio settings?
Anything?

And just to be very sure:
You are using a squeaky clean portable MusicBee and VUMeter install for testing this?

Title: Re: VUMeter Plugin
Post by: phred on September 14, 2024, 05:44:20 PM
I'm sure you are not on drugs or imagining things, so I am wondering if there might be something specific going on on your system that might be interfering, and causing these issues?
This issue may -cause- me to seek out some medication.

Quote
Antivirus software, audio drivers, 3rd party audio software, some particular customised audio settings?
Anything?
AV is not a problem as they were working a couple of days ago. Drivers haven't changed, and there's no 3rd party audio software.

Quote
And just to be very sure:
You are using a squeaky clean portable MusicBee and VUMeter install for testing this?
No, not a -new- portable install, but I will do that after I boot into safe mode and test again. But that won't be for a while.
Title: Re: VUMeter Plugin
Post by: sveakul on September 14, 2024, 06:03:07 PM
Yes, looks great on my Lyrics panel, thanks.
Good to hear/see.

What's your opinion on dB accuracy for these kind of VU meters?
Would you prefer total accuracy (such as with AcuVU) or do you think bending the truth a little bit is OK?
(it makes it easier to chose values that look good, and having them aligned and filling the scale in a visually pleasant way)
I prefer total accuracy, unless it results in a near "dead" meter or would take an inordinate amount of time to code as opposed to being "pretty much accurate."
Title: Re: VUMeter Plugin
Post by: sveakul on September 14, 2024, 06:24:04 PM
@BoringName
About the 'linear' option:
Is this (still) a useful additional setting to have?
NO!!! Please do not remove it. Or not until I've done some more testing. A few days ago I found the needles showing a very low level. I enabled linear and they popped right up. Playing around with it a little bit right now, I found one skin that when linear is disabled the right meter doesn't move at all (DejaVU Compact Phred on the Outlook.

I'll conduct a full test of all of them in a couple of hours and report back.
Removing options = bad.  I agree with phred, please do not remove it.  I noticed the dead right meter issue on the skin he mentioned.  In general with the few skins I have ( the hiccup group) enabling it/disabling all produce a noticeable effect, usually disabled shows a more "agitated" movement.  Disabling it in the hartmann & braun meter results in ZERO movement.  Bottom line = please keep this option, what's available out there (AIMP etc) just is not standardized enough to support the removal of something that can positively affect performance levels.
Title: Re: VUMeter Plugin
Post by: hiccup on September 14, 2024, 06:25:15 PM
I prefer total accuracy, unless it results in a near "dead" meter or would take an inordinate amount of time to code as opposed to being "pretty much accurate."
I understand. But to be clear about what I am talking about regarding my own VU meter skins here, it's strictly about the cosmetics.

The functionality of the needle action coming to live as soon as possible (around -60 dB) and the needle pointing exactly at 0 dB when at maximum is not a point of discussion.
I'm talking about the visual aspect and the numbers being printed on the scale.
For example, my AcuVU skin is completely accurate in both aspects.
But my DajaVU Compact skin has taken some liberties.
The dB digits on top in this example would be factual correct, but the arrangement of the values under it (as they are now) look nicer. (in my opinion)

(https://i.imgur.com/LxGMD2t.png)

I am guessing not many users will care about this at all, and I don't think I care too much about it myself, but it is something that has been on my mind making these kind of decisions.
(it's much easier to create a VU meter by simply grabbing a photo of an existing VU meter from the internet and getting the needles to work then creating one from scratch)

Also, many very nice VU meter skins are actually ampere meters, voltage meters,  or even altitude, oil pressure or speedometers.
So perhaps I worry too much? ;-)
Title: Re: VUMeter Plugin
Post by: sveakul on September 14, 2024, 06:34:28 PM
That's really weird.
Both BoringName and I have been doing some serious testing/developing this stuff for the last couple of weeks, and it looks like neither of us has experienced this kind of bugs.
I'm sure you are not on drugs or imagining things, so I am wondering if there might be something specific going on on your system that might be interfering, and causing these issues?
You mean, you DON'T see the dead right meter on DejaVu Compact P.O.T.L. when linear is off??  Or the dead LEFT meter on the regular DejaVu Compact?  Or the zero movement on the  hartmann & braun?  It's real, believe me.  BTW, my output is Wasapi-Exclusive as always using Windows 11 x64.
Title: Re: VUMeter Plugin
Post by: hiccup on September 14, 2024, 06:46:16 PM
You mean, you DON'T see the dead right meter on DejaVu Compact P.O.T.L. when linear is off??
I do, and that's exactly what I reported to BoringName earlier in this thread.
And it was one of the two reasons for me suggesting to get rid of the option to be able to disable linear and activate a logarithmic curve.
The other being me not having seen one existing VU meter that had better needle action with linear off compared to linear on.

Apart from weird bugs about stuck left or right needles being reported.
Those (should) have nothing to do with this option setting.
Title: Re: VUMeter Plugin
Post by: hiccup on September 14, 2024, 06:54:26 PM
Bottom line = please keep this option, what's available out there (AIMP etc) just is not standardized enough to support the removal of something that can positively affect performance levels.
With all due respect, I think both you and Phred are having a wrong view on this.
You both seem to want to keep the option only because there seems to be some bug in the plugin concerning needles in some cases moving or not.

The option is (should be) about the curve of the needle, i.e how fast it moves across the scale in certain areas and where it is positioned at certain volume levels.
Please, let's keep that functionality option separated from any current bugs that have nothing to do with a linear vs. a logarithmic curve.
Title: Re: VUMeter Plugin
Post by: phred on September 14, 2024, 07:07:57 PM
With all due respect, I think both you and Phred are having a wrong view on this.
You both seem to want to keep the option only because there seems to be some bug in the plugin concerning needles in some cases moving or not.

The option is (should be) about the curve of the needle, i.e how fast it moves across the scale in certain areas and where it is positioned at certain volume levels.
Please, let's keep that functionality option separated from any current bugs that have nothing to do with a linear vs. a logarithmic curve.
Speaking strictly for myself, and ignoring for the moment the skins that are exhibiting no needle movement, with linear disabled the needles do move, but very little. Right now barely moving from -30db. Enabling linear using the same track and skin the needles are moving between -30 and  -15 with an occasional peak towards -7.

So perhaps it's a bug that can be fixed and if so, then linear can disappear. But there's no point in having VU meters if there's hardly any movement of the needles.
Title: Re: VUMeter Plugin
Post by: phred on September 14, 2024, 07:16:14 PM
I'll conduct a full test of all of them in a couple of hours and report back.
I can't say the test was successful. Nor can I say it was a failure.

Booting to Windows Safe Mode and launching MB resulted it a crash. A quick flash of what I think was "MusicBee can't start now." Or something similar. It flashes so quickly before it's replaced by this:
Code
MusicBee v3.6.9023.27917P  (Win10.0), 14 Sep 2024 13:46:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at MusicBeePlugin.VUMeter.DrawBackGround()
   at MusicBeePlugin.VUMeter.OpenGLControl_OpenGLDraw(Object sender, OpenGLRoutedEventArgs args)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at System.Windows.RoutedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at SharpGL.WPF.OpenGLControl.DoRender()
   at MusicBeePlugin.VUMeter.RenderEventProcessor(Object myObject, EventArgs myEventArgs)
   at System.Windows.Forms.Timer.OnTick(EventArgs e)
   at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

So I "installed" a fresh portable version of MB and it started as expected. I close it, installed the VUMeter plugin and when I launched MB it did the same thing. End of test.

I will wait for BoringName to take a look at things before testing again.

EDIT: Typo
Title: Re: VUMeter Plugin
Post by: hiccup on September 14, 2024, 07:23:35 PM
But there's no point in having VU meters if there's hardly any movement of the needles.
Yeah, it may be better to just forget about this VU meter stuff and delete everything that has been created, accomplished and shared.

(sarcastic mode on)
Title: Re: VUMeter Plugin
Post by: phred on September 14, 2024, 08:40:39 PM
Yeah, it may be better to just forget about this VU meter stuff and delete everything that has been created, accomplished and shared.
(sarcastic mode on)
[sarcastic reply mode]
This from the person who started asking about VU meters seven years ago?!?!?!? But we're so close now.
https://getmusicbee.com/forum/index.php?topic=23394.0
 [/sarcastic reply mode]
Title: Re: VUMeter Plugin
Post by: sveakul on September 14, 2024, 09:36:19 PM

I can't say the test was successful. Nor can I say it was a failure.

Booting to Windows Safe Mode and launching MB resulted it a crash. A quick flash of what I think was "MusicBee can't start now." Or something similar. It flashes so quickly before it's replaced by this...

So I "installed" a fresh portable version of MB and it started as expected. I close it, installed the VUMeter plugin and when I launched MB it did the same thing. End of test.

I will wait for BorningName to take a look at things before testing again.

phred:

Why did you boot into Safe Mode in the first place?  Is it because MB crashed when you first installed VUMeter 1.3, or when you were trying a particular skin?

I don't see how 1.3 on its own could cause a crash;  I'm running it with two other visualizers (CEN Spectrum and Classic Spectrum) active;  what output are you using in MB?  Did version 1.2 of the plugin work fine?  Are you per chance using the two D2D dll's that were optional with CEN?
Title: Re: VUMeter Plugin
Post by: sveakul on September 14, 2024, 10:02:27 PM
Bottom line = please keep this option, what's available out there (AIMP etc) just is not standardized enough to support the removal of something that can positively affect performance levels.
With all due respect, I think both you and Phred are having a wrong view on this.
You both seem to want to keep the option only because there seems to be some bug in the plugin concerning needles in some cases moving or not.

The option is (should be) about the curve of the needle, i.e how fast it moves across the scale in certain areas and where it is positioned at certain volume levels.
Please, let's keep that functionality option separated from any current bugs that have nothing to do with a linear vs. a logarithmic curve.
My first inclination to keep it is based on what BoringName mentioned a while back about the Linear option seeming to produce more accurate results IN SOME CASES.  My second is that some meters have a more linear, less logarithmic scale so my guess is that "linear" is best able to represent on those scales?  In any case, keeping the option "available" when it's already present hurts nothing AFAIK.  Visually it produces a lower dB range of movement in the majority of cases, but whether that means "more" or "less" accurate I have no idea.

About not seeing e.g. the dead right meter in Deja Vu Compact POTL on your setup, I believe you, and if I thought an animated *.gif from mine would do any good I'd send one.  All I can say is in my MB environment with Linear enabled, both channels react "normally" (whatever that is at this point!) on that skin--and the instant I uncheck "linear", the bottom "R" meter slams immediately to the left end, dead, while the top "L" meter continues albeit at a slightly lower dB level.  And from what phred has reported, he sees the same thing.  I'll leave the rest to the developer.
Title: Re: VUMeter Plugin
Post by: hiccup on September 14, 2024, 10:16:11 PM
My second is that some meters have a more linear, less logarithmic scale so my guess is that "linear" is best able to represent on those scales?  In any case, keeping the option "available" when it's already present hurts nothing AFAIK.  Visually it produces a lower dB range of movement in the majority of cases, but whether that means "more" or "less" accurate I have no idea.
For now that's all based on guesses and assumptions and have not been tested and verified.
Proof is in the pudding.
Until someone is able to present a couple of specific existing VU meter skins that work much better when using some 'non-linear' setting I am still of the opinion that it's a useless feature that shouldn't be there to possibly confuse users.

edit
Perhaps there is some more frequently present flaw/error in some existing/older AIMP VU meter skins?
BoringName has alluded to something like that before.
So perhaps there could be use for some 'flaw correction' setting?
But let's try to work with facts and not with assumptions. What would be the flaw or the actual issue why (if?) some meters don't have good 'needle action'.
By now I'm highly doubtful that would be about some linear vs. logarithmic setting.
Title: Re: VUMeter Plugin
Post by: phred on September 14, 2024, 10:49:09 PM
Why did you boot into Safe Mode in the first place?  Is it because MB crashed when you first installed VUMeter 1.3, or when you were trying a particular skin?
Because even though I was certain I had no third party audio apps running, I wanted to test the odd needle behavior on as plain vanilla machine as I could. Which was safe mode. If I had seen your post that you were also experiencing the needle not moving issue before I did Safe Mode, I wouldn't have bothered with it.

Yes, VUMeter 1.2 ran fine, but I can't recall if I spotted the linear vs non-linear issue with it.

I've never installed CEN Spectrum or Classic Spectrum so I can't have those DLLs.
Title: Re: VUMeter Plugin
Post by: phred on September 14, 2024, 10:57:16 PM
All I can say is in my MB environment with Linear enabled, both channels react "normally" (whatever that is at this point!) on that skin--and the instant I uncheck "linear", the bottom "R" meter slams immediately to the left end, dead, while the top "L" meter continues albeit at a slightly lower dB level.  And from what phred has reported, he sees the same thing.
I do, I do.
Along with DejaVU Compact MB2 and Elemental. And the reverse with DejaVU Compact. The left doesn't move when linear is disabled. Plus no movement from either side with Hartmann & Braun and M4762.
Title: Re: VUMeter Plugin
Post by: BoringName on September 14, 2024, 11:44:08 PM
Threads been busy.... I haven't read everything. Got a bit on today so I will go through it all later.

Once Phred listed a skin with an issue that I could check, I can see that I have buggered something up when "linear" is unchecked. Well, buggered up in the fact I didn't update the formula since changing to the Musicbee api to get the peak levels. I'll leave it intact and fix it for the next version.

I'm still not sold on the importance of it but I guess it is a quick way to make some meters look better (when it's the correct formula) rather than messing around with DB adjustment.

If everyone who created skins was as thorough as Hiccup, we wouldn't have this problem as linear would work for all of them!

Does that crash you listed occur only in safe mode? Safe mode might not let it load required DLL's, not sure.
Title: Re: VUMeter Plugin
Post by: phred on September 15, 2024, 03:23:19 AM
Does that crash you listed occur only in safe mode? Safe mode might not let it load required DLL's, not sure.
Yes, the crash only happened in Safe Mode, so I wouldn't worry too much about it. Especially since your explanation about the DLLs makes sense.

I believe you said you were building, or rebuilding, or demolishing your garage. Go finish that and then come back and fix things here. Now that we know that it seems like an easy fix, it can wait.

Thanks again for breathing life into this seven year old pipe dream.
Title: Re: VUMeter Plugin
Post by: sveakul on September 15, 2024, 10:01:45 AM
I believe you said you were building, or rebuilding, or demolishing your garage. Go finish that and then come back and fix things here. Now that we know that it seems like an easy fix, it can wait.
Let the poor guy finish the LVU meters first while he's on a roll, the garage will still be there  ;D   As phred said, thanks for finally being the person who made all this happen.
Title: Re: VUMeter Plugin
Post by: BoringName on September 16, 2024, 04:36:36 AM
Garage is done and dusted, got that down pretty easy. Finding someone to build a new one is the hard part, there is a tradesmen shortage here, they are so busy their customer service is non existent. 3 said they couldn't do it, the 4th said they could but they have told me they will call me on Monday but never do, that's happened 4 weeks in a row now. A concreter I was organising to do the slab has completely ghosted me for the last 3 weeks. Not like I'm hassling them either, just sent a message once per week.

I'm at the point now where they can all get stuffed and I'll do it myself, I just wanted a tradie to do it so I didn't have to muck around with council permits etc...

This weekend I was painting other parts of the house.

Back on topic. New version is looking pretty good. In terms of the needle movement, I've added two slider options to adjust the interval that samples are taken and the number of samples used in the average. Adjusting these alters the movement considerably so Hiccup will probably have fun with that. If you set the number of samples to 1 it gives peak values.

I've tested 5 different LVU meters and 2 of them were setup wrong.... Most of them are very similar so I think I've covered the different layouts and got them all working properly.

Not sure how the original author of LVU handles those errors. Considering the old author just popped up 8 years later with a new version and his only response to all the queries of it triggering antivirus is "trust me bro", I haven't got much faith in it and I'm not going to risk checking if I have the meters working like they do in AIMP.

I'll do some more tests and probably release the new version tomorrow.

Title: Re: VUMeter Plugin
Post by: sveakul on September 16, 2024, 09:08:53 AM
Not sure how the original author of LVU handles those errors. Considering the old author just popped up 8 years later with a new version and his only response to all the queries of it triggering antivirus is "trust me bro", I haven't got much faith in it and I'm not going to risk checking if I have the meters working like they do in AIMP.
Thank you for the update and looking forward to the new release!!  Appreciate you taking on the LVU designs.

BTW, the response of the LVU developer to the unnerving virus alerts on his new 1.2 x64/x86 version for AIMP:

"Unfortunately, I don't know how to deal with false positives from antivirus software. At the moment I can’t do anything about it, I’m sorry that this is happening, but I don’t see a way out...
This plugin is only visualization and nothing more, it does not have the best code for calculations and drawing graphics in some places with crutches + an algorithm for managing ini and zip files to implement skin support."

So It think it's just a case of him throwing up his hands at an admitted lack of the personal skill needed to fix the SINGLE DLL FILE that is throwing the multiple virus alerts due to a bad design.  I am going to post over at the AIMP forum and see if the AIMP developer himself could possibly take the time to re-compile/code that one DLL that is screwing up the works for everybody.  That was a extremely popular plugin before the recent events dropped it like a lead balloon.
Title: Re: VUMeter Plugin
Post by: BoringName on September 17, 2024, 01:06:37 AM
New version - VUMeter1.4.zip (https://www.mediafire.com/file/778gmvnmes204d7/VUMeter1.4.zip/file)

Changes
- LVU Skin support added, Requires Single Meter option to be checked to display correctly. Only zipped LVU skins supported.
- New option to suppress duplicate value messages with LVU skins.
- db offset (mouse wheel) increased to 100 to account for LVU skins with lots of increments. For LVU skins it adjusts which increment is returned. eg) if the settings file contains values for -50, -40, -30 and the peak average is -40, a db offset of 1.00db will return the value for -30 instead and an offset of -1.00db will return the value for -50. So it's effect is dependent on how many values are listed in the settings.ini file dbs section.
- Double clicking on the window will now reset the db offset to zero. (Credit to Boroda for that idea).
- Changed some code that I think may have Improved CPU usage slightly, it seems lower but hard to tell as it jumps around a bit.
- More accurate calculation when checking if the reading is lower than the MinAngle setting for AIMP skins.
- Fixed logarithmic scale that was broken in version 1.1
- Improved message box scaling when using larger font size in Musicbee layout settings.
- New option sliders to adjust sample interval and number of samples to average. Sample interval is in milliseconds. If you set the interval to 10 and the sample number to 5, it will average 5 samples over 50 milliseconds. Setting sample number to 1 will give you peak values with no averaging. Default is 15 and 10 respectively.

I've tested 6 different LVU skins which covers all the different formats I've found. If you find one that doesn't work, let me know. Out of those, 3 of them had errors with the dbs section which specifies how much of the LED's to show based on the decibel level. One had a value of 5000 instead of 500 and the other 2 had duplicate values. I've set it to ignore duplicates and popup a message if they exist as it may not display as the author intended. The user can either fix it or just enable the suppress messages option and ignore it.

Here is a sample of one of them
Code
dbs=5;171|5;186|4;200|4;213|3;226|3;240|2;252|2;265|1;278|1;278|0;291|-1;304|-2;316|-3;330|-4;343|

I did consider it was intentional but it doesn't make a lot of sense because the second value would display the wrong result on the meter, also the value for 1 decibel is 278 in both cases. I think it's just an error with the software used to make the skins. The other issue is all the duplicated values are for values above zero so they would never display anyway without adjusting the db offset.

For anyone considering making an LVU skin. I don't use the start_point and finish_point values. The DBS section is how much of the LED image to display based on the current decibel level. In the example above the LED are on the background image and the LED image file is just a cover that reveals the LED's as the decibel level increases. In this case at -4 decibels it shows 343 pixels of the LED cover, at 0 decibels it shows 291. Most of them are the other way around, the higher the decibel level, the more pixels of the LED are displayed.

The pos_y/pos_x are offsets for the LED image file if it isn't the same resolution as the background image. It's based on where you want the top left corner of the LED file to appear on the background image. pos_x is number of pixels from the left edge of the background image, pos_y is the number of pixels from the top edge of the background image. If you make all the image files the same resolution (like the AIMP skins) you can set these both to zero.

Orientation is whether the dbs section is working on the X or Y axis. 0 for X, 1 for Y.

edit: Actually it's just occurred to me that orientation 1 for vertical meters will have always have to go with the cover method. Because it starts at the top and extends down Eg) the LEDs are on the background image, the LED file is just a cover that is reduced as the decibels increase, revealing the LED's. Not sure why the creator has set it up that way as it means horizontal and vertical meters need to be designed differently.

edit2: LVU skins can be found here. It's in Russian.
LVU Skins (https://www.aimp.ru/forum/index.php?topic=54005.0)
Title: Re: VUMeter Plugin
Post by: phred on September 17, 2024, 01:27:46 AM
I guess you're waiting for all the paint to dry and you had some time for this major update.

I'm not sure you did anything regarding my report of one or both needles not moving six skins, but I can report that the two where there was no needle movement at all, M4762 and Hartmann & Braun, are now working properly.

The other four, all of the DejaVU Compact series by hiccup, still have only one needle moving unless linear is enabled.
Title: Re: VUMeter Plugin
Post by: BoringName on September 17, 2024, 02:56:14 AM
I've updated the same link with a fix, try it again. All the skins "should" work properly now.....
Title: Re: VUMeter Plugin
Post by: phred on September 17, 2024, 03:20:46 AM
I've updated the same link with a fix, try it again. All the skins "should" work properly now.....
Indeed they are  now working as expected. Thank you.

Now isn't it time for you to be working the delivery chute of the cement mixer that's pulling into your driveway?
Title: Re: VUMeter Plugin
Post by: BoringName on September 17, 2024, 03:45:37 AM
Now isn't it time for you to be working the delivery chute of the cement mixer that's pulling into your driveway?

Just going to see another builder today. If he can't help me I'll start organizing it myself, I really didn't want to but at this point it seems no one wants my money. With the quality of trade work around here lately, I'll probably end up with a better result doing it myself anyway. Sad times.
Title: Re: VUMeter Plugin
Post by: sveakul on September 17, 2024, 07:46:47 AM
Thanks for 1.4.  Everything seems to be working fine.  The LVU meter support is welcome, although they are less ambitious than the Foobar ones.  My two favorite LVU skins so far are Grundig, and LVU 100 B:

(https://i.imgur.com/IlPfZot.png) (https://i.imgur.com/8cPSdY9.png)
Title: Re: VUMeter Plugin
Post by: BoringName on September 17, 2024, 11:44:36 AM
The LVU meter support is welcome, although they are less ambitious than the Foobar ones.

Foobar support is dead in the water. I've done all I can there. in terms of appearance it shouldn't be hard for people to make similar skins in the AIMP/LVU formats.

As far as LED's/LAMPS for peak values go, I should be able to combine the LVU implementation with the AIMP skins to provide a needle and Lamp for both left and right meters as Hiccup has requested. It will just require a bit of a mashup of the different INI file formats.
Title: Re: VUMeter Plugin
Post by: hiccup on September 17, 2024, 06:15:06 PM
As far as LED's/LAMPS for peak values go, I should be able to combine the LVU implementation with the AIMP skins to provide a needle and Lamp for both left and right meters as Hiccup has requested. It will just require a bit of a mashup of the different INI file formats.
That would be great. I have some new insights in the sense that this may be more useful than I expressed the last time I had an opinion on this ;-)

Quote
Foobar support is dead in the water. I've done all I can there. in terms of appearance it shouldn't be hard for people to make similar skins in the AIMP/LVU formats.
It's a pity it has cost you so much time and effort, but I agree that if the AIMP skins work well, we can do without support for foobar2000 skins.
A large amount of the available AIMP skins are ports from foobar2000 skins anyway.
But thanks for giving this a serious shot!


About the needle action.

I have played around with the two new sample sliders, and it seems an interesting option.
Yet at the moment I think that some optimal setting for the two can be decided on that will work well for all needles, and it may not need to be an additionally available setting option.
But it's a bit hard to be sure about that because in my opinion the basic needle response should be improved upon first.
When that is really good, additional settings for 'samples' and linear curves may not be needed or useful at all.
(less is more, KISS, etc.)

Here's an interesting discovery I made about this:

I was curious about the needle action of professional VU meters.
Reading some articles on it revealed that the needle should go from ∞ to 0 dB in 300 ms. (for a 1kHz sine wave)
Then I started fooling around with AIMPs MobilityNegative and MobilityPositive settings to see if I could get it to have such a response, and I found that the values that are set for those correspond to exactly that.
So if you set the value to 0.3, it takes the needle 300 ms to travel that distance.
0.1 makes it take one second, etc.
(why the hell didn't they just name it RiseTime and FallTime?)

Here (https://www.dropbox.com/scl/fi/3sadkjwc7yf55vm6h49f9/VU-meter-rise-and-fall-test.rar?rlkey=5wnjkzk1ecoon6ngs6wwiky3d&dl=0) are two test files, one for 300ms and one for 1 sec., and two skins, one set to 0.3 sec. and the other to 1 sec. rise/fall times.
They may be helpful for trying to get optimal compatibility with the needle action that is set for AIMP skins.

Here you can see how AIMP is correctly applying 1 sec. fall/rise, and VUMeter™ is not:
(https://i.imgur.com/IG9OyNG.gif)

Two other things that I hope can be improved upon:

- audio/graphics sync is still not great, the needle trailing a little bit behind the music.
- the needle often seems a bit nervous and jumpy. It's especially noticeable with thinner needles and fast moving needles.
  Could it be that the frame-rate of the needle image is a bit low?

(I hope you're still having fun with this ;-)

And a final observation for now:

I noticed that the meter now seems to get the sound post-ReplayGain adjustment.
Has that been changed, and is it intentional?
I'm not sure that I like it, since for a lot of my music the needle now only uses a small part of the scale.
Is it also post-equaliser and possible VST or Winamp plugins?

Perhaps it could be an option setting to have it operating pre- or post?


edit:
And something I thought I reported earlier, but it seems that I didn't:

I noticed that the plugin seems to ignore the value that is set for ZeroLevel?
So when e.g. having 'ZeroLevel=-3', the needle should indicate -3dB at the zero level position, but instead it always uses 0dB.
Similarly, I'm not sure what it does with MaxLevel, if anything?

It would be good if it did use/respect these values, since it is useful for some skins to be able to set e.g.  MaxLevel to 0dB and ZeroLevel to -6dB.
And same as the fall/rise aspect, it's also a factor in existing AIMP skins behaving as they are intended to.
 
Title: Re: VUMeter Plugin
Post by: Bee-liever on September 18, 2024, 12:52:08 AM
I noticed that the meter now seems to get the sound post-ReplayGain adjustment.
Has that been changed, and is it intentional?
I'm not sure that I like it, since for a lot of my music the needle now only uses a small part of the scale.
Is it also post-equaliser and possible VST or Winamp plugins?

Perhaps it could be an option setting to have it operating pre- or post?

I too thought the earlier version was using the raw audio as well.
An option to have it operating pre- or post processing would indeed be a welcome addition
Title: Re: VUMeter Plugin
Post by: phred on September 18, 2024, 01:29:56 AM
A new VU Meter skin has been added to the VU Meter Skin Repository.
https://getmusicbee.com/forum/index.php?topic=41767.0
Title: Re: VUMeter Plugin
Post by: BoringName on September 18, 2024, 04:19:53 AM

About the needle action.

I have played around with the two new sample sliders, and it seems an interesting option.
Yet at the moment I think that some optimal setting for the two can be decided on that will work well for all needles, and it may not need to be an additionally available setting option.

Yes but when you think about it, the sole reason I added those sliders in was because you questioned the movement and I added in a method for you to adjust it. No one else mentioned it. Not saying they didn't care or that you shouldn't care but it's probably a subjective thing and even if we do come up with something that you find is accurate, someone else will say they preferred it the other way.

Here's an interesting discovery I made about this:

I was curious about the needle action of professional VU meters.
Reading some articles on it revealed that the needle should go from ∞ to 0 dB in 300 ms. (for a 1kHz sine wave)
Then I started fooling around with AIMPs MobilityNegative and MobilityPositive settings to see if I could get it to have such a response, and I found that the values that are set for those correspond to exactly that.
So if you set the value to 0.3, it takes the needle 300 ms to travel that distance.
0.1 makes it take one second, etc.
(why the hell didn't they just name it RiseTime and FallTime?)

I think the strange naming is just a translation thing.

If you set the sample number to 15 it slows the movement down a bit because it's spreading out the average which is essentially what needs to happen to slow down the needle.

At default settings it takes a sample every 15ms and averages 10 of those values. It's set to draw at 60 frames a second which is every 16.67ms. I don't do any magic to make the needle move. I just get the values from Musicbee, average them out and then draw the needle to whatever angle that average equates to. Because it's happening so fast it looks like the needle is moving around when really it's a new needle every frame drawn at a different angle. I don't keep track of previous needle locations.

Based on that, if the peak value drops from 1.0 to 0, it will take 150ms before all 10 samples are zero and the needle will get drawn 9 times to convey that movement.
Change the samples to 15 and it will take 225ms before all the samples are zero and the needle will get drawn 13 times to convey that movement.

Other than manipulating those settings I really don't know how else to do it. You are effectively changing the read out of the meter if you slow down how long it takes to get somewhere which is what changing the number of samples does. It smooths out the peaks. Which you can see in your previous post, at the beginning of the animation anyway, my meter peaks higher than the slower moving AIMP version.
https://getmusicbee.com/forum/index.php?topic=41692.msg227554#msg227554

Two other things that I hope can be improved upon:

- audio/graphics sync is still not great, the needle trailing a little bit behind the music.
- the needle often seems a bit nervous and jumpy. It's especially noticeable with thinner needles and fast moving needles.
  Could it be that the frame-rate of the needle image is a bit low?

Not sure on a solution for the sync issue. Isn't it always going to be behind the music because it's an average of the last 150ms? (at default settings)

Increasing the sample number reduces the nervousness of the meter. I have noticed I need to give the meter more time for the needle to come back down before I stop the process when the music is paused/stopped. With higher sample numbers it gets half way down and then just jumps to the end which doesn't look good.

Thinner needles are probably not going to look good in general if they are low resolution. Everything is scaled to the window size which means moving pixels around, at certain angles this might mean they appear even thinner which would probably make them look more jumpy. I did play around with Antialiasing on my other plugin but the results were not great.

(I hope you're still having fun with this ;-)

Not sure if fun is the right word, especially staring at formulas for hours at a time but I do get some satisfaction from making things work.

And a final observation for now:

I previously queried the audio device directly which would have been post everything.

Now I'm getting it from the MusicBee API. Any changes you want there would have to be done by Steven. I think he may get it from the bass.dll as he mentioned BASS in the thread when he implemented the peak value api call.



edit:
And something I thought I reported earlier, but it seems that I didn't:

I noticed that the plugin seems to ignore the value that is set for ZeroLevel?
So when e.g. having 'ZeroLevel=-3', the needle should indicate -3dB at the zero level position, but instead it always uses 0dB.
Similarly, I'm not sure what it does with MaxLevel, if anything?

It would be good if it did use/respect these values, since it is useful for some skins to be able to set e.g.  MaxLevel to 0dB and ZeroLevel to -6dB.
And same as the fall/rise aspect, it's also a factor in existing AIMP skins behaving as they are intended to.
 

I only use the ZeroLevel for calculating the logarithmic formula between MinLevel and ZeroLevel. But I think I did that before I realised you can never get a peak reading above zero with a digital source so I could have just used zero. I don't use MaxLevel at all because the max level is always zero and I can't see a reason anyone would want to set it below zero.

Can you give an example of when you would want to use those settings as you suggested? If the peak reading is 0db why would you want the meter to display -3db? Can't you just set the ZeroAngle value so it points at -3db on the meter and that will give you the same result? That will change the increment positions for all values but that will happen with either method.

After all this discussion about trying to make the meters accurate, it seems a bit weird to want options that do the opposite. I get your suggesting to make the skins work exactly as they do in AIMP but I don't see the point of mimicking something just because that's how it was unless it's actually going to be useful to people. Getting the movement better I understand, some of this other stuff not so much.
Title: Re: VUMeter Plugin
Post by: sveakul on September 18, 2024, 07:28:17 AM
I agree on having an option to display metering before and after any DSP/VST effects are applied.

With the new 1.4 plugin and the latest Hiccup meters I am finding a much lower level when set to linear; however, it seems to me that those levels resemble what the built-in MusicBee "visualiser: volume" (NOT the wavebar)  meter showed, which always seemed unusually low to me.  Whether that is due to the built-in also being "linear", or to when it took the measurement (before or after DSP/VST)  I don't know.

At any rate, the current plugin and the newest hiccup meters now have a more pleasing and higher level that seems much more realistic and in the ballpark of the bar-type VU meters that sort of "flooded" Foobar after the JavaScript3 plugin was modified last month to pass audio data.  This is with linear off and the default values of the "Sample" sliders--the latter I haven't tried experimenting with.

I do agree with hiccup that the ideal is to implement a design confidence that accurately represents the actual audio across a range of styles without the need for head-scratching "tuning" ("is it 'better' or 'worse' now?) by the user.  Of course, World Peace would be great too  ;D

Looking forward to seeing BoringName's personal touch-ups on some of the LVU style meters.  I can confirm that there is now discussion between the AIMP developer and author of the LVU 1.2 meter (instigated by moi) on allowing the former access to the LVU source code to personally fix the problems with the DLL throwing virus detections.  While the 1.2 version's primary feature was introducing 64-bit compatibility, the author had addressed some past memory use and response issues for both the 32-bit and 64-bit versions.
Title: Re: VUMeter Plugin
Post by: hiccup on September 18, 2024, 08:09:42 AM
Yes but when you think about it, the sole reason I added those sliders in was because you questioned the movement and I added in a method for you to adjust it. No one else mentioned it.
Well, I am observing some issues with the needle movement, and I have done my best to describe and analyse that as best as I can.
That I am the first and only user that does so, doesn't make it a non-existent issue.

Quote
If you set the sample number to 15...
At default settings it takes a sample every 15ms.
if the peak value drops from 1.0 to 0, it will take 150ms...
Change the samples to 15 and it will take 225ms...
Thanks for explaining, it's interesting to get this detailed information about what is making the magic happen.
But I have the luxury to respond (and think) as an end-user, commenting on what I see in the end-result and reporting when I think something (in my opinion) is off could be improved on.

So I believe my comment about how the needle of an 'actual VU meter' is supposed to react is a valid one, and it would be a good starting point if the needle of your plugin could be made to have such action.
What sample slider settings do you suggest to get the needle moving from ∞ to 0dB in 300 ms? And vice-versa?

Quote
Not sure on a solution for the sync issue. Isn't it always going to be behind the music because it's an average of the last 150ms? (at default settings)
I have no clue.
It's just that I notice the VU meter of AIMP acting more instantly and better synced.
As some of my GIFs also demonstrated.
I also looked at the Cooledit Nostalgia plugin. It's a different beast of course, but that one also seems to respond very fast.
So they my be doing something different in sampling the audio. No idea.

Quote
Increasing the sample number reduces the nervousness of the meter. I have noticed I need to give the meter more time for the needle to come back down before I stop the process when the music is paused/stopped. With higher sample numbers it gets half way down and then just jumps to the end which doesn't look good.
Thinner needles are probably not going to look good in general if they are low resolution. Everything is scaled to the window size which means moving pixels around, at certain angles this might mean they appear even thinner which would probably make them look more jumpy. I did play around with Antialiasing on my other plugin but the results were not great.
Interesting, and all valid points of course.
But my observations are also based on the wider 'needle' of AL-65.
I noticed that when that needle moves fast, e.g. from 0 dB to ∞ in a very short time, there are very few inbetween positions that can be observed. The AIMP implementation seems to be drawing more images for the same period of time, making the needle look smoother.
But it's difficult to compare or make a proper analysis of what is going on exactly.

Quote
Now I'm getting it from the MusicBee API. Any changes you want there would have to be done by Steven. I think he may get it from the bass.dll as he mentioned BASS in the thread when he implemented the peak value api call.
Hm, that is a bit of a problem.
As I said, most of my music has ReplayGain values that decrease the volume quite a bit, so with default settings, there is not much needle action left.
Using the mouse-wheel could correct that, but the possibility for pre- vs. post would be a much better solution I think.
Pre using the original signal as it is, post using the signal after volume slider, EQ., ReplayGain, VST plugins and whatever.

Quote
Can you give an example of when you would want to use those settings as you suggested? If the peak reading is 0db why would you want the meter to display -3db? Can't you just set the ZeroAngle value so it points at -3db on the meter and that will give you the same result? That will change the increment positions for all values but that will happen with either method.
Because many AIMP meters will have been designed like that.
They will have some visual 'zero' position on the scale where they want the needle to be when the signal is at -3dB, and the needle reaching the end of the scale at 0dB.
Not saying that they could have left that out and only use 0 dB for the end point, but that is how it is.

If your plugin does not use these values, these AIMP skins will not have needle action beyond their ZeroPoint, so they will not work as intended.


Quote
After all this discussion about trying to make the meters accurate, it seems a bit weird to want options that do the opposite.
I don't really understand what you are saying here.
Hopefully my additional explanation on all these points has cleared things up some more.

I'm not trying to just 'mimic' things for the sake of mimicking.
I'm trying to be helpful with getting VUMeter to:
- look and act more like an actual VU meter in it's needle action (or at least have the option to accomplish that)
- be as much compatible with existing AIMP skins so that they will work as intended by their creators
Title: Re: VUMeter Plugin
Post by: hiccup on September 18, 2024, 08:51:33 AM
Here are just some observations on the 'red zone' of a VU meter and the purpose and usefulness of peak indicators:

While for an audio player a red zone or peak indicators are not very useful, they are of course in the audio production stages.
In audio recording and production, a VU meter will often be calibrated to 0dB actually being something like for example -17 LUFS.

The reason being that the purpose of a VU meter is to show average 'perceived' levels, and the needle moving around the 0 area is something to aim for for the loudest passages.
It may also go beyond that a bit without it creating any distortion or clipping problems, because the use of 24bit audio provides more than enough headroom for that.

This was what was causing some disconnect in my brain when considering the purpose of a red zone or peak indicators for a VU meter in a player such as MusicBee.

It's a bit of comparing apples with pears, but, since the red zone is an acceptable area for recording and production work for the needle to (briefly) be in, it would make sense to have a consumer VU meter also passing the 0dB indicator for loud passages.

I'm just sharing this thought because we've discussed the fact if the needle in a plugin like this one would (or should) ever go beyond 0dB.
I know believe that it should/could.

And peak indicators could be useful if there is an option for post-processed indicators.
Then they could give some indication when the user is using too much pre-amp or has set EQ levels too high.
In that case it might be useful to have the option for a dedicated clipping indicator light.
But that's probably a too complicated thing to have or add as a feature.

Just sharing.
 
Title: Re: VUMeter Plugin
Post by: sveakul on September 18, 2024, 09:30:52 PM
It's a bit of comparing apples with pears, but, since the red zone is an acceptable area for recording and production work for the needle to (briefly) be in, it would make sense to have a consumer VU meter also passing the 0dB indicator for loud passages.

I'm just sharing this thought because we've discussed the fact if the needle in a plugin like this one would (or should) ever go beyond 0dB.
I know believe that it should/could.

And peak indicators could be useful if there is an option for post-processed indicators.
Then they could give some indication when the user is using too much pre-amp or has set EQ levels too high.
I completely agree with all your points here.
Title: Re: VUMeter Plugin
Post by: BoringName on September 18, 2024, 11:34:05 PM
I was a bit tired yesterday and probably should have had a nap instead of posting in that mindset. I was also a little miffed after spending quite a bit of time getting those slider options working (it was more complicated than it should have been) thinking the best thing moving forward was for you to be able to adjust the movement yourself instead of me posting iterations for you to evaluate. Only to be told they probably are not necessary....

I was also a bit dismissive of things because to me it seemed some of the options are not necessary with how I have implemented it and were a result of how the original author did it. eg) with the LVU meters the start_point and finish_point values serve absolutely no purpose and in a few of the skins were not even accurate anyway.

I'll try and find a meter with values for ZeroLevel that are not 0 as I still can't get my head around what you mean. Having the ZeroLevel set to -3db doesn't mean anything to the plugin as it has no idea where -3db is on the meter (AIMP wouldn't know either). ZeroAngle is the setting that tells the addon where to point the needle when the level is zero. Same goes for MaxLevel, if it's set to anything above zero it can't have any effect because that level is never returned by musicbee or the audio device. Maybe ZeroLevel should be a way to apply a db offset? I can see a use for MaxAngle to stop the needle moving past the edge of the meter if someone uses a really high db offset. Anyway, I will look into it further.

I think I have an idea on "behind the beat" issue. I'm currently just averaging the peak values. I'll try using the formula for RMS instead. From preliminary tests I think that will allow the needle to ramp up faster without making it more jumpy.

I'm just sharing this thought because we've discussed the fact if the needle in a plugin like this one would (or should) ever go beyond 0dB.
I know believe that it should/could.

The only way to get the needle in the red is to configure the skin to overshoot zero or set a db offset with the mouse wheel. It's impossible to get peak values from musicbee or the audio device to give a reading above zero. I'm really not that keen on manipulating the value based on other plugins and/or track gain values.

edit: Thinking about it more I think ZeroLevel is just a way to change the gap between increments. Currently the needle spans from MinAngle to ZeroAngle and the level range is spread across that span. Currently I have that set from MinLevel to Zero. Setting a ZeroLevel below zero would mean the increments between levels on the meter would be further apart as there is less range to fit in the MinAngle to ZeroAngle span. I need to find a meter designed with a ZeroLevel that isn't zero so I can confirm.
Title: Re: VUMeter Plugin
Post by: BoringName on September 19, 2024, 05:21:30 AM
I had a bit of an epiphany in the universal think machine (shower) this morning and have a method to implement the mobility settings but I'm having weird results in AIMP. It seems the values for positive and negative are scaled differently. If set to the same value the needle goes from ∞ to 0 a lot quicker than 0 back to ∞. This is in AIMP so it's not something I've stuffed up.

I was curious about the needle action of professional VU meters.
Reading some articles on it revealed that the needle should go from ∞ to 0 dB in 300 ms. (for a 1kHz sine wave)
Then I started fooling around with AIMPs MobilityNegative and MobilityPositive settings to see if I could get it to have such a response, and I found that the values that are set for those correspond to exactly that.
So if you set the value to 0.3, it takes the needle 300 ms to travel that distance.
0.1 makes it take one second, etc.
(why the hell didn't they just name it RiseTime and FallTime?)

Here you can see how AIMP is correctly applying 1 sec. fall/rise, and VUMeter™ is not:
(https://i.imgur.com/IG9OyNG.gif)

Just confirming you had the MobilityNegative set to 0.3 in that test. From what I was reading it's supposed to be in the range of 0.00 and 0.10. Setting your AcuVU skin to 0.3 MobilityNegative makes for a very erratic meter in AIMP. It's normally 0.03 which takes about 3.5 seconds to drop from 0 to ∞.

I have a feeling AIMP isn't averaging anything either. I think it's just taking the peak values and letting the mobility settings smooth out the meter which I guess has a similar effect.

Just need someone to confirm they are seeing the same thing as me in regards to the positive and negative scaling differently before I spend time on it.

edit: AIMP using the peak values and not doing any kind of average would also explain why my version is a bit behind..... I think.
Title: Re: VUMeter Plugin
Post by: sveakul on September 19, 2024, 06:35:43 AM
@ BoringName and hiccup: the AIMP LVU plugin has been updated to version 1.2.1, following the AIMP developer's direct work with its author xrEngline on fixing the issues with the virus alerts after my request/plea to him to do so.  You can download it now on the AIMP website:  https://www.aimp.ru/?do=catalog.download&id=834 (https://www.aimp.ru/?do=catalog.download&id=834) .

It is presented with filename "LVU.aimppack" the extension being a zip variation like Foobar's ".fb2k-component."  It can be renamed LVU.zip if desired.  It contains both 32-bit and 64-bit versions and a couple of stock skins.  The file produced only 3 hits on Virus Total, all heuristic, and no objections at all from Windows Defender during download, installation, or use.  The DLL has had dramatic performance improvements since 1.11; CPU/GPU usage on Windows 11 x64 with an I7-13700 and Intel Graphics UHD 770 is 4%/2% here when using the stock LVU-Simple skin.

This meter the short time I've had so far to test is a very active one, with peaks regularly into the red on almost all material.  I believe it must be reading the "post-DSP/VST" signal, and I've confirmed this by turning off and on the DSP/VST and EQ in real-time while a selection is playing.  With those off, the meter peaks/reaction become extremely similar to VUMeter 1.4 almost immediately.

One kind of maddening thing was that earlier today the LVU thread contained a back-and-forth in Russian between the AIMP developers and the plugin author on tweaking needle performance, *.ini settings, etc. for the new version--but these comments have all been removed now!  I have asked if they are still available somewhere to read.

Have fun playing with this.
Title: Re: VUMeter Plugin
Post by: hiccup on September 19, 2024, 06:52:18 AM
Just confirming you had the MobilityNegative set to 0.3 in that test. From what I was reading it's supposed to be in the range of 0.00 and 0.10. Setting your AcuVU skin to 0.3 MobilityNegative makes for a very erratic meter in AIMP. It's normally 0.03 which takes about 3.5 seconds to drop from 0 to ∞.

I have a feeling AIMP isn't averaging anything either. I think it's just taking the peak values and letting the mobility settings smooth out the meter which I guess has a similar effect.

Just need someone to confirm they are seeing the same thing as me in regards to the positive and negative scaling differently before I spend time on it.

edit: AIMP using the peak values and not doing any kind of average would also explain why my version is a bit behind..... I think.
I'll do some repeated testing again tomorrow.
I would hate it if I provided false information to you.
It's quite easy to make dumb mistakes or interpret things the wrong way...
About the Mobilty+- settings that were used:
What I saw, described, and made GIFs of was with using the exact skins (and so those ini settings) that I provided in the download link for the test files.

PS
I completely understand you getting a bit frustrated when you have created something that you believe is going to be 'the solution' (I thought the sample sliders were pretty brilliant when I first saw what you did with that), and then you don't get completely enthusiastic feedback on it.
For the record: I did not say it was useless or anything like that. I only said that I believed that it might be the case that after finding some optimal balance for them, that could well be a setting that will work well for pretty much all cases,  and there might not be a need for end-users to be able to make further tweaks to them. So having (keeping) the option to adjust them MIGHT prove to be unnecessary.
But that was and still is a bit of a guess of mine.
Another consideration would be that IF different slider settings give better results for different skins or 'needle type',  users would need to adjust these sliders every time they change VU meter skins.
It would be much better (in my opinion) if such information could be derived from the skin's ini.
And Mobility+- seems to be the best and only available option for that.


It would be great if other users with interest in the matter could also do some serious and detailed testing all this and possibly confirm things or give their opinion on things.

I'll be back, probably tomorrow.
Title: Re: VUMeter Plugin
Post by: hiccup on September 19, 2024, 07:00:44 AM
@ BoringName and hiccup: the AIMP LVU plugin has been updated to version 1.2.1, following the AIMP developer's direct work with its author xrEngline on fixing the issues with the virus alerts after my request/plea to him to do so.
That's great, well done sveakul!
I myself won't probably be testing this or reporting back on it soon though. I would first like to focus my testing on the needle action.
After that I'm going to test, whine, complain and make tiring demands and suggestions about the action of peak lights ;-)
Title: Re: VUMeter Plugin
Post by: BoringName on September 19, 2024, 07:11:45 AM

One kind of maddening thing was that earlier today the LVU thread contained a back-and-forth in Russian between the AIMP developers and the plugin author on tweaking needle performance, *.ini settings, etc. for the new version--but these comments have all been removed now!  I have asked if they are still available somewhere to read.

Have fun playing with this.

I'll have a read of the thread before I think about installing it just to see if they detail how they stopped the virus reports.

There isn't much to those skins in the ini files. Nothing really related to performance exactly. The DBS section is just a list of 2 values - Decibel and pixels. |-40;200| means it should display 200 pixels of the needle image when the level is -40 decibels. The more values listed in the DBS section, the smoother the movement would be.  I've seen some with 100 values and some with 11.

As for the speed of the needle/LED there is nothing to change that in the ini file. Does the plugin have any options from within AIMP?
Title: Re: VUMeter Plugin
Post by: BoringName on September 19, 2024, 07:43:31 AM
I've got my head around the ZeroLevel thing now. I downloaded probably 30 skins and didn't find a single one that had it set to anything but zero. So I just used AcuVu and changed it's ZeroLevel to -4 and loaded it up in AIMP.

ZeroLevel is effectively an offset but it's kind of backwards. If it's set to -4, the needle will point to -16 instead of -20, if it's set to 4 it points to 24. This offset is across the whole range so when set at -4 the needle will point at zero when it would normally point at -4 decibels. It makes sense, the reason I was having issues with it was the ZeroAngle already told it where to point when at zero. But the ZeroAngle is also used to calculate the span between it and the MaxAngle because a lot of meters use a different scale above zero.
(https://i.imgur.com/NAWtFYq.png)

The distance between 0 and +6 is a lot smaller than -6 and 0. If you just use db offset to add 1.0db, it will end up pointing to +3 instead of where it should point (1/3 of that distance). I'll get that sorted out.
Title: Re: VUMeter Plugin
Post by: sveakul on September 19, 2024, 07:57:36 AM
I'll have a read of the thread before I think about installing it just to see if they detail how they stopped the virus reports.

As for the speed of the needle/LED there is nothing to change that in the ini file. Does the plugin have any options from within AIMP?
No, they don't "detail" how they stopped the reports, but neither did un4seen during the bass-zip "virus" false positive scare that stopped some from downloading MusicBee.  3 detections out of 67 vendors, 2 of which are heuristic and 1 "cloud",  I consider fixed.

There are no options for the meter within AIMP.  I don't have the expertise to comment on what the ini file may be able to do, and have only looked at 3 or 4.  In the right hands, who knows?  ;)
Title: Re: VUMeter Plugin
Post by: hiccup on September 19, 2024, 11:48:34 PM
(https://i.imgur.com/NAWtFYq.png)
The distance between 0 and +6 is a lot smaller than -6 and 0. If you just use db offset to add 1.0db, it will end up pointing to +3 instead of where it should point (1/3 of that distance). I'll get that sorted out.
True.
When I designed that VU meter skin, I was under the impression that the area beyond 0 dB was useless since the needle (in an audio player) would never go there.
So I designed the scale to make optimal use of the available space for the  the ∞ to 0dB zone. (0% to 100%)
I even thought of leaving out any +dB 'red zone' completely, but for historical and visual reasons I thought to keep it, but minimise it as much as possible.
So since I didn't think the needle would ever travel there, and I had no idea how to possibly calibrate that part of the scale, that red zone is not calibrated in any way, and is to be considered some equivalent of the male nipple.
Not sure why it's there, but let's keep it.

Do you think I should change the scale and its red zone indicators somehow?
Title: Re: VUMeter Plugin
Post by: BoringName on September 20, 2024, 03:18:30 AM
When I designed that VU meter skin, I was under the impression that the area beyond 0 dB was useless since the needle (in an audio player) would never go there.

The same reason I didn't have much concern for the settings past zero, they seemed redundant. But as you pointed out, some users might want it to overshoot zero so they get a bit of red in their lives.

Do you think I should change the scale and its red zone indicators somehow?

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 haven't test it yet but the formula will probably be (MaxLevel / peakLevel) * (MaxAngle - ZeroAngle) where MaxLevel will need to be converted to peakValue but as a negative value

A few places specify 10 * log10(PeakValue) to convert peak values to decibels but I found the following formula closer based on the test files and the corresponding peak values. It's not 100% accurate but close.
decibel = 0.2119 + 8.867 * Math.Log(PeakValue);

And the other way
PeakValue = Math.EXP(-(decibel-0.2119)/-8.867);

I haven't used Excel in a while but LibreOffice has the LN and EXP functions if you want to do it in a spreadsheet.

So if you put -1 and -6 (MaxLevel). Based on your ini file, the formula would be
(0.496305364 / 0.872253390) * (55.946 - 43.609) = 7.02

The +1 decibel indicator should be 7.02 degrees past the ZeroAngle. Assuming I haven't stuffed any of that up....

edit: The angles might not line up if the MaxAngle in your ini file is actually pointing to +3 but hopefully you get the idea.

edit2: after testing in AIMP, it looks like I am completely wrong....something to sort out once I get these mobility settings figured out.
Title: Re: VUMeter Plugin
Post by: sveakul on September 20, 2024, 07:56:26 AM
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 (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.
Title: Re: VUMeter Plugin
Post by: BoringName on September 20, 2024, 08:47:38 AM

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 (https://www.mediafire.com/file/mzypc423v8vexic/Pick_signal_2.zip/file)

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.
Title: Re: VUMeter Plugin
Post by: hiccup on September 20, 2024, 01:04:04 PM
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.
Title: Re: VUMeter Plugin
Post by: hiccup on September 20, 2024, 01:14:38 PM
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.
Title: Re: VUMeter Plugin
Post by: BoringName on September 20, 2024, 02:31:58 PM
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.
Title: Re: VUMeter Plugin
Post by: sveakul on September 20, 2024, 07:52:32 PM
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 (https://www.mediafire.com/file/mzypc423v8vexic/Pick_signal_2.zip/file)

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.
Title: Re: VUMeter Plugin
Post by: voodoopunk on September 20, 2024, 08:21:15 PM
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.
Title: Re: VUMeter Plugin
Post by: phred on September 20, 2024, 10:26:52 PM
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.   
Title: Re: VUMeter Plugin
Post by: BoringName on September 20, 2024, 11:11:05 PM
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.
Title: Re: VUMeter Plugin
Post by: BoringName on September 21, 2024, 01:40:07 AM
New version - VUMeter1.5.zip (https://www.mediafire.com/file/744h4mhyee7hvse/VUMeter1.5.zip/file)

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.
Title: Re: VUMeter Plugin
Post by: sveakul on September 21, 2024, 09:23:36 AM
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!
Title: Re: VUMeter Plugin
Post by: BoringName on September 21, 2024, 09:53:01 AM
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.
Title: Re: VUMeter Plugin
Post by: hiccup on September 21, 2024, 08:19:23 PM
New version - VUMeter1.5.zip (https://www.mediafire.com/file/744h4mhyee7hvse/VUMeter1.5.zip/file)
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:
(https://i.imgur.com/8NtVMoe.gif)
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!
Title: Re: VUMeter Plugin
Post by: sveakul on September 21, 2024, 08:35:55 PM
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.
Title: Re: VUMeter Plugin
Post by: sveakul on September 21, 2024, 08:39:34 PM
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:
(https://i.imgur.com/8NtVMoe.gif)
Great!
Yes it is--hiccup, any chance of getting this newly calibrated version of AL-65 posted for us fans?
Title: Re: VUMeter Plugin
Post by: BoringName on September 22, 2024, 12:02:29 AM
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.

I did some more testing on this and found a couple of things.
- In WASAPI excluive mode with logarithmic volume unchecked. Moving the volume slider has no effect unless you set it to 0%. This stops any reading in the meter. This doesn't occur in shared mode, you can set it to 0% and the meter will still read whatever level is currently playing in the test file.
- In WASAPI exclusive mode with logarithmic volume checked, moving the volume slider has a significant impact on the meter reading. As I said before, in shared mode, having logarithmic volume checked and moving the slider has no effect on the meter.

So it's a combination of exclusive mode and logarithmic volume scaling checked.

Also this might interest some of you
https://getmusicbee.com/forum/index.php?topic=41697.msg227885#msg227885

I noticed the needle would sometimes go past zero when I had the sample number set to 1. So you may notice the meter going slightly past zero. I notice it quite a bit playing Cradle by Silversun Pickups. (https://silversunpickups.bandcamp.com/track/cradle-better-nature)
Title: Re: VUMeter Plugin
Post by: Steven on September 22, 2024, 12:11:50 AM
So it's a combination of exclusive mode and logarithmic volume scaling checked.
yes that is a bug thats fixed for the next v3.6 update

https://getmusicbee.com/patches/MusicBee36_Patched.zip
Title: Re: VUMeter Plugin
Post by: sveakul on September 22, 2024, 06:14:38 AM
- In WASAPI exclusive mode with logarithmic volume checked, moving the volume slider has a significant impact on the meter reading. As I said before, in shared mode, having logarithmic volume checked and moving the slider has no effect on the meter.

So it's a combination of exclusive mode and logarithmic volume scaling checked.
Yes, exactly as I first tested and described above, in my Reply #130 post and was told, "This must be due to a combination of something else."
Title: Re: VUMeter Plugin
Post by: hiccup on September 22, 2024, 09:15:49 AM
If hiccup can do one of those gif comparisons of the needle between Musicbee and AIMP that would be great.
Sure, here are two of them.
Both are using AL-65 Calibrated, rise and fall times both set to 0.3
The sample sliders are both set to the minimum setting of 1.
It gives the most 'lively' response, without things becoming shaky or nervous.
I couldn't find benefits in using higher values.
I am assuming it should allow the meter act more as a traditional 'averaging' meter, but I wasn't able to get more satisfying results with higher values myself.


1 sec. 1kHz, test:
(https://i.imgur.com/VhwrLx5.gif)

Both act very similar.
AIMP is a little bit faster in its impulse response, and both the rise- and fall-times are a little bit longer.


music (Supertramp -Bloody Well Right):
(https://i.imgur.com/ONdxsu8.gif)

AIMP is a little bit faster in its response to audio, and seems to be indicating averages a bit more than peaks.

VUMeter is more 'lively', which looks good to me.
Increasing the rise and fall times will make it look like its behaving a bit less as a peak indicator, but that quickly has a negative effect on the responsiveness.



Quote from: BoringName
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.
Yes, I am aware and that is intentional.
The focus for my VU meter skins goes to having the needle action being as satisfying as possible, making the best possible use of the available area, and looking visually pleasing and 'balanced' overall.
Making them 'calibrated' will require making some sacrifices on that.
I created AcuVU (and now AL-65 Calibrated) purely for testing purposes trying to be helpful in getting a good idea about what is going on exactly and how things could possibly be improved for the plugin.

But for actual use when playing music I don't care much about the values on the scale being acurate. (if that is even possible for a VU meter)
And I am guessing that will be the case for the majority of users.
As I said before, many very nice VU meter skins are actually ampere meters, voltage meters, oil presure meters, or even speedometers. And nobody ever complained about that ;-)



Quote from: BoringName
I noticed the needle would sometimes go past zero when I had the sample number set to 1. So you may notice the meter going slightly past zero.
Yeah, I've noticed that too with some wall-of-sound tracks.
But that seems fine to me, it's what I would expect from a traditional VU meter also.



Yes it is--hiccup, any chance of getting this newly calibrated version of AL-65 posted for us fans?
Sure, I've added it to the regular AL-65 download link.

- - -

And a request for a new feature:
Could the plugin be made to recognise a (simple) folder structure for the skin location?
It would be useful to be able to have them organised a bit, same as can be done with MusicBee skins.
 
Title: Re: VUMeter Plugin
Post by: BoringName on September 22, 2024, 09:50:34 AM
Thanks for that. Geez that's bloody close. Not bad considering I used the stopwatch on my phone to try and time the fall/rise times in AIMP.

I think I might call it a day on adjusting the movement and leave it as is.

I don't know how much difference it makes but I think setting the sample interval to 1ms is overkill. If you can't notice a difference at higher values then set it higher as it means less work for the machine.

But for actual use when playing music I don't care much about the values on the scale being acurate. (if that is even possible for a VU meter)
And I am guessing that will be the case for the majority of users.

I'm going to pretend I didn't read that.

And a request for a new feature:
Could the plugin be made to recognise a (simple) folder structure for the skin location?
It would be useful to be able to have them organised a bit, same as can be done with MusicBee skins.

I thought you would ask about implementing LED/lamps before something like that :)

Do you mean an option to specify a folder somewhere outside the plugins folder? eg) D:\VUSkins\

I'm just finishing up testing a version that has LED/Lamps as well as needles on the same meter. Just in case you were curious.
Title: Re: VUMeter Plugin
Post by: hiccup on September 22, 2024, 10:06:58 AM
Do you mean an option to specify a folder somewhere outside the plugins folder? eg) D:\VUSkins\
No, I'm thinking of a subfolder level.
So you could have something like:

...\Plugins\VUMeter\VUSkins\analogue\Hartmann & Braun.zip
...\Plugins\VUMeter\VUSkins\analogue\SPL Mk.2.zip
...\Plugins\VUMeter\VUSkins\vertical\NightBars.zip
...\Plugins\VUMeter\VUSkins\testing\AL-65 Calibrated.zip
...\Plugins\VUMeter\VUSkins\testing\DejaVU LED.zip
etc.

Quote
I thought you would ask about implementing LED/lamps before something like that :)
Nah, the last thing I would want to be is being too pushy.
The needle action stuff was much more important to me, so I thought to focus on that first, and now enjoy the accomplishments in that area. And not immediately putting pressure on other complicated 'stuff to do' on your shoulders ;-)

I'm going to pretend I didn't read that.
Well, the Hartmann & Braun meter that you seem to like and have selected for inclusion in your plugin is actually a milliampère meter.
No correct dB values to be found in that one also ;-)

- - -

edit:
About this:
Quote
I don't know how much difference it makes but I think setting the sample interval to 1ms is overkill. If you can't notice a difference at higher values then set it higher as it means less work for the machine.
I can't observe any higher cpu load when changing it to e.g. 5 instead of 1.
The load continuously fluctuates a lot, making it difficult to be sure, but on average I think it's somewhere around 2% with either setting.
And, as soon as I set it higher than say 3, I start noticing it starts missing faster 'beats'.
So I myself don't see a reason for setting it higher than 1.
Title: Re: VUMeter Plugin
Post by: hiccup on September 22, 2024, 11:32:26 AM
- 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.
Confirming that that now works perfectly:
(https://i.imgur.com/hpvFZjz.gif)
Title: Re: VUMeter Plugin
Post by: BoringName on September 22, 2024, 01:21:21 PM
No, I'm thinking of a subfolder level.

That might involve a few changes. I'll think about it.

Well, the Hartmann & Braun meter that you seem to like and have selected for inclusion in your plugin is actually a milliampère meter.
No correct dB values to be found in that one also ;-)

Yeah I didn't put a lot of thought into any of those, I just tried to include a few that looked different. I initially thought no one would be too worried about any of the accuracy as long as it looked flashy but here we are 5 versions later..... I've wasted a fair bit of time on silly mistakes but I'm liking where it's at.

And, as soon as I set it higher than say 3, I start noticing it starts missing faster 'beats'.
So I myself don't see a reason for setting it higher than 1.

Like I said, I don't know how much difference it makes, if it creates a visible difference then fair enough. In my head I think it's putting load on musicbee to supply those peak values every millisecond but in real terms it's probably the equivalent of adding one grain of sugar to a tonne of it and expecting to notice the weight difference.

Title: Re: VUMeter Plugin
Post by: hiccup on September 22, 2024, 03:32:42 PM
I've wasted a fair bit of time on silly mistakes but I'm liking where it's at.
Perhaps a small piece of comfort on that:
Without 'mistakes', Darwin would not have invented Evolution some time ago.
And then we would not even have been here to enjoy bourbon and wasting our time on silly computer stuff.

About the included VU meter skins, I'm not sure, and maybe you have already done this, but it would be good to credit the creators of the AIMP skins that you have included with the plugin?
Just making sure. They (same as me) also have made many mistakes in their efforts to create and share their work.
Title: Re: VUMeter Plugin
Post by: BoringName on September 22, 2024, 10:19:56 PM
About the included VU meter skins, I'm not sure, and maybe you have already done this, but it would be good to credit the creators of the AIMP skins that you have included with the plugin?

Yes, that's poor form on my part. I'll update the addon page and add a credit text to any future release zips.
Title: Re: VUMeter Plugin
Post by: BoringName on September 23, 2024, 02:39:27 AM
New version - VUMeter1.6.zip (https://www.mediafire.com/file/aplcrx0nektb7l8/VUMeter1.6.zip/file)

Is anyone sick of having to download a new version every 5 minutes?

Changes -
- LEDs can now be added to AIMP skins. They follow a similar configuration to the LVU skins.
- Option added "LED Use Peak". This specifies if the LED will use peak values with no rise/fall modifications or use the same values as the needles. This only has an effect on AIMP skins that contain LEDs, it has no effect on LVU skins.

Buckle up, this might get complicated.

To add LEDs to an AIMP skin, you need to add "orientation" and "dbs" fields to the skin.ini file. I have modified some of Hiccups skins as an example of how it works. They are nasty hack jobs and probably not something you want to use, it's just to give an idea on how it works. You can download them here - VUMeter LED Examples.zip (https://www.mediafire.com/file/devmke35qswyx2j/VUMeter_LED_Examples.zip/file). I'll go through the different types and how they work further down.

orientation
- 0 for horizontal. This sets the dbs values to be used from the left edge of the image to the right.
- 1 for vertical.This sets the dbs values to be used from the bottom of the image to the top.

dbs
- As with LVU, this is broken up into sets of 2 values, each set is separated by a vertical bar "|" and the values are separated by a semi colon ";". The first value is the decibel level and the second is the number of pixels of the image to display at this level. Number of pixels from the left of the image for orientation 0 or number of pixels from the bottom of the image for orientation 1. VUMeter will search this set of values and return the value that matches the current level or if it cannot be found, it will return the closest one that is below it.

If it can't find the value and they are all higher, it will default to the lowest value. Because of this behaviour you should always make the first value a level that's less than displayed on your meter (eg) -80 and set the number of pixels before any part of the image (unless you want part of the LED image to always be displayed). You can see an example of this in the "AcuVU LED.zip" where the first value is -80;51. The LED image does not start until pixel 56. If the pixel value was set to 98, the first LED would always be on display even when nothing is playing.

How it works with different configurations.
Note - The LED image file resolutions need to match the other images with these types of the skins.
AcuVU LED.zip - This skin has a single set of images to be used for both channels. The LED's will use separate left and right signals for each meter. In single meter mode they will use the combined average.
AcuVU LED V.zip - Same as the first skin but this has orientation set to 1 and a different LED image file changed to be vertical.

AL-65 Elemental LED.zip - This skin has separate images for each channel but only 1 LED has been configured for the left channel. With skins that have separate channel images, VUMeter will check the resolution of the LED image, if the width matches exactly to the combined total width of both channel background images, it will display the LED across the whole meter. If only the left is configured it will use combined averages, if left and right LEDs are configured they will use their respective signals.

AL-65 Elemental 2xLED.zip - Same as above except both left and right LEDs are configured. Both set to display across the whole meter.

DejaVU Void Red LED.zip - This skin has separate images for each channel. Left and right LEDs are configured but their width is set to the same as the other image files for each channel so they only span their own side of the meter.

You may notice some of the increments in the dbs sections do not increase by an even amount of pixels even though the LEDs are all the same size. It's because I just opened the images in an editor, put the cursor somewhere past the LED I wanted to display and noted down the x values. It doesn't have to be exact as long as it is past the part of the LED image you want to display for that level. I hope that makes sense...

For single sets of images, the draw order is Background (0.png), LED (3.png), Needle(1.png), Foreground(2.png).

For separate sets of the images the draw order is Left Background (L_0.png), Right Background (R_0.png), Right LED (R_3.png), Right Needle(R_1.png), Left LED (L_3.png), Left Needle(L_1.png), Left Foregound(L_2.png), Right Foreground(R_2.png)

Each image will overlap the image(s) drawn before it so transparency needs to be used for anything you want to remain visible.

If you wanted to make a skin that was LED only but in the AIMP format, just configure the LEDs and use fully transparent images for the needle files.
Title: Re: VUMeter Plugin
Post by: hiccup on September 23, 2024, 05:53:34 PM
New version - VUMeter1.6.zip (https://www.mediafire.com/file/aplcrx0nektb7l8/VUMeter1.6.zip/file)
Changes -
- LEDs can now be added to AIMP skins. They follow a similar configuration to the LVU skins.…
Looking good! (and also very well explained and thought-through)

I have created a new VU meter skin that is using these peak indicators.
It's called DejaVU Compact LED Calibrated and can be found here. (https://getmusicbee.com/forum/index.php?topic=41696.msg227213#msg227213)
(https://i.imgur.com/YtDHTqr.png)
I hope you like it. (I do ;-)

PS
I suggest using it with the sample sliders both set to 1.
Besides it resulting in very responsive needle action that is able to follow higher-paced rhythms, it also seems to help in keeping audio/visual delays at a minimum.

And perhaps turn the mouse-wheel to +1 or +2, to get some sense of living on the edge...
(and also to see what the VU meter may have looked like in the recording room)
Title: Re: VUMeter Plugin
Post by: Bee-liever on September 25, 2024, 12:30:26 AM
Is anyone sick of having to download a new version every 5 minutes?
Not me! (but you're probably tired of uploading them)  ;)

Possibly for VUMeter1.7
An option for the plugin to read the replaygain tag for the playing file and automatically adjust the meter gain to compensate.
Title: Re: VUMeter Plugin
Post by: BoringName on September 25, 2024, 07:54:06 AM
Possibly for VUMeter1.7
An option for the plugin to read the replaygain tag for the playing file and automatically adjust the meter gain to compensate.

I was trying to avoid messing around with the library to keep the plugin simple but it's already well past that descriptor.

Looks like I can just directly minus the replaygain value off the peak value to get the desired result. The test track with replaygain of -20% is reading a peak value of 0.80 when playing the 0 level section. (1.0 peak value). Something simple for once!
Title: Re: VUMeter Plugin
Post by: Bee-liever on September 25, 2024, 11:25:45 AM
Looks like I can just directly minus the replaygain value off the peak value to get the desired result. The test track with replaygain of -20% is reading a peak value of 0.80 when playing the 0 level section. (1.0 peak value). Something simple for once!

I thought the peak value was being calculated after replay gain was applied.
So you would take the replay gain -
(http://i.imgur.com/BPvfCTQ.jpg) (https://imgur.com/BPvfCTQ)

and add it to the dB here -
(https://i.imgur.com/nMeDOjn.jpg)
Title: Re: VUMeter Plugin
Post by: BoringName on September 25, 2024, 12:17:46 PM
I thought the peak value was being calculated after replay gain was applied.

Yeah it is. But it seems we are talking about different things. I was looking at the settings tab where the volume adjustment was listed as a percentage. That seems to be separate to the volume leveling setting you have linked.

Volume adjustment adds an RVAD tag to the track where the value is -26 for a 10% volume adjustment or -51 for 20%...... great....

Analysing the volume adds REPLAY_TRACK_GAIN and REPLAY_TRACK_PEAK listed as a db value and peak value respectively. I assume querying the tracks ReplayGain property will return the REPLAY_TRACK_GAIN value and the volume adjustment is not involved? Who knows, I will have to run some tests.
Title: Re: VUMeter Plugin
Post by: hiccup on September 25, 2024, 12:42:15 PM
An option for the plugin to read the replaygain tag for the playing file and automatically adjust the meter gain to compensate.
So for you the meter output does not depend on ReplayGain values in a track?
That's weird, for me it does, and I wished it could be disabled.
This was also discussed earlier and with others, and the request that came from it was to have a pre- vs. post option.
(getting the raw sample data for pre, and post EQ/Volume/plugins audio for the other)

Perhaps this depends on audio settings somehow?
Strange.

edit
I may have interpreted what you wrote differently from what you mean.
Reading it again, it seems that you also would like to avoid ReplayGain values influencing the meter output?
The earlier and existing pre/post request would already allow for that (and I would prefer that solution), but if that can't be done, a separate option setting could also do the trick I guess.
Title: Re: VUMeter Plugin
Post by: BoringName on September 26, 2024, 12:17:52 AM
he earlier and existing pre/post request would already allow for that (and I would prefer that solution), but if that can't be done, a separate option setting could also do the trick I guess.

I can adjust for the replay gain tag values but there doesn't appear to be anything in the Musicbee interface that gives me access to the player equaliser and DSP settings. I can check if they are enabled but I can't read any values.
Title: Re: VUMeter Plugin
Post by: Bee-liever on September 26, 2024, 12:53:19 AM
This was also discussed earlier and with others, and the request that came from it was to have a pre- vs. post option.
(getting the raw sample data for pre, and post EQ/Volume/plugins audio for the other)

Would the new API call GetPCMRawData(float*, int) here (https://getmusicbee.com/forum/index.php?topic=41272.0), allow for this?
Title: Re: VUMeter Plugin
Post by: BoringName on September 26, 2024, 03:12:25 AM
Would the new API call GetPCMRawData(float*, int) here (https://getmusicbee.com/forum/index.php?topic=41272.0), allow for this?

I did already post about that but it appears that post got removed when the website was having issues a while back.

Two issues.
1. My plugin is written in C# and from the chat in that thread, and the fact it's using a pointer(float*) in that call,  the api call is for C++. That might be worked around but the main issue is point 2.
2. Pretty sure all that PCM stuff is beyond me. Or maybe more accurately, I'm not interested in the many rabbit holes I'll have to go down to figure it out.
Title: Re: VUMeter Plugin
Post by: hiccup on September 26, 2024, 06:48:21 PM
I noticed a minor sort of light halo around LEDs.
I had the leds on a completely transparent background, so I thought to place a thin bar behind them in the same colour as the VU meter background, so the LEDs themselves are not transparent anymore.

But the halo remains, but now shows the contours of the thin bar containing the LEDs.

Here's what it looks like:
(https://i.imgur.com/HyuAyKb.png)

Here (https://www.dropbox.com/scl/fi/u1ltsxovubkipk8yvym5i/LED-halo-test-skin.zip?rlkey=d7wrv60misw136t5j8h969973&dl=0) is a skin that demonstrates this.

- - -

edit
Noticing something else:

Is MaxLevel being read properly?
Using this same skin, it currently has MaxLevel at 6.
And the needle is properly traveling to the MaxAngle position on a 6dB signal.

Now when I change MaxLevel to 5, and leave the MaxAngle as-is, I would expect the needle to travel to the MaxAngle position on a 5 dB signal.
But it doesn't. It stops before that, and it's still a 6 dB signal that will end up at MaxAngle.

I have an itch that I can't scratch that I'm doing something stupid and overlooking something simple. But I thought to share this potato while it's hot anyway.
Title: Re: VUMeter Plugin
Post by: BoringName on September 27, 2024, 01:40:47 AM
I noticed a minor sort of light halo around LEDs.

Welcome to the bane of my existence when making 3DBee - Alpha blending.

Without writing a war and peace novel. OpenGL averages out the alpha between the existing image (L_0.png) and the image been drawn on top of it (L_3.png). There is some stupid quirk where edges get treated like they are half transparent. It's something to do with the scaling because it can't always use full pixels so it approximates it with surrounding pixels. There are different methods for blending that will fix your issue but they cause issues in other transparent areas like the shadows on your needles. Some colour combinations are worse than others.

This is how I fixed your issue.
- Open the LED image in Paint.Net
- Used the colour picker to get the dark grey colour
- Set the alpha to around half. If you set it to zero at this point the next step won't actually do anything
- Use the paint bucket to fill the transparent area.
- Without clicking anything, adjust the alpha slider on the colour panel to zero. You should see the transparent area you just filled with the paint bucket go clear again.

Save the file. If you open it again and use the colour picker on the transparent area, you will see the RGB values are set to 31 and the alpha will be 8. For whatever reason it won't save as zero.

For me this gets rid of the outline on the LEDs and I can't see any effect from the alpha being 8 for the rest of the image. Your eyes are probably better than mine though.... I believe this fixes it because transparent areas are treated as rgba(0,0,0,0) when it's doing the blending which is white. But we just changed the transparent area to (31,31,31,8) which is the same colour as the edge which stops it making the edge a lighter colour when approximating the pixels - That's just my theory.

Is MaxLevel being read properly?

No. That seems to have dropped off my to do list. I've stuck it back on there. I thought I'd already implemented it when I stopped the needle going past the max angle on the meter but I obviously didn't.
Title: Re: VUMeter Plugin
Post by: BoringName on September 27, 2024, 08:12:34 AM
2. Pretty sure all that PCM stuff is beyond me. Or maybe more accurately, I'm not interested in the many rabbit holes I'll have to go down to figure it out.

I lied again. Steven helped out with the C#/C++ issue and the PCM stuff wasn't as complicated as I thought it would be. Just a bit of wizardry to separate the channels.

Just waiting on some clarification on where in the chain the raw data comes from. It seems to be post track tags and pre Equaliser & DSP. I can adjust for the Replay_Gain_track tags but I cant adjust for RVAD tags.

Actually realised that makes sense so the question is. Just to start a debate, whats the consensus (or lack of)  on the different options.

Normal mode - displayed levels include all tag adjustments and gains from EQ\plugins etc...
Raw mode - displayed levels exclude all tag adjustments and gains from EQ\plugins.

Is there anyone that wants a mode where tags are included but not the EQ\Plugins? Note- at this stage I can't make adjustments for RVAD tags. So really I'm just asking about the replay_gain tag.
Title: Re: VUMeter Plugin
Post by: hiccup on September 27, 2024, 08:14:46 AM
Without writing a war and peace novel. OpenGL averages out the alpha between the existing image (L_0.png) and the image been drawn on top of it (L_3.png).
(using Photoshop myself) I added a 1 px. border around the LED bar with its transparency set to 1%.
That solves the issue completely.

Quote
Is MaxLevel being read properly?
No. That seems to have dropped off my to do list. I've stuck it back on there. I thought I'd already implemented it when I stopped the needle going past the max angle on the meter but I obviously didn't.
Thanks in advance.
That'll be a great opportunity for me to re-align all my VU meter skins ;-)
Title: Re: VUMeter Plugin
Post by: hiccup on September 27, 2024, 08:19:36 AM
I can adjust for the Replay_Gain_track tags but I cant adjust for RVAD tags.
I'm wondering how important that is.
I can be wrong, but my guess would be that the vast majority of people that care about loudness are using ReplayGain, and not many are using that RVAD slider on a per track basis.

edit
And I believe other formats than mp3 such as FLAC, OPUS, APE, m4a etc. don't do anything with such a tag?
Not 100% sure though.
Title: Re: VUMeter Plugin
Post by: hiccup on September 27, 2024, 09:56:51 AM
Actually realised that makes sense so the question is. Just to start a debate, whats the consensus (or lack of)  on the different options.

Normal mode - displayed levels include all tag adjustments and gains from EQ\plugins etc...
Raw mode - displayed levels exclude all tag adjustments and gains from EQ\plugins.

Is there anyone that wants a mode where tags are included but not the EQ\Plugins?
If you accomplish getting either the pre (raw) audio, or the post audio stream (the stream that ends up at the speakers/headphones), will there be any reason to additionally consider using tag information?
Title: Re: VUMeter Plugin
Post by: BoringName on September 27, 2024, 12:15:22 PM
If you accomplish getting either the pre (raw) audio, or the post audio stream (the stream that ends up at the speakers/headphones), will there be any reason to additionally consider using tag information?

Well I thought post values would have been enough but clearly some users want pre values. I'm not invested in it all enough to make the decisions as I don't have enough info on what's important and what isn't. My partner is the music buff and she doesn't care about that stuff either. I like music but she does all the curating, I just listen to whatever she is playing. Her computer is connected to our home theater system and it all sounds great without needing any volume modification.
Title: Re: VUMeter Plugin
Post by: hiccup on September 27, 2024, 12:34:03 PM
Her computer is connected to our home theater system and it all sounds great without needing any volume modification.
Then I am guessing you are not having some more eclectic genre playlists that can randomly shuffle between Satie and Meshuggah?

Without ReplayGain, I would either have been deaf by now, or evicted due to complaints from neighbours.
Title: Re: VUMeter Plugin
Post by: voodoopunk on September 27, 2024, 01:28:27 PM
Just to stick my oar in, I manage to go from Sakura Gakuin to Agathocles without any need for volume modification. Just one giant auto playlist that shuffles everything from Sakamoto to Dead Kennedys.

Sorry for the interruption, back to the VUMeter Plugin.
Title: Re: VUMeter Plugin
Post by: hiccup on September 28, 2024, 04:46:44 PM
A couple of requests and suggestions that have been in the back of my mind.
Obviously, feel free to place them low on your to-do-list.
(as long as they are above that silly garage stuff ;-)

1.  'use skin colour'

When using 'Use skin colour', I notice some colouring that doesn't really work well.
It's not blending in perfectly with the surrounding area where I have the VU meter.
For me it's in the right sidebar, where I am guessing many users will place it. (or the left sidebar, for some confused English, Japanese or Australian drivers users)

It looks like the plugin currently takes the colour from "Panel.ChildBody.Default".
I think it would be better if it took it from "TrackInfoPanel.Default".
(these are skinning terminologies, MusicBee's API may have different wordings or options for this)
 
(https://i.imgur.com/CjEAMKX.png)

This would look a lot better:
(https://i.imgur.com/sZ4zqZh.png)


2. bar-type VU meters

A VU meter skin like this can currently not be accomplished:

(https://i.imgur.com/175AE5z.png)

The reason being it requires the needles to have a width that exceeds the size of the '0' background images, which currently is not allowed for.

I'm not sure what the best solution would be, but here are two ideas:

1. allow the needle to have a length wider (or higher in case of vertical meters) than the L_0/R_0 images. (this already seems to work for L_3/R_3 LEDs)
2. add a new option to have the left and right meters showing on top of eachother instead of only side-by-side. (which is how foobar2000 solves this)

Personally I would prefer a solution like #1, since it would avoid adding yet another option to the VUMeter option list. (yep, still a believer in 'less is more' ;-)


3. prevent needles from displaying outside the designated VU meter area.
This came up before, but I thought to revive it. Also because it relates to the previous request/suggestion.


4. allow subfolders for VU meter skins
This is an existing request you already said you would give some thought.
Just repeating it here to keep things together a bit. (and because I would appreciate it a lot)


5. minimum duration of LEDs lighting up.
Not sure if this is worth much consideration, but I thought to mention it while at it.
LEDs are working great and are very responsive. Responsive to the extend that you can sometimes hardly see them lighting up.
If possible, a minimum 'lights on' duration could solve that.
Not sure about how long, maybe something around 0.3 seconds?


6.


Hm, I can't think of a 6th suggestion/request.
Which is probably an indication of how great this plugin is functioning by now.
This has become better and more fun than I could ever expect or hope for.

And it really helps to add some character to The Bee.
 
Title: Re: VUMeter Plugin
Post by: BoringName on September 29, 2024, 02:14:21 AM
1.  'use skin colour'
2. bar-type VU meters
3. prevent needles from displaying outside the designated VU meter area.
4. allow subfolders for VU meter skins
5. minimum duration of LEDs lighting up.
6.

1. It's currently using the background of the SkinTrackAndArtistPanel element. I can see a use for either colour as your suggestion wouldn't suit my layout. I'll see if I can put a toggle selector on there.
2. I don't believe your statement is correct. Why does it have to be wider than the background image? It just needs to be wide enough to fill the bar area. The rest is done with the angle and pivotpoint settings. The minAngle needs to be set low enough so the bar is completely off to the left when the level is less than -50. The maxAngle needs to be set so 100% of the bar is visible at 6+.
If it's not going to use LED's, you can set the needle images to blank files and just use the LED method to create the bars.
3. Yes, I still need to fix this. It's going to be fiddly to implement so I've been putting it off.
4. I currently scan the skin folder and any skins it finds gets added to the context menu and it's set to go through the appdata folder and the musicbee\plugins folder. When a skin is selected it uses the text in the context menu to find the skin file,  checking both locations. It's quick and easy. What you're suggesting complicates it a bit, I can make a context menu based on a folder structure but retrieving the skins location is a bit tricky. I either have to store the path of every skin or iterate over the directories looking for it. Or maybe have 2 trees for the different folders mentioned above and use the context menu tree structure to build the path when it's selected. I might be overthinking it but I want to make sure whatever way it's done won't be a problem if someone decides to have 1000 skins in sub folders..... although who would do that?  ;)
5. Not sure I will do this. I guess it's a requirement if someone wanted to make a skin simulating a bulb instead of an LED. We'll see.
6. Have we hit peak ideas?

edit: For 4 it looks like I can use the "Tag" property to store a file path, that simplifies things.
Title: Re: VUMeter Plugin
Post by: hiccup on September 29, 2024, 07:16:46 AM
2. I don't believe your statement is correct. Why does it have to be wider than the background image? It just needs to be wide enough to fill the bar area.
The needles can't get wide enough to fill the bar area, since these kind of meters are constructed from separate left and a right segments.
And neither of the two needles can be made long enough to cover the whole area.
(check out my Smooth Slider skin to see what I mean)

Quote
5. Not sure I will do this. I guess it's a requirement if someone wanted to make a skin simulating a bulb instead of an LED. We'll see.
OK, but that is a different principle.
For glow-bulbs, that would mean the light fading out.
My request for LEDs is not for them fading out, but keeping them lit at least as long as the human eye can properly see them lighting up.
Some fade-out option could also serve a purpose for LEDs, but it is a little bit different from what I am suggesting.
Title: Re: VUMeter Plugin
Post by: BoringName on September 29, 2024, 11:45:24 AM
(check out my Smooth Slider skin to see what I mean)

This one works
https://www.aimp.ru/forum/index.php?topic=52865.msg338035#msg338035

But it seems R_1.png isn't the same size as the other R_*.png files....... I've had too many drinks tonight to understand why it works. I'll check it out more tomorrow but that should give you some ideas. The creativity required to make some of these skins work does blow my mind a little.

OK, but that is a different principle.

Maybe, but if I setup a decay setting, at very low levels I think it would give the effect you are after and higher settings would make it look like the LED was fading out. I won't know until I test it.
Title: Re: VUMeter Plugin
Post by: hiccup on September 29, 2024, 11:55:17 AM
This one works
https://www.aimp.ru/forum/index.php?topic=52865.msg338035#msg338035
It only works because the area where the indicators are is is half the size of what the VU meter is occupying, which is a large waste of space.

Quote
The creativity required to make some of these skins work does blow my mind a little.
Then try to figure out what I did with Smooth Slider to make better use of the available space ;-)
Title: Re: VUMeter Plugin
Post by: BoringName on September 29, 2024, 12:59:30 PM
Then try to figure out what I did with Smooth Slider to make better use of the available space ;-)

I've sobered up a bit. That is clever. I didn't figure out what the problem was until I played the left channel test file.

This meter can be made using the LVU method and that is probably the best method for this type of skin. So the actual issue is making a skin like this that also has LEDs for both channels. I believe you could make a skin like this with bars for both channels and LEDs for one channel if you used a needle as a cover. Actually you could make one with 2 LED channels if they didn't span the whole width of the meter so it's a very specific issue.

And just to make sure I'm not missing anything, this is currently something that can't be done with AIMP/LVU so it would be something unique to Musicbee?

Without putting too much thought into it, I really don't want to deal with different sized image files for the AIMP skins but I'll think about it more in the morning when I'm thinking a bit clearer.
Title: Re: VUMeter Plugin
Post by: hiccup on September 29, 2024, 02:30:07 PM
I've sobered up a bit. That is clever. I didn't figure out what the problem was until I played the left channel test file.
Try playing some Beatles stereo masters ;-)

Quote

This meter can be made using the LVU method and that is probably the best method for this type of skin.
I don't think that would work very well, because it would require a very large amount of dB steps to make the lightbars move at least a little bit smooth.
Also I had tried that before, but I think the ini does not accept fractions for the dB values.

Quote

And just to make sure I'm not missing anything, this is currently something that can't be done with AIMP/LVU so it would be something unique to Musicbee?
Correct. It can currently not be done with AIMP.
It can be done with foobar2000, it has the 'vertical' option for that.
And there are a lot of foobar2000 skins that make use of that.

(https://i.imgur.com/zEZKSyh.png)

Eventhough the foobar2000 solution is easier for skinners, a 'longer needle' solution would be better for the end user.
 (no need to switch between H and V modes)

Also I am wondering:
The plugin currently already accepts LED bars to be longer than the background image.
I am guessing these skins will not be compatible with AIMP either? (I haven't tested that yet)
Title: Re: VUMeter Plugin
Post by: BoringName on September 29, 2024, 11:44:50 PM

I don't think that would work very well, because it would require a very large amount of dB steps to make the lightbars move at least a little bit smooth.
Also I had tried that before, but I think the ini does not accept fractions for the dB values.

I just did a test converting that skin to the LVU method and you are correct. It's not very smooth. I can change it to support decimal DB values but it's not very practical having to create a large dbs list.

Also I am wondering:
The plugin currently already accepts LED bars to be longer than the background image.
I am guessing these skins will not be compatible with AIMP either? (I haven't tested that yet)

Yes and it complicates things quite a bit. When all the files are the same size you can do it all with one set of vertices, once you start resizing things you have to create separate vertices for everything and make sure all the positioning is correct so it works regardless of what axis the aspect is locked to.

No, they will not be compatible once you add LED settings to an AIMP skin.
LVU type skins will work with AIMP if you have the LVU plugin installed, they will also work in Musicbee
AIMP skins will work with AIMP and Musicbee. I think the plugin for these is installed by default in AIMP?
AIMP skins with LVU style LEDs added will only work in Musicbee.  AIMP does load them and the needle will work but it ignores the LED settings and doesn't display them

AIMP style skins with a larger needle file don't display properly, AIMP just squishes the image down to make it the same size as the background. There is also a risk if I allow different sized needles that some existing AIMP skins won't display correctly anymore. The way it's setup, it will shrink or expand the needle image to match the background. If someone inadvertently made a needle image at half the size, it would probably still display correctly but if I allow different sized needles it won't anymore, I won't be able to check if it's size was intentional or a mistake.
Title: Re: VUMeter Plugin
Post by: hiccup on September 30, 2024, 07:59:20 AM
If someone inadvertently made a needle image at half the size, it would probably still display correctly but if I allow different sized needles it won't anymore, I won't be able to check if it's size was intentional or a mistake.
That's a thorough analysis of things.
So one thing seems clear: 100% out-of-the-box compatibility between MusicBee with AIMP skins is not a realistic (or even a desirable) goal.

Do you have any idea if there are many AIMP skins that have needles where the creator has taken some lazy approach and did not size them properly?
Since that wouldn't work for traditional needles to begin with, I'm guessing there won't be that many?

So it looks like there are two options?
1. allow for wider needles with the consequence that some (very few?) AIMP skins won't work well. (which skins could very easily be modified to correct the needle size)
2. implement the foobar2000 option for L+R (V)

Choose wisely ;-)

PS
It's a pity that there is no input from other MusicBee users about using existing AIMP skins with your your plugin.
It makes it more of a guessing game for you and me about the importance of compatibility and possible challenges with that.
Ah well, perhaps they are only using my VU meter skins. If so, we can forget about compatibility completely ;-)

And if there are some very nice AIMP skins that prove not to be fully compatible with MusicBee that someone wants to use, it shouldn't be difficult to create a MusicBee mod of them.
Which is what will need to be done for any and all foobar2000 skins (which are the source of the majority of AIMP skins) to begin with.

Cut to the chase, my standpoint would be that getting your plugin the best as it can be is much more important than any possible considerations for staying compatible with AIMP.
You, sveakul and I have put in a lot of time and effort in this.
It's only fair that an end-user that wants to use an AIMP skin that doesn't work perfectly in MusicBee puts in a little effort himself and creates (and shares) a mod of it.
Title: Re: VUMeter Plugin
Post by: sveakul on September 30, 2024, 09:24:31 PM
LVU type skins will work with AIMP if you have the LVU plugin installed, they will also work in Musicbee
AIMP skins will work with AIMP and Musicbee. I think the plugin for these is installed by default in AIMP?
AIMP skins with LVU style LEDs added will only work in Musicbee.  AIMP does load them and the needle will work but it ignores the LED settings and doesn't display them

Good summary.  Yes, the "AIMP skin" plugin is installed by default in AIMP--"aimp_analogMeter.dll"

I assume the Foobar "BIN" meters are still indecipherable for use elsewhere?  I finally downloaded and installed that old plugin ("foo_vis_vumeter.dll") in my 32-bit Foobar 1.6.18 and a few of the huge amount of BIN meters and am surprised at how nice they look--hard to tell how accurate, however.  While advertised as "analog" the available skins include a large amount of LED types along with the needle meters.
Title: Re: VUMeter Plugin
Post by: BoringName on September 30, 2024, 10:55:34 PM

So one thing seems clear: 100% out-of-the-box compatibility between MusicBee with AIMP skins is not a realistic (or even a desirable) goal.

Well that kind of was the plan initially. Just get all the different skins working in Musicbee. It's just evolved now which I'm fine with.
Do you have any idea if there are many AIMP skins that have needles where the creator has taken some lazy approach and did not size them properly?

I don't but I've found a few skin not setup correctly. It's not a big deal, I was just trying to come up with an excuse not to do the changes :)

So it looks like there are two options?
1. allow for wider needles with the consequence that some (very few?) AIMP skins won't work well. (which skins could very easily be modified to correct the needle size)
2. implement the foobar2000 option for L+R (V)

While it's probably going to be a very major change just because of how everything is structured, I think option 2 is the way to go. It solves a problem and also adds another display option for users without needing to change the format of the image files. It will just be similar to the Single meter option where some merged skins won't display correctly unless set to correct orientation.

It makes it more of a guessing game for you and me about the importance of compatibility and possible challenges with that.

Might be a good sign, people tend to only speak up if they disagree with something so maybe they are onboard with all the changes.

Cut to the chase, my standpoint would be that getting your plugin the best as it can be is much more important than any possible considerations for staying compatible with AIMP.

Yeah I'm in this camp now really. If they can't edit the skins themselves I'm sure they can get help here.

I'll probably post a new version soon with the option to ignore any volume modifications plus a few other improvements. Then work on the vertical option. That's going to take a while.

I assume the Foobar "BIN" meters are still indecipherable for use elsewhere?

Yeah, I hit a dead end there unfortunately.
Title: Re: VUMeter Plugin
Post by: BoringName on October 01, 2024, 02:34:15 AM
I just did a test converting that skin to the LVU method and you are correct. It's not very smooth. I can change it to support decimal DB values but it's not very practical having to create a large dbs list.

I just had a light bulb moment on this one. I could set it up so if the dbs field just contained the text "auto" or something like that instead of values. It could use the minlevel and maxLevel settings as a range and display a percentage of the bar image based on that range. eg) If the range was -20 (0.1) and +6 (1.42). -4 decibels (0.63) would display ~50% of the meter image. That would create a much smoother meter. It would be trickier to calibrate though.

edit: Might be obvious but this would only be good for a bar type meter using the LVU method. It's not going to work where you want the appearance of an LED turning on and off as it would look like the LED is filling up/emptying.
Title: Re: VUMeter Plugin
Post by: sveakul on October 01, 2024, 07:10:53 AM

I assume the Foobar "BIN" meters are still indecipherable for use elsewhere?

Yeah, I hit a dead end there unfortunately.
I saw this just recently posted at the Foobar forum, not sure how it may help here but interesting:

https://hydrogenaud.io/index.php/topic,124454.msg1051481.html#msg1051481 (https://hydrogenaud.io/index.php/topic,124454.msg1051481.html#msg1051481)
Title: Re: VUMeter Plugin
Post by: BoringName on October 01, 2024, 07:42:42 AM
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.
Title: Re: VUMeter Plugin
Post by: hiccup on October 01, 2024, 08:01:00 AM
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.
Well spotted sveakul!
Wow, so there is a chance that the 14 yr. old Riddle of the Bin may have been solved?
That gives some hope indeed, also because I believe foobar2000 is coded in C++, and if I am not mistaken, that is also BoringName's weapon of choice?
Title: Re: VUMeter Plugin
Post by: BoringName on October 01, 2024, 08:22:45 AM
That gives some hope indeed, also because I believe foobar2000 is coded in C++, and if I am not mistaken, that is also BoringName's weapon of choice?

Nah, I'm using C# but 3Dbee originated from c++ source code that I converted to C# and this plugin uses quite a bit of that code. Apart from a few quirks it's not too hard to convert.

The foobar vu meter plugin seems to be written in delphi which I have no idea about. oops is re-writing it for 64 bit foobar so that might be in more modern code I can get my head around, if they are willing to share.
Title: Re: VUMeter Plugin
Post by: sveakul on October 01, 2024, 08:41:16 PM
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 (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.
Title: Re: VUMeter Plugin
Post by: BoringName on October 02, 2024, 12:08:04 AM
New version - VUMeter1.7.zip (https://www.mediafire.com/file/i8vjs3h2salnccl/VUMeter1.7.zip/file)

Changes
- Musicbee version 3.6.9040 required for VUMeter to work. You may also need this updated file MusicBeeBass.dll (https://www.mediafire.com/file/sl0k311vrbbs66j/MusicBeeBass.dll/file)
- 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.
Title: Re: VUMeter Plugin
Post by: hiccup on October 02, 2024, 07:44:37 AM
New version - VUMeter1.7.zip (https://www.mediafire.com/file/i8vjs3h2salnccl/VUMeter1.7.zip/file)
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.

Title: Re: VUMeter Plugin
Post by: sveakul on October 02, 2024, 09:26:33 AM
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 (https://getmusicbee.com/forum/index.php?topic=41272.msg228363#msg228363)
Title: Re: VUMeter Plugin
Post by: sveakul on October 02, 2024, 09:36:59 AM
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.
Title: Re: VUMeter Plugin
Post by: BoringName on October 02, 2024, 10:10:36 AM
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.
Title: Re: VUMeter Plugin
Post by: phred on October 02, 2024, 01:27:27 PM
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    :)
Title: Re: VUMeter Plugin
Post by: hiccup on October 02, 2024, 07:16:34 PM
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 (https://getmusicbee.com/forum/index.php?topic=22300.msg130967#msg130967) to find the exact name of the required skinning element.
Or post a screenshot and I'll figure it out.
Title: Re: VUMeter Plugin
Post by: BoringName on October 03, 2024, 12:22:23 AM
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.
Title: Re: VUMeter Plugin
Post by: Bee-liever on October 03, 2024, 12:35:28 AM
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.
Title: Re: VUMeter Plugin
Post by: BoringName on October 03, 2024, 12:43:45 AM
I've updated the zip - VUMeter1.7.zip (https://www.mediafire.com/file/i8vjs3h2salnccl/VUMeter1.7.zip/file)

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).
Title: Re: VUMeter Plugin
Post by: Bee-liever on October 03, 2024, 12:55:16 AM
I've updated the zip - VUMeter1.7.zip (https://www.mediafire.com/file/i8vjs3h2salnccl/VUMeter1.7.zip/file)
Tried again but same result with 'Ignore ReplayGain'
Title: Re: VUMeter Plugin
Post by: BoringName on October 03, 2024, 01:33:42 AM
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.
Title: Re: VUMeter Plugin
Post by: BoringName on October 03, 2024, 02:23:56 AM
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.
Title: Re: VUMeter Plugin
Post by: BoringName on October 03, 2024, 04:06:07 AM
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.
Title: Re: VUMeter Plugin
Post by: Mayibongwe on October 03, 2024, 06:38:39 AM
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.
Yes, this corresponds with what I had (https://getmusicbee.com/forum/index.php?topic=40284.msg218218#msg218218) as well.
But why not just pull panel.BackColor from the handle passed by OnDockablePanelCreated?
That's what I did with my LibraryQuiz panel which I believe has the same background as the trackInfo panel.
Title: Re: VUMeter Plugin
Post by: sveakul on October 03, 2024, 07:09:12 AM
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.
Well never say never.  I installed uBlock, kept all the default settings, and entered your code into My Filters.  Restarted Fireox.  Clicked on the link again, and I STILL get this damn screen:

(https://i.imgur.com/ilraDy5.png)

The filter page as entered on Ublock:

(https://i.imgur.com/HH5besA.png]https://i.imgur.com/HH5besA.png)

Can you, or hiccup, or BoringName please post the file foo_vis_vumeter-0.0.3.65533.fb2k-component someplace where I can DOWNLOAD it??  NOT Dropbox!!  I don't want to pester the developer any more.

For uploads I use mega.nz (noticed Steven often did)--free 20 GB account after email address sign-up.  And, people can actually download the links I send (what a concept).
Title: Re: VUMeter Plugin
Post by: BoringName on October 03, 2024, 07:25:43 AM
But why not just pull panel.BackColor from the handle passed by OnDockablePanelCreated?

Not something I had considered, I'll give it a shot.
Title: Re: VUMeter Plugin
Post by: hiccup on October 03, 2024, 07:27:06 AM
Can you, or hiccup, or BoringName please post the file foo_vis_vumeter-0.0.3.65533.fb2k-component someplace where I can DOWNLOAD it??  NOT Dropbox!!  I don't want to pester the developer any more.
There is nothing wrong with Dropbox or the browser or plugins you are using.
It looks like BoringName didn't choose the (basic) right-click option 'Copy Dropbox link', but created a 'share', which requires specifying shared users allowed to download the file.
If he shares the basic Dropbox link all should be fine. (but that makes the file very public, so that may not be desirable)

I don't have that file either, but I'm not in a hurry.
It would be better to first put our efforts in getting the current implementation as good as possible.
How are you faring with your LVU skins?
Have you created or modified some already?
Are they working as expected in VUMeter?
Title: Re: VUMeter Plugin
Post by: hiccup on October 03, 2024, 07:52:59 AM
I've updated the zip - VUMeter1.7.zip (https://www.mediafire.com/file/i8vjs3h2salnccl/VUMeter1.7.zip/file)
Sorry, but that one also seems to have some regression compared to earlier versions.
The needle frequently seems to be missing 'beats', or seems to 'exaggerate' others. With the sync/timing also not looking very good.
Not sure how to describe it better, but it's to the extend that it sometimes looks a bit as if the VU meter is listening to another song than I am  ;-)
(sample sliders both set to 1)

But perhaps I am misjudging or exaggerating a bit, will do some better testing tonight.
Title: Re: VUMeter Plugin
Post by: sveakul on October 03, 2024, 08:01:23 AM
It wasn't BoringName that made the DropBox post, it was "oops."

And thanks to BoringName, who sent me a MediaFire link instead, I was able to download the file no problems.

I haven't had time to do anything custom with the VU skins.  I have one I did long ago that still works fine, a mod of the default "simple.zip" skin to use any 819X614 png as the whole-frame backdrop, with simple LR LED's in the lower left corner re-scaled to respond to the resize by doing proportional reductions of the dbs values and adjusting the position points.  If you don't like Avril Lavigne, you can change the bg.png file to any other of same dimensions.
https://mega.nz/file/uBgQnBqK#BOt_NmcWSnJpHrSjxNKZAoK4Ulef0_nQBHXdlcb38ig

I am using the LVU 1.2.1 64-bit plugin with AIMP 5.30.2563 64-bit.  Yes works fine in MB (Single meter, lock to Y) but the design was for a large viz window like AIMP and more for a visual than use as a VUMeter.
Title: Re: VUMeter Plugin
Post by: sveakul on October 03, 2024, 08:11:58 AM
I've updated the zip - VUMeter1.7.zip (https://www.mediafire.com/file/i8vjs3h2salnccl/VUMeter1.7.zip/file)
Sorry, but that one also seems to have some regression compared to earlier versions.
The needle frequently seems to be missing 'beats', or seems to 'exaggerate' others. With the sync/timing also not looking very good.
Not sure how to describe it better, but it's to the extend that it sometimes looks a bit as if the VU meter is listening to another song than I am  ;-)
(sample sliders both set to 1)
Will test a bit better tonight.
I'm going to wait on this one (1.7x) until the behind-the scenes revisions using the same version number settle down, I get 'em mixed up.
Title: Re: VUMeter Plugin
Post by: hiccup on October 03, 2024, 08:14:46 AM
I haven't had time to do anything custom with the VU skins.
That's a pity. Considering BoringName has put in quite some effort in trying to fulfill your LVU suggestions/requests, I think timing-wise this would have been the moment to share some specific feedback and concrete results.
Before jumping to possible foobar2000 compatibility. (let's allow BoringName some time to figure things out regarding that first)
To me it feels like this LVU stuff may not have been completed, nor has it been tested very well yet, and it's now just left hanging there.
Can you at least give some indication on some percentage of LVU skins that are now working well in VUMeter?
Title: Re: VUMeter Plugin
Post by: BoringName on October 03, 2024, 08:44:32 AM
The 1.7 link "should" be better now. I temporarily changed to the get_peak method because I didn't know how long it would take me to diagnose but it was a quick fix so I changed it back. 1.7 is now using the PCM data for everything. 1.6 was using the getPeak command.  In testing they produce the same levels.


Not something I had considered, I'll give it a shot.

This is just producing the same colour. I really need a skin where someone has set a colour for the track information panel so it isn't the same as the panel.ChildBody.Default.

I tried setting <element id="TrackInfoPanel" bg="3,56,88" fg="182,182,182"/> in my current skin but it doesn't appear to do anything.

Is there a different element id for the track information panel?
Title: Re: VUMeter Plugin
Post by: hiccup on October 03, 2024, 08:48:46 AM
I really need a skin where someone has set a colour for the track information panel so it isn't the same as the panel.ChildBody.Default.
As I mentioned before, 'Elemental' has this and displays the issue.
And Sample Skin will allow you to see and check all existing panels, their names, and their bg values.
Chameleon DNA may also be helpful.

Quote from: BoringName
Is there a different element id for the track information panel?
So for me it would be next to the Track Information panels, which would require to get the bg of "ElementPanel.Default".
Title: Re: VUMeter Plugin
Post by: BoringName on October 03, 2024, 09:17:15 AM
As I mentioned before, 'Elemental' has this and displays the issue.
And Sample Skin will allow you to see and check all existing panels, their names, and their bg values.

Sorry I missed that before. Turns out I just needed to add .Default to it. I'll do some tests but at this stage I think it's going to be limited to what colours I can grab. It seems to be mainly just the colours of a few main elements and that's it. If an element has a custom colour set and isn't inheriting from one of the main elements I might not be able to do much.
Title: Re: VUMeter Plugin
Post by: BoringName on October 03, 2024, 10:36:05 AM
Can someone else whose made a plugin confirm something for me before I post another bug report where it turns out there was no bug and I'm just an idiot.....

So if I call
Plugin.MbApiInterface.Setting_GetSkinElementColour(Plugin.SkinElement.SkinButton, Plugin.ElementState.ElementStateDefault, Plugin.ElementComponent.ComponentBackground)));
This returns the colour from the following element.
<element id="Controls.Button.Default" bg="2,54,104" fg="210,210,210" bdr="1,20,55" />

I confirmed it by changing the colours on that element and they were reflected in the colour returned.
Now if add the following line to the skins XML file
<element id="Controls.Button.Modified" fg="255,0,0" bdr="1,20,55" />

I would expect the following command to return 255,0,0 but it doesn't, it returns 210,210,210
Plugin.MbApiInterface.Setting_GetSkinElementColour(Plugin.SkinElement.SkinButton, Plugin.ElementState.ElementStateModified, Plugin.ElementComponent.ComponentForeground)));

I guess the issue could be that SkinElement.SkinButton is from something else that inherits the default colour from Controls.Button but I think that would be unlikely.

Or maybe Controls.Button cannot have a modified state? From the tests I've done I can't get any of the elements to return a different colour for modified state.

So, bug or idiot?.....possibly both.
Title: Re: VUMeter Plugin
Post by: sveakul on October 03, 2024, 11:28:48 AM
I haven't had time to do anything custom with the VU skins.
That's a pity. Considering BoringName has put in quite some effort in trying to fulfill your LVU suggestions/requests, I think timing-wise this would have been the moment to share some specific feedback and concrete results.
To me it feels like this LVU stuff may not have been completed, nor has it been tested very well yet, and it's now just left hanging there.
Can you at least give some indication on some percentage of LVU skins that are now working well in VUMeter?
I'm not trying to compete with you or BoringName, and due to health issues have a limited amount of time to spend on my primary hobby, which includes two other players besides MusicBee.  I never promised anything as far as timing or output, and am trying to just give some feedback when I can.  I don't expect anyone to spend any amount of effort on my requests they don't choose to give.  So far every LVU skin I personally liked I've tried with MusicBee and works well with the exception of the Pick Signal 2 skin which used some odd zip scheme.  That's all I can really say--I don't have the technical ability to do the type of performance tweaking that you two have, but being an enthusiastic supporter carries some weight too.  There sure doesn't seem to be a lot of those out there.
Title: Re: VUMeter Plugin
Post by: phred on October 03, 2024, 01:26:21 PM
Well never say never.  I installed uBlock, kept all the default settings, and entered your code into My Filters.  Restarted Fireox.  Clicked on the link again, and I STILL get this damn screen:
To be clear, in your post regarding this issue you mentioned that your were getting a -Google- popup asking you to log in using your Google account. Your current screenshot shows that Dropbox is asking you to log in and there is no sign of the Google login request.

Without filter:
(https://i.imgur.com/buWvNQe.jpeg)

With filter:
(https://i.imgur.com/FYQtmrC.jpeg)
Title: Re: VUMeter Plugin
Post by: hiccup on October 03, 2024, 05:42:25 PM
I never promised anything as far as timing or output, and am trying to just give some feedback when I can.  I don't expect anyone to spend any amount of effort on my requests they don't choose to give.  So far every LVU skin I personally liked I've tried with MusicBee and works well with the exception of the Pick Signal 2 skin which used some odd zip scheme.
Fair enough. I probably misunderstood your original intention for you raising this LVU stuff then.
Since you also frequently brought up the tool for creating them (both here and on the AIMP forum), I assumed you were using that tool and wanted to create and share your own VU meter skins with us.
I now understand that that was not the case. But then I also do not understand why it was an issue for you that that tool allegedly contained a virus, if you had no intention to use it. But I have probably not read or understood everything you have said and explained about it, so that's probably on me.

Ah well, so we can then put that LVU stuff to rest now, and move on to other things.
Title: Re: VUMeter Plugin
Post by: hiccup on October 03, 2024, 05:47:12 PM
But perhaps I am misjudging or exaggerating a bit, will do some better testing tonight.
Tried it again, but it's really bad. As I said, it's often as if the meter is listening to another song than I am.
Missing the beat, unexpected rises and falls, it's just very off.
Title: Re: VUMeter Plugin
Post by: Mayibongwe on October 03, 2024, 07:44:48 PM
#1    Can someone else whose made a plugin confirm something for me before I post another bug report where it turns out there was no bug and I'm just an idiot.....
#2    Now if add the following line to the skins XML file:    <element id="Controls.Button.Modified" fg="255,0,0" bdr="1,20,55" />
#1   Your guess is better than mine. I didn't even know SkinElement.SkinButton existed (certainly not in the C# interface I have).
#2   No such element exists to the best of my knowledge. Wouldn't expect it to work.

If you're open to alternatives, why not save yourself the headache and provide a panel_skinning .xml that users can modify as they wish (independent of MB's skin).
I ended up doing the same with LibraryQuiz when I designed that panel. Retrieving colours via the MB API is very limited.
Title: Re: VUMeter Plugin
Post by: sveakul on October 03, 2024, 09:25:18 PM
To be clear, in your post regarding this issue you mentioned that your were getting a -Google- popup asking you to log in using your Google account. Your current screenshot shows that Dropbox is asking you to log in and there is no sign of the Google login request
phred I'm sorry, I guess I was just getting tired and frustrated last night.  Yes you are right, the message I can't get past must be being sent by Dropbox, not Google.  That "Continue with Google" button and logo on the message panel was what confused me--funny it was not there when I posted that screenshot, but it's back again now (see below).

While oops swears it works OK for him as a test as an unknown user, I think he must be missing that "Copy Link" option you mentioned before, unless my Firefox setup is stopping it somehow--as a hint I sent him a Reddit link with others having the same issue, and finding out they were just creating the link wrong.  I give up on it.  The copy of the file BoringName was kind enough to put on MediaFire for me should be enough the final is publicly released on the Foobar component site.
(https://i.imgur.com/pCyCrAD.png)
Title: Re: VUMeter Plugin
Post by: phred on October 03, 2024, 09:29:28 PM
phred I'm sorry, I guess I was just getting tired and frustrated last night.  Yes you are right, the message I can't get past must be being sent by Dropbox, not Google.  That "Continue with Google" button and logo on the message panel was what confused me.
Apology accepted, but not necessary. We all get tired and then frustrated at some point. But please answer a question for me... was there actually a Google prompt to log in using your Google account?
Title: Re: VUMeter Plugin
Post by: sveakul on October 03, 2024, 09:47:51 PM
Since you also frequently brought up the tool for creating them (both here and on the AIMP forum), I assumed you were using that tool and wanted to create and share your own VU meter skins with us.
I now understand that that was not the case. But then I also do not understand why it was an issue for you that that tool allegedly contained a virus, if you had no intention to use it. But I have probably not read or understood everything you have said and explained about it, so that's probably on me.

Ah well, so we can then put that LVU stuff to rest now, and move on to other things.
My intention is to eventually try the tool; the one admittedly amateur attempt I made with the "Avril Lavigne mod" was just done by trial and error examining the ini file for the simple.zip skin supplied with the meter.  I do think the LEDs, though tiny, respond quite well to the music even after my changes.

The virus issue was with the new LVU 1.2 plugin release itself, not the tool.  The tool is like 10 years old and was released with the 32-bit version LVU plugin which was the only one available even when AIMP went to 64-bit.  When the 64-bit LVU came out I said here we go, but was stopped in my tracks by the mass of virus alerts it threw from VirusTotal.  Now, the 1.2.1 release has fixed that, and I can give things another try when I have more time.  Just a misunderstanding.  Yes, upwards and onwards!
Title: Re: VUMeter Plugin
Post by: sveakul on October 03, 2024, 09:56:32 PM
Apology accepted, but not necessary. We all get tired and then frustrated at some point. But please answer a question for me... was there actually a Google prompt to log in using your Google account?
At the time I first encountered the problem, the message looked exactly like the crop screenshot I just posted above, complete with the "Continue with Google" button/prompt on it as you can clearly see.  When I posted that complete screenshot for you last night, it did NOT have it;  why, I do not know and at this point do not care.  I'm not trying to BS anybody.
Title: Re: VUMeter Plugin
Post by: phred on October 03, 2024, 10:00:20 PM
When I posted that complete screenshot for you last night, it did NOT have it;  why, I do not know and at this point do not care.  I'm not trying to BS anybody.
The filter that I sent you, once added to uBlockOrigin is responsible for removing the Google login prompt on non-Google websites. For me, that filter was a gift from the heavens.
Title: Re: VUMeter Plugin
Post by: sveakul on October 03, 2024, 10:08:45 PM
The filter that I sent you, once added to uBlockOrigin is responsible for removing the Google login prompt on non-Google websites. For me, that filter was a gift from the heavens.
if you ever find a filter that blocks the Dropbox "sign up for free so we can confirm your identity" block on Dropbox sites, I'm all in! ;D   FWIW, your filter did "blank out" the "Continue with Google" button from the block panel, so I believe you, it works.
Title: Re: VUMeter Plugin
Post by: BoringName on October 03, 2024, 11:39:35 PM
Tried it again, but it's really bad. As I said, it's often as if the meter is listening to another song than I am.
Missing the beat, unexpected rises and falls, it's just very off.

- copied the latest bass.dll

Just making sure you installed the new MusicBeeBass.dll because that's different to the straight bass.dll file.
Title: Re: VUMeter Plugin
Post by: BoringName on October 03, 2024, 11:42:34 PM
If you're open to alternatives, why not save yourself the headache and provide a panel_skinning .xml that users can modify as they wish (independent of MB's skin).

I really don't want to be delving in to skin stuff for the sake of one colour. I was hoping I could just grab a modified foreground colour on one of the elements I can retrieve and then users could just set that colour in their skin.xml to whatever they wanted. But it seems the modified element state doesn't work.
Title: Re: VUMeter Plugin
Post by: Bee-liever on October 04, 2024, 12:35:08 AM
Using MB Version: 3.6.9042 P and new MusicBeeBass.dll and still can't get 'Ignore ReplayGain' to work.
Using DejaVu Compact LED Calibrated Elemental, works fine in normal mode.
Stop playback, select 'Ignore ReplayGain' and restart track.
Needles no longer react to input, just slowly climb until at peak +6 on meter.
Stop track and needles sit at peak approx. 30sec and then really slowly fall back

Will try to upload gif later when satellite internet is a bit more stable.
Title: Re: VUMeter Plugin
Post by: BoringName on October 04, 2024, 02:49:30 AM
Will try to upload gif later when satellite internet is a bit more stable.

Probably more helpful if you provide the info I requested previously.
What's your EQ preamp set to?
Is it the same for all tracks and do they have replaygain tags?

Also are you using WASAPI Shared or Exclusive?

edit: Ok I'm seeing it in my Portable install so it's an issue with the portable version. No idea why that should be different but I'll see if I can track it down.
Title: Re: VUMeter Plugin
Post by: Bee-liever on October 04, 2024, 03:11:59 AM
What's your EQ preamp set to?
Not used - 0

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

Also are you using WASAPI Shared or Exclusive?
Normally WASAPI Exclusive but if using outdoor bluetooth WASAPI Shared.
Error occurs either way.

Just saw the edit about portable version as I posted reply :-[
Title: Re: VUMeter Plugin
Post by: BoringName on October 04, 2024, 03:22:25 AM
Just saw the edit about portable version as I posted reply :-[

Yeah, not really sure what's going on there as the portable version is literally the same EXE file. I expect it just checks for a registry entry and when that doesn't exist it goes into portable mode.

I've asked in the rawdata thread as I don't think it's my fault this time but we will see....

edit: So the problem is the preAmp figure is coming through as zero regardless of what the preAmp is set to on the portable version. It should be coming through as 1 if no preAmp is set. You might think it should come through as zero when the PreAmp is set to 0 but when you are converting things from peak to decibel and back. 1.0 peak is zero decibels so when I'm adjusting the current level by the preAmp value it adjusts it by zero as it should when no preAmp is set.

When the preAmp comes through as 0 it converts to 1.0 and when I adjust the current level by 1.0 it sends the needle to max like you are seeing. It's tricky to check for zero when dealing with decibels as you have to decide if it's zero because of a problem or it's supposed to be zero. In this case there is no reason for PreAmp to ever be zero but it highlighted a problem that might not have been noticed for a while if I had forced preAmp to be 1.0 if it came through as Zero.

I have noticed the upside down left needle  on that skin is going off the meter which means I haven't handled the maxAngle thing correctly. The upside down needles make everything backwards! It seems I really suck at testing, and now I'm going to have to start testing installed and portable versions...
Title: Re: VUMeter Plugin
Post by: BoringName on October 04, 2024, 05:08:53 AM
If you are having issues in the portable version. when Ignore Replaygain is checked.
hamburger Menu-Edit Preferences->Player->Equaliser & DSP (button down the bottom right)

Click "enable equaliser" at the top left. You can leave everything at defaults so it shouldn't alter the volume.

I hadn't even noticed that check box existed and just thought that page did nothing unless you adjusted the values.

That will get it working for now. I will add a check in the next version to ignore the PreAmp value if the EQ is not enabled.
Title: Re: VUMeter Plugin
Post by: hiccup on October 04, 2024, 08:30:30 AM
Just making sure you installed the new MusicBeeBass.dll because that's different to the straight bass.dll file.
Yes.
It's the one that is included in the latest MB patch 3.6.9042 update, right?

Also,
What's interesting, the needle now responds moments before the audio playing.
While I thought that wouldn't be possible it's clearly the case.
So maybe it's now possible to fine-tune the audio/video sync so it's neither leading nor trailing the audio?
That would be a relevant and substantial improvement.
Title: Re: VUMeter Plugin
Post by: hiccup on October 04, 2024, 08:33:22 AM
I really don't want to be delving in to skin stuff for the sake of one colour. I was hoping I could just grab a modified foreground colour on one of the elements I can retrieve and then users could just set that colour in their skin.xml to whatever they wanted. But it seems the modified element state doesn't work.

Since nobody (but me) has specified in what location he is or wants to be using the VU meter, I have to do some guessing.

These are probably the most likely positions:
(https://i.imgur.com/xoZnM4b.png)

These would require getting the bg values of:

1
"Panel.ChildBody.Default"

2
"Content[Artwork].Body.Default"
(Album Covers view)
"Content[TrackDetail].Body.Default"
(Album and Tracks view)

3
"ElementPanel.Default"

Also, I think the Now Playing panel would be a good view to be able to have the VU meter in.
That's currently not possible, but anticipating on a request for that to happen:

4 Now Playing
"NowPlayingList[TrackDetail].Default"

---

If you are reluctant to have the option to choose between these colours, perhaps another approach might be to avoid these borders showing up to begin with by having the VU meter panel dynamically adjust its height to the height of the VU meter's background image?
(not sure if that's even possible)

I really hope you'll be able to figure something out, since it's just not looking good with a mismatching background colour, and the need to very precisely drag the panel to a specific size to hide it for every other VU meter is no fun.

edit
Or, if I am the only one that cares about this, have it using "ElementPanel.Default" as the default colour, and I'll never bother you again about it…
Title: Re: VUMeter Plugin
Post by: BoringName on October 04, 2024, 10:58:30 AM
Yes.
It's the one that is included in the latest MB patch 3.6.9042 update, right?

Correct.

Also,
What's interesting, the needle now responds moments before the audio playing.
While I thought that wouldn't be possible it's clearly the case.
So maybe it's now possible to fine-tune the audio/video sync so it's neither leading nor trailing the audio?
That would be a relevant and substantial improvement.

I noticed that today as well. A lot of the time when I'm testing I have the volume right down because the test tones get monotonous. I've got the player controls element setup to show a wave bar and the VUMeter was reacting before the peaks in the wavebar. I'll have a play around and see if I can get it to sync up with the audio.

edit: If this delay is the time it take for the audio device to receive the audio and process it that could make it hardware specific.... I might have to re-purpose the sample slider to a sync slider....


Or, if I am the only one that cares about this, have it using "ElementPanel.Default" as the default colour, and I'll never bother you again about it…

I'll leave the 3 main colours there and add a custom option that opens a colour picker so the user can enter whatever color they want. Probably easier than stuffing around with skin elements, for me anyway.
Title: Re: VUMeter Plugin
Post by: hiccup on October 04, 2024, 12:38:06 PM
I'll leave the 3 main colours there and add a custom option that opens a colour picker so the user can enter whatever color they want. Probably easier than stuffing around with skin elements, for me anyway.
Yeah that might work.
Still, it's a lot of work for you, and adds complexity for the user.

An ideal solution would probably be if the plugin panel would take the bg colour of the panel that is right above it.
But there probably isn't an API available for that?
Title: Re: VUMeter Plugin
Post by: hiccup on October 04, 2024, 05:16:10 PM
Would it be possible to have resizing the VU meter working like this?:
(never cropping the meter)

(https://i.imgur.com/F5XR3Fv.gif)

It would be more convenient, and then the current option for "Lock Aspect to Y Axis" could probably be removed?
 
Title: Re: VUMeter Plugin
Post by: BoringName on October 05, 2024, 06:59:26 AM
Still, it's a lot of work for you, and adds complexity for the user.

An ideal solution would probably be if the plugin panel would take the bg colour of the panel that is right above it.
But there probably isn't an API available for that?

Already added a custom colour option with the ability to save 16 custom colours.

Ideal until the next person says they would prefer it take the bg colour from the panel underneath it. Maybe I'm wrong but I would think a very large percentage of users would set it how they want it and leave it alone. Maybe changing it occasionally for something different. While messing around setting a custom colour might be an inconvenience, it's not a regularly thing.

Would it be possible to have resizing the VU meter working like this?:


If I was starting from scratch I would do it that way. I didn't think far enough ahead on the possibility users would want margins around it to fit a certain space and also due to my assumption above that a lot of users would be set and forget. I just did enough to get it working and have tacked on changes since which makes it hard to implement that kind of resizing now. With work required to add a vertical option it might be worth doing both at once and cleaning up the code a bit.
Title: Re: VUMeter Plugin
Post by: hiccup on October 05, 2024, 07:23:27 AM
I just did enough to get it working and have tacked on changes since which makes it hard to implement that kind of resizing now. With work required to add a vertical option it might be worth doing both at once and cleaning up the code a bit.
Thanks for explaining and considering.
Just to make sure we are on the same page, I don't suggest "adding  a vertical option".
My suggestion would be to make this default behaviour and get rid of the existing "Lock Aspect to Y Axis" option.

Also, I don't think many users would have a need for using the bg colour of the panel below the meter instead of the one above it.
(the black bars are showing at the top of the meter, not at the bottom)
But if the meter is placed on top of all other panels, then it should probably take the colour of the one below it.

I still think this would be a (close to) ideal solution and it would both improve the user experience and help in trying to keep the options list lean and mean.

But currently it's probably not even possible, since it would require two API's, one for getting the bg of the panel above and one for the one below.
And I am guessing those don't exist at the moment.
Title: Re: VUMeter Plugin
Post by: BoringName on October 05, 2024, 09:08:31 AM
Thanks for explaining and considering.
Just to make sure we are on the same page, I don't suggest "adding  a vertical option".
My suggestion would be to make this default behaviour and get rid of the existing "Lock Aspect to Y Axis" option.

I was referring to an option to place the meters on top of each other rather than side by side.
Also, I don't think many users would have a need for using the bg colour of the panel below the meter instead of the one above it.
(the black bars are showing at the top of the meter, not at the bottom)
But if the meter is placed on top of all other panels, then it should probably take the colour of the one below it.

I was just throwing an example out there of what could happen. Everyone has different ideas on what's best. Although you're probably right in this instance but as you have already suggested, I don't believe this is currently possible.

How many skins would it actually effect? The skin I'm using, Track Information just inherits from ChildBody.Default which isn't an issue.
Title: Re: VUMeter Plugin
Post by: hiccup on October 05, 2024, 09:57:08 AM
Already added a custom colour option with the ability to save 16 custom colours.
Ok, but if the skinning elements that I listed before would be used, I believe all situations would be covered, and there would only need to be 5 pre-configured colouring options. And most users could probably select one and never have the need for changing it to another one.
That seems much simpler to me.
(for the end-user, maybe not for you and/or Steven)


How many skins would it actually effect? The skin I'm using, Track Information just inherits from ChildBody.Default which isn't an issue.
It's just that my proposed solution would erase any need for guessing or making assumptions on unknown variables such as:

- what skins users are using
- how frequently users change skins
- at what location users place the VU meter
- how often users change that location

It would just work.

I'll let this rest now, I don't have much more to contribute to this.
Title: Re: VUMeter Plugin
Post by: sveakul on October 06, 2024, 05:47:54 AM
Hi BoringName, I don't mean to pester you, but I was wondering if you had changed or updated 1.7 since hiccup made this comment about it:  https://getmusicbee.com/forum/index.php?topic=41692.msg228441#msg228441 (https://getmusicbee.com/forum/index.php?topic=41692.msg228441#msg228441)

I've been using 1.6 with good results and didn't want to update if there are still visually obvious errors in the meter response.  Thanks a lot!
Title: Re: VUMeter Plugin
Post by: BoringName on October 06, 2024, 10:47:34 AM
Hi BoringName, I don't mean to pester you, but I was wondering if you had changed or updated 1.7 since hiccup made this comment about it:  https://getmusicbee.com/forum/index.php?topic=41692.msg228441#msg228441 (https://getmusicbee.com/forum/index.php?topic=41692.msg228441#msg228441)

I've been using 1.6 with good results and didn't want to update if there are still visually obvious errors in the meter response.  Thanks a lot!

I haven't updated 1.7 since my last post mentioning it. I just made it back to how it was at initial release of that version with a small fix. I wont do that kind of change again as it just causes too much confusion. I really should have made any changes something like 1.7.1.

1.7 still has the issue Hiccup mentioned. The meter is ahead of the music by a considerable amount. I've added an option in the next version to manually set a delay but I haven't done a lot of testing with it yet. If you're happy with 1.6, I'd stick with that for now. Despite my previous comments, I'll post another version before I dive into any major changes.
Title: Re: VUMeter Plugin
Post by: BoringName on October 07, 2024, 10:20:59 AM
I've created a separate little program that opens foobar bin files. It grabs the background image and renders the needle position for all 1024 frames which I can cycle through. I haven't got the LED done yet but I've found where the pixel data is stored for those, I just need to find the offsets to render them correctly.

I know which frame needs to be displayed when the level is at zero so I can extrapolate some of the movement out but I haven't found any other data yet detailing anything like min/max levels etc...

So at this stage, bin files without LED's can be made to work but won't be calibrated yet. I don't think the LED's should be too hard to nut out.
Title: Re: VUMeter Plugin
Post by: sveakul on October 08, 2024, 06:41:04 AM
Sounds great BoringName, I'm amazed at the speed you have in figuring out/turning out this stuff!!  Please keep us informed on the development.  Foobar just went "public" on oops's new 32/64-bit beta release of the old foo_vis_vumeter to much acclaim.

If you continue work on this I would encourage you to include a way to adjust any option values (sensitivity, decay, rise, etc) by using keyboard up/down arrow keys with a function key, or a simple slider GUI, as opposed to the mouse wheel.  This is because wheels get less precise with age and can skip or fail to change values.
Title: Re: VUMeter Plugin
Post by: BoringName on October 08, 2024, 07:55:34 AM
Sounds great BoringName, I'm amazed at the speed you have in figuring out/turning out this stuff!!  Please keep us informed on the development.  Foobar just went "public" on oops's new 32/64-bit beta release of the old foo_vis_vumeter to much acclaim.

If you continue work on this I would encourage you to include a way to adjust any option values (sensitivity, decay, rise, etc) by using keyboard up/down arrow keys with a function key, or a simple slider GUI, as opposed to the mouse wheel.  This is because wheels get less precise with age and can skip or fail to change values.

oops deserves 100% credit for that. I might have worked out how to get the background image eventually but there is no chance in hell I ever would have figured out the offsets for drawing the needle. That was next level crazy. Messing with data at a binary level wasn't something I thought I would be doing 2 weeks ago.

I can add keyboard shortcuts but I'm not sure a dodgy mouse wheel is justification for doing it, probably better you get a new mouse if that's happening. The only thing that's using the wheel is the DB Offset and it shows the value on the tooltip so you can see if the mousewheel worked or not.
Title: Re: VUMeter Plugin
Post by: Viola on October 08, 2024, 04:40:33 PM
Just don't works on my MusicBee. I use the portable version and I've tried to install your plugin with MusicBee install method and manually and does't work. I see the meeter but doesn't move when I play a song.

(https://i.imgur.com/49DlRk8.png)
Title: Re: VUMeter Plugin
Post by: hiccup on October 08, 2024, 04:44:14 PM
Just don't works on my MusicBee.
What MusicBee version are you using?
Title: Re: VUMeter Plugin
Post by: Viola on October 08, 2024, 06:16:58 PM
Just don't works on my MusicBee.
What MusicBee version are you using?

latest

(https://i.imgur.com/WdCivxC.png)
Title: Re: VUMeter Plugin
Post by: hiccup on October 08, 2024, 06:20:32 PM
What MusicBee version are you using?
latest
not the latest

As the readme of the plugin clearly states:
Minimum version of Musicbee required 3.6.9040
Title: Re: VUMeter Plugin
Post by: hiccup on October 09, 2024, 04:54:23 PM
In case it is useful for testing foobar2000 VU meter skins or compatibilty, I thought to create a calibrated version of DejaVU Compact for foobar2000.

(https://i.imgur.com/SVZkm6J.png)

Note that the part of the scale from 0 – +6 dB is horizontally compressed (else those levels would not have fit within the VU meter at all), but the dB values there should be at the correct positions.

It was tested using foobar2000 32-bit with the older but well-proven 32-bit VU meter plugin.
Under Preferences > Advanced, make sure to set the preamp values for VU meter to 0 dB.
That version of the plugin uses RMS values, which are lower than peak values.
So e.g. a 0 dB 1 kHz sine-wave will display at -3 dB.
When playing music, depending on the content and dynamics, the values will be somewhere between 2 and 20 dB lower than peak.

download (https://rebrand.ly/VU_meters_test_set) DejaVU Compact Calibrated foobar2000

edit
I have added a couple of sine-wave test tracks to the download.
Title: Re: VUMeter Plugin
Post by: sveakul on October 09, 2024, 10:12:16 PM
Man hiccup you got the chops!  Editing BIN files and whatnot.  Excellent!

Tested on Foobar 1.6.18 with original 32-bit DLL and preamp=0, very responsive and highly accurate.

Tested on Foobar 2.24 64-bit with the re-write of foo_vis_vumeter and level type set to RMS and works fine there too, sharp rendition (DX12), needle movement maybe a bit over-sensitive;  the DLL options include a sensitivity control (I set to 0dB) that can be adjusted, and rise/decay but I didn't go there.  You calibrated using the original DLL so that is going to make a difference also.  FWIW the new adjustable options with 0.1.1-beta: https://hydrogenaud.io/index.php/topic,126733.msg1051940.html#msg1051940 (https://hydrogenaud.io/index.php/topic,126733.msg1051940.html#msg1051940)

Congrats for this surprise!  Wishlist:  make a version of same meter calibrated for use with the new 32/64 bit DLL options;  use green instead of yellow LEDs through -1.0 (keep existing colors for 0, +1, +3) and make the fixed yellow 0-6+ bar red instead.

OK, folks I know this is a MusicBee not a Foobar forum, signing off.. :-[
Title: Re: VUMeter Plugin
Post by: hiccup on October 10, 2024, 07:05:24 AM
Man hiccup you got the chops!  Editing BIN files and whatnot.  Excellent!
Tested on Foobar 1.6.18 with original 32-bit DLL and preamp=0, very responsive and highly accurate.
I appreciate the appreciation and the feedback!

Quote
Wishlist:  make a version of same meter calibrated for use with the new 32/64 bit DLL options
Well, that should not be necessary.
The VU meter (like all foobar2000 VU meter skins) was created using VUEditor, which is the official (and only) tool for that.
It allows for creating very precise response curves and exact dB reference points on a scale.
(most skins were not designed with such precision in mind, and are 'just' images or replicas of nice existing VU meters with a needle that moves in an acceptable manner)

This 'calibrated' skin of mine is precise according to VUEditor.
So if the new foobar2000 32/64 bit plugin does not show the correct dB values on the scale of this VU meter it's something that should be addressed on the side of the plugin.
After all, also all of the hundreds of existing VU meter skins were designed for the older version of the plugin, so the new plugin should be as compatible with that one as much as possible so all skins work as intended.

Quote
use green instead of yellow LEDs through -1.0 (keep existing colors for 0, +1, +3) and make the fixed yellow 0-6+ bar red instead.
I designed this one for the main purpose so that some educated testing, guessing and referencing/comparing can be done.
At this point we don't know if BoringName is going to succeed in getting these fb2k skins to work.
If he does, I'll then probably decide on which implementation I like better, and from then on either create/modify fb2k or AIMP skins.
I'll keep your request in mind when that happens. (or just remind me by that time)
edit
Are you using foobar2000 frequently, and would you be using this version frequently?
If so, I'll create version to your personal liking.
Title: Re: VUMeter Plugin
Post by: BoringName on October 10, 2024, 07:22:19 AM
In case it is useful for testing foobar2000 VU meter skins or compatibilty, I thought to create a calibrated version of DejaVU Compact for foobar2000.

That will be handy thanks. I've got everything loading from extracted files. I still need to sort out the different compression and file layout types. The bin files come in a number of configurations, some have the meters stored as separate files in the bin and some have all the data in a single file. I haven't really looked into how the meter actually scales. The bin files don't contain any info like the AIMP settings files in regards to min/max levels/angles etc... Well not that I've found yet. The only info specified is which frame is the zero level frame. I expect the rest is extrapolated from that.

I was about to release another version before I start doing some major changes and then I found this sucker - Grundig (https://www.aimp.ru/forum/index.php?topic=52865.msg325260#msg325260). I just fixed a few problems for skins with upside down needles but this thing isn't working at all.

edit: Nevermind, it's working I've just fried myself staring at binary crap for the last few days and didn't notice I had a huge DB offset. So yeah, I'll probably post a new version tomorrow and then get cracking on some of the bigger changes mentioned previously.
Title: Re: VUMeter Plugin
Post by: hiccup on October 10, 2024, 08:47:29 AM
In case it is useful for testing foobar2000 VU meter skins or compatibilty, I thought to create a calibrated version of DejaVU Compact for foobar2000.
That will be handy thanks. I've got everything loading from extracted files. I still need to sort out the different compression and file layout types. The bin files come in a number of configurations, some have the meters stored as separate files in the bin and some have all the data in a single file.
Just in case it's useful or interesting, there are now two versions of the skin in the download: a dual-bin version (often used for left/right skins) and a single bin version that has the two combined.
While both work fine in the older 32-bit fb2k version of the plugin, I just noticed that new 64-bit version doesn't seem able to handle such a combined bin.
Title: Re: VUMeter Plugin
Post by: sveakul on October 10, 2024, 09:09:55 AM
After all, also all of the hundreds of existing VU meter skins were designed for the older version of the plugin, so the new plugin should be as compatible with that one as much as possible so all skins work as intended.
Quote
use green instead of yellow LEDs through -1.0 (keep existing colors for 0, +1, +3) and make the fixed yellow 0-6+ bar red instead.
I designed this one for the main purpose so that some educated testing, guessing and referencing/comparing can be done.
At this point we don't know if BoringName is going to succeed in getting these fb2k skins to work.
If he does, I'll then probably decide on which implementation I like better, and from then on either create/modify fb2k or AIMP skins.
I'll keep your request in mind when that happens. (or just remind me by that time)
edit
Are you using foobar2000 frequently, and would you be using this version frequently?
If so, I'll create version to your personal liking.
OK on VUEditor.  Now that the new 32/64 bit DLL is out with the myriad of options people will be moving to it steadily as I did.  I may even get rid of my 32-bit Foobar now after the list of it and its other plugins have pretty much completed the move to 64-bit.  The good thing is it won't affect the existing BIN structure of yours or any other existing skin so it's just a matter of sliding those over so to speak.

I have no doubts that BoringName will be able to shortly release his own MB compatible BIN skins.

Yes I do use Foobar freqently, as much as I do MusicBee actually.  The Deja Vu Compact LED Calibrated Elemental I modified and posted a while back in the skin repository thread is actually my favorite MB-specific skin.
Title: Re: VUMeter Plugin
Post by: hiccup on October 10, 2024, 09:19:07 AM
Yes I do use Foobar freqently, as much as I do MusicBee actually.  The Deja Vu Compact LED Calibrated Elemental I modified and posted a while back in the skin repository thread is actually my favorite MB-specific skin.
Ok, let me know if you are using a specific foobar2000 skin that the VU meter should blend-in with.
(or a screenshot will do)
Title: Re: VUMeter Plugin
Post by: sveakul on October 10, 2024, 09:31:24 AM
I was about to release another version before I start doing some major changes and then I found this sucker - Grundig (https://www.aimp.ru/forum/index.php?topic=52865.msg325260#msg325260). I just fixed a few problems for skins with upside down needles but this thing isn't working at all.

edit: Nevermind, it's working I've just fried myself staring at binary crap for the last few days and didn't notice I had a huge DB offset. So yeah, I'll probably post a new version tomorrow and then get cracking on some of the bigger changes mentioned previously.
Hmm, actually I have been using that same Grundig plugin for a while now with the last couple of versions of your VUMeter below my lyrics panel, and it's always worked fine here as-downloaded, actually one of my favorites.  The needles aren't upside-down they are side-to-side, as designed. What problems were you having with it?  At any rate, looking forward to your new 1.8 plugin!!

(https://i.imgur.com/Zb3QY9h.png)
Title: Re: VUMeter Plugin
Post by: sveakul on October 10, 2024, 09:41:33 AM
Yes I do use Foobar freqently, as much as I do MusicBee actually.  The Deja Vu Compact LED Calibrated Elemental I modified and posted a while back in the skin repository thread is actually my favorite MB-specific skin.
Ok, let me know if you are using a specific foobar2000 skin that the VU meter should blend-in with.
(or a screenshot will do)
https://getmusicbee.com/forum/index.php?topic=41767.msg228505#msg228505 (https://getmusicbee.com/forum/index.php?topic=41767.msg228505#msg228505)  ;D
Title: Re: VUMeter Plugin
Post by: sveakul on October 10, 2024, 10:29:41 AM
Comment from the developer of the new 32/64 foo_vis_vumeter plugin, might assist BoringName or hiccup:

"The skin I used to calibrate is the Model 702 skin that I extracted from the original DLL using Resource Hacker. Generally, it tracked well in Peak by tweaking the sensitivity. RMS and LKFS less well. It is very dependent on the curve that the skin designer used in VUEditor. There is a zero-crossing frame in the skin file. I decided not to set sqrt(2) to that point because there is much more overhead. 100% is the last frame and 0% is the first one, the amplitude in the foobar2000 data is -1.0 to 1.0 and whatever value the calculation lands on is the frame picked. I'm thinking that in a properly designed skin, the zero-crossing frame would be the RMS 100% and the peak sqrt(2) but that might be bad assumption."
Title: Re: VUMeter Plugin
Post by: hiccup on October 10, 2024, 10:38:29 AM
Comment from the developer of the new 32/64 foo_vis_vumeter plugin, might assist BoringName or hiccup:
In case there are things regarding this that you'd want to raise at the fb2k forum, and my skin would be helpful with it, feel free to share it with them.
Title: Re: VUMeter Plugin
Post by: sveakul on October 10, 2024, 11:18:45 AM
Will do, but sounds like you got it covered!
Title: Re: VUMeter Plugin
Post by: hiccup on October 10, 2024, 12:50:37 PM
https://getmusicbee.com/forum/index.php?topic=41767.msg228505#msg228505 (https://getmusicbee.com/forum/index.php?topic=41767.msg228505#msg228505)  ;D
A 'sveakul edition' has been added. (same download link)
Title: Re: VUMeter Plugin
Post by: sveakul on October 11, 2024, 01:05:00 AM
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.
Title: Re: VUMeter Plugin
Post by: BoringName on October 11, 2024, 05:46:24 AM
New version - VUMeter1.8.zip (https://www.mediafire.com/file/p5czze9yxoy5g3i/VUMeter1.8.zip/file)


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.
Title: Re: VUMeter Plugin
Post by: hiccup on October 11, 2024, 07:32:45 AM
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.
Title: Re: VUMeter Plugin
Post by: sveakul on October 11, 2024, 09:02:33 AM
New version - VUMeter1.8.zip (https://www.mediafire.com/file/p5czze9yxoy5g3i/VUMeter1.8.zip/file)

- 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.
Title: Re: VUMeter Plugin
Post by: BoringName on October 11, 2024, 09:29:14 AM

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.
Title: Re: VUMeter Plugin
Post by: sveakul on October 11, 2024, 09:57:10 AM
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.
Title: Re: VUMeter Plugin
Post by: BoringName on October 11, 2024, 10:43:44 AM
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).
Title: Re: VUMeter Plugin
Post by: hiccup on October 11, 2024, 06:53:07 PM
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 (https://rebrand.ly/VU_meters_test_set) AIMP-foobar2000 test skins
Title: Re: VUMeter Plugin
Post by: BoringName on October 11, 2024, 10:06:25 PM
New version - VUMeter1.8.1.zip (https://www.mediafire.com/file/c3lji2ljc6psg7f/VUMeter1.8.1.zip/file)

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.
Title: Re: VUMeter Plugin
Post by: hiccup on October 12, 2024, 05:49:31 AM
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)
Title: Re: VUMeter Plugin
Post by: hiccup on October 12, 2024, 05:55:49 AM
New version - VUMeter1.8.1.zip (https://www.mediafire.com/file/c3lji2ljc6psg7f/VUMeter1.8.1.zip/file)
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.

;-)
Title: Re: VUMeter Plugin
Post by: BoringName on October 12, 2024, 06:55:11 AM
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 (https://www.mediafire.com/file/t8qwqwfyc85zfcu/VUMeter1.8.2.zip/file)

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.
Title: Re: VUMeter Plugin
Post by: hiccup on October 12, 2024, 07:14:26 AM
New version  - VUMeter1.8.2.zip (https://www.mediafire.com/file/t8qwqwfyc85zfcu/VUMeter1.8.2.zip/file)
- 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 ;-)
Title: Re: VUMeter Plugin
Post by: BoringName on October 12, 2024, 07:21:43 AM
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.
Title: Re: VUMeter Plugin
Post by: hiccup on October 12, 2024, 07:31:02 AM
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.
Hm, the brain cells that connect my eyes and ears may be tired. I'll give them a rest for a while.

But for now it seems that I was slightly wrong when I said that '1' works best for event mode.
It then also leads a little bit, so perhaps something like '5' will be better.
I'll test it more precisely after the brain cells have enjoyed their vacation.
And hopefully some other users will provide their specific experiences and opinions on this.

edit
A good track for testing this would be 'Holding Back The Years' by Simply Red.
Nice and clean peaks in the LED bar of the DejaVU Compact Calibrated test version:

(https://i.imgur.com/qu8EBFE.gif)
Title: Re: VUMeter Plugin
Post by: BoringName on October 12, 2024, 08:16:59 AM
Hm, the brain cells that connect my eyes and ears may be tired. I'll give them a rest for a while.

But for now it seems that I was slightly wrong when I said that '1' works best for event mode.
It then also leads a little bit, so perhaps something like '5' will be better.

That's pretty much the story of my life lately....

And hopefully some other users will provide their specific experiences and opinions on this.

Not holding my breath. But I wouldn't be surprised in the slightest if most people are happy to sit back and go with what you think is best. If you were not involved, VUMeter probably wouldn't have progressed much past version 1.0 and it's all the better for it.
Title: Re: VUMeter Plugin
Post by: hiccup on October 12, 2024, 08:31:32 AM
Not holding my breath. But I wouldn't be surprised in the slightest if most people are happy to sit back and go with what you think is best. If you were not involved, VUMeter probably wouldn't have progressed much past version 1.0 and it's all the better for it.
Thanks for that, and sorry for probably having been a bit pushy about things.
But, you have been able that handle that perfectly. (geniuses being capable of handling chaos)

Besides my gratitude and respect for your work (and persistence and attitude), I would also like to thank kamen and Steven.
Without their efforts and contributions on the audio matter of things this would probably also not have been possible.
Title: Re: VUMeter Plugin
Post by: hiccup on October 13, 2024, 08:16:46 PM
Not holding my breath. But I wouldn't be surprised in the slightest if most people are happy to sit back and go with what you think is best.
Ok, the brain cells that are tasked with audio have come to an agreement with the ones that do visual.

For event mode '5' is perfect.
For non-event mode it's '25'.
Title: Re: VUMeter Plugin
Post by: sveakul on October 14, 2024, 08:38:50 AM
Thanks hiccup for that info.  I've decided to stick with version 8.0 of the plugin, partly because you put so much effort in using RMS as the basis for your calibrated meters that I just don't want to compromise by using "mobility settings averaging" instead.  No shade to you BoringName, but that just seemed like a step back to me after the time you had taken pouring over precision, etc with the meter's development.

I know the BIN meter version is taking a time out right now--a well deserved one!  Is that envisioned as a separate plugin, or as an add-on to the AIMP analog + LVU combo?
Title: Re: VUMeter Plugin
Post by: BoringName on October 14, 2024, 10:29:21 AM
For event mode '5' is perfect.
For non-event mode it's '25'.

Could have sworn this had different values when I looked earlier :)

Thanks hiccup for that info.  I've decided to stick with version 8.0 of the plugin, partly because you put so much effort in using RMS as the basis for your calibrated meters that I just don't want to compromise by using "mobility settings averaging" instead.  No shade to you BoringName, but that just seemed like a step back to me after the time you had taken pouring over precision, etc with the meter's development.

I know the BIN meter version is taking a time out right now--a well deserved one!  Is that envisioned as a separate plugin, or as an add-on to the AIMP analog + LVU combo?

That's an interesting stance to take. What if I didn't say anything? I'd understand if you said you preferred the movement of one method over the other but it seems you are making a decision because you think there is a difference and not a difference you have witnessed. As long as you like the movement of the meter, does it matter how it gets there? It's still calibrated. Its just a different method of removing the peaks.

For what it's worth, I wasn't using RMS averaging until 1.5 and Hiccup stated very early on they were using a sample no. of one which removed any averaging anyway.

I will be incorporating the foobar skins into the current plugin. I'm just going through the different compression types at the moment.
Title: Re: VUMeter Plugin
Post by: sveakul on October 14, 2024, 11:47:46 AM
That's an interesting stance to take. What if I didn't say anything? I'd understand if you said you preferred the movement of one method over the other but it seems you are making a decision because you think there is a difference and not a difference you have witnessed. As long as you like the movement of the meter, does it matter how it gets there? It's still calibrated. Its just a different method of removing the peaks.

For what it's worth, I wasn't using RMS averaging until 1.5 and Hiccup stated very early on they were using a sample no. of one which removed any averaging anyway.
Don't take this the wrong way please.  It's because you ARE involved enough "to say anything" that I take your original development method as being important.  I'm the kind of person to whom it does matter how/why the needles are moving, as opposed to if I like what I see--I'd rather BELIEVE what I see, in terms of an established audio measurement.  Remember I'm the guy who sweats updates of BASS files nobody else cares about.  The fact that your "LED use Peak" option for LED versions is valuable to me is because that also works with a defined measurement.  If it's just about averaged movement and the subjectivity of what "looks" best, it becomes something different than how I had pictured the original intent.

But, hey, that's just one man's opinion.  I realize it's because of your own decision to spend time on this that we have these meters at all for this player.
Title: Re: VUMeter Plugin
Post by: hiccup on October 14, 2024, 11:50:06 AM
Could have sworn this had different values when I looked earlier :)
Yes, you may swear. Do you ever get tired of yourself? I do ;-)

I got to the earlier values based on eagle-eying the peak indicators.
But then I focussed on the needles a bit more (which I find more important), and they could use a tiny tweak to make them slightly faster.
(without harming the peak indicators)


I've decided to stick with version 8.0 of the plugin, partly because you put so much effort in using RMS as the basis for your calibrated meters that I just don't want to compromise by using "mobility settings averaging" instead.  No shade to you BoringName, but that just seemed like a step back to me after the time you had taken pouring over precision, etc with the meter's development.
My 3 cents on that:

The only reason for me creating these 'calibrated' versions was for testing purposes, and trying to get my head around all this VU meter and levels stuff.
But the end goal for me was always to have meters that are indicating something that my brain agrees with.
If you like these 'calibrated' versions, make sure to back them up, because there's a good chance I won't maintain them, or even remove them at some point.

I care about:

- the needle being responsive starting at very low volumes (note that many 'professional' meters don't care about that part of the scale at all)
- the needle being allowed to move a bit past the '0 dB' indicator (which is also customary in recording studios)
- the needle making the best possible use of the available space on the scale

Also, 'accurate' is a term that should probably never be used for any VU meter.
It's always some method of averaging and some compromises and design choices.
And there are also many variations on how recording engineers prefer to tune (or calibrate) them.
So that can differ from studio to studio. Or depending on recording pop, classical, spoken word, etc. etc.

The only thing that can come close to being accurate are peak indicators.
So that's why studios use both VU meters and peak meters. They complement each other.

So having (or asking for) a VU meter that indicates peaks doesn't really make much sense.

And what is great about BoringName's implementation is that we can now have both of them in one meter.
The needle doing VU, the peak indicators doing accurate peaks.
As I said before, I don't think either foobar2000 or AIMP can do that?

And when it comes to proof and pudding: comparing the needle action of all three, I personally like BoringName's the best.
So to me we have a winner.

Let's also remember that what we are talking about here is a meter for a consumer audio player.
Not one for a studio recording tool.
Different purposes, different requirements.
Title: Re: VUMeter Plugin
Post by: BoringName on October 15, 2024, 07:05:50 AM
Don't take this the wrong way please.

All good. I think you might be giving me too much credit with the "original development" comment though. I'm 95% winging half this stuff. I didn't even know what RMS averaging was until about 15 minutes before I implemented the formula and it pretty much got replaced immediately. The original averaging method from version 1.0 was just a simple average of the last 10 values and without any mobility settings it was pretty rough.

At this stage I don't intend to change the needle movement barring some very minor tweaks to mobility factoring to address this comment -
But then I focussed on the needles a bit more (which I find more important), and they could use a tiny tweak to make them slightly faster.

I don't plan on adding options for different level averaging like the foobar plugin has. With how the mobility settings work, I doubt it would make any perceivable difference anyway. The dboffset is available to shift where the meter is going.  So moving forward, how it is now is pretty much how it's going to stay when the foobar skins are added.

Also, 'accurate' is a term that should probably never be used for any VU meter.

This is something I keep coming back to. Having the needle point to specific levels while playing a test file is one thing but when the meter is in full swing, it's probably pointing to different places on different machines just because of the difference in hardware before you factor in everything else.

I was tossing up how to do the directory structure method. Load them all on startup or scan the folder and dynamically create the menu as each folder is clicked in the menu. But while typing this I think the later is probably better even if it might be a little slower as it means I can remove the "rescan skins" option.

eg) right click and select Skins. VUMeter scans that folder and creates menu options for any skins or subfolders in that folder. When you click a subfolder option it scans that subfolder and creates menu options etc... etc....

Loading them all on startup might be a problem if someone (not naming names) decides to download every skin on earth. They can be managed better loading each folder dynamically.
Title: Re: VUMeter Plugin
Post by: BoringName on October 16, 2024, 04:34:25 AM
Just a heads up. The next version will support a directory structure for the skins folder. Due to this, the plugin will no longer support unzipped AIMP/LVU skins. So you might want to make sure all your existing skins are zipped and ready to go for the next version. It won't be for a while.

There are a few limitations with the menu and dynamically adding lots of elements as they are not really designed for that purpose. But I don't want to add a file picker dialog because I think a majority of users will only have a few skins and being able quickly select it from the menu is more convenient.

Due to those limitations I would suggest anyone planning on downloading a bunch of skins and placing them in a directory structure in preparation, limit the number of skins per folder to around 40. eg) if you have 60 skin files in a Foobar subfolder, split that to Foobar\1-40, Foobar\41-60 etc...

You can have more than 40 but the menu adds overflow scroll arrows when the menu exceeds a certain size and to put it bluntly, it's really shit to navigate once that happens. Limiting the number of files will also prevent the menu from bogging down when loading items.

I've looked into workarounds to make it more user friendly but nothing really works and/or is really convoluted and I don't think it's worth the effort considering the number of users it will effect.

Of course I could be explaining all this for no reason because no one will download that many skins.....
Title: Re: VUMeter Plugin
Post by: hiccup on October 16, 2024, 06:57:37 AM
Just a heads up. The next version will support a directory structure for the skins folder. Due to this, the plugin will no longer support unzipped AIMP/LVU skins.
I'm almost starting to feel guilty about asking for this feature, seeing that nobody else has ever asked for this.
But then again, besides us three, no-one brings any ideas to the table anyway...

But (I imagine) it's not just a request for myself.
I recall when I very first discovered the existence of VU meters for foobar2000, and then trying to get all the VU meters that existed so I could see them work, compare, and then make some selection of the best ones that I would actually use.
(foobar2000's plugin feature to switch to previous/next skins by clicking both left and right mouse buttons at the same time is really great for this)

I wouldn't be surprised if there are users that now or in the future discover the VU meter feature for MusicBee and begin with hoarding every meter that they can find ;-)
And for VU meter skin developers like me it's also very useful for organising skins by type, test versions, favorites etc.

I am guessing it's going to be something like how MusicBee handles its skin selection menu?

---

I have to admit that I learned to appreciate that in the current version of the plugin, skins don't have to be zipped.
Because when creating/modifying a skin, you can do that pretty much on-the-fly, without the need for zipping each and every iteration.
So I will carefully keep a copy of the current 1.8.2 version for development purposes, and would suggest any (potential) VU meter creator doing the same.

Thanks again for all your work and persistence on this.
 
Title: Re: VUMeter Plugin
Post by: BoringName on October 16, 2024, 07:18:43 AM
I'm almost starting to feel guilty about asking for this feature, seeing that nobody else has ever asked for this.

It will be good for me too with testing, I can group the different types instead of having to rename them like I currently do.

I am guessing it's going to be something like how MusicBee handles its skin selection menu?

Pretty much.

I have to admit that I learned to appreciate that in the current version of the plugin, skins don't have to be zipped.

I had considered trying to keep support for it but I think it will just be a headache dealing with edge cases. How do I determine if a folder should be a subfolder or a skin. Is there an ini file in that folder because it's supposed to be a skin or because the user unzipped a skin there for editing and left it there.

You could probably set up a simple batch file for unzipping/zipping skins to make it easier when editing.
Title: Re: VUMeter Plugin
Post by: sveakul on October 16, 2024, 07:58:53 AM
FWIW I decided to make the jump to 1.8.2 after all, especially as the integration with BIN meters is on the way.  I had to say good-bye to hiccup's package of sine wav tones but somehow I'll make it  :-\  .  BTW, I can't recall if "Ignore Replay Gain" is checked by default, but that "tagged" me again until it registered on me, haha..  Anyway, I didn't die, and the AL-65 (calibrated of course!) is looking darn good...  I appreciate that Linear was kept as a movement option, which depending on the meter I sometimes prefer using.  It was just added in the last Foobar plugin update to its selection of Levels options.

BoringName, your continued development of this project is appreciated.  Thanks to you, and to kamen for his sophisticated spectrum analyzer, we finally have some enjoyable and useable visualization for MusicBee.
Title: Re: VUMeter Plugin
Post by: voodoopunk on October 16, 2024, 08:32:25 AM
Thanks to you, and to kamen for his sophisticated spectrum analyzer, we finally have some enjoyable and useable visualization for MusicBee.
Do you guys sit and stare at musicbee while music is playing?
Title: Re: VUMeter Plugin
Post by: sveakul on October 16, 2024, 09:21:00 AM
Thanks to you, and to kamen for his sophisticated spectrum analyzer, we finally have some enjoyable and useable visualization for MusicBee.
Do you guys sit and stare at musicbee while music is playing?
Stare at it, listen to it, read it, tweak settings, all kind of stuff!  ;)

(https://i.imgur.com/1lemvMw.png)
Title: Re: VUMeter Plugin
Post by: voodoopunk on October 16, 2024, 10:32:55 AM
Fair enough, not judging.

even though I want it to look how I want, I start music playing and then leave it.

No lyrics, or anything animated, don't see the point.
Title: Re: VUMeter Plugin
Post by: Artesoll on October 16, 2024, 06:07:16 PM
Fair enough, not judging.

even though I want it to look how I want, I start music playing and then leave it.

No lyrics, or anything animated, don't see the point.

I think it's something old, since the first Media Player Classic, with the arrival of Winamp, which took visuals and movements into account. For those who really like organizing music, this is the point, I think.  Then comes the design and interactivity, which is what attracts attention, for example Spotfy, Itunes or Audivana.
I spend hours on Musicbee as a pleasure, a hobby. organize and update data from everything you listen to.

In the living room I listen through a common sound system, the kitchen, the bedroom, the car each have a different system, But the data that goes to these systems comes from musicBee statistics. But on the PC, I like to see Musicbee in action.


I wrote this text using Google Translate, no word is actually meant to sound offensive
Title: Re: VUMeter Plugin
Post by: kaivsdoom on October 18, 2024, 09:05:38 PM
Hi guys, thank you very much for the great work you do. I have a tiny little problem with the Vu-meter plugin. It is installed and activated. It is located at the bottom right of the panel. The menu can be called up, but it does not load the skins. I hope the files are all in the right place. The Vu skins are in User/appdata/Roaming/Musicbee/Vu meter.., the plugin in the main directory, Musicbee/Plugins. I have already tried zipping or extracting the skins, with the same result. It must be me, something is definitely in the wrong place, but I cannot find the error. musicbee 3.6.9052, Vu-meter 1.8.2 win 11, attached is a screenshot... many, many thanks
https://imgur.com/a/8nMDajv
Title: Re: VUMeter Plugin
Post by: BoringName on October 18, 2024, 10:48:50 PM
The Vu skins are in User/appdata/Roaming/Musicbee/Vu meter..,

The skins need to be in the following folder -
User\AppData\Roaming\MusicBee\Plugins\VUMeter\VUSkins

edit: Also be careful when unzipping/zipping skins. You want to make sure the zip only has files in it, not folders. eg) don't right click the "Teac" skin folder and choose to zip it. Go into the Teac folder and zip the files instead. *.png, skin.ini etc... and name that "Teac.zip".
Title: Re: VUMeter Plugin
Post by: MotleyG on October 19, 2024, 12:35:54 AM
@BoringName Thank you so much for your efforts in this project, and for everyone else that contributed time for testing. I finally had a chance to get MB updated and add the VUmeter plugin on my end. What an incredibly realistic performance. Kudos!

@Hiccup your AccuPhase setup pushed me over the edge. Funny how this has nothing to do with listening to the music. But somehow it truly makes an experiential difference.

MusicBee is so versatile. And the dedication of the core group in this forum is icing on the cake. Thanks to all for this addition.
Title: Re: VUMeter Plugin
Post by: kaivsdoom on October 19, 2024, 01:07:32 AM
:D  great BoringName, thank you very much, that was exactly my mistake, now everything works :))
Title: Re: VUMeter Plugin
Post by: BoringName on October 19, 2024, 05:13:16 AM
I've transferred the foobar code from my test program (essentially a viewer) into VUMeter and it all seems to be working ok. The scaling worked exactly how I thought it would so that's made things a lot simpler.

I just need to sort out the vertical/horizontal options now. Some of the foobar skins require vertical positioning so I'll get that sorted before I release it.

I could also modify my test program to save all the image files if that would be any use to anyone who wants to convert the bin files into a different format or even use them as source files to use in the VUEditor.

You can extract frames with the VUEditor but they are fully drawn frames with the needle, glass and LED drawn onto the background. I could extract the needle/glass and LED positions and save them on a transparent background separate from the background image. Unfortunately the needle and glass can't be separated so they might require some editing to re-use properly.
Title: Re: VUMeter Plugin
Post by: hiccup on October 19, 2024, 06:08:59 AM
I could also modify my test program to save all the image files if that would be any use to anyone who wants to convert the bin files into a different format or even use them as source files to use in the VUEditor.
Wow, you keep going above and beyond. That will be very useful.
The first skin I'm going to use that on is this (https://www.dropbox.com/scl/fo/9az6e852sawg6yqmk0yvg/AOElUl5d9bbHNtx-Stb2whU?rlkey=7n8guea6h4nqjagh3o0v308q2&dl=0) one.
I've been wrapping my head around trying to figure out how they did that, but I can't figure it out.
My guess is that it is using lamps only and no needles, but then I'm still not sure how it works exactly.
Title: Re: VUMeter Plugin
Post by: sveakul on October 19, 2024, 08:45:50 AM
I could also modify my test program to save all the image files if that would be any use to anyone who wants to convert the bin files into a different format or even use them as source files to use in the VUEditor.

You can extract frames with the VUEditor but they are fully drawn frames with the needle, glass and LED drawn onto the background. I could extract the needle/glass and LED positions and save them on a transparent background separate from the background image. Unfortunately the needle and glass can't be separated so they might require some editing to re-use properly.
Your fast progress on the BINs-for-MusicBee has been phenomenal to say the least.  Yes I think it would be a great idea to have an option to extract/save the image files; for me it wouldn't be for converting to a new format but for being able to re-color and then re-import lamps, etc. into the original BIN.

I'm still playing with VUEditor and thanks to hiccup sending me the extracted parts of his first BIN meter (DejaVU Compact Calibrated) I've been able to re-color the lamps and part of the background (https://mega.nz/file/PExXRQbZ#NV-clgJR60vbqVARNNlrDkwOIisRPzsVW2LoY90PN84 (https://mega.nz/file/PExXRQbZ#NV-clgJR60vbqVARNNlrDkwOIisRPzsVW2LoY90PN84)).  How he used VUEditor to extract the components from a BIN file I still haven't a clue!  I can't even open a BIN file into VUEditor.  Once I had the parts, I could export the changed *.vu components as a BIN file.

BTW, I've been comparing the needle/LED action of hiccup's BIN meter to the recently devloped horizontal "bar" VU meters available for Foobar after the Javascript Panel3 writer was able to make raw audio data from the player accessible via a visualization stream.  With the new 64-bit foo_vis_vumeter plugin that has multiple levels and other options, I was able to see an almost identical meter needle reaction to the RMS level of the new bar meters, with the LEDs following the needle levels.  Hiccup's meter is extremely lively and responsive, better than many of the "old" BIN meters.

When Peak was selected, both LEDs and needle would follow the Peak level of the bar meters.  There wasn't a setting like in MusicBee for "LED uses Peak", so I imagine that option would need to be coded into the actual BINS for it to work.  Actually I can't think of a Foobar gallery BIN meter that DOES use LEDs--only AIMP meters.  Apparently AIMP compatibility is 90% complete for Foobar with version 0.2 of the plugin, but I have yet to install it as oops is still making off-putting comments like, "Unfortunately, the needle behavior for the AIMP skins is bad and inaccurate; especially around 0dB. That is likely the next thing I'll work on improving."  Man, improve it first THEN release it, haha..  He's made no comments on if it includes LVU compatibility.

Edit:  Hiccup, did you use the old foo_vis_vumeter.dll when creating your first BIN?  I just tested it with the old DLL that has no "level" settings at all, and this time the LEDs DO apparently "use Peak", while the needle is normally behind, I assume following a mobility average or RMS.  If so let me know because I would recommend to oops that he modify his new DLL to follow that default behavior for level.  Much nicer than both LEDs and needle always at the same dB.
Also, I changed the Mega download link above for my modified Bright version which has had additional color modifications, please re-download if interested.
Title: Re: VUMeter Plugin
Post by: BoringName on October 19, 2024, 11:00:13 PM
My guess is that it is using lamps only and no needles, but then I'm still not sure how it works exactly.

That is correct. The way the foobar skins work is the background image is stored by itself and the needle/led pixel data is stored separately. So to draw each frame you start with the background data and then iterate through the LED pixel data for that particular frame and use it to replace the pixels on the background image with the LED pixels, then repeat that for the needle pixels. That's why you can't separate the needle images from the glass because it only stores the pixels required to draw each frame, it doesn't save the entire needle or glass separately. It would be possible to extract the full needle image if the skin has a needle that is fully visible for at least one of the frames. If a glass is used that would prevent that from being possible because the glass nearly always covers the needle at least partially.

For that skin they have just used large LED images. The background image is the eyes closed. The led images are the eyes opening more each frame which overwrite the background image. Theoretically you could have LED images that fully overwrite the background image.

When Peak was selected, both LEDs and needle would follow the Peak level of the bar meters. 

I was about to say the needle and LED are linked with foobar skins because you choose what level the LED are drawn in the VUEditor and the needle will always be in that particular spot. But it's just occurred to me the needle and LED data can come from different frames. So it will be possible to have the LED use peak and the needle be averaged. I actually split the LED and Needle retrieval already so that shouldn't be too hard to implement.
Title: Re: VUMeter Plugin
Post by: BoringName on October 26, 2024, 10:37:31 PM
New version - VUMeter2.0.zip (https://www.mediafire.com/file/qvcbuxo2jbhb4s4/VUMeter2.0.zip/file)

Changes
- Sub directories are now supported for the Skins folder. These are loaded on demand when navigating the Skin option and ~40 skins per folder is recommended. More than that is supported but it slows things down and makes navigation painful. There is an intermittent bug where sometimes the menu will briefly appear in the top left corner of the screen. I've minimised it's occurrence but the bug persists. Unzipped skins are no longer supported.
- Foobar skins are now supported. Thanks to oops on the Hydrogenaudio forums for sharing how to decode the bin files.
- Everything is now packaged under one DLL. You no longer need the SharpGL related DLL's in the plugin folder. If you also use 3DBee, make sure to update to the latest version of that plugin also before removing the SharpGL dll files.
- New sub menu "Layout". The "Hide Header" and "Single Meter" options have been moved into this sub menu.
- New options "Center Y Axis" and Center X Axis" added to the Layout sub menu.
- New option "Vertical Display" added to the Layout sub menu. This will display the meters up and down instead of left and right.
- Sample Settings sub menu renamed to "Mobility Settings". The sample sliders have been changed to "Positive" and "Negative" which are mobility settings for Foobar skins.The scale ranges from 1 to 10 which is the equivalent of 0.01 to 0.10 with the AIMP method. Lower is slower.
- New option "Override AIMP Settings" added to the Mobility Settings sub menu. When enabled the mobility settings for Foobar skins will override the mobility settings in the skin.ini files for AIMP skins.
- New option "Event Mode" added. The old buffer settings have been hardcoded to 25 or 5 when Event Mode is enabled as per Hiccups recommendations.

If you come across the foobar skin "lenco - blue.bin". This skin does not display properly. This isn't a problem with VUMeter, it's just how the skin was created, possibly in error.

If a skin isn't displaying properly, make sure to check you have the correct settings before reporting an issue. Some skins require vertical display and some the default horizontal display. I had considered automating some option switching for particular skins eg) automatically switching to Single Meter mode when an LVU skin is selected but I held off on those changes for this version.

I did a fair bit of testing between the installed and portable versions but if my previous releases are anything to go by, expect a few bugs. I haven't altered any of the code regarding needle movement apart from adding the mobility settings so nothing should be different in terms of needle movement unless you override the mobility settings.

edit: there is still the issue when resizing where part of the background will go black. Resizing the height of the meter fixes this. I can't find the problem, I think it's just a quirk of nesting an OpenGL element into 2 layers of other elements. It occurs horizontally once the meter height is a bit over a third of the screen and you resize to make the meter wider. It occurs vertically when resizing the meter to around half the width of the screen. As stated, the black parts will render correctly if you just alter the height very slightly or restart musicbee.
Title: Re: VUMeter Plugin
Post by: hiccup on October 27, 2024, 06:09:56 AM
New version - VUMeter2.0.zip (https://www.mediafire.com/file/qvcbuxo2jbhb4s4/VUMeter2.0.zip/file)
Congratulations with the 2.x birthday of your plugin child ;-)

It's a great update. Everything seems to be working perfectly.
I will do some more thorough testing and see if I can nitpick on anything at all, but I've got a feeling that is going to be difficult...
Title: Re: VUMeter Plugin
Post by: hiccup on October 27, 2024, 06:18:19 AM
I appreciate that Linear was kept as a movement option, which depending on the meter I sometimes prefer using.
@sveakul:

Can you name some (let's say three) VU meter skins that work better by disabling the default 'linear' setting?
I would be surprised if they wouldn't work better by simply adjusting the gain instead of switching the 'linear' mode.

It was just added in the last Foobar plugin update to its selection of Levels options.
And it has now been removed for the latest version of oops' plugin.

Change log Version: 0.4.0-rc:
· Remove "linear" level mode


Oops seems to agree with me about it not being useful.
 
Title: Re: VUMeter Plugin
Post by: sveakul on October 27, 2024, 07:08:41 AM
Terrific news on the 2.0 release, BoringName, can't wait to do some extensive testing.  Thank you for your work.

Hiccup, after oops explained to me what "Linear" was originally for--to give some scale of movement to meter faces never intended to measure dBs but just flat-scale "temperature/oil pressure/fuel gauge" types--it made sense to me why it was removed.  Why cater to something that doesn't fit the program in the first place.  For whatever reason, probably chance, for me it gave some meters e.g. the DejaVu Compact LED Calibrated, AcuVu, and AL-65 meter a lot of mid-movement.  Others, like with Foobar, it would just "pin right."  I'm certainly not going to worry about its absence now, I'm "all-in" on 2.0!

BTW, if you do have Foobar, give your own BIN plugin, the DejaVu Compact Calibrated (double BIN version), a try with their 0.4 plugin and RMS or Peak options--it's RIGHT ON, the most accurate rep. of the audio I've seen.  The time you spend on the "calibrated" portion is well-spent, and I hope you will keep creating them.  BTW, the single BIN version you also posted and asked to test caused a crash so that's all I can tell you there.

OK, it's onwards into testing land.
Title: Re: VUMeter Plugin
Post by: hiccup on October 27, 2024, 07:43:01 AM
New version - VUMeter2.0.zip (https://www.mediafire.com/file/qvcbuxo2jbhb4s4/VUMeter2.0.zip/file)
Congratulations with the 2.x birthday of your plugin child ;-)
Oops, I forgot to bring a present.
Here (https://getmusicbee.com/forum/index.php?topic=41696.msg227213#post_VUmeter_Prism) it is, I hope you like it.
 
Title: Re: VUMeter Plugin
Post by: sveakul on October 27, 2024, 08:10:45 AM
Just put in 2.0 and I see Linear is still available so I gave it a quick test, and like I mentioned in my last post, it DOES give more "movement" to some meters.  I posted a gif before falling asleep, starts with "Linear" enabled on the AL-65 Calibrated skin.  The source is a high-level chilltrax that then goes into a quiet part before an upswing.  Part way through you'll see a part of the VUMeter menu pop in, that's where I dis-abled Linear, and right away it settles into a slow meander, before re-enabling Linear towards the end.  Just so you don't think I've been crazy reporting this.  As I mentioned before though, this is probably due to falling into some "sweet spot" of the linear "oil level" design.  HOWEVER..  thanks BoringName for keeping it around a while longer especially as the BINs do include a lot of the oil meter design.
https://mega.nz/file/OQBGRAAS#xXF9vzbDt5GKFQdBGTXCYA8ASRxyngVYMbp7Oun3xI8 (https://mega.nz/file/OQBGRAAS#xXF9vzbDt5GKFQdBGTXCYA8ASRxyngVYMbp7Oun3xI8)

Edit:  another example since I'm still awake.  This uses a BIN for the first time, hiccup's creation with some color mods by me.  Starts in Linear mode, Mobility at 5/5, Event.  Note how the full range is used, with LEDs showing peaks (LED use Peak is set);  when you see the menu pop in it shows Linear enabled at which time I dis-able it, and immediately the meters go to peak level and just move near there.  Sorry for the jerkiness I was using 16fps on the GIF cam.  Based on this, I say please hang on to Linear as an option at least for BINs!  FWIW, Linear here closely resembles the response of the same meter in Foobar's new plugin when it is set to "RMS".
https://mega.nz/file/uJhUEICT#3KN-zWvhQSvubJhHPZNctha_hLYFNNxCA_cHrJNIKnY (https://mega.nz/file/uJhUEICT#3KN-zWvhQSvubJhHPZNctha_hLYFNNxCA_cHrJNIKnY)

One more example at 32fps., same meter as above.  This time, I START with Linear OFF;  and you can see a fully pinned, unusable display.  Then I turn Linear ON, and the meter immediately begins responding normally.  Just regular pop music.
https://mega.nz/file/OFhjRBoB#lw-NR39u4px7NHTM9ddfl8ZSDrUG2rSJo6yjz3lE8KQ (https://mega.nz/file/OFhjRBoB#lw-NR39u4px7NHTM9ddfl8ZSDrUG2rSJo6yjz3lE8KQ)
Title: Re: VUMeter Plugin
Post by: hiccup on October 27, 2024, 11:37:30 AM
I posted a gif before falling asleep, starts with "Linear" enabled on the AL-65 Calibrated skin.  The source is a high-level chilltrax that then goes into a quiet part before an upswing.  Part way through you'll see a part of the VUMeter menu pop in, that's where I dis-abled Linear, and right away it settles into a slow meander, before re-enabling Linear towards the end.  Just so you don't think I've been crazy reporting this.
Obviously you are not crazy. You are just using a skin that is not intended for playing music.

As I explained before, that 'calibrated' version was meant for testing purposes only.

- It was only created to be of some assistance to BoringName with getting levels working properly for the plugin.
- It makes no sense at all to use a VU meter skin that was calibrated for peaks while the VU meter plugin uses an RMS-like averaging method.
- The needle curve of that calibrated version is not tweaked for good response when playing music.

The above is obviously the reason that you are not happy with how it looks with default settings.
It should not be used for playing music.

Anyone that likes this meter should use the released version (https://getmusicbee.com/forum/index.php?topic=41696.msg227213#post_VUmeter_AL-65) of AL-65.

The plugin should not keep this 'linear' option only because someone wants to use the test version of a skin that was clearly not designed for playing music.

@BoringName:
If you agree, I think it would be good to remove the 'linear' option.
I think it has brought enough confusion and misunderstanding now.
As mentioned before, oops has also removed it from his plugin. Probably for the exact same reasons.
Title: Re: VUMeter Plugin
Post by: sveakul on October 27, 2024, 09:05:35 PM
The plugin should not keep this 'linear' option only because someone wants to use the test version of a skin that was clearly not designed for playing music.

@BoringName:
If you agree, I think it would be good to remove the 'linear' option.
I think it has brought enough confusion and misunderstanding now.
As mentioned before, oops has also removed it from his plugin. Probably for the exact same reasons.
Wow, I guess I'm that "someone", haha..  You know, I'm not trying to insult you or confuse people by using "linear" with your meters, calibrated or otherwise.  I figured they were all designed for playing music.  My preference for more and quicker "movement" is why I brought it up;  I made another gif using the regular, NON-calibrated AL-65 that shows the same effect (linked below) going from linear "on" to "off", so put it down to my taste as opposed to the meter.

BTW when it first showed up on oop's plugin I posted in the Foobar forum that it "pinned max" every time it was used.  It obviously did not belong with that package.

Hey if BoringName wants to remove it fine, I'm not trying to spread misinformation or upset anybody just express an observation and opinion.  I did that and I'm done with it.

https://mega.nz/file/2YZVWJLT#Z65aiTNE-OWbE_oylA0niLZQL_-DIEuM6TILH994978 (https://mega.nz/file/2YZVWJLT#Z65aiTNE-OWbE_oylA0niLZQL_-DIEuM6TILH994978)
Title: Re: VUMeter Plugin
Post by: hiccup on October 27, 2024, 09:29:08 PM
I'm not trying to spread misinformation or upset anybody just express an observation and opinion.
I'm sure that you are not.
But I think it is important to distinguish facts from guesses or assumptions.
And I am not sure that this discussion is factually about linear vs. logarithmic curves.
It only seems to be based on some subjective observation, based on using one specific.skin.
 
By now I have asked several times for you to list some existing VU meter skins that are not working well with the default setting and only work well when unchecking the 'linear' setting.
(and not by simply increasing or decreasing the gain)
I was honestly curious about that since you keep mentioning how important that setting seems to be to you.

But you are now only mentioning one single skin of mine, which to me indicates that I perhaps should work on that one.
It is in no way a valid argument to keep an option setting that is (in my opinion) useless, is misunderstood, and is (and will be) confusing users.
Title: Re: VUMeter Plugin
Post by: sveakul on October 27, 2024, 11:17:32 PM
By now I have asked several times for you to list some existing VU meter skins that are not working well with the default setting and only work well when unchecking the 'linear' setting.

But you are now only mentioning one single skin of mine, which to me indicates that I perhaps should work on that one.
It is in no way a valid argument to keep an option setting that is (in my opinion) useless, is misunderstood, and is (and will be) confusing users.
I think you meant to say, "..and only work well when unchecking the 'linear' setting."  FWIW one of the gifs I posted last night (now deleted) was a different skin, the BIN meter.  Look, as I said I'm done with this, PLEASE BoringName, remove "Linear"!!
Title: Re: VUMeter Plugin
Post by: BoringName on October 27, 2024, 11:23:38 PM
I hope you like it.

Nice one. Creating foobar skins is more complicated but it's a lot more flexible on what can be created.

In regards to the Linear option. This needs to be checked if you want the meter to look how the creator intended. Well as close as it can anyway.

Unchecked is just using a method I came up with because my initial testing started on uncalibrated skins and I thought AIMP wasn't doing it properly (I should have known better). I don't really know how to describe it because it's using a logarithmic method on a logarithmic value (peak values). I made arbitrary adjustments to the formula for Foobar skins because it didn't really work for those initially.

At this stage I'm not that worried about leaving it in, it would actually be a little bit of work removing it. I personally don't understand why anyone would want to use it because it makes the meter wildly inaccurate but I guess it can make the meter a bit more dynamic in some cases.

edit: just to clarify, I don't understand why anyone would want to use the meter with "Linear" unchecked. If I did remove the option the meter would be using "Linear" all the time.
Title: Re: VUMeter Plugin
Post by: hiccup on October 28, 2024, 12:05:32 AM
I personally don't understand why anyone would want to use it because it makes the meter wildly inaccurate but I guess it can make the meter a bit more dynamic in some cases.
I'm getting annoyed at myself for asking this same question over and over again:
What VU meter skins are working badly using the default option that can not easily be solved by adjusting the gain?
Names and numbers please.
It's an honest question. That still hasn't been answered.
It looks like oops (the creator of the fb2k plugin) also didn't think there were any, so he removed the option.

Obviously it is your prerogative to keep in an option that is pretty much useless, but to me it is sort of a stain in a for the rest pretty much perfect implementation of what is good and effective.

Slightly off-topic:
While the new foobar2000 plugin for this is very impressive in its options and tweakability, I much prefer your implementation.
I like the end result better (which is the main thing this should be about), and I appreciate that it is not throwing out all sorts of option settings that not many users will understand, but more importantly, won't do much to get better results.
Its like just throwing out all sorts of options to the user and leave them to figure things out.
I much prefer something that works well from the get go.
And then maybe have a somewhat hidden 'advanced' option menu for freaks like us.

This is pretty much why I placed foobar2000 secondary as my player/manager and bumped-up MusicBee to first place many years ago.
MusicBee just works. For fb2k to function, look and behave as required it needs a lot of time and effort that gets more frustrating over time.

So I guess this is just me wishing for MusicBee plugins to act the same.
They just work. Not bothering the user with options that not many truly understand, and that are pretty much useless for 99.9% of the users or possible scenarios.
 
Title: Re: VUMeter Plugin
Post by: BoringName on October 28, 2024, 01:10:57 AM
Obviously it is your prerogative to keep in an option that is pretty much useless, but to me it is sort of a stain in a for the rest pretty much perfect implementation of what is good and effective.

If the meter isn't 100% accurate (which it isn't). Doesn't that mean the whole thing is subjective?

Some other users might consider other options a "stain"  and "useless" because they will never use them. Although that would require them to actually post something in here.....

It's not really named correctly anyway. With Linear checked it follows the logarithmic peak values so really it's a logarithmic option. With it unchecked it's more like logarithmic squared.....

Title: Re: VUMeter Plugin
Post by: Bee-liever on October 28, 2024, 02:06:12 AM
I'm getting totally confused after the last few posts.
Should the 'Linear' option be checked or unchecked?
Is it different for Aimp or bin skins?
Hiccup's calibrated skins should not be used for music but only for testing?
And if so why didn't they come with this caveat on the download links.

I don't know about anyone else, but at this stage I'm ready to revert to VUMeter1.8.2 and leave it at that :(
Title: Re: VUMeter Plugin
Post by: hiccup on October 28, 2024, 09:51:19 AM
Hiccup's calibrated skins should not be used for music but only for testing?
And if so why didn't they come with this caveat on the download links.
They were created at the very first development stages of the plugin when it was using peak levels.
So things changed when the plugin was later improved by using averaging methods.

I have removed them for now.
Perhaps I will modify some a bit, since I do like the look of some, and then make them available again. (leaving out the word 'calibrated')
Not sure yet, and it takes quite some work creating and modifying these VU meter skins.
Title: Re: VUMeter Plugin
Post by: BoringName on October 28, 2024, 10:37:46 PM
Should the 'Linear' option be checked or unchecked?
Hiccup's calibrated skins should not be used for music but only for testing?
And if so why didn't they come with this caveat on the download links.

Having linear checked and using a calibrated skin is as close to accurate is it can be but it's never going to be 100% accurate. That applies to all skin types.

I have to admit I'm a bit confused about the calibrated issue as well. A lot of time has been spent getting the meter accurate as it can be and complaining about the linear option which trades accuracy for a more dynamic meter (sometimes) while stating calibrated meters shouldn't be used seems contradictory to me.

So far all the foobar skins seem to be accurate except for lenco-blue.bin which is stuffed. When you play a test file the needle points at the correct level.
LVU skins are accurate.
AIMP skins are hit and miss. Some are not accurate because they have the wrong settings in the skin.ini file but there are a lot that are not accurate because they were designed to look good and accuracy wasn't a consideration.
Title: Re: VUMeter Plugin
Post by: sveakul on October 29, 2024, 07:50:52 AM
@BoringName : thanks a lot for the BIN image extractor, finally a way to get at images to make color changes.

The obstacle now seems to be how to re-import the images into the source BIN.  VUEditor only looks for *.vu "Project Files," which I have no idea how to extract.  Can you point me in the right direction?

Thanks also for the extra information on how the settings in version 2.0 of your plugin effect the 3 meter types.  With the AIMP skins I have found that with careful use of the mobility sliders (with the AIMP Override selected) combined with selective use of Linear I can get very accurate movement at a pleasing up/down rate (the latter I prefer quicker than most of the skin.ini files).  BIN meters with LEDs and needles (read: the hiccup original) respond to peaks beautifully when "LED use peak" is selected.

One "not really a bug" I've noticed is that unlike the other settings, "Event Mode" always reverts to un-checked on MB restarts so I need to remember to re-check it each time (huge effort I know!).
Title: Re: VUMeter Plugin
Post by: hiccup on October 29, 2024, 05:43:28 PM

About the single skin that made sveakul ask to keep in the 'linear' option:

Maybe there was a problem with that 'calibrated' skin, I have no idea.
It isn't worth my time checking because it was just a version for testing purposes.
The regular version is and was easily available and works great.


I have to admit I'm a bit confused about the calibrated issue as well.
What probably makes this 'calibrated' stuff a bit complicated to understand is this:

foobar2000 uses RMS for the needle action.
But these calibrated skin versions are designed for peaks.
That means that if you play a 0 dB sine-wave on foobar2000, the needle will point at -3 dB, which is the correct value for such a sine-wave.

But if you play that same test tone in MusicBee, the needle will point at 0 dB.
Because the MusicBee plugin uses peaks instead of RMS.

The new foobar2000 plugin has the option to use peaks.
So that one will then also point at 0 dB.

But now comes the tricky part:

MusicBee's plugin uses some averaging method for the needle movement.
Which means that when playing music, MusicBee will show a needle action that is neither identical to foobar using RMS, nor to foobar2000 using peaks.
The difference is especially clear to see at lower volumes.

It will even depend on the content of the music. The sound of a trumpet, a synthesizer, the human voice, etc. may show the same peak values, but the RMS values can differ to a very large degree.

So it will not be possible to create a skin that will behave exactly the same in MusicBee and in foobar2000.

When creating foobar2000 skins you have the possibility to create your own curves for the needle response.
So you could create two different versions of the same skin.
Well, three actually:
One for MusicBee, one for foobar2000 in RMS mode, and one for foobar2000 in peak mode.

So, this is why people shouldn't have some misconception that 'calibrated VU meters are better'.
For playing music it is an irrelevant concept, and they will most likely perform worse than a version that is designed for music.

For people that want to check this out themselves, I have created a new version of AcuVU, now in the foobar2000 bin format. (which is also much better for these kind of skins then previous AIMP versions)
It is calibrated for peaks, so it should be helpful for testing this stuff.

It can be found here (https://getmusicbee.com/forum/index.php?topic=41696.msg227213#post_VUmeter_AcuVU)


Quote from: BoringName
A lot of time has been spent getting the meter accurate as it can be and complaining about the linear option which trades accuracy for a more dynamic meter (sometimes) while stating calibrated meters shouldn't be used seems contradictory to me.

I hope the above clears up what I believe is the case, but I'm confused about what you are saying in that sentence.
By 'the linear option', do you mean the functionality when it is on (default), or when it is off (unchecked)?
I'm still curious for someone to name a couple of regular VU meter skins that work better with that (mislabeled) setting 'off'.
Until somebody finally does that I will remain convinced it is a useless setting.
 
Title: Re: VUMeter Plugin
Post by: hiccup on October 29, 2024, 05:56:16 PM
The new 'Mobility Settings' sliders are working very well.
The only minor thing is that I think I will never set them above 3, and wished that the range between 1 and 4 was a bit more fine-grained.
Maybe there are skins that work better with higher settings, but on the coupe of skins I tested this with, anything above 5 gets very nervous.

I also wonder about the labels 'positive' and 'negative'.
Only users that have created AIMP skins will understand what they mean. And not even all of them understand it.
Wouldn't something like 'attack' and 'decay' be better? Or 'rise' and 'fall'?
Most users will understand those without waking up ChatGPT.

'Mobilty Settings' could probably also be improved upon, but I can't think of something right now.

----

A request/suggestion:
For foobar2000 skins you can have bin1 and bin2, for left and right meters.
But you can also have bin3.
That one is for when using a skin in mono mode.
See the new AcuVU skin that I mentioned above to see how that works.
(use foobar2000 32bit for this, it looks like the 64bit plugin also isn't able to display it)

---

I notice that with music that starts with some percussive sound, the meter often misses the first beat.
I can imagine it if there is no easy fix for that, but I thought to mention it anyway.

---

I've experienced a couple of times now that at some moment in time the needle gets stuck at a certain level and won't move lower again.
It hasn't happened enough for me to be able to replicate it somehow, but maybe you have some ideas about this anyway.
 

Title: Re: VUMeter Plugin
Post by: sveakul on October 29, 2024, 09:07:20 PM

About the single skin that made sveakul ask to keep in the 'linear' option:

Because I happened to name one example doesn't mean there was a "single skin" that made me ask to preserve the linear OPTION for users;  I'm at a loss to explain the degree of personal "affront" you seem to take at the whole concept, most if it directed at me, as if I am some kind of incompetent.

Hiccup you have made your case/opinion very thoroughly about why you feel the Linear option in the plugin is worthless.  BoringName has come back with good explanations of his own of what it does and why it can be a good OPTION to use.  Man can't we just leave it at that??  Let users make up their own minds what looks best or what sounds best (the VST debate) etc.  If I wanted a player that made all my decisions for me I wouldn't be using MusicBee.  It's time to bury the hatchet on all this and just enjoy things in our own way, without continually being challenged on the use of this or that "setting."

BTW, a +1 to your suggestion that "Attack" and "Decay" or Rise/Fall would be better labels than "Positive" and "Negative" for the mobility sliders.
Title: Re: VUMeter Plugin
Post by: hiccup on October 29, 2024, 09:25:40 PM
Because I happened to name one example doesn't mean there was a "single skin" that made me ask to preserve the linear OPTION for users;
You 'happened' to name that single one only after me repeatedly asking for a couple.
And the only one you came up with was that skin of mine that was for testing, and was not released officially.

I have been honestly interested about what this 'linear' option actually does, and if it is actually useful for something.

By now I have asked at least four times to provide a couple of existing VU meter skins (not that test version of mine) so that I can check  for myself if my assumption that it is not useful is wrong. Of course I could be.

But considering that this simple and honest question remains unanswered only solidifies my opinion on the matter.
Something like "I think it perhaps could be useful" is not a very strong argument, don't you think?
I really feel like walking through mud with lead-filled boots on this.
Only in an effort of mine to help improving the plugin to be as lean and mean as possible.
Title: Re: VUMeter Plugin
Post by: BoringName on October 29, 2024, 10:17:54 PM
New version - VUMeter2.0.1.zip (https://www.mediafire.com/file/zvcepkuipupr361/VUMeter2.0.1.zip/file)

Changes

- Event Mode setting will now save correctly.
Title: Re: VUMeter Plugin
Post by: BoringName on October 30, 2024, 09:24:48 AM
Until somebody finally does that I will remain convinced it is a useless setting.


I suppose I can just remove it and see how many people complain. That's a true test of how popular it is.



A request/suggestion:
For foobar2000 skins you can have bin1 and bin2, for left and right meters.
But you can also have bin3.
That one is for when using a skin in mono mode.
See the new AcuVU skin that I mentioned above to see how that works.
(use foobar2000 32bit for this, it looks like the 64bit plugin also isn't able to display it)

I'll look into the mobility options. I believe the "mobility" terminology probably just came from it being translated. Decay seems to be the most used term for the fall of the needle. I've seen attack used for the rise but not sure that would solve the issue of people not knowing what it means. Rise/Fall speed might be easiest to decipher for a larger percentage of users.

I'll look into the other problems but at this stage I think there is a 99.8% chance I am not going to bother implementing the bin3 option for a couple of reasons.
1. It's quite a bit of work for what I believe would be very little gain.
2. The same functionality can be achieved with a separate bin file in single meter mode.
3. Up until I read your post I didn't know a 3rd meter could exist in the bin file. All the multi meter bins I have just show the left meter when mono is selected so I'm guessing there are very few skins out there that even implemented the 3rd meter which goes back to point 1.

Title: Re: VUMeter Plugin
Post by: hiccup on October 30, 2024, 11:14:42 AM
I'll look into the mobility options. I believe the "mobility" terminology probably just came from it being translated. Decay seems to be the most used term for the fall of the nedle. I've seen attack used for the rise but not sure that would solve the issue of people not knowing what it means. Rise/Fall speed might be easiest to decipher for a larger percentage of users.
Maybe simply call it 'needle action'?
That can hardly be misunderstood.

About the range for fall/rise:

You may have different experiences, but as I said, I find any setting somewhere higher than '6' resulting in very nervous and unpleasant needle action.
So my request/suggestion would be to have the scale restricting to the range that is currently labeled between 1 and maybe 8 at most.

I also think it would be good to have a 'zero' position in the middle that will work well as default for most skins.
In my opinion the current '4' would be a good '0'.
Then the scale could maybe look like:
-10 . . . . . . . . . 0 . . . . . . . . . +10
Or from -6 to +6 if you think that's a bit too fine-grained.
Title: Re: VUMeter Plugin
Post by: hiccup on October 30, 2024, 11:34:44 AM
I'll look into the other problems but at this stage I think there is a 99.8% chance I am not going to bother implementing the bin3 option for a couple of reasons.
Fair enough.
The only skin that I am aware of that can do this is my own new AcuVU skin.
And I am not sure I will make many more skins that have that feature.
And then also, chances are slim that end-users will be selecting the 'mono' bin. (even though it is a useful option for horizontally restricted spaces)

So in the end it would be quite some effort for something that I'm afraid hardly anyone will ever use.
Title: Re: VUMeter Plugin
Post by: sveakul on October 30, 2024, 11:40:14 AM

Until somebody finally does that I will remain convinced it is a useless setting.


I suppose I can just remove it and see how many people complain. That's a true test of how popular it is.

"There are people who make things happen, people who watch things happen, and people who don't know anything happened."  By the level of participation in this thread, and the huge percentage of users of EVERY music player who struggle to understand anything about it or CARE to, I think that test would fail in most courts  :-\ .  Most wouldn't even know it had ever been there in the first place.  And afterwards, if they did notice anything changed in how their Metallica album swings it, would ignore it after 5 seconds.  Stores are full of light/temperature/age spoiled beer, and most people just think it's "supposed to" taste that way.  There's those adult beverages again, haha..

Sorry for the grim portrayal of humanity, haha..  My own opinion again is keep it as an on/off OPTION and let the few who would even A/B it make their own decision.  Nobody hurt, no extra work, and everyone can have it their own way.
Title: Re: VUMeter Plugin
Post by: Bee-liever on October 31, 2024, 01:12:45 AM
Thanks for the comments BoringName & Hiccup.  I'm a little less confused now.

@BoringName
Is the Linear setting for interpolation of the playing track to synchronize the animation of the meter?
If so, would't this only apply to AIMP meters as the foobar bin files already have interpolation applied to them via the VUEditor when they are created?
Or does 'Linear' override the pre-calculated Linear, Catmull-Rom or Cubic interpolation in the bin files?
Title: Re: VUMeter Plugin
Post by: BoringName on October 31, 2024, 02:19:12 AM
When linear is checked, the meter follows the same methods foobar and AIMP use to calculate the position of the needle.

it's a little more complicated than this but the basic gist of it is multiplying the needle range with the peak value. eg) (zeroAngle - minAngle) * peak value. The difference with foobar skins is they use frames instead of angle settings so you're multiplying the zeroFrame number. Foobar has a lot of frames that are exactly the same because it uses them to create a scale for the needle movement when multiplied by the peak value. That's why I said calling it "Linear" isn't correct because you are using the peak value which is logarithmic.

When linear is unchecked it uses Linear regression with minLevel, minAngle, zeroLevel and zeroAngle to create a formula that mostly fits the curve but this was based on skins that were not accurate so it's really just a mess. The end result produced something that basically just reduced the sharpness of the peak values logarithmic curve so it made some meters a bit more dynamic. It's still technically logarithmic as well but a smoother curve.

If I'd done a bit more testing at the start, I could have saved myself a hell of a lot of work and the linear option never would have come to be.

edit: Also with the foobar skins with linear unchecked, I didn't have any angle values to work with so I just fudged the formula to a value that mostly worked so that makes it even more meaningless.
Title: Re: VUMeter Plugin
Post by: hiccup on October 31, 2024, 06:08:11 AM
If I'd done a bit more testing at the start, I could have saved myself a hell of a lot of work and the linear option never would have come to be.
I can understand it can be difficult to abandon something you have put a lot of work and thinking in.
But can we now finally agree it is not working out as you hoped it would, and its current implementation is not useful at all.
On the contrary, it creates a mess, both in the outcome, the discussion about it, and what users believe that it does.
And nobody asked for it in the first place. Why the hell cling on to it?

If there would be a function for something like this that would be actually useful for sure, it would be the option to be able to tweak the logarithmic curve.

Being able to tweak curves like this would have a very good result when you would want to tweak the needle action over the scale for some VU meter skins:

(https://i.imgur.com/8aSfx7P.png)
Title: Re: VUMeter Plugin
Post by: sveakul on October 31, 2024, 07:21:03 AM
But can we now finally agree it is not working out as you hoped it would, and its current implementation is not useful at all.
On the contrary, it creates a mess, both in the outcome, the discussion about it, and what users believe that it does.
And nobody asked for it in the first place. Why the hell cling on to it?
Here I go again, but didn't BoringName answer that question in his post above?

"When linear is checked, the meter follows the same methods foobar and AIMP use to calculate the position of the needle.  When linear is unchecked it uses Linear regression with minLevel, minAngle, zeroLevel and zeroAngle to create a formula that mostly fits the curve but this was based on skins that were not accurate so it's really just a mess."

So, why would I NOT wish to "check" Linear to avoid "a mess"??  Closer to the point of this.. because you personally have deemed something "worthless" is not a reason to cajole the developer to remove that option for everyone else.  That's what I don't understand, hiccup--you're free to NOT use it already; so why force your own choice on everybody else?  I want to be able to make the same choice to use or not use it as you have.

FWIW I'm not sure what to say about using "nobody asked for it in the first place" as a measure of whether to include a technical option in just about anything.  I keep saying this is my last post dealing with all this, now it is.  I am now merely a mum observer, and harbor no bad feelings towards anyone.
Title: Re: VUMeter Plugin
Post by: sveakul on October 31, 2024, 07:43:21 AM
@BoringName:  I was just looking through some old posts on the AIMP forum and spotted a rare comment on the analog meter movement that might be of interest (link will need to be put through Google Translate if like me you don't speak Russian): https://www.aimp.ru/forum/index.php?topic=52865.msg325234#msg325234 (https://www.aimp.ru/forum/index.php?topic=52865.msg325234#msg325234) .

The same dude posted a meter here where he says "The scale was made using a completely calculated method. It was nice to see that the readings were almost perfectly matched, so we are using the same formulas as Artem. I guess we can keep this option." : https://www.aimp.ru/forum/index.php?topic=52865.msg325063#msg325063 (https://www.aimp.ru/forum/index.php?topic=52865.msg325063#msg325063)

Finally I saw this formula on the Foobar forum:  https://hydrogenaud.io/index.php/topic,126733.msg1053239.html#msg1053239 (https://hydrogenaud.io/index.php/topic,126733.msg1053239.html#msg1053239)
Title: Re: VUMeter Plugin
Post by: hiccup on October 31, 2024, 07:47:42 AM
Closer to the point of this.. because you personally have deemed something "worthless" is not a reason to cajole the developer to remove that option for everyone else.  That's what I don't understand, hiccup--you're free to NOT use it already; so why force your own choice on everybody else?  I want to be able to make the same choice to use or not use it as you have.
FWIW I'm not sure what to say about using "nobody asked for it in the first place" as a measure of whether to include a technical option in just about anything.

 I keep saying this is my last post dealing with all this, now it is.  I am now merely a mum observer, and harbor no bad feelings towards anyone.
That's what you have said before.
And you still keep on making comments about this without providing a shred of replicable proof that the current option is useful.
You refuse to provide and share some (officially published) skins that would benefit from this setting.
If you had when it was asked for the first time, the discussion about this would not have turned into this needlessly lengthy and ugly thing.
We would then have been able to verify the validity of your opinion on the matter.
And it might have changed my opinion. I am still open to that.

But instead of having an opinion based on facts, you seem to prefer it being based on guesses, assumptions and emotions.
You have also said before something like 'fine, remove that option'. And now you want to keep it again. What's next?

I hope (and am pretty sure) that BoringName will make a sensible decision on this, that will be based on facts and reality.
Title: Re: VUMeter Plugin
Post by: hiccup on October 31, 2024, 08:03:06 AM
@BoringName:  I was just looking through some old posts on the AIMP forum and spotted a rare comment on the analog meter movement that might be of interest
Just curious:
Those are all about AIMP skins. (and about the new foobar2000 plugin)
Far as I know BoringName's plugin is already 'dB perfect' for AIMP skins.
Do you believe something should be improved or changed in regard to how it currently handles AIMP skins?
Title: Re: VUMeter Plugin
Post by: BoringName on October 31, 2024, 09:38:52 AM
I think Sveakul might be getting confused about what removing the linear option means.

If I remove the "linear" option I will hardcode it as enabled. So I would actually be removing the option to disable "Linear". Hope that clears things up.

Finally I saw this formula on the Foobar forum:  https://hydrogenaud.io/index.php/topic,126733.msg1053239.html#msg1053239 (https://hydrogenaud.io/index.php/topic,126733.msg1053239.html#msg1053239)

I've already got the AIMP formulas sorted. For the record I don't think the formula linked in that post is accurate as it's using the whole span of the meter from minAngle to maxAngle. I could be wrong but I believe a lot of meters have a different scale after zero.

If the peak is less than 1.0 the formula is basically what I listed earlier minAngle + ((zeroAngle-MinAngle) * peakValue)
If the peak is more than 1.0 the formula is zeroAngle + ((maxAngle - zeroAngle) * (peakValue - 1.0))

Some of those brackets might be redundant....

edit: of course the linked formula would work just fine if people created their skins based on that formula but I don't think everybody has. I could be wrong, I haven't actually tested any to find out.
Title: Re: VUMeter Plugin
Post by: Bee-liever on October 31, 2024, 09:49:04 AM
That's why I said calling it "Linear" isn't correct because you are using the peak value which is logarithmic.

It's still technically logarithmic as well but a smoother curve.

Why not just change the names for the two states:
On = (was) Linear = (new) Logarithmic
Off = (was) blank = (new) Curve Smoothing
Title: Re: VUMeter Plugin
Post by: BoringName on October 31, 2024, 10:13:03 AM
Why not just change the names for the two states:
On = (was) Linear = (new) Logarithmic
Off = (was) blank = (new) Curve Smoothing

Because it's doing more than smoothing the curve, it turns the meter into an inaccurate mess really. The needle goes well past zero when it shouldn't and sits low when it should be in the middle of the meter. It won't match the music at all because it's based on a badly designed skin.

I might look at a better solution that actually smooths out the curve without messing up the extremes, like what hiccup suggested.

Title: Re: VUMeter Plugin
Post by: hiccup on October 31, 2024, 10:36:04 AM
I might look at a better solution that actually smooths out the curve without messing up the extremes, like what hiccup suggested.
For what it's worth:
I'm now using Excel to create the curves for my foobar2000 skins.

The formula I use there for getting the points for a traditional 'voltage' to dB curve' is by using "10 to the power over 20" in the formulas.
Where the '20' is the standard for dB curves as you will know.
But I can easily change the curve to become more and more linear by simply increasing the 20.

I don't think this will be directly applicable to the challenge you are facing with this, but I thought to mention it anyway.

But I'm still on the position that I think that first an actual problem should be found and defined, before making any effort to come up with a solution.
And after dozens of posts, I still do not understand what the problem is that would require a solution here.
Title: Re: VUMeter Plugin
Post by: Bee-liever on October 31, 2024, 10:43:42 AM
I might look at a better solution that actually smooths out the curve without messing up the extremes, like what hiccup suggested.
OK then. You and hiccup seem to have everything under control
Us end users in peanut-gallery will just keep mum for now  :-X
Title: Re: VUMeter Plugin
Post by: hiccup on October 31, 2024, 10:47:55 AM
I might look at a better solution that actually smooths out the curve without messing up the extremes, like what hiccup suggested.
OK then. You and hiccup seem to have everything under control
Us end users in peanut-gallery will just keep mum for now  :-X
Hi Bee-liever.
Before you go mum, I'm curious about your opinion on the matter.
I suppose you had a reason for participating in this? Have you come across VU meter skins that don't perform well and would benefit from some Red Bull?
(that can't be solved by simply turning the mouse-wheel to increase the gain)
Title: Re: VUMeter Plugin
Post by: BoringName on October 31, 2024, 11:42:43 AM
But I can easily change the curve to become more and more linear by simply increasing the 20.

I don't think this will be directly applicable to the challenge you are facing with this, but I thought to mention it anyway.

I was just playing around with this very thing in a spreadsheet. I was considering removing the linear option and adding a slider into the needle action menu to adjust the curve. Probably just 10 points in either direction although that might be overkill.....

But I'm still on the position that I think that first an actual problem should be found and defined, before making any effort to come up with a solution.
And after dozens of posts, I still do not understand what the problem is that would require a solution here.

I think it's just for people that want the needle to move more. I have a few songs where the needle just sits in a very small range and hardly moves. Of course it's doing what it's supposed to do but if the user just wants something flashy and has zero interest in accuracy, adjusting the curve will make the needle move more without it overshooting zero.

edit: Actually looking at the graph I'm not sure how much extra movement it would give. It should give a slightly wider range of motion but mobility settings might counter that a bit, I need to test it out.
Title: Re: VUMeter Plugin
Post by: hiccup on October 31, 2024, 12:02:06 PM
I was just playing around with this very thing in a spreadsheet. I was considering removing the linear option and adding a slider into the needle action menu to adjust the curve. Probably just 10 points in either direction although that might be overkill.....
Well, here is the difference I get between 20 and 50.
(I think the option to lower the value won't be useful for many skins?)

So that's an increase of 30, which doesn't seem completely over the top.

(https://i.imgur.com/6FA9oE7.png)

(ignore the strange things going on below -50, that's necessary for getting nice needle movement in that lowest region)

PS
I also have a suggestion for the name for such a function: CurveBoost™
(but it could be you'll get sued by some underdaks company ;-)
Title: Re: VUMeter Plugin
Post by: sveakul on October 31, 2024, 09:51:22 PM
But instead of having an opinion based on facts, you seem to prefer it being based on guesses, assumptions and emotions.
You have also said before something like 'fine, remove that option'. And now you want to keep it again. What's next?
I came out of "mum" (pardon the pun) because when I continue to be personally attacked it goes beyond some setting in a meter.  My opinions about anything are my own matter, I don't have to justify them up to anybody's book of standards.  The few GIF's I posted at the beginning didn't impress anybody so I gave up on that, I don't have time.  As far as your last sentence, if it isn't OBVIOUS that I said that in exasperation and resignation about the whole course of the discussion  I don't what to say except "people do say things like that."  It was only when BoringName "re-entered" with the surprise (to me) statement that it was checking that OPTION that provided the most accuracy that I continued any further.  Since he said he intends to hard-code that now as "selected" all my concerns may vanish.

I would be dishonest though if I didn't say that IMO the BEST route would be to keep the OPTION for you to decide to not use it, but that's BoringName's decision.  Just be aware that I'm not "gloating" over it.  You seem to have his ear for further modfiying HOW he hard-codes it, so you still have the ability to get what you want, and that's fine.

I presented those AIMP posts with the formulas to him merely because I had never seen that type of material posted before, not because I thought anything needed "fixed," man oh man sometimes conversation is just casual  eh!  Hell, it was all Greek to me, I thought maybe not to him!
Title: Re: VUMeter Plugin
Post by: hiccup on October 31, 2024, 10:20:57 PM
Since he said he intends to hard-code that now as "selected" all my concerns may vanish.
I now understand that (as BoringName also suspected) you had it backwards from the beginning.

Both BoringName and I have always been talking about the problems and uselessness of what that option does when it is unchecked.
It is checked by default, so the option is/was for a user to uncheck it.
And I find it useless when unchecked, and in BoringName's own words it can even 'create a mess'.

So I wasted all this time and effort of mine in having these discussions with you as a result of you misunderstanding what it was actually about.

What a waste.


Quote from: sveakul
You seem to have his ear for further modfiying HOW he hard-codes it, so you still have the ability to get what you want, and that's fine.
And you still don't get it.
We are now talking about having an option that will do what BoringName originally intended with 'unchecking linear'.


Quote from: sveakul
because when I continue to be personally attacked…
I believe you have that backwards too.
But please let's stop this nonsense and stop polluting this topic.
 
Title: Re: VUMeter Plugin
Post by: BoringName on November 02, 2024, 01:08:30 AM
New version - VUMeter2.1.zip (https://www.mediafire.com/file/6xfax8o2th4xxav/VUMeter2.1.zip/file)

Changes
- Sample settings sub menu changed to "Needle Action". Positive and Negative renamed to "Rise" and "Fall". The scale has been changed from -8 to +8 with zero being the equivalent of 0.045. Each tick represents a 0.005 change so it spans 0.005 to 0.085 in the AIMP scale. The numbers might seem a bit weird, I started with .04 as zero but then realised it would make -8 actually zero which stops the meter entirely so I shifted it all by 0.005. It was either that or change the scale to -7 to +7 and for whatever reason, I'd rather have even numbers on it.... yeah it makes no sense.
- New slider option "Curve Adjustment" added to the Needle Action sub menu. This option flattens out the logarithmic curve of the peak values which widens the needles range of motion. In terms of the formula, the slider value is doubled and added to the base 20 figure. So setting the slider to 5 results in the formula being 30 * log instead of 20. I initially set a higher max but after testing, a max of 10 seems more than enough. A setting of 5 seems to give a decent range of motion for skins starting at a lower range like -60db.
- Linear option removed. (replaced by the Curve Adjustment which is much better). Leave the Curve Adjustment at zero if you want the meter to run like it previously did with "Linear" checked.
- Re-arranged the settings order so all the sub menus are at the top.
- Changed the logic for checking valid peak values.
- Fixed a bug where playing a mono track after a stereo track may cause the meter to not go below the peak of the previous stereo track.

I expect that bug was the cause of the intermittent needle lockups.

I looked into changing the slider bar appearance to add a larger notch for the zero location but changing the slider is looking like a bit of rabbit hole I don't have the motivation to go down this week.

edit: On the off chance the meter just displays a blank panel after upgrading. Close musicbee and edit the mbVUMeter.Settings.XML file which should be located in AppData\Roaming\MusicBee\Plugins\VUMeter or just the Plugins\VUMeter folder.

Either delete the MobilityPositive and MobilityNegative lines entirely or set them both to 0.04, save it and start Musicbee.
Title: Re: VUMeter Plugin
Post by: hiccup on November 02, 2024, 04:52:04 PM
New version - VUMeter2.1.zip (https://www.mediafire.com/file/6xfax8o2th4xxav/VUMeter2.1.zip/file)
Wow again!

You have been making giant steps in getting pretty much all boxes checked in now being close to perfection.
In my opinion it now surpasses both the old and the new foobar2000 plugins.
Both in end-result, functionality, and in user-friendliness.

Hats off to you!

I'll do some more focused testing probably tomorrow, but it looks like the needle-hangs indeed have been solved.
I indeed had some mono test tracks, but I'm pretty sure it happened frequently on stereo material too.
(sometimes switching between tracks and test-tones like a junky on speed)

One thing I am not sure of is if the CurveBooster™ function is working as intended.
A very brief test (on only a single track and only one VU meter skin) gives me the impression that it may be doing the opposite of what I was expecting it to do.
But that's just a premature impression, will try it out better soon. (probably tomorrow)
Have you been testing this on a specific skin that behaved dull without any boost?
If so, perhaps you could share it so that we are on the same page here?

Cheers, and thanks^20  ;-)
Title: Re: VUMeter Plugin
Post by: phred on November 02, 2024, 04:57:44 PM
New version - VUMeter2.1.zip (https://www.mediafire.com/file/6xfax8o2th4xxav/VUMeter2.1.zip/file)

edit: On the off chance the meter just displays a blank panel after upgrading. Close musicbee and edit the mbVUMeter.Settings.XML file which should be located in AppData\Roaming\MusicBee\Plugins\VUMeter or just the Plugins\VUMeter folder.

Either delete the MobilityPositive and MobilityNegative lines entirely or set them both to 0.04, save it and start Musicbee.
I've been away for a spell and I see there's been lots of activity here. I just updated to 2.1 from 1.8.2 and upon launching I get an "Error loading skin" popup near the VUMeter element and the skins dropdown is showing "empty" for each one.
I opened VUMeterSettings.xml and do not see either of the "Mobility" lines you should be deleted. My skins are where they've always been (\MusicBee\Plugins\VUMeter\VUSkins) but they do not show in the plugin's dropdown.

(https://i.imgur.com/1j1qkPo.jpeg)

(https://i.imgur.com/rcAsogm.jpeg)

Here's the settings file in case it's helpful
Code
<?xml version="1.0" encoding="utf-8"?>
<SavedSettingsType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <keepRatio>true</keepRatio>
  <framerateMax>60</framerateMax>
  <lastSkin>SPL Mk2 Phred on the Lookout</lastSkin>
  <linear>false</linear>
  <dbOffset>2</dbOffset>
  <hideHeader>true</hideHeader>
  <singleMeter>false</singleMeter>
  <sampleInterval>15</sampleInterval>
  <buffer>1</buffer>
  <suppressMsg>false</suppressMsg>
  <peakLED>true</peakLED>
  <removeGain>false</removeGain>
  <customColours />
  <bgColour>0</bgColour>
</SavedSettingsType>
Title: Re: VUMeter Plugin
Post by: hiccup on November 02, 2024, 05:06:32 PM
I just updated to 2.1 from 1.8.2 and upon launching I get an "Error loading skin" popup near the VUMeter element and the skins dropdown is showing "empty" for each one.
Welcome back from the civilized world phred!

Not sure if this helps, but what I usually do when installing a new version of the plugin is first use the 'uninstall plugin' feature' in MusicBee to remove the previous version.
Then I close MusicBee, navigate to the plugins folder and manually delete any files or dll's that were put there previously by the plugin.
Then start MusicBee again, and install the new version by using 'add plugin', and direct it to the downloaded .zip file.
And after that I always restart MB. Shouldn't be necessary perhaps, but just to be safe.

But I also seem to remember you previously also had issues with the plugin that I could not think of an explanation for.
So maybe there are other things going on?

What version of MusicBee are you using? Include the letter at the end!
;-)
Title: Re: VUMeter Plugin
Post by: phred on November 02, 2024, 05:17:47 PM
Welcome back from the civilized world phred!
Hmmm ... thanks, I think. We'll see how civilized it is come this Tuesday here in the US.

Quote
Not sure if this helps, but what I usually do when installing a new version of the plugin is first use the 'uninstall plugin' feature' in MusicBee to remove the previous version.
Before I followed your suggestion, I did what I should've done first - reboot the PC. And that took care of the issue.

Quote
What version of MusicBee are you using? Include the letter at the end!
;-)
I just love it when my own words come back to haunt me.
Title: Re: VUMeter Plugin
Post by: hiccup on November 02, 2024, 05:30:27 PM
Before I followed your suggestion, I did what I should've done first - reboot the PC. And that took care of the issue.
Ok, great I guess.
But that still makes me think there is something else going on on your system.
Simply restarting MusicBee after removing the old plugin and installing the new version should suffice in my opinion.
Looks like perhaps some other tool or program is keeping something hostage until you restart Windows completely.
Title: Re: VUMeter Plugin
Post by: phred on November 02, 2024, 05:41:03 PM
Looks like perhaps some other tool or program is keeping something hostage until you restart Windows completely.
Possible, but I think unlikely as my PC reboots automatically once every 24 hours. So any hostage taking is (or should be) removed at two in the morning.

I'll add a couple of new VU skins and see if they show up as expected.
Title: Re: VUMeter Plugin
Post by: hiccup on November 02, 2024, 05:44:15 PM
Looks like perhaps some other tool or program is keeping something hostage until you restart Windows completely.
Possible, but I think unlikely as my PC reboots automatically once every 24 hours. So any hostage taking is (or should be) removed at two in the morning.
Ok, but you are updating the plugin while the computer is on, not when it's off?
So when it's on, the alleged culprit software will be running?
Perhaps it's some AV software?
Title: Re: VUMeter Plugin
Post by: phred on November 02, 2024, 06:02:51 PM
Ok, but you are updating the plugin while the computer is on, not when it's off?
I tried to update the plugin when the computer was off, but nothing happened.  :-)

Quote
So when it's on, the alleged culprit software will be running?
Perhaps it's some AV software?
Perhaps. There's nothing in the processes that looks unusual. I've got ESET running a full memory and disc scan now. It'll take a while. I'll report back.
Title: Re: VUMeter Plugin
Post by: hiccup on November 02, 2024, 06:32:51 PM
I tried to update the plugin when the computer was off, but nothing happened.  :-)
Try using smaller magnets. (assuming you're not using an SSD)

Quote
Perhaps. There's nothing in the processes that looks unusual. I've got ESET running a full memory and disc scan now. It'll take a while. I'll report back.
It doesn't necessarily have to be related to some virus suspicion.
Other software could also 'have an interest' in these files.
Similar to how iTunes or WMP can have an affect or grasp on audio files when not even purposely told to do so.
It could even be something like back-up software running but not doing much at that time.
Title: Re: VUMeter Plugin
Post by: phred on November 02, 2024, 07:48:02 PM
Try using smaller magnets. (assuming you're not using an SSD)
I did but the stuck to my head.

Quote
It doesn't necessarily have to be related to some virus suspicion.
Which tuned up clean. I add two new VU skins and there seems to be no problem, so I have no choice but to sit and wait to see if anything odd happens again. My PC runs 24/7 with an auto-reboot during the overnight. But it's been turned off during my absence so maybe it was just getting used to being power up again.  ¯\_(ツ)_/¯
Title: Re: VUMeter Plugin
Post by: BoringName on November 03, 2024, 01:28:33 AM
Have you been testing this on a specific skin that behaved dull without any boost?

Not going to lie, I hardly tested anything. There are so many different aspects now that testing everything just takes forever and I always seem to miss things anyway so I dialed it back. It's the lazy approach but in terms of my time it's easier to wait for someone to say somethings wrong and I just release a fix than spending hours running through the same old boring tests.

What I did for the curve adjustment is just look at a few meters while playing a song and noted down the min value the needle regularly dropped to. Then I played the same song again after altering the curve adjustment and checked the min value after the change. From the limited testing I did, setting a higher curve adjustment lowered the minimum value. ie) the needle had a wider range of motion. The curve still ends up at zero for a peak value of 1.0 so the needle behaviour shouldn't change too much at the top end but in lower parts of the track it will swing over a bit more. I expect you might need to add a point or two to the rise/fall settings the higher you set the curve adjustment so the needle can swing a bit more easily if that makes sense....

Here's the settings file in case it's helpful

I need to clean up some of those settings, they are not all in use.

I know you have solved your problem so this isn't really relevant to you but just for others benefit, when VUmeter starts up, it looks for the VUSkins folder in AppData\Roaming\Musicbee\Plugins\VUMeter and then the app startup folder\Plugins\VUMeter. Whichever it finds first it will go with. I haven't set it up to save this path so it does this check everytime it starts up. So if you're running the installed version and a portable version and you have skins in both locations, it will go with the appdata folder.

Also something I should probably change is when you uninstall the plugin it will delete the VUSkins folder and all the skins inside it. At least the appdata one anyway, I'm not sure if it deletes it out of the plugin folder when running the portable version. I got caught out by that and had to download a whole bunch of skins again >.<
Title: Re: VUMeter Plugin
Post by: hiccup on November 03, 2024, 06:34:44 AM
I am wondering about the 'centre x axis' and 'centre y axis' options.
Wouldn't it be enough if the meter is always centered in the middle of the panel?
(using either the largest horizontal or vertical space available, as it now does)
Why or when would one want to use these two options?

---

Could you please briefly remind me what 'Suppress INI checks' does?
I think you have explained that earlier, but I can't find it at the moment.

---

There is pretty much only one aspect left that I am still unsatisfied with, and that is the background colour of the panel not (always) matching the location where the meter is placed.
I posted a Wishlist suggestion that I think could solve that here (https://getmusicbee.com/forum/index.php?topic=42063.msg229160#msg229160), but neither Steven nor any plugin developer has responded to it, so perhaps that's not a good or valid suggestion.

Two other ideas that I believe could solve it are:
- have an actual colour picker in the plugin, so that you can simply click on a part of MusicBee's panel to set the background colour for the meter
- have the plugin check for the border colour of a skin and use that for background. (I believe the (original) foobar2000 plugin does that)

But here is another idea that I think could solve it that would also have another large benefit:

How about allowing for having the skin file accompanied by an .ini file that contains the preferred settings for that skin?
It would look something like this:

(https://i.imgur.com/CDNSW4h.png)


[What I did for the curve adjustment is…
Ok, thanks for explaining.
Since I (still) don't have some 'problem' skins to test this on, I will assume that it is doing what is supposed to do and will now shut-up about it ;-)
Title: Re: VUMeter Plugin
Post by: sveakul on November 03, 2024, 07:39:37 AM
Could you please briefly remind me what 'Suppress INI checks' does?
I think you have explained that earlier, but I can't find it at the moment
The change list from version 1.4 includes, "New option to suppress duplicate value messages with LVU skins"--if that's it, the menu wording needs to be made more clear as to what that actually means.
Title: Re: VUMeter Plugin
Post by: BoringName on November 03, 2024, 08:11:54 AM
I am wondering about the 'centre x axis' and 'centre y axis' options.
Wouldn't it be enough if the meter is always centered in the middle of the panel?

Initially it was always centered on the X axis but sat at the bottom of the panel for the Y axis, when I added the option to center it on the Y axis I added the X axis option to keep them consistent. Personally I can't imagine too many people will uncheck the X axis but I can imagine some users may want the meter to sit at the bottom of the panel for certain layouts. I might be wrong but I don't want to remove that setting yet.

Could you please briefly remind me what 'Suppress INI checks' does?
As already mentioned, it's just a check for duplicate values in the ini file. I expect most meters will work just fine even with duplicate values but notifying users of possible issues seemed like a good idea at the time. I've only come across 2 so far with duplicate values but I haven't tested a great deal of LVU meters as there isn't much that can go wrong with them. I could probably get rid of that setting.

I posted a Wishlist suggestion that I think could solve that here (https://getmusicbee.com/forum/index.php?topic=42063.msg229160#msg229160), but neither Steven nor any plugin developer has responded to it, so perhaps that's not a good or valid suggestion.
Not much I can do there really

Two other ideas that I believe could solve it are:
- have an actual colour picker in the plugin, so that you can simply click on a part of MusicBee's panel to set the background colour for the meter
- have the plugin check for the border colour of a skin and use that for background. (I believe the (original) foobar2000 plugin does that)
1. It is possible to get the pixel colour under the mouse but I don't know if I can do that when the mouse is not over the panel VUMeter is in. I'll test it out.
2. I think that might cause some inconsistent results.

How about allowing for having the skin file accompanied by an .ini file that contains the preferred settings for that skin?
It would look something like this:

Well AIMP and LVU already have ini files. Checking for an associated ini file with foobar .bin files wouldn't be a problem. But I'm a bit hesitant to automatically adjust settings unless they pertain to the layout of the meter. Eg) single meter mode for LVU skins or meters that require vertical display. I don't want to be automatically changing the LED peak settings or anything in the Needle Action sub menu.
Title: Re: VUMeter Plugin
Post by: hiccup on November 03, 2024, 12:59:48 PM
Here are my "Yeah but, no but's…"

Initially it was always centered on the X axis but sat at the bottom of the panel for the Y axis, when I added the option to center it on the Y axis I added the X axis option to keep them consistent. Personally I can't imagine too many people will uncheck the X axis but I can imagine some users may want the meter to sit at the bottom of the panel for certain layouts. I might be wrong but I don't want to remove that setting yet.
When the panel is wider than the proportions of the skin, it will be centered vertically anyway.
If the panel is higher than the skin, the default is already that the skin is anchored to the bottom.
So for as far I can imagine it would be perfectly fine to remove these option settings.


Quote from: BoringName
Not much I can do there really
Now you can ;-) (https://getmusicbee.com/forum/index.php?topic=1972.msg229416#msg229416)


Quote from: BoringName
Well AIMP and LVU already have ini files. Checking for an associated ini file with foobar .bin files wouldn't be a problem. But I'm a bit hesitant to automatically adjust settings unless they pertain to the layout of the meter. Eg) single meter mode for LVU skins or meters that require vertical display. I don't want to be automatically changing the LED peak settings or anything in the Needle Action sub menu.
Fair enough, but:

AIMP .ini's don't contain parameters for 'horizontal vs. vertical', single meter vs. dual meter, background colour, curve adjustment, LED 'curved' vs. peak, etc.
So I don't think there would be any conflict there?
If it is about the .ini extension that might pose a problem because AIMP skins already contain such an .ini file in the .zip, then .txt or .xml could be used instead of .ini?

I really hope you will consider adding this.
It would be a significant improvement in the sense that then skins (that have such an additional ini file) will always display exactly as intended by the creator of the skin.
Without the user needing to delve into the settings menu to find and make adjustments for it to have the skin displaying and functioning as intended.
And a user could also very easily create or modify such a settings file himself, so he won't have to repeat changing any option setting every time he changes skins.

About your worry it possibly changing default settings for other skins:
When a skin doesn't have an accompanying .ini file, the plugin could resort to the setting that was last used before a skin with such an .ini file was selected?

I hope this takes away any possible concerns or reservations?
 
Title: Re: VUMeter Plugin
Post by: BoringName on November 03, 2024, 10:44:36 PM
If the panel is higher than the skin, the default is already that the skin is anchored to the bottom.
So for as far I can imagine it would be perfectly fine to remove these option settings.
But if I removed the options it wouldn't be anchored to the bottom anymore, it would be centered. You don't think some users might have a layout where they would prefer it anchored to the bottom?

Now you can ;-) (https://getmusicbee.com/forum/index.php?topic=1972.msg229416#msg229416)
I'll add those to the background colour sub menu.

AIMP .ini's don't contain parameters for 'horizontal vs. vertical', single meter vs. dual meter, background colour, curve adjustment, LED 'curved' vs. peak, etc.
So I don't think there would be any conflict there?
If it is about the .ini extension that might pose a problem because AIMP skins already contain such an .ini file in the .zip, then .txt or .xml could be used instead of .ini?
I meant to imply they already have an INI file that you could add the options to. I don't want to messing around with multiple ini files. So for AIMP/LVU skins I could look for a "Layout" category and grab any options listed under that category. For foobar skins it could just be an ini file with the same name.  eg) neutron.bin, neutron.ini

When a skin doesn't have an accompanying .ini file, the plugin could resort to the setting that was last used before a skin with such an .ini file was selected?

I expect I will remove the "Suppress INI messages" and "override AIMP settings" and create a new setting "Override INI Settings". When unchecked the VUmeter will use any settings found in the INI files. If the settings are missing or "Override INI settings" is checked it will use whatever options have been configured by the user.
Title: Re: VUMeter Plugin
Post by: sveakul on November 05, 2024, 08:06:43 PM
@Boring.Name:  two questions!  A while back you posted an image extractor for BIN files, "BinExtractor.exe."

1.  Could you possibly post a similar tool that would re-import images into the BIN file, overwriting the original image?  The case I'm thinking of is after extracting the images with BinExtractor and making some color changes to them, there is no way to re-import them directly into the BIN.  VUEditor only works with *.vu project files.

2.  Recently a fellow in the Foobar forum bemoaned the inability to extract images from a BIN, solved of course by your BinExtractor.  Would you have any objection if I posted that app there, with the proper credits of course?

Thanks!  The new plugin version 2.1 working fine here by the way, appreciate your efforts.
Title: Re: VUMeter Plugin
Post by: BoringName on November 05, 2024, 10:16:08 PM
@Boring.Name:  two questions!  A while back you posted an image extractor for BIN files, "BinExtractor.exe."

1. I don't think I'll be doing that. But I believe oops is going to release the details on how it all works so other people might get it done. Otherwise you just have to create a new skin in VUEditor or convert it to the AIMP format, unfortunately whichever way you go the needle image will probably need cleaning up.

2. No problem. Just make sure to warn them about how many files clicking export all can create.
Title: Re: VUMeter Plugin
Post by: sveakul on November 06, 2024, 05:25:32 AM
Thanks BoringName for allowing me to share BinExtractor, but after playing with it just now it occurred to me that I don't really know what I'm doing.  I guess I thought it would operate like VUEditor does with *.vu files, allowing component vs. frame extraction.  Hiccup had kindly posted a set of those for me that I used to color parts of his first BIN file, and it was easy to extract the primary component images minus "movement", make changes, then export it as a re-compressed new BIN.  I don't know how he made the *.vu files.  I think I'll just leave all of this to the experts for now!!
Title: Re: VUMeter Plugin
Post by: BoringName on November 06, 2024, 05:46:40 AM
The extractor just extracts the images to PNG files. The vu files are the project files for VU editor, Hiccup can share them with you because he created them. There isn't any VU files for existing BINs unless the original author skin shares them.
It might be possible to reverse engineer the VU files from a BIN but I'm not really interested in doing that. The VUEditor is not that complicated once you play around with a few of the sample VU files provided with it.

New Version - VUMeter2.2.zip (https://www.mediafire.com/file/no1q4x4phaspu57/VUMeter2.2.zip/file)

Fix for LVU skins - VUMeter2.2.1.zip (https://www.mediafire.com/file/uzmwgnunhnyry7k/VUMeter2.2.1.zip/file)

Changes
- Colours for SkinElementPanel and SkinTrackDetailsPanel added to the background colour sub menu.
- Option "Supress INI Messages" removed and no warnings will be given for duplicate settings in the INI file as it doesn't seem to prevent the skin from working.
- Option "Override AIMP settings" removed.
- New option "Use Skin Defaults". When checked this will apply any settings in the ini file listed under the [DEFAULT] section. An example of the available settings -
[DEFAULT]
isVertical=true
bgColour=-16711936 //int equivalent of ARGB. Use a website like This one. (https://argb-int-calculator.netlify.app/)
rise=0.03 //same as mobility settings.
fall=0.03
curveAdj=5
singleMeter=false
peakLED=false

This DEFAULT section can be added to the INI files for LVU and AIMP skins. For foobar skins create an INI file with the same name as the skin. eg) Neutron.bin, Neutron.ini. For skins with multiple meters like Grundig 1.bin/Grundig 2.bin, VUMeter will look for an INI file minus the number on the end so make sure to include a space if it exists. eg) Grundig .ini. Or just use the "Save Defaults" button mentioned below.

When Use Skin Defaults is checked, changing any of the settings included in the DEFAULTS section from the right click menu will have no effect on what is displayed but they will change the base settings. Whatever default settings are in the INI file will not be reflected in the right click menu. It will always show the base settings. When Use Skin Defaults is unchecked VUMeter will revert to the base settings.

If the DEFAULT section is missing any settings, they will default to the base settings. If a file contains both MobilityPositve/MobilityNegative and rise/fall values the rise/fall values will be used. For AIMP skins, "Use Skin Defaults" unchecked will use the base rise/fall settings ie) it will have the same effect as having the old "Override AIMP Settings" checked even if there is no [DEFAULT] section in the INI file.

Adding the DEFAULT section to AIMP/LVU INI files shouldn't break those skins for the AIMP player as it should just ignore that section.

New Option "Save Defaults". When clicked this will save the current base settings into the skins INI file or overwrite existing values. For foobar skins it will create an INI file first if one does not exist.

In other news, I'm never going on holidays to the US.

edit: With the background colours. The custom colour section saved from the colour picker is a different format to what is used for the bgColour. It's some legacy crap with microsoft. So don't add a custom colour to the colour picker and then assume the code saved in the XML file will give the same result if copied to the bgColour value. Just use a website like I said. It uses AARRBBGG whereas the colour picker uses 00BBGGRR or something like that. Actually if you add the custom colour from within VUMeter, set it as the background and then click "Save Defaults" it will convert it to the correct format for you, no need for a third party website.

edit: Check "Ignore Replay Gain" as I renamed the setting for this in the code so it will probably uncheck itself after installing the update.
Title: Re: VUMeter Plugin
Post by: BoringName on November 06, 2024, 08:33:37 AM
And in typical fashion, I made a change just before releasing the last version that broke saving the ini file for LVU skins.

Here is a fixed version - VUMeter2.2.1.zip (https://www.mediafire.com/file/uzmwgnunhnyry7k/VUMeter2.2.1.zip/file)
Title: Re: VUMeter Plugin
Post by: hiccup on November 06, 2024, 09:01:10 AM
- New option "Use Skin Defaults". When checked this will apply any settings in the ini file listed under the [DEFAULT] section.
Thanks for fulfilling this request.
I think it's a massive improvement and benefit for end-users not needing to make any setting adjustments anymore for skins that come with such an ini file.

About using integers for the bg:
Wouldn't it be more obvious and simpler to use the more standard and common hex code for this?
Also, is there a reason for the alpha value also being used? Isn't RGB enough?
This seems to work well also?:
https://www.checkyourmath.com/convert/color/rgb_decimal.php
Title: Re: VUMeter Plugin
Post by: BoringName on November 06, 2024, 10:34:00 AM
Wouldn't it be more obvious and simpler to use the more standard and common hex code for this?
Also, is there a reason for the alpha value also being used? Isn't RGB enough?

Are they? Only time I've dealt with hex codes for colours is website design. Anywhere else is integers or straight RGB arrays like {120, 140, 255}

Sorry I'm not going to change it to hex codes. For what it's worth, the MusicBee API returns the same integer codes when I query the element colours.

As for the alpha channel, technically it doesn't need to be included for the INI value, it's just a result of me using the color.FromArgb (https://learn.microsoft.com/en-us/dotnet/api/system.drawing.color.fromargb?view=net-8.0)/Color.ToArgb (https://learn.microsoft.com/en-us/dotnet/api/system.drawing.color.toargb?view=net-8.0) commands consistently through the code.

I'm not going to change it. Considering you can just set the colour within VUMeter and click "Save Defaults" to get the code I don't think it's that much of a hassle. The MusicBee skin XML files use RGB values so it's pretty easy to just punch those into the colour picker.
Title: Re: VUMeter Plugin
Post by: hiccup on November 06, 2024, 05:26:18 PM
Are they? Only time I've dealt with hex codes for colours is website design. Anywhere else is integers or straight RGB arrays like {120, 140, 255}
It certainly is for people that use tools such as Photoshop or Paint.NET.
And for those that create things like skins or VU meter skins for MusicBee.
I don't think image editors like these even support integer values for colours?

And from a human standpoint RGB is obviously the best choice to use or edit, since simply looking at its numbers will give you a good clue about both the colouring and the brightness of what it will produce.
But I do understand what you have decided on from a coder's perspective.

And end-users won't care about this stuff at all, as long as the 'Save Defaults' function simply works.
And for VU meter skin creators, using some website (or in my case Excel) to convert an RGB value to this integer format is not terribly complicated.
But it most certainly isn't intuitive with these weird numbers and (useless) negative values. (for alpha blends)
Title: Re: VUMeter Plugin
Post by: hiccup on November 06, 2024, 05:57:31 PM
I don't know how he made the *.vu files.  I think I'll just leave all of this to the experts for now!!
Being my usual honest and blunt 'me':
Considering your interest and dedication to all this stuff, why not just learn how to use the tools to create VU meter skins yourself?
I'm sure you are capable of that, and it will be both easier and more rewarding compared to trying to bend backwards in trying to extract and modify existing material?
Title: Re: VUMeter Plugin
Post by: sveakul on November 06, 2024, 08:32:58 PM
I don't know how he made the *.vu files.  I think I'll just leave all of this to the experts for now!!
Being my usual honest and blunt 'me':
Considering your interest and dedication to all this stuff, why not just learn how to use the tools to create VU meter skins yourself?
I'm sure you are capable of that, and it will be both easier and more rewarding compared to trying to bend backwards in trying to extract and modify existing material?
The only tool I have/am aware of is VUEditor.exe.  While I have the translated-to-English instructions from the developer,  frankly I find them a bit too "heavy-going" for me.  You start losing your edge after age 70, as well as allowable time.  I'm going to do a re-read of BoringName's new mods of his 2.2.1 plugin and I'll be lucky if I come out of that in one piece, haha..  The rest I'll have to leave to the developers/coders/designers like you and him.  I belong in the "enthusiastic user" department.
Title: Re: VUMeter Plugin
Post by: hiccup on November 06, 2024, 09:28:01 PM
The only tool I have/am aware of is VUEditor.exe.  While I have the translated-to-English instructions from the developer,  frankly I find them a bit too "heavy-going" for me.
You have also frequently referred to a tool to create LVU VU meter skins. (which is what made me think you intended to use for creating and sharing your own VU meter creations)
 Ah well, thanks for providing a better insight in your position and objectives. That should be helpful regarding any possible further discussions on his matter.

In case it is interesting to anyone trying to get a better understanding of things involved regarding VU meters and using VueEditor:
Here is a link to the website of a Japanese guy named Takechan (タケチャンの) that describes his adventures all the way from buying an actual VU meter to creating a digital replica of it using VUEditor.
Great stuff, and the time and effort he put into this should be appreciated.
https://takeabose.livedoor.blog/archives/6442931.html
Title: Re: VUMeter Plugin
Post by: BoringName on November 07, 2024, 01:45:00 AM
Here is a video that shows how to setup a meter with just a needle. It's very straight forward - VU Editor (https://www.youtube.com/watch?v=71RQyWC7Id4)

Where the red lines intersect is the pivot point for the  needle.

To setup an LED you do a similar thing.
From the fourth menu option, select  Load Lamps and select a lamp image.
From the fifth menu option, select Lights
From the 6th menu option, select Remove All if any ticks are already present.
When you move the slider left and right you will see the Lamp image transparency changes.

Lets say you want the lamp to be 50% transparent at +1 decibels. Move the slider until the Lamp Light value at the bottom reads 0.50. Then select the 6th menu option and click on the +1 value. The same way the user does in the video when setting the needle angles. If you want it at 100% at +2, drag the slider all the way to the right so the Lamp Light value reads 1.0, select the 6th menu option and click on +2

edit: for multiple lamps you need to add the lamp images one after the other in the order you want them to appear. The Lamp Light maximum value will increase by 1.0 for every lamp added. So for 2 lamps the slider will go from 0.0 to 2.0. At 1.0 the first lamp will be opaque and the second transparent, at 1.5 the first lamp will be opaque and the second lamp will be at 50% transparency.
Title: Re: VUMeter Plugin
Post by: hiccup on November 07, 2024, 08:27:52 AM
Changes
- New option "Use Skin Defaults". When checked this will apply any settings in the ini file listed under the [DEFAULT] section. An example of the available settings -
[DEFAULT]
isVertical=true
bgColour=-16711936
rise=0.03
fall=0.03
curveAdj=5
singleMeter=false
peakLED=false
There is a typo when the plugin creates an .ini:
curevAdj instead of curveAdj
Title: Re: VUMeter Plugin
Post by: BoringName on November 07, 2024, 10:53:04 AM
There is a typo when the plugin creates an .ini:
curevAdj instead of curveAdj

Fixed - VUMeter2.2.2.zip (https://www.mediafire.com/file/el1elfw5q0s4bqt/VUMeter2.2.2.zip/file)
Title: Re: VUMeter Plugin
Post by: sveakul on November 10, 2024, 08:25:42 PM
@BoringName :  is it possible to be able to add a modificaton to the mbVUMeter.Settings.xml file to specify a custom folder location for skins?  As this can be done in the oops foo_vis_vumeter's advanced prefs, it would be great to use a shared skins folder for both, seeing as they both accomodate the same meter types.
Title: Re: VUMeter Plugin
Post by: phred on November 11, 2024, 02:43:17 AM
@Boring Name...

I would find it helpful if you'd add one more menu item: About. Which would show the currently installed version number. Thanks.

In addition, I just downloaded all of hiccup's revised/updated skins and now -no- .rar skins are showing in the dropdown. And MB is throwing an error when I enable or disable "Use Skin Defaults." All the previous versions (.zip) show in the dropdown as expected. Please see this detailed report on hiccup's thread: https://getmusicbee.com/forum/index.php?topic=41696.msg229673#msg229673
Title: Re: VUMeter Plugin
Post by: hiccup on November 11, 2024, 07:31:06 AM
In addition, I just downloaded all of hiccup's revised/updated skins and now -no- .rar skins are showing in the dropdown.
See here: https://getmusicbee.com/forum/index.php?topic=41696.msg229676#msg229676

 .rar skins don't exist, only .zip (AIMP format) and .bin (foobar2000) skins.
So you need to extract the downloaded .rar files to get the actual .bin skin file.


@Boring Name...
I would find it helpful if you'd add one more menu item: About. Which would show the currently installed version number. Thanks.
Speaking for myself, I would be against adding this to the settings menu.
The release version of a plugin can already be checked using MusicBee's Plugins Configuration panel:

(https://i.imgur.com/iWlVuOg.png)
Title: Re: VUMeter Plugin
Post by: phred on November 11, 2024, 01:07:31 PM
See here: https://getmusicbee.com/forum/index.php?topic=41696.msg229676#msg229676
 .rar skins don't exist, only .zip (AIMP format) and .bin (foobar2000) skins.
So you need to extract the downloaded .rar files to get the actual .bin skin file.
Great. Thank you. I replied in detail on the referenced thread. Apparently my three week absence resulted in my not carefully reading the changes that had been made while I was away.

@Boring Name...
I would find it helpful if you'd add one more menu item: About. Which would show the currently installed version number. Thanks.
Speaking for myself, I would be against adding this to the settings menu.
The release version of a plugin can already be checked using MusicBee's Plugins Configuration panel:
[/quote]
Yes, so it does. I'm in the habit of right-clicking > help > about and had forgotten about this. Thanks for jarring my memory.
Title: Re: VUMeter Plugin
Post by: BoringName on November 11, 2024, 11:15:35 PM
And MB is throwing an error when I enable or disable "Use Skin Defaults."

I can reproduce this when no skin is loaded and "Use Skin Defaults" is clicked.

Is that the only time this occurs for you, when no skin is loaded?
Title: Re: VUMeter Plugin
Post by: phred on November 12, 2024, 01:27:56 AM
Is that the only time this occurs for you, when no skin is loaded?
Well now that I have the skins properly loading (thanks to hiccup) I have not seen the error appear. Not when enabling "Use Skin Defaults" nor when disabling it.
Title: Re: VUMeter Plugin
Post by: BoringName on November 12, 2024, 05:41:54 AM
New Version - VUMeter2.3.zip (https://www.mediafire.com/file/i2bhers9w1epapm/VUMeter2.3.zip/file)

Changes
- Fixed a bug that caused an error when selecting "Use Skin Defaults" when no skin was loaded.
- Fixed an issue where saved skin settings would not be effective until restarting Musicbee.
- Added a skinFolder field to the XML file. It will default to <skinFolder /> change this to something like <skinFolder>C:\Example\VUSkins</skinFolder>. Musicbee needs to be closed when editing this file. If the field is blank or references a non existent directory, it will default to the usual folder locations.

I don't really want to add a directory picker to the UI. Outside of skin creators, how many people actually use multiple players regularly?
Title: Re: VUMeter Plugin
Post by: sveakul on November 12, 2024, 06:47:45 AM
A big THANKS for adding the ability to edit a skin folder location with the .xml file.  That's all I hoped for, NOT a GUI "directory picker"--actually I prefer doing a manual text edit for things like that.  I can now use one shared folder for  3 players' VU skins.
Title: Re: VUMeter Plugin
Post by: sveakul on November 12, 2024, 09:23:34 AM
After some hours in use, I have to congratulate both BoringName and hiccup on version 2.2.2 of the plugin;  never saw such smooth and accurate meter movement both across the range of traditional AIMP skins using the stock settings and hiccup's new BIN+ini design with its customized settings.  Just superb;  your concepts and design brought this work to fruition in this version.
Title: Re: VUMeter Plugin
Post by: phred on November 12, 2024, 01:00:38 PM
Just superb;  your concepts and design brought this work to fruition in this version.
What he said!!!

The earliest mentions of VU Meters in the forum is from 2014. Ten years later - this past September - BoringName issued his first release. Hiccup and his technical skills jumped into action and today we have truly great plugin.

Thanks to BoringName and Hiccup for the time and effort. And to sveakul for additional testing and suggestions.
Title: Re: VUMeter Plugin
Post by: sveakul on November 13, 2024, 10:41:24 AM
The KD85 BIN meter (https://drive.google.com/file/d/1o_M8bRffBNB_3zCwFQS7ZMdnc_yqwcTY/view) is designed to look like the below according to the PNG in its download:

(https://i.imgur.com/kuMpnQZ.png)

While this meter works fine with VUMeter 2.3, the best layout I can get is:

(https://i.imgur.com/Uv9fvSb.png)

Is there any way to accomodate the original orientation?  Foobar does so using "Left + Right (H)"
Title: Re: VUMeter Plugin
Post by: BoringName on November 13, 2024, 12:09:10 PM
Is there any way to accomodate the original orientation?  Foobar does so using "Left + Right (H)"

New Version - VUMeter2.3.1.zip (https://www.mediafire.com/file/uk1j5hd4fiwi435/VUMeter2.3.1.zip/file)

Changes
- Fix for uncompressed Foobar skins stored in separate files to display the right meter.

You need to make sure with skins like this that you copy both bin files to the skin folder, in this example KD851 and KD852. KD851 is the left meter and KD852 is the right meter. Currently VUmeter checks if the filename ends in a "1" and if it does it looks for the same file ending with a "2" and loads them both. There was an issue where this check didn't occur when the skin was not compressed.

I think that may be the first foobar skin I've come across in the wild that was not compressed. When I was doing initial testing I had to export some samples from VUEditor.exe so I had some uncompressed meters to play with.
Title: Re: VUMeter Plugin
Post by: sveakul on November 14, 2024, 01:26:31 AM
Thanks BoringName, didn't realize I had found a "red herring,"  just liked the meter's dual LED/needle display!  Thanks for the quick fix.
Title: Re: VUMeter Plugin
Post by: SoundMix on November 14, 2024, 03:12:20 AM
Just a huge thank you for this plugin! :-*
Title: Re: VUMeter Plugin
Post by: karbock on November 14, 2024, 07:30:53 AM
Kudos to all the team involved in the development of the plugin and its skins!
That's an impressive work!
Title: Re: VUMeter Plugin
Post by: BoringName on November 17, 2024, 09:43:37 PM
This one's a beauty, hiccup.
In layman's terms, what is the difference between this and your others that results in the long loading time? During which MB is non-responsive.
Thanks phred.
For as far as I understand the cause of the longer loading time, it is because this VU meter skin is using some rather complicated layers that contain a lot of transparency.
(I could be wrong about that being the cause, but I think I'm not)

Seems more appropriate to discuss the problem in this thread. The reason this skin takes a long time to load is it's huge. Most Bin files uncompressed are about 6mb-8mb. This one is 165mb. I thought it may have been due to the needle being quite large as it takes up a large part of the screen but the blink skin doesn't have the issue and that nearly replaces the entire window every frame.

I assume it must be due to the way you have implemented the needle changing colour as it moves? Did you need to use multiple needle images for that?

In any case, I should be able to fix the problem of the Musicbee UI locking up while it's loading a skin.
Title: Re: VUMeter Plugin
Post by: hiccup on November 17, 2024, 09:55:18 PM
I assume it must be due to the way you have implemented the needle changing colour as it moves? Did you need to use multiple needle images for that?
Nope, it's not that.
In a way, there is no spoon needle.
Some mysteries probably should never be revealed, but you most certainly deserve a look behind the magic ;-)
I'll PM you some source images that I use for this VU meter skin. I'm sure they will clarify things.
Title: Re: VUMeter Plugin
Post by: BoringName on November 18, 2024, 01:09:33 AM
New version - VUMeter2.4.zip (https://www.mediafire.com/file/bjiehog1z4oofxu/VUMeter2.4.zip/file)

Changes
- Removed the duplicate error message when an error occurs loading a skin.
- Loading foobar skins is now done in a separate thread so the Musicbee UI doesn't freeze if loading takes a while.
- Added text to the window to indicate when no skins are loaded or a foobar skin is in the process of loading.
- Foobar skins now use a separate shader which allowed me to optimise some of the foobar draw code. The alpha channel is set to zero for the bin file images and I was having to do stupid workarounds with the main shader I was using.

I should probably load all the different skin types in the separate thread but as they pretty much load instantly I'll save that for a later version.
Title: Re: VUMeter Plugin
Post by: phred on November 18, 2024, 01:41:45 AM
- Loading foobar skins is now done in a separate thread so the Musicbee UI doesn't freeze if loading takes a while.
- Added text to the window to indicate when no skins are loaded or a foobar skin is in the process of loading.
Well, it's nice that there's now a message stating that the skin is loading. But now the skin doesn't load at all. Testing with hiccup's DejaVU Compact LED - Fischer's Lovebird on 2.3, it loads in about seven seconds. With 2.4 I gave up after waiting thirty seconds. At that point trying to change to another skin doesn't work. They won't load. MB is still responsive, but the meter skins don't load.
Title: Re: VUMeter Plugin
Post by: BoringName on November 18, 2024, 06:15:55 AM
Well, it's nice that there's now a message stating that the skin is loading. But now the skin doesn't load at all. Testing with hiccup's DejaVU Compact LED - Fischer's Lovebird on 2.3, it loads in about seven seconds. With 2.4 I gave up after waiting thirty seconds. At that point trying to change to another skin doesn't work. They won't load. MB is still responsive, but the meter skins don't load.

It has the same load times for me. But I did notice strange behaviour if you try and load another foobar skin while one is in the middle of loading. I'll sort that out.

Could it be your computer being strange again? Maybe it needs a restart.

Was Musicbee playing anything at the time? just to rule out any possible conflicts with other Musicbee functions, what happens if you select the lovebird skin then close musicbee and open it again.
Title: Re: VUMeter Plugin
Post by: sveakul on November 18, 2024, 09:40:55 AM
Thanks for 2.4 and the Foobar meter draw optimizations!

The first time I tried to load DejaVu Lovebird LED (abbreviating!) after going to 2.4, which was the first load I attempted, it would not load.  After exiting MusicBee during the loading attempt and opening it, the meter came up normally on its own after its usual about 6 sec. load time.  After that, subsequent loading of the Lovebird skins after each other or changing to AIMP skins went normally with no freezing.
Title: Re: VUMeter Plugin
Post by: phred on November 18, 2024, 01:44:40 PM
Could it be your computer being strange again? Maybe it needs a restart.

Was Musicbee playing anything at the time? just to rule out any possible conflicts with other Musicbee functions, what happens if you select the lovebird skin then close musicbee and open it again.
Not only have I done a restart, but over the past four days I reinstalled Windows.
MB was not playing anything at the time.
MB 3.6.9083 P

Based on sveakul's comments, while waiting for Lovebird LED to load, I exited MB and restarted it. After thirty seconds it still hadn't loaded so I exited and reinstalled 2.3 and all is well. Yes, it takes longer for the two Lovebirds to load, but they load. Other meter skins load almost instantly.
Title: Re: VUMeter Plugin
Post by: sveakul on November 18, 2024, 05:08:09 PM
phred : what are your machine specs as far as RAM, processor, and OS?

After starting the PC for the first time today, I went first to MB and started it, with the AIMP skin I happened to be using when it was shutdown, and selected the Lovebird LED skin.  It loaded in about 4 seconds, slightly less than yesterday.  Then I switched to an AIMP skin, and back to Lovebird LED.  Same, loaded in 4-5 seconds.  So I have to say no problem here now, only yesterday after I had just updated the plugin and lovebird stalled out as I described in my last post.

Edit: other plugins in use at startup are LyricsReloaded/Beenius/Museexmatch/LRCLIBee, Classic Spectrum Analyzer,  CoolEdit Nostalgia spectrum analyzer.
Title: Re: VUMeter Plugin
Post by: hiccup on November 18, 2024, 05:16:09 PM
- Foobar skins now use a separate shader which allowed me to optimise some of the foobar draw code. The alpha channel is set to zero for the bin file images and I was having to do stupid workarounds with the main shader I was using.
Is this something that may have an affect on skin creation? Meaning:
- could it influence how (e.g. needle) shadows turn out?
- does this mean that adding a thin transparent border around LEDs is no longer necessary?
Title: Re: VUMeter Plugin
Post by: hiccup on November 18, 2024, 06:00:26 PM
I had to gather some courage to bring up 'needle action' again, considering how good it is by now, and me being fully aware the complexities that had to be overcome to get to this.
So, please consider this to be mainly some observation. If you think you've done all that you can (or are willing to do), feel free to ignore this.

Below a comparison between MusicBee (top) and foobar2000 (bottom).
I most certainly prefer the liveliness of your implementation to the RMS approach of the foobar2000 plugin.
And yet, there is a nice calmness and 'authority' to foobar2000's needle action.

And while in comparison it may come across as 'slow', it is actually faster in responding to 'general' loudness increasements.
It's like an older boxer that seems a bit sluggish, but will still throw the first punch.

What I think is what is still making the MB needle a bit nervous, is that the needle is allowed to move many times back and forth in short amounts of time.
If it would be possible to 'dampen' or restrict the allowed frequency of movements within very short time spans, it might make things look less nervous and jumpy.
But I could imagine this can't be done without also affecting the more global rise and fall times of the needle. Which are good as they are and probably shouldn't be touched.

Anyways, I hope you see what I mean and my observations make some sense to you?

Here's the comparison:

(https://i.imgur.com/bzaKiri.gif)
Title: Re: VUMeter Plugin
Post by: phred on November 18, 2024, 08:31:45 PM
phred : what are your machine specs as far as RAM, processor, and OS?
@Sveakul... I'm running Win10 with 16gb RAM and a four core Intel i5-7500 CPU.


Launching MB and VUMeter 2.3, Lovebird LED takes 7 seconds to load. The CPU load is between 15% and 23% with no music playing. It goes up to about 38% with music playing.
With no music playing and VUMeter 2.4 and Lovebird LED being the skin in use when closing MB, CPU load starts at 38% and after a minute settles down to between 18% and 23%. And the skin still has not loaded - after one minute. Attempting to load another skin does not work. The panel window shows that it's loading a skin, but nothing happens. MB is otherwise responsive even to the point of showing the VUMeter context menu. I can select any skin and it won't load.

I've also noticed that with 2.4 -none- of the bin/ini skins load. The only skin that loads is a ZIP skin of SPL Mk2 Phred on the Outlook with Bee. Which is one that I took from hiccup and modified back in the early days of VUMeter.

As stated earlier today, with 2.3 all skins -except- the two Lovebirds load almost instanteously. The Lovebirds take seven seconds.
Title: Re: VUMeter Plugin
Post by: sveakul on November 18, 2024, 09:12:43 PM
Sorry you are still having problems with 2.4!  My OS is WIndows 11 with 32MB of RAM and a I7-13700 processor with 16 cores and 24 thread hyperthreading.  I have a feeling your processor might not be up to it.  BUT, you can load 'em all with 2.3.1, so I don't know, may have something to do with the new separate thread for the BIN skins but now I'm guessing.  Nothing wrong with sticking with 2.3.1 when that gives you fast access to all the skin formats.

Hiccup your comparison with Foobar vs. MusicBee on the Lovebird LED meter is a tough call, as you said.  The action with Foobar IS smoother, but I do favor a more "active" needle/LED movement and the MB one has that.  Neither one is really "less" than the other, just different approaches that by definition should have SOME visual difference when Foobar is ignoring your custom *.ini file.  If the MB one on top was "jerki-er" than it is now, I would choose Foobar, but it's not, it's at the "active approaching jerky but not REACHING jerky" level.  I would just stick with designing around the BoringName plugin as far as your own preferences and let Foobar do its own thing.
Title: Re: VUMeter Plugin
Post by: phred on November 18, 2024, 09:19:17 PM
Sorry you are still having problems with 2.4!  My OS is WIndows 11 with 32MB of RAM and a I7-13700 processor with 16 cores and 24 thread hyperthreading.  I have a feeling your processor might not be up to it.  BUT, you can load 'em all with 2.3.1, so I don't know, may have something to do with the new separate thread for the BIN skins but now I'm guessing.  Nothing wrong with sticking with 2.3.1 when that gives you fast access to all the skin formats.
Yup. 2.3.1 works as expected. I've been saying "2.3" in the past few replies, but it was actually 2.3.1. Which I'll keep until BoringName issues the next release and I'll try again.
Title: Re: VUMeter Plugin
Post by: BoringName on November 19, 2024, 03:14:23 AM
Is this something that may have an affect on skin creation? Meaning:
- could it influence how (e.g. needle) shadows turn out?
- does this mean that adding a thin transparent border around LEDs is no longer necessary?

Zero effect. Because the alpha channel is set to zero in the foobar skins, I had to do a workaround to set it to 1.0 (255) manually when a foobar skin was processed by the existing shader otherwise the window would be blank. I just created a new shader for foobar skins that assumes the alpha channel is always 1.0 (255). I need to keep the existing shader for the other skins because they use varying alpha values when drawing the different layers. Foobar skins start with the background image and then the locations of the needle and LED pixels are replaced. There is no "layering" or need for alpha values.

It just allowed me to neaten the code up a bit and reduce some of the process involved. From an end user standpoint you shouldn't notice any difference. There should be slightly less CPU usage but I highly doubt it would be noticeable at all.

I'll review the needle movement and see if there is any way to dampen it without effecting the overall movement. If I do make any changes there I'll just send you a test version and not release it publicly unless you agree it improves on the current version. For what it's worth, I don't like the foobar movement in that gif, it looks too smoothed out. But I'm not really an end user for this thing.

So at this point are we 3-1 on the foobar skins loading for people in 2.4? I was on an older version of Musicbee but updating to the latest still loads fine for me.

I'm on a Ryzen 5 7600. CPU usage fluctuates between 0.9%-2.2% for me. That's just what musicbee is using, not total usage.

The lovebird skin loads in quarter of the time in Foobar so there is probably some room for improvement in my loading code.

Not really sure why using a separate thread would be causing any problems but I'll see what I can find out. It's going to be pretty hard for me to test when I can't reproduce the problem....

Edit: I just extracted Lovebird and put .bin on the end so it's effectively a skin with no compression and it loaded almost instantly. So the loading issue is with the compression library I'm using. Not sure if I will be able to do much about that.
Title: Re: VUMeter Plugin
Post by: hiccup on November 19, 2024, 07:14:35 AM
Edit: I just extracted Lovebird and put .bin on the end so it's effectively a skin with no compression and it loaded almost instantly. So the loading issue is with the compression library I'm using. Not sure if I will be able to do much about that.
I've been using BZIP2 for compression.
Mainly because I think I read Oops saying it would be the preferred option.
I just tried using LZMA on a Lovebird skin, and on my system it then loads in under a second.
(where it is 4 seconds for the BZIP2 version)

So, what do you think? Use LZMA from now on?
Title: Re: VUMeter Plugin
Post by: BoringName on November 19, 2024, 07:17:47 AM
I've spent most of the afternoon trying out different Zip libraries and they all have the same problem of only extracting the first block from Bzip2 files. Because of this if a Bin file contains a left and right meter, the right meter doesn't get extracted. The library I'm currently using which is slow is the only one that works. The foobar plugin might have more options because he isn't using C#.

So at this stage we are stuck with it being slow but there is a different solution. When creating a skin with the VUEditor, select LZMA as the compression method instead of BZip2. It is substantially faster to decompress in the area of 6x.

edit: Yes, use LZMA. I believe it's the 7-zip format. I think oops prefers BZIP2 as it's easier to determine if the file is compressed or not. The library I'm using for LZMA has no issues distinguishing between LZMA and no compression. You could always just use LZMA and test it with the foobar plugin before releasing it. If it fails in Foobar then use Bzip2.
Title: Re: VUMeter Plugin
Post by: hiccup on November 19, 2024, 07:38:02 AM
You could always just use LZMA and test it with the foobar plugin before releasing it. If it fails in Foobar then use Bzip2.
The LZMA versions load a lot faster in the (original) foobar20000 plugin too.
The new version of the plugin by Oops still makes foobar2000 crash when loading these skins, so no difference there.

I've now updated the Lovebird skin downloads with LZMA versions.
Title: Re: VUMeter Plugin
Post by: sveakul on November 19, 2024, 09:57:07 AM
Stick with those MusicBee optimized LZMA fast loads, might be placebo but even the movement seems optimized now. Like you said oops can deal with Foobar before lunch.
Title: Re: VUMeter Plugin
Post by: BoringName on November 19, 2024, 10:04:57 AM
New version - VUMeter2.4.1.zip (https://www.mediafire.com/file/jxfh4tua8lkz26i/VUMeter2.4.1.zip/file)

Changes
- Made a change to how the separate thread is configured for Foobar skins.

This is just a change for Phred's benefit to see if it fixes the non loading issue.

If foobar skins are already loading for you, I wouldn't bother upgrading to this version.
Title: Re: VUMeter Plugin
Post by: sveakul on November 19, 2024, 10:14:36 AM
hiccup:  DID you do more tuning on the Lovebird skins besides just changing the compression?  It's not placebo, both DO operate more accurately and smoothly than either of those test gifs.  Quick, responsive but no "jerk."  This is the recipe to use for ALL your skins now.   Of course "use skin defaults" is checked, Event mode, LED use peak, ignore replay gain.   Plugin version 2.4, I'll pass on 2.4.1, the separate thread idea is GOOD.
Title: Re: VUMeter Plugin
Post by: BoringName on November 19, 2024, 10:31:24 AM
hiccup:  DID you do more tuning on the Lovebird skins besides just changing the compression?  It's not placebo, both DO operate more accurately and smoothly than either of those test gifs.  Quick, responsive but no "jerk."  This is the recipe to use for ALL your skins now.   Of course "use skin defaults" is checked, Event mode, LED use peak, ignore replay gain.   Plugin version 2.4, I'll pass on 2.4.1, the separate thread idea is GOOD.

Not sure comparing with GIFs is that reliable as they are running in the browser.

Just to clarify, the only thing running in a separate thread is the loading of the bin file. Once it's loaded, everything is running as it always has done previously so the separate thread change will have zero effect on the movement of the meter.
Title: Re: VUMeter Plugin
Post by: sveakul on November 19, 2024, 11:25:56 AM
Thanks for the clarification.  I still stand by my impression that since hiccup updated these a few hours ago they do look and react more accurately in MusicBee than the versions I used yesterday, even if not due to changes in the plugin itself.
Title: Re: VUMeter Plugin
Post by: sveakul on November 19, 2024, 08:25:08 PM
Sorry if this is the wrong thread for this, but the AIMP people just recently put out this DLL plugin type LED VU meter that operates separately from the "regular" analog and LVU meters, "LoudnessMonitor."  Pretty and responsive but have no idea if it's port-able to a "normal" VU meter format: https://www.aimp.ru/?do=catalog&rec_id=1319 (https://www.aimp.ru/?do=catalog&rec_id=1319)

(https://i.imgur.com/l3jBTFO.png)
Title: Re: VUMeter Plugin
Post by: BoringName on November 19, 2024, 10:30:07 PM
Sorry if this is the wrong thread for this

Probably.

That's a standalone DLL plugin.
Title: Re: VUMeter Plugin
Post by: sveakul on November 19, 2024, 11:56:55 PM
Sorry if this is the wrong thread for this

Probably.

That's a standalone DLL plugin.
OK I guessed wrong on where to ask about new meter possibilities for your plugin.  I mentioned it was a DLL in my post.
Title: Re: VUMeter Plugin
Post by: BoringName on November 20, 2024, 12:14:05 AM
OK I guessed wrong on where to ask about new meter possibilities for your plugin.  I mentioned it was a DLL in my post.

The best option would be to ask the creator of that DLL to create an LVU or foobar version of it as they would have all the source images to do that.
Title: Re: VUMeter Plugin
Post by: sveakul on November 20, 2024, 07:20:32 AM
OK I guessed wrong on where to ask about new meter possibilities for your plugin.  I mentioned it was a DLL in my post.

The best option would be to ask the creator of that DLL to create an LVU or foobar version of it as they would have all the source images to do that.
It's OK there are already plenty of wonderful meters out there your plugin already plays just fine.  It was just presented as a concept-for-comment.  I think it's odd that the developer, who had already posted AIMP meters on their forum in the past, did NOT do this one as a BIN or "AIMP Analog", especially as all their meters are shown in the same window on the player.
Title: Re: VUMeter Plugin
Post by: phred on November 21, 2024, 08:08:35 PM
The previous posts on this thread dealing with possible performance issues and the best way to resolve them have been split off to its own thread in Beyond MusicBee.
It can be found here: https://getmusicbee.com/forum/index.php?action=post;msg=229910;topic=42169.0
Title: Re: VUMeter Plugin
Post by: BoringName on November 22, 2024, 10:44:25 AM

It won't be able to extract perfect images for needle and glass?
It will provide something that can be used as a starting point, but it will require some image editing capabilities to create something useful from them.

Pretty much.

So I am honestly wondering, will this tool actually be making things easier, or allow for getting better results compared to using screenshots, Photoshop and VUeditor?

I think the only real benefit is it makes it easy to get the background and LED images. It will be able to get the needle where no glass was used. Personally I think exporting all the frames is pretty nuts but someone on Hydrogen asked for it so I figure if that's what they want to do it's up the them.

Would it be an idea to split posts about this BinExtractor into a new and separate topic?

Maybe. I really don't want to spend any more time on it because of the reasons above.

I was floating around with the idea today of allowing the user to select a pixel in the background image and entering a new colour where it would replace the colour of all the pixels with the same colour as the selected pixel. Effectively allowing the user to change some colours on the skin while it's still packaged as a bin file.

But the pixel RGB values would have to match exactly. I can't see it being that useful except for skins that have a uniform colour. Any kind of gradients would just result in a mess. It would only work for the background image, not the LED or needle.

But I think I'll drop the idea, it's a lot of work and will probably end up creating a half arsed meter with blotchy colours. I also had nothing but trouble today trying to recompress the bin file. I did manage to automate combining meters that use separate files eg) foobarskin1.bin, foobarskin2.bin into a single bin file but only if it was uncompressed. It's a pointless endeavour really as it has zero effect on how the skin operates.

Here is the stupid crap I had to deal with today-
Compress the file with the compression library using LZMA - The compression library couldn't open it and neither could 7-zip. I doesn't save the required header details and I had no luck manually trying to generate them.
Compress the file with the compression library using BZIP2 - The file could be opened with the compression library but compressing it took over 2 minutes.
Compress the file with 7-zip using LZMA- The compression library couldn't open it. The header 7-zip creates is different to VUEditor.
Compress the file with 7-zip using BZIP2 - The file could be opened with the compression library and only took a few seconds to zip. But as reported previously, the compression library is slow as balls opening Bzip files.

And that's me done for the day.
Title: Re: VUMeter Plugin
Post by: phred on November 23, 2024, 03:23:39 AM
The previous posts on this thread dealing with the Bin Extractor have been split off to its own thread in Beyond MusicBee.
It can be found here: https://getmusicbee.com/forum/index.php?topic=42174.0
Title: Re: VUMeter Plugin
Post by: BoringName on November 24, 2024, 01:00:39 AM
The previous posts on this thread dealing with the Bin Extractor have been split off to its own thread in Beyond MusicBee.
It can be found here: https://getmusicbee.com/forum/index.php?topic=42174.0

Thanks!

New version - VUMeter2.5.zip (https://www.mediafire.com/file/riakkqdwlea5t7w/VUMeter2.5.zip/file)

Changes
- Small improvements to needle movement. It should be a little less shaky. This will most likely be the final change I'll make in this regard.
- Added a busy check when loading foobar skins. Because the delay is caused by the compression library I can't stop the process to reload a different skin and I don't want to deal with multiple loading threads. Just let the skin finish loading before trying to load another!
- Improved the right click menu display speed. It's much more responsive now, especially when navigating nested folder structures in the skins menu.
- Fixed the bug that occasionally caused the right click menu to display in the top left corner of the screen. Actually it was more of a workaround for a bug with a ToolStripMenuItem object that's existed since at least 2009 , I guess microsoft might fix it one day....

Title: Re: VUMeter Plugin
Post by: BoringName on November 24, 2024, 03:10:41 AM
Given the changes I just came up with for the binExtractor program. I was just toying with the idea of automatically converting foobar skins.

The idea being if a foobar skin is loaded that uses BZIP2. VUmeter will repackage the bin to use LZMA so it will load faster next time, all in the background without the user having to do anything. Possibly enabled with a setting.

Yeah/nah ?

If I did run with this it would also involve automatically merging separate bin meters into one bin. Because of how the whole thing is coded I wouldn't want to mess around saving them back as separate bins.
Title: Re: VUMeter Plugin
Post by: boroda on November 24, 2024, 04:20:18 AM
@BoringName, i don't understand, are bin files supported by VUmeter? or are they can be used only as basis for creating AIMP meters?
Title: Re: VUMeter Plugin
Post by: BoringName on November 24, 2024, 05:05:23 AM
@BoringName, i don't understand, are bin files supported by VUmeter? or are they can be used only as basis for creating AIMP meters?

Yes, fully supported.

However, the bin files come in a lot of flavours. 3 different types of compression status and several meter configurations. The BZIP2 compressed files open significantly slower than LZMA or uncompressed. I initially thought it was an issue with the compression library I was using but it's not, in comparison tests BZIP2 blows. It does achieve higher compression ratios but the speed trade off is horrendous.

Which is why I posted the suggestion of auto converting them.

It probably isn't a big issue for most of the skins out in the wild but I haven't tested them all. Anyone creating new skins can just select LZMA as the compression type in VUEditor.
Title: Re: VUMeter Plugin
Post by: boroda on November 24, 2024, 06:28:30 AM
thanks for clarification.
Title: Re: VUMeter Plugin
Post by: hiccup on November 24, 2024, 08:59:15 AM
The idea being if a foobar skin is loaded that uses BZIP2. VUmeter will repackage the bin to use LZMA so it will load faster next time, all in the background without the user having to do anything. Possibly enabled with a setting.
Yeah/nah ?
If you implement something for this, I don't think it should be operating automatically in the background.
Users tend to forget/misunderstand any setting in any software that changes their files, and will start complaining about it sooner or later.

If possible, some indication when a skin exists from separate bin1 and bin2, or uses BZIP2, and then having a right-click option to transform that skin could work though.

Or without some indication implementation, just an option where a user can right-click a 'folder' containing VU meter skins (or an individual skin), and select 'convert BZIP2/dual bin skins'.
Title: Re: VUMeter Plugin
Post by: hiccup on November 24, 2024, 09:11:46 AM
New version - VUMeter2.5.zip (https://www.mediafire.com/file/riakkqdwlea5t7w/VUMeter2.5.zip/file)
Changes
- Small improvements to needle movement. It should be a little less shaky. This will most likely be the final change I'll make in this regard.
Having been the instigator/tester for this needle action update, I'd like to mention that I believe it is more than only improving on some 'shakiness'.
In my opinion it has improved on 'following the music' a bit tighter, the needle action even being a bit faster in responding to larger changes in volume, and in general a substantial improvement on making the needle action agree more with what I am hearing.

Maybe this deserves taking a fresh look at the rise/fall settings of existing VU meter skins and adjusting them a tiny bit for this update, but that probably won't be needed or improve things further much.
Title: Re: VUMeter Plugin
Post by: BoringName on November 24, 2024, 10:37:35 AM
If you implement something for this, I don't think it should be operating automatically in the background.
Users tend to forget/misunderstand any setting in any software that changes their files, and will start complaining about it sooner or later.

Agreed. Probably too much potential for issues. I think I'll drop the idea.
Title: Re: VUMeter Plugin
Post by: hiccup on November 24, 2024, 03:51:46 PM
After creating a clean install of MusicBee and installing v2.5.0 of the plugin, selecting a VU meter skin triggered this error message:

Code
MusicBee v3.6.9091.35714P  (Win10.0), 24 Nov 2024 16:30:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: Parameter is not valid.
   at System.Drawing.Bitmap..ctor(Int32 width, Int32 height, PixelFormat format)
   at MusicBeePlugin.VUMeter.DrawFooFrame(Int32 frameNum, Int32 ledFrameNum, Boolean left)
   at MusicBeePlugin.VUMeter.DrawFoobarSkin()
   at MusicBeePlugin.VUMeter.OpenGLControl_OpenGLDraw(Object sender, OpenGLRoutedEventArgs args)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at System.Windows.RoutedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at SharpGL.WPF.OpenGLControl.DoRender()
   at MusicBeePlugin.VUMeter.RenderEventProcessor(Object myObject, EventArgs myEventArgs)
   at System.Windows.Forms.Timer.OnTick(EventArgs e)
   at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
the skin: Fischer's Lovebird
this is how it looked when the error was thrown:
(https://i.imgur.com/KN57Qbq.png)
(I hadn't been able to set the correct orientation for it yet)

After clicking the error away and continuing, and later restarting MB things seemed fine.
But at a certain moment I got the exact same error message again using a different but similar 'Compact LED' skin.
Title: Re: VUMeter Plugin
Post by: sveakul on November 24, 2024, 07:53:57 PM
With the same combination of the new 2.5 plugin and MB version I am also getting the error message below, not every time but often when trying to adjust suddenly difficult skin layouts of the LED combo meters of both BIN and AIMP format, and sometime just when swapping skins, just now from Lovebird LED to AL-65 (BIN).  It seems like layout options have to be overly "fiddled" with.  Cannot be predicted but can be seen fairly quickly once you start changing skins.  Error message is always the same (I have W11 not W10 as indicated in the header).  Never occurred with plugin version 2.4.

Code
MusicBee v3.6.9091.35714P  (Win10.0), 24 Nov 2024 14:23:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: Parameter is not valid.
   at System.Drawing.Bitmap..ctor(Int32 width, Int32 height, PixelFormat format)
   at MusicBeePlugin.VUMeter.DrawFooFrame(Int32 frameNum, Int32 ledFrameNum, Boolean left)
   at MusicBeePlugin.VUMeter.DrawFoobarSkin()
   at MusicBeePlugin.VUMeter.OpenGLControl_OpenGLDraw(Object sender, OpenGLRoutedEventArgs args)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at System.Windows.RoutedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at SharpGL.WPF.OpenGLControl.DoRender()
   at MusicBeePlugin.VUMeter.RenderEventProcessor(Object myObject, EventArgs myEventArgs)
   at System.Windows.Forms.Timer.OnTick(EventArgs e)
   at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Title: Re: VUMeter Plugin
Post by: BoringName on November 24, 2024, 09:39:55 PM
I can reproduce this. I'll look into it.
Title: Re: VUMeter Plugin
Post by: BoringName on November 24, 2024, 10:09:11 PM
New version - VUMeter2.5.1.zip (https://www.mediafire.com/file/r7ife36u4rpcyet/VUMeter2.5.1.zip/file)

Changes
- Fixed the intermittent loading error with Foobar skins.

This should have been an issue since I moved the foobar loading into a separate thread. Maybe the more responsive menu gave it more opportunity to trigger.
Title: Re: VUMeter Plugin
Post by: sveakul on November 25, 2024, 05:35:16 PM
Appears fixed, thank you!
Title: Re: VUMeter Plugin
Post by: sveakul on November 28, 2024, 06:46:04 PM
Just FYI, the new 0.7.2 version of oops' foo_vis_vumeter can play BIN files directly from a RAR.  No space savings of course, but it keeps hiccups' .INI files, which it supports, neatly in the same package.  Maybe same could be added for VUMeter?
Title: Re: VUMeter Plugin
Post by: BoringName on November 28, 2024, 08:32:15 PM
Just FYI, the new 0.7.2 version of oops' foo_vis_vumeter can play BIN files directly from a RAR.  No space savings of course, but it keeps hiccups' .INI files, which it supports, neatly in the same package.  Maybe same could be added for VUMeter?

I'm not that keen on supporting multiple layers of archives.

What happens with oops version if you dump a RAR in the skin folder that contains multiple bin files?
Title: Re: VUMeter Plugin
Post by: boroda on November 28, 2024, 11:18:47 PM
However, the bin files come in a lot of flavours. 3 different types of compression status and several meter configurations. The BZIP2 compressed files open significantly slower than LZMA or uncompressed. I initially thought it was an issue with the compression library I was using but it's not, in comparison tests BZIP2 blows. It does achieve higher compression ratios but the speed trade off is horrendous.

Which is why I posted the suggestion of auto converting them.

It probably isn't a big issue for most of the skins out in the wild but I haven't tested them all. Anyone creating new skins can just select LZMA as the compression type in VUEditor.

although, i think that automatic recompression is a bad thing, i still would like to see that manual recompression to LZMA is possible because BZip2 compression is very slow on loading skin.
Title: Re: VUMeter Plugin
Post by: sveakul on November 29, 2024, 04:24:04 AM
I'm not that keen on supporting multiple layers of archives.

What happens with oops version if you dump a RAR in the skin folder that contains multiple bin files?
1.  I understand, like I said the only reason was "visual tidiness" in keeping hiccup INI files in their download package (they are read) and multiple same-name BINs together.

2.  It just shows up on the skin selection list like the rest of them
Title: Re: VUMeter Plugin
Post by: BoringName on November 29, 2024, 04:50:24 AM
2.  It just shows up on the skin selection list like the rest of them

So a single RAR file with 5 different bin files inside (placed in the skin folder) results in all 5 skins being visible to select in the plugin?

I could see a benefit to that where you could have multiple colours of the same skin in one RAR file and add an option to switch between them without navigating the skin menu. Maybe something like shift+mousewheel. If I can get keystrokes to register....

although, i think that automatic recompression is a bad thing, i still would like to see that manual recompression to LZMA is possible because BZip2 compression is very slow on loading skin.

I'll do something with this in the next version.
Title: Re: VUMeter Plugin
Post by: sveakul on November 29, 2024, 09:18:53 PM
2.  It just shows up on the skin selection list like the rest of them

So a single RAR file with 5 different bin files inside (placed in the skin folder) results in all 5 skins being visible to select in the plugin?
No, I was referring to normal cases where e.g. a skin using two BIN parts is contained in one RAR container named from the skin;  that, and hiccup's bundled *.ini files.
Title: Re: VUMeter Plugin
Post by: hiccup on November 30, 2024, 11:23:48 AM
I'm experiencing a strange problem.
Both MusicBee and VUMeter are suddenly responding extremely sluggish.
When e.g.  selecting a filtered selection of my library (e.g. an album artist) it can take around 10 seconds before that selection shows. (this uses to be instantly)
When playing a song, the VU meter is acting as if in slow-motion.

I noticed very high CPU usage for MusicBee with the plugin (above 10%, which is unusual for my system)
When clicking Help > About  in the taskbar it triggers this error:

Code
MusicBee v3.6.9100.25839P  (Win10.0), 30 Nov 2024 12:13:

System.ArgumentException: Parameter is not valid.
   at System.Drawing.Font.GetHeight(Graphics graphics)
   at System.Drawing.Font.GetHeight()
   at System.Drawing.Font.get_Height()
   at System.Windows.Forms.Control.set_Font(Font value)
   at #=z$bvI4Pm1ZF0skOuoEdiTGhY=.#=zyuMLPOoSpUObXXJhnQ==()
   at #=z$bvI4Pm1ZF0skOuoEdiTGhY=.#=zs3RUgqgTKBCA()
   at #=zlln1_jyD$ZWaXKQQSgXwKFg=.#=zAw5eJJJsqFAd(ControlCollection #=zfBTTLWpnCb$k)
   at #=zlln1_jyD$ZWaXKQQSgXwKFg=.#=zAw5eJJJsqFAd()
   at #=zlln1_jyD$ZWaXKQQSgXwKFg=.#=zs3RUgqgTKBCA()
   at #=zKr8uYe4ze4178dMe$bvtO2I=..ctor()
   at #=zuV51z$JdTg50PzutmWIYNHC6QxC$.#=zbQEsZq087MRf.#=zma46RtcMBO2NKCJvjA==(Object #=zVaGnpp0=, EventArgs #=zPm8gbzw=)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

I have no explanation what started this, but it started after I had created a new library. (containing some 5000 albums)
Title: Re: VUMeter Plugin
Post by: hiccup on December 01, 2024, 08:09:07 AM
And something I have been noticing that is probably not important, but I find odd:

The letters of the text 'Skin Loading' always have looked a bit crooked to my eyes.
Since loading some skins currently takes a very long time I thought to take a screenshot and give it a better look.
Here it is:
(https://i.imgur.com/v9pl0oV.png)
notice how many letters have some horizontally sliced offset (k, i, n, L)
Again, not important, but mentioning it in case it is indicative of some underlying issue.
Title: Re: VUMeter Plugin
Post by: BoringName on December 01, 2024, 09:59:32 PM
I'm experiencing a strange problem.
Both MusicBee and VUMeter are suddenly responding extremely sluggish.

Sorry, been away for a few days...

The error you reported is a Musicbee error, not an error from VUMeter. Does the slowdown only occur with VUMeter enabled?


The letters of the text 'Skin Loading' always have looked a bit crooked to my eyes.

Bit strange. It uses the same code as 3DBee for the album/artist info and looks ok on my screen. There will always be some antialiasing when it's zoomed in but not crooked like your image. the "L" is perfectly straight for me no matter what size I make the VUmeter window.
Title: Re: VUMeter Plugin
Post by: hiccup on December 03, 2024, 10:35:25 AM
I'm experiencing a strange problem.
Both MusicBee and VUMeter are suddenly responding extremely sluggish.
The error you reported is a Musicbee error, not an error from VUMeter. Does the slowdown only occur with VUMeter enabled?
I'm pretty sure it is related to the VUMeter plugin.
As I said, it's a clean install with no other plugins installed.
I had some extreme slowdowns with MusicBee itself, but only when the plugin was installed.
Currently MB seems to work o.k., but VUMeter is working 'in slow-motion'.
I'll post the error message in the Bugs topic. Let's hope it gives Steven a clue what the problem might be.
Title: Re: VUMeter Plugin
Post by: sveakul on December 03, 2024, 07:19:29 PM
If the issue begin with the latest plugin version have you tried backing down to an earlier version and seeing if it persists?  Does changing loaded meter format types affect it?  I'm not having any problems with 2.5.1 and the latest MusicBee running Windows 11 24H2 but I do not change meters much either or have a large MusicBee library.
Title: Re: VUMeter Plugin
Post by: BoringName on December 04, 2024, 01:42:00 AM
I'm pretty sure it is related to the VUMeter plugin.

You're going to have to do the trouble shooting on this one because I can't replicate it.

It sounds like it might be intermittent but no slow down has occurred when VUMeter is disabled?
Does changing the currently loaded skin effect it at all?
5000 albums is a decent size library. Does it still occur with a smaller library?

There is nothing in the code that would be effected by the library size. At this point I'm more inclined to think it's an issue with Musicbee and the new library and VUMeter slowing down is just a side effect of possibly not getting enough resources to run smoothly because of whatever that issue is.
Title: Re: VUMeter Plugin
Post by: BoringName on December 06, 2024, 04:47:41 AM
New version VUMeter2.6.zip (https://www.mediafire.com/file/yp4oi2swwwkhfyh/VUMeter2.6.zip/file)

Changes
- New Option "Compress LZMA". This is only visible when a foobar skin is loaded and will convert the currently loaded skin to LZMA format. Skins with separate files eg) Grundig 1.bin, Grundig 2.bin will be replaced with "Grundig .bin" and the original files deleted. Single file skins will be overwritten. It takes a temp copy which is written back upon error so it shouldn't result in any file loss if the conversion fails. It doesn't care what compression the source has, so you can compress a file that is already LZMA and it will just overwrite it. You may notice a small file size change in this scenario but it will have no functional change.
- Improved the position behaviour of the confirmation box so it cannot appear offscreen.

The status of the file saving process is displayed on the status bar element so you need that element in your UI to see them. I'm considering putting the "Skin loading" message in there as well and removing it from the VUMeter window so it would just be a black screen while loading. The user still gets a notification that it's loading in the status bar and I don't have to worry about funky font problems trying to draw text.
Title: Re: VUMeter Plugin
Post by: Adson on December 06, 2024, 03:42:00 PM
I have only now - unfortunately very late - discovered this wonderful plugin and tried it out.
I think it enriches and improves the UI of MB immensely. It's a real pleasure to simply watch the needles of the VU meter :-)

Many thanks to everyone who helped to develop this plugin. It was certainly a lot of work, but it was worth it.

I would be really happy to see more similar plugins in the future. Unfortunately, my skills as a programmer are not sufficient to create something like this myself.
But I would be happy to test something or translate it into German at any time if needed.

Good luck with the further work on the great VU-Meter plugin.
Title: Re: VUMeter Plugin
Post by: phred on December 06, 2024, 09:50:07 PM
Here I go again...

I have set up a test PC and copied over my portable version of MB, changing the paths where necessary. At first VUMeter 2.5.1 wasn't showing in the panel. The panel was completely blank. No context menu on right-click. No nothing. I tried with 2.6 and same thing. Finally realized I had forgotten to change the path to the VUMeter skins. Now when MB launches, the panel is black and before I can right-click it, MB throws an error. It won't let me copy the error message and immediately closes when I click OK. I was able to get the error message from the log. If I remove the plugin .dll, MB starts and works as expected.

Code
MusicBee v3.6.9101.34338P  (Win10.0), 6 Dec 2024 16:32:

System.OverflowException: Value was either too large or too small for an Int32.
   at System.Convert.ToInt32(Double value)
   at MusicBeePlugin.VUMeter.SetPivotOffset()
   at MusicBeePlugin.VUMeter.FillVertexArrays()
   at MusicBeePlugin.VUMeter.Window_SizeChanged(Object sender, SizeChangedEventArgs e)
   at System.Windows.SizeChangedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at System.Windows.FrameworkElement.OnRenderSizeChanged(SizeChangedInfo sizeInfo)
   at System.Windows.ContextLayoutManager.fireSizeChangedEvents()
   at System.Windows.ContextLayoutManager.UpdateLayout()
   at System.Windows.UIElement.UpdateLayout()
   at System.Windows.Interop.HwndSource.Process_WM_SIZE(UIElement rootUIElement, IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam)
   at System.Windows.Interop.HwndSource.LayoutFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.HwndSubclass.DefWndProcWrapper(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
Title: Re: VUMeter Plugin
Post by: BoringName on December 06, 2024, 10:54:00 PM
Here I go again...

What folder are the skins located in currently?

Try editing the mbVUMeter.Settings.xml file

Close musicbee and delete the value for lastSkin. You should get an error that it failed to load the skin when starting musicbee but you shouldn't get the exception error.

Before you delete it can you copy it here, just remove your username if it's part of the path.

Also include the value for the skinFolder path if you have set that too.
Title: Re: VUMeter Plugin
Post by: phred on December 07, 2024, 01:21:39 AM
The VUMeter skins are in D:\MusicBee\Plugins\VU Skins

Here's the .xml file
Code
<?xml version="1.0" encoding="utf-8"?>
<SavedSettingsType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <skinFolder>D:\MusicBee\Plugins\VU Skins</skinFolder>
  <framerateMax>60</framerateMax>
  <lastSkin>M4762</lastSkin>
  <dbOffset>0</dbOffset>
  <hideHeader>true</hideHeader>
  <singleMeter>false</singleMeter>
  <eventMode>false</eventMode>
  <loadDefaults>false</loadDefaults>
  <peakLED>false</peakLED>
  <ignoreGain>false</ignoreGain>
  <customColours />
  <isVertical>false</isVertical>
  <centerY>false</centerY>
  <centerX>true</centerX>
  <curveAdj>0</curveAdj>
  <bgColour>-16777216</bgColour>
  <MobilityPositive>0.045</MobilityPositive>
  <MobilityNegative>0.045</MobilityNegative>
</SavedSettingsType>

Deleted the 'last skin' line and restarted MB. Another error (perhaps it's the same as first reported) and MB closes when OK is clicked in the error window.
Code
MusicBee v3.6.9101.34338P  (Win10.0), 6 Dec 2024 20:14:

System.OverflowException: Value was either too large or too small for an Int32.
   at System.Convert.ToInt32(Double value)
   at MusicBeePlugin.VUMeter.SetPivotOffset()
   at MusicBeePlugin.VUMeter.FillVertexArrays()
   at MusicBeePlugin.VUMeter.Window_SizeChanged(Object sender, SizeChangedEventArgs e)
   at System.Windows.SizeChangedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at System.Windows.FrameworkElement.OnRenderSizeChanged(SizeChangedInfo sizeInfo)
   at System.Windows.ContextLayoutManager.fireSizeChangedEvents()
   at System.Windows.ContextLayoutManager.UpdateLayout()
   at System.Windows.UIElement.UpdateLayout()
   at System.Windows.Interop.HwndSource.Process_WM_SIZE(UIElement rootUIElement, IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam)
   at System.Windows.Interop.HwndSource.LayoutFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.HwndSubclass.DefWndProcWrapper(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
Title: Re: VUMeter Plugin
Post by: BoringName on December 07, 2024, 01:55:39 AM
The VUMeter skins are in D:\MusicBee\Plugins\VU Skins

I know what causes that error but I've put things in place so it can't happen and every attempt I've made to replicate your problem just results in the "Error loading skin" popup and everything works as normal once you click ok, which is exactly what it should be doing when it can't find a skin.

If you right click d:\musicbee\plugins\mb_VUMeter.dll, select Properties then Details, what File Version is listed there?

Is there a mb_VUMeter.dll file located anywhere else on your system?

edit: Also where was the mbVUMeter.Settings.xml file located that you deleted the "lastSkin" value from?
Title: Re: VUMeter Plugin
Post by: phred on December 07, 2024, 03:25:34 AM
If you right click d:\musicbee\plugins\mb_VUMeter.dll, select Properties then Details, what File Version is listed there?

Is there a mb_VUMeter.dll file located anywhere else on your system?

edit: Also where was the mbVUMeter.Settings.xml file located that you deleted the "lastSkin" value from?

mb_VUMeter.dll is v2.6.0.0
mbVUMeter.Settings.xml is in D:\MusicBee\AppData\Plugins\VUMeter
There is no other mb_VUMeter.dll in the MB root, nor anywhere else on the D:\ drive.



Title: Re: VUMeter Plugin
Post by: BoringName on December 07, 2024, 03:57:38 AM
mb_VUMeter.dll is v2.6.0.0
mbVUMeter.Settings.xml is in D:\MusicBee\AppData\Plugins\VUMeter
There is no other mb_VUMeter.dll in the MB root, nor anywhere else on the D:\ drive.

It's a mystery....

I did find one issue if the value set for the skinFolder in the XML and also D:\Musicbee\Plugins\VUMeter\VUSkins don't exist. But for me that just resulted in the panel not loading at all.

Create the following folder and see what happens

D:\Musicbee\Plugins\VUMeter\VUSkins

If that doesn't work. Try removing the skinFolder value from the XML file and try again.

Title: Re: VUMeter Plugin
Post by: BoringName on December 07, 2024, 04:32:07 AM
New version - VUMeter2.6.1.zip (https://www.mediafire.com/file/cm58x9siuqe62fa/VUMeter2.6.1.zip/file)

Changes -
- Cleaned up initial skin loading to better handle missing folders or skins. If the skinFolder value is populated in the XML but doesn't exist and also none of the default skin folders exist, it will create AppData\Plugin\VUMeter\VUSkins and set that as the skin folder.

There are a few other misc changes that might fix Phred's issue but not 100% on that....

edit: just a refresher on the logic. This is the order it will set the skin folder, if the folder doesn't exist goes to the next one.
skinFolder value set in the XML file.
AppData\Plugins\VUMeter\VUSkins - Persistent storage, this is the default for the installed version of musicbee
Musicbee\Plugins\VUMeter\VUSkins - this is the default for the portable version.

if none of those exist it will create a folder in persistent storage which will typically result in the following
Installed version - C:\Users\<username>\AppData\Roaming\MusicBee\Plugins\VUMeter\VUSkins
Portable version - C:\Musicbee\AppData\Plugins\VUMeter\VUSkins
Title: Re: VUMeter Plugin
Post by: sveakul on December 07, 2024, 06:44:56 AM
phred I thought you were all set after your BIOS update!

I believe some of the problem lies with the MB panel element "vu meter" not having been removed from the "active" side first, before you tried the plugin file deletions, etc.

Start MB anyway you can, and be sure that in "Arrange Panels" any "vumeter" element still on the left side has been dragged back over to the "pool" on the right.  THEN, exit MB, and delete any instance of "mbVUMeter.dll", "mbVUMeter.Settings.xml," and the VUMeter skins folder (s) (after backing up the sins!) wherever they exist.

Now, start MusicBee, and install the plugin clean, drag the element from layout to where you want it, and exit MB.  Now, make a skins folder wherever you wanted it, put the skins in it, and edit the xml file to reflect that path.  Start MB.  Success?  BTW for now I would use version 2.6 not 2.6.1 of the plugin just to be sure the new auto-find-skin-folder feature doesn't complicate what you've done.
Title: Re: VUMeter Plugin
Post by: BoringName on December 07, 2024, 07:15:00 AM
the new auto-find-skin-folder feature doesn't complicate what you've done.

It's not really new, the behaviour is the same as it's been for quite a while, the only difference is I'd missed a check to see if the default VUSkins folder actually existed and that was causing problems when it didn't. Now it checks if it exists and creates it if it doesn't (if all the previous attempts to find a skin folder fail).

It wouldn't have been a problem for anyone installing with the "add plugin" button as that creates the necessary folders. It was just an issue when moving things around manually like in Phred's case.
Title: Re: VUMeter Plugin
Post by: sveakul on December 07, 2024, 07:21:47 AM
Roger that, yes indeed it's a helpful addition, I just wanted to get phred up first with the behavior he has been used to in case the new check/create function causes him any confusion.
Title: Re: VUMeter Plugin
Post by: phred on December 07, 2024, 01:02:05 PM
phred I thought you were all set after your BIOS update!
Correct. This issue is on a different PC which is my testing box. Although I do admit I haven't tried 2.6 (nor 2.6.1) on my main PC. Which will be done once I figure out this issue on the testing PC.

Quote
Start MB anyway you can, and be sure that in "Arrange Panels" any "vumeter" element still on the left side has been dragged back over to the "pool" on the right.  THEN, exit MB, and delete any instance of "mbVUMeter.dll", "mbVUMeter.Settings.xml," and the VUMeter skins folder (s) (after backing up the sins!) wherever they exist.
...
I'm pretty sure I've done all that last night, but will try again after trying BoringName's suggestions.
Title: Re: VUMeter Plugin
Post by: phred on December 07, 2024, 01:29:33 PM
I have now tried the suggestions from both sveakul and BoringName using 2.6 and 2.5.1. Same results with the same error message. I'm out of time for a while, but what I'll try next is a brand new, clean and naked Portable install on the test machine. Will report back with results.
Title: Re: VUMeter Plugin
Post by: sveakul on December 07, 2024, 03:12:21 PM
I have now tried the suggestions from both sveakul and BoringName using 2.6 and 2.5.1. Same results with the same error message. I'm out of time for a while, but what I'll try next is a brand new, clean and naked Portable install on the test machine. Will report back with results.
WAS there a VUMeter element still on the left side of Layout?

Try deleting this entry, if present, from the MB ini file:

 <State>
  <Id>\MusicBee\Plugins\mb_VUMeter.dll</Id>
  <Name>VUMeter</Name>
  <Description>Creates a UI element to display a VU Meter.</Description>
  <Enabled>true</Enabled>
  <PanelHeight>-180</PanelHeight>
 </State>

So this all started when you forgot to re-specify your vumeter skins location in the xml file after you moved the MB Portable?
Title: Re: VUMeter Plugin
Post by: johnnyboy on December 07, 2024, 05:11:17 PM
Still cant get this to work. Error Loading skin. I think i havent extracted files correctly to their correct folders. help
Title: Re: VUMeter Plugin
Post by: sveakul on December 07, 2024, 05:44:25 PM
1.  What version number and type (Portable, Installer, Store) of MusicBee do you have?  From the Help/About menu. Note that the minimum version of Musicbee required is 3.6.9040.
2.  What version of the VUMeter plugin did you install?
3.  Where have you added the "vumeter" panel in the MB "Arrange Panels" dialog?
4.  Does the plugin show in the Preferences/Plugins list?
5.  Did you add the plugin using the "Add Plugin" button at the top of the Preferences/Plugins panel, or manually extract the zip?  If the latter, where did you extract the files/folders to?

We can and will continue to help you when you supply this info.
Title: Re: VUMeter Plugin
Post by: phred on December 07, 2024, 06:50:34 PM
Continuing with my "test" saga...

On my test PC I have created a brand new, naked, virginal and unmolested Portable installation of MB. I created a small library of about twenty tracks. No new skins, no new plugins, no new nothing. I closed MB and dragged mb_VUMeter.dll (6.1) into the Plugins directory. Restarted MB, arranged the VUMeter panel to where I've been placing it during this test (and where it happily lives on my main PC) and exited MB. Relaunched it and VU panel was all black and a right-click showed nothing. And then MB threw the same error it's been throwing all during this experiment and once I clicked ok, MB closed.

Code
MusicBee v3.6.9101.34338P  (Win10.0), 7 Dec 2024 13:32:

System.OverflowException: Value was either too large or too small for an Int32.
   at System.Convert.ToInt32(Double value)
   at MusicBeePlugin.VUMeter.SetPivotOffset()
   at MusicBeePlugin.VUMeter.FillVertexArrays()
   at MusicBeePlugin.VUMeter.Window_SizeChanged(Object sender, SizeChangedEventArgs e)
   at System.Windows.SizeChangedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at System.Windows.FrameworkElement.OnRenderSizeChanged(SizeChangedInfo sizeInfo)
   at System.Windows.ContextLayoutManager.fireSizeChangedEvents()
   at System.Windows.ContextLayoutManager.UpdateLayout()
   at System.Windows.UIElement.UpdateLayout()
   at System.Windows.Interop.HwndSource.Process_WM_SIZE(UIElement rootUIElement, IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam)
   at System.Windows.Interop.HwndSource.LayoutFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.HwndSubclass.DefWndProcWrapper(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)

With MB still closed, I removed the dll, and my skins, and the ini file. No traces left in this installation. Restarted MB, went to Preferences > Plugins > Add Plugin and pointed it to a ZIP of 2.5.1. I checked and saw the dll and the default skins where they're supposed to be along with a "new" directory under AppData\Plugins\VUMeter which was empty (no .ini file yet.) Launched MB and it didn't throw an error. Open panel arrangement and dragged the VUMeter panel to where I want it, saved, and closed MB. Opened MB, saw an all black panel where the VUMeter should be with no context menu upon right-click and then MB threw the same error as above.

Restarting MB from this condition causes the same error to appear within five seconds. Still can't copy the error using the button in the error window and clicking ok closes MB.
Title: Re: VUMeter Plugin
Post by: sveakul on December 07, 2024, 07:45:36 PM
Continuing with my "test" saga...

On my test PC I have created a brand new, naked, virginal and unmolested Portable installation of MB. I created a small library of about twenty tracks. No new skins, no new plugins, no new nothing. I closed MB and dragged mb_VUMeter.dll (6.1) into the Plugins directory. Restarted MB, arranged the VUMeter panel to where I've been placing it during this test (and where it happily lives on my main PC) and exited MB. Relaunched it and VU panel was all black and a right-click showed nothing. And then MB threw the same error it's been throwing all during this experiment and once I clicked ok, MB closed.
Phred, you're doing SOMETHING wrong, because the meter works just great here.  Let me just address this first part of your post.  Let's start over from nothing, another brand-new Portable..  BTW, is this with the "knackered" PC that needed a BIOS boost, chipset update, and all the rest?

Be sure all of MB is whitelisted in any antivirus.

First of all you shouldn't have tried to manually drag anything.  And forget all your skins for now.  You should have just opened the new MB, gone to the plugins panel and pressed the "Add Plugin" button, pointing to where you put the VUMeter 2.6.1 zip file.  Then it will put the files/folders in the right place itself.  Restart MB.  Next, you would go to "Arrange Panels", and pull the "vumeter" element over to where you want it.  Restart MB for the heckuvit.  Check to be sure the plugin appears in prefs/plugins and is enabled (remember if the button says "Disable" it means the plugin IS ALREADY ENABLED--don't push it!)  Now do you get a context menu when you can pick one of the 4 (?) default skins??

Don't try to find or make path changes to the xml fle until the above is a success.  We're starting to reach the "I won't be able to help anymore with this" stage (kidding  ;) ).
Title: Re: VUMeter Plugin
Post by: phred on December 07, 2024, 08:01:23 PM
BTW, is this with the "knackered" PC that needed a BIOS boost, chipset update, and all the rest?
This is -not- my main PC where I previously had issues. I answered your question earlier today regarding which machine. This is a test machine that has only had portable versions of MB previously and those MB installations are removed when i'm done with whatever it is/was that I was testing.

Quote
First of all you shouldn't have tried to manually drag anything.  And forget all your skins for now.  You should have just opened the new MB, gone to the plugins panel and pressed the "Add Plugin" button, pointing to where you put the VUMeter 2.6.1 zip file.  Then it will put the files/folders in the right place itself.  Restart MB.  Next, you would go to "Arrange Panels", and pull the "vumeter" element over to where you want it.  Restart MB for the heckuvit.  Now do you get a context menu when you can pick one of the 4 (?) default skins??

Don't try to find or make path changes to the xml fle until the above is a success.
Again, I commented about this in my previous post...

On my test PC I have created a brand new, naked, virginal and unmolested Portable installation of MB. I created a small library of about twenty tracks. No new skins, no new plugins, no new nothing.
...
With MB still closed, I removed the dll, and my skins, and the ini file. No traces left in this installation. Restarted MB, went to Preferences > Plugins > Add Plugin and pointed it to a ZIP of 2.5.1. I checked and saw the dll and the default skins where they're supposed to be along with a "new" directory under AppData\Plugins\VUMeter which was empty (no .ini file yet.) Launched MB and it didn't throw an error. Open panel arrangement and dragged the VUMeter panel to where I want it, saved, and closed MB. Opened MB, saw an all black panel where the VUMeter should be with no context menu upon right-click and then MB threw the same error as above.

Restarting MB from this condition causes the same error to appear within five seconds. Still can't copy the error using the button in the error window and clicking ok closes MB.
For sake of completeness and perhaps redundancy , I will delete the MB installation and (once again) create a new portable with nothing but a small library and try again.
Title: Re: VUMeter Plugin
Post by: phred on December 07, 2024, 08:48:02 PM
First of all you shouldn't have tried to manually drag anything.  And forget all your skins for now.  You should have just opened the new MB, gone to the plugins panel and pressed the "Add Plugin" button, pointing to where you put the VUMeter 2.6.1 zip file.  Then it will put the files/folders in the right place itself.  Restart MB.  Next, you would go to "Arrange Panels", and pull the "vumeter" element over to where you want it.  Restart MB for the heckuvit.  Check to be sure the plugin appears in prefs/plugins and is enabled (remember if the button says "Disable" it means the plugin IS ALREADY ENABLED--don't push it!)  Now do you get a context menu when you can pick one of the 4 (?) default skins??

Don't try to find or make path changes to the xml fle until the above is a success.  We're starting to reach the "I won't be able to help anymore with this" stage (kidding  ;) ).
I have once again done a clean install of Portable MB 3.5 and patched to 3.6.9101. Once again I have followed your instructions. I used the 'add plugins' button. The four default skins are in E:\MB Test\Plugins\VUMeter\VUSkins. And once again, I'm getting the same result. You're correct. I'm starting to feel that I don't -want- help anymore. I should just delete everything and stick with my main PC. No more testing.  <sigh>
(https://i.imgur.com/1BbOKgX.jpeg)
Title: Re: VUMeter Plugin
Post by: BoringName on December 08, 2024, 01:13:59 AM
It's not clear from your posts so you may have already tried this.

But you can remove all skins from the skin folder and start Musicbee with no skins available and see how that goes.

I was thinking maybe one of the skins is corrupted/broken but if it's just the 4 default skins that's probably not it.

At this point I think it may be something to do with the computer setup, I understand this is a different computer to the one that normally has issues but is it setup the same? Same region etc... I think this might be a problem like Boroda had with my other plugin to do with commas and decimal points.

I think your computer might be setup in a way that the check the code makes to ensure  a valid skin is loaded and what type it is gets skipped somehow. The same reason your other computer couldn't handle multiple threads.

Edit: Can you go to Windows Settings->Time & Language->Region and list what is in the "Country or Region" and "Regional Format" fields. Might be worth listing it for both your computers, we might be able to solve your issues on that PC as well.
Title: Re: VUMeter Plugin
Post by: BoringName on December 08, 2024, 01:46:46 AM
Still cant get this to work. Error Loading skin. I think i havent extracted files correctly to their correct folders. help

Depending whether you have the installed version or portable, you need skins to be stored in the following folders
Installed - C:\users\<username>\AppData\Roaming\Musicbee\Plugins\VUMeter\VUSkins
Portable - C:\Musicbee\Plugins\VUMeter\VUSkins

Alternatively you can specify a custom directory path for the skins in the XML file. Close musicbee and open this file in a text editor.
Installed - C:\Users\<username>\AppData\Roaming\MusicBee\Plugins\VUMeter\mbVUMeter.Settings.xml
Portable - C:\Musicbee\AppData\Plugins\VUMeter\mbVUMeter.Settings.xml

Change <skinFolder />
To something like this -
<skinFolder>C:\Example\VU Meter Skins</skinFolder>

edit: just to state the obvious, you need to change the drive letter and folder names to match your system.
Title: Re: VUMeter Plugin
Post by: phred on December 08, 2024, 01:56:11 AM
But you can remove all skins from the skin folder and start Musicbee with no skins available and see how that goes.
I totally removed all VU skins and VU files.

Quote
I was thinking maybe one of the skins is corrupted/broken but if it's just the 4 default skins that's probably not it.
Only the default skins. Plugin installed via the "add plugins" button in plugin preferences.

Quote
At this point I think it may be something to do with the computer setup, I understand this is a different computer to the one that normally has issues but is it setup the same? Same region etc... I think this might be a problem like Boroda had with my other plugin to do with commas and decimal points.
Same region

Main PC:
(https://i.imgur.com/PMCx4oY.jpeg)

Test PC:
(https://i.imgur.com/e1EaXin.jpeg)

I don't want anyone else to waste time on this. It's a test PC with a test config of MB. Everything else is working as expected (both the PC and MB.) The suggestions so far have been appreciated, but we're getting nowhere. And I'm getting frustrated. So I'll let it rest for a while and when I feel like it I'll come back to it and try again.

Thanks for the help and suggestions.
Title: Re: VUMeter Plugin
Post by: phred on December 08, 2024, 02:02:58 AM
Depending whether you have the installed version or portable, you need skins to be stored in the following folders
Installed - C:\users\<username>\AppData\Roaming\Musicbee\Plugins\VUMeter\VUSkins
Portable - C:\Musicbee\Plugins\VUMeter\VUSkins
Here's another reason why I'm giving up (temporarily.) Neither you nor sveakul seem to be reading my reports as you're asking questions for which I've already supplied answers.

- It's a clean portable installation of MB
- After the initial plugin try, and removal of all things VUMeter-related, I installed the plugin via the "Add Plugins" button. So the paths are the default paths specified within the plugin.
- No paths or drive lettersneed to be changed as the plugin is creating them.
- Previously I tried using a created path for the skins and edited the .ini to reflect the change.
Title: Re: VUMeter Plugin
Post by: BoringName on December 08, 2024, 02:07:53 AM
Here's another reason why I'm giving up (temporarily.) Neither you nor sveakul seem to be reading my reports as you're asking questions for which I've already supplied answers.

That quote you linked is for a different user, not you.

I totally removed all VU skins and VU files.

And got the same error with no skins installed? If that's the case it does confirm it's skipping or incorrectly applying the code that checks what skins are installed. Edit: Actually I can't see any possible way for that error to happen if the skins folder is empty, very strange.

I don't want anyone else to waste time on this. It's a test PC with a test config of MB.

I can understand that, but if you have this problem there is no doubt others who had the same problem and just uninstalled and never mentioned it here. So I would like to find the source of the issue.

But I can understand the frustration part. Outside of it being a problem with the region I'm at a dead end anyway so I won't bother you with further troubleshooting steps. I'm going to set my test system to the same region as yours and see if I can replicate it. If I can't I'm out of ideas.
Title: Re: VUMeter Plugin
Post by: BoringName on December 08, 2024, 02:37:28 AM
I couldn't replicate the issue on my other PC. But I've made a couple of changes that might work.

New version - VUMeter2.6.2.zip (https://www.mediafire.com/file/gu605i74tmbrqf7/VUMeter2.6.2.zip/file)

Changes -
- Modified the handling of an empty skin path string at startup. (path to the skin file, this isn't a reference to the skinFolder setting in the XML).

There is no point installing this version unless you are having similar issues to Phred.
Title: Re: VUMeter Plugin
Post by: sveakul on December 08, 2024, 05:28:41 AM
Here's another reason why I'm giving up (temporarily.) Neither you nor sveakul seem to be reading my reports as you're asking questions for which I've already supplied answers
Phred, I and I'm sure BoringName are reading them I assure you.  For me, it's just that they get a bit difficult to interpret sometimes as far as exactly what was or wasn't checked from my suggestions.  E.g., I know it was an extreme newbie type question to ask, but DID you double-check your antivirus on the test machine?  You didn't answer.  I was not trying to insult you but these are just the kind of things that even experts can completely forget about because they are looking at deeper issues.  In my last post, I thought I would begin from your what you described as your first new attempt instead of intertwining with the other redundant information you wrote in the same post.  For the sake of a clear "bulleted list" type of approach that would apply universally.

I'm sorry for the difficulties and at this point I will just lay low about it.  I hope 2.6.2 will help solve it for you.
Title: Re: VUMeter Plugin
Post by: sveakul on December 08, 2024, 06:27:22 AM
Noticed that oops' foo_vis_vumeter version 0.8.0 is now capable of playing hiccup's new meters directly from the *.rar file, complete with the option to use/not use the *.bin settings.
Title: Re: VUMeter Plugin
Post by: phred on December 08, 2024, 04:41:28 PM
Phred, I and I'm sure BoringName are reading them I assure you.
First off, an apology to sveakul and BoringName for my harsh, defeatist attitude last night. I know you guys are trying to help but I was getting frustrated and it showed in my tone.

Trying 2.6.2 doesn't solve the issue, but is perhaps providing another clue or two since it's now a different error message.
- brand new, naked, default configuration of MB Portable 3.6.9101 P
- installed the plugin via the "add plugins' button on the plugin preferences window
- exited MB and before restarting I checked and confirmed that the dll, default skins, and ini were all where they're supposed to be
- noticed that the ini entry for <skin folder> was empty but left it that way for this test
- launched MB and got this error before doing anything, which appears to be a different error than what I posted yesterday with v5.2.1 (...
System.OverflowException: Value was either too large or too small for an Int32...."
Code
MusicBee v3.6.9101.34338P  (Win10.0), 8 Dec 2024 11:22:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at MusicBeePlugin.VUMeter.DrawTextCustom(Int32 x, Int32 y, Int32 r, Int32 g, Int32 b, String font, Single fontSize, String fontStyle, String text)
   at MusicBeePlugin.VUMeter.OpenGLControl_OpenGLDraw(Object sender, OpenGLRoutedEventArgs args)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at System.Windows.RoutedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at SharpGL.WPF.OpenGLControl.DoRender()
   at MusicBeePlugin.VUMeter.RenderEventProcessor(Object myObject, EventArgs myEventArgs)
   at System.Windows.Forms.Timer.OnTick(EventArgs e)
   at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
- clicked 'copy error' and got error window "unable to coy the error text to the clipboard"
- copied it manually via CTRL-A, CTRL-C, and then pasting it here
- clicked OK on the 'unable to copy...' error window and it closed
- clicked OK on the initial error window and the window doesn't close. Yesterday with 2.6 and 2.5.1 the window closed and also crashed MB
- used task manager to exit MB
- edited ini file and added the proper path to the <skinFolder> element
- restarted MB and got what appears to be the same error
Code
MusicBee v3.6.9101.34338P  (Win10.0), 8 Dec 2024 11:29:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at MusicBeePlugin.VUMeter.DrawTextCustom(Int32 x, Int32 y, Int32 r, Int32 g, Int32 b, String font, Single fontSize, String fontStyle, String text)
   at MusicBeePlugin.VUMeter.OpenGLControl_OpenGLDraw(Object sender, OpenGLRoutedEventArgs args)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at System.Windows.RoutedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at SharpGL.WPF.OpenGLControl.DoRender()
   at MusicBeePlugin.VUMeter.RenderEventProcessor(Object myObject, EventArgs myEventArgs)
   at System.Windows.Forms.Timer.OnTick(EventArgs e)
   at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
- clicking OK on the error window does not close it and MB will not close unless I kill it with task manager
- removed all files relating to VUMeter plugin and restarted MB and it's fine
- It's not even noon here on the east coast of the US, but it's got to be five o'clock somewhere and I'm going to an adult beverage or two
Title: Re: VUMeter Plugin
Post by: johnnyboy on December 08, 2024, 04:47:04 PM
over complicated things by trying to extract files myself. Now I just used add plug in and chose the zip file and let the plug in do its thing.
Now trying it out  :-[  ;D
Title: Re: VUMeter Plugin
Post by: sveakul on December 08, 2024, 05:17:46 PM
@phred : no apology is needed at all, don't worry about it!  I know how frustrating it is when something is so damn elusive despite every attempt to make it work.  I'm as baffled as you are at this stage as to why you are still getting those maddening errors after doing everything "according to Hoyle."  It's nuts.  When I've had similar experiences it usually turned out to be I just missed something simple, but in your case I can't see what that what might be--all the steps are in place.

If you try going to back to the last version of the plugin you know worked fine, and how you installed it, does that produce the same errors if you attempt installing it now?  I have most of the previous versions back to 1.6 that I could upload for you.
Title: Re: VUMeter Plugin
Post by: johnnyboy on December 08, 2024, 07:41:09 PM
Oh Dear!
I got the VU meters working using the primary sound driver output, all was good. So I changed to Wasapi Shared and the meters stopped but the audio was still working. I was aware of the probs with Wasapi so I changed the sound device output to virtual cable and launched Tuneblade. Disaster! no sound from my streamer. I had to delete   plugin and restart MB and my Streamer. I really think all this Hassle for what is just a cosmetic display is not worth the time. Will it get sorted?
Title: Re: VUMeter Plugin
Post by: sveakul on December 08, 2024, 08:29:31 PM
I use Wasapi Exclusive sound output (event mode) in MusicBee.  In the VUMeter context menu, I make sure "Event Mode" is checked, and "Ignore Replay Gain."  I have no problem at all with VUMeter or MusicBee.  That's all I can tell you.  If you use a calibrated-by-hiccup meter (https://getmusicbee.com/forum/index.php?topic=41696.0), they are a lot more accurate than "eye candy."
Title: Re: VUMeter Plugin
Post by: johnnyboy on December 08, 2024, 08:46:17 PM
 8) ok ill give it a try
Title: Re: VUMeter Plugin
Post by: voodoopunk on December 08, 2024, 08:48:10 PM
That's all I can tell you.  If you use a calibrated-by-hiccup meter (https://getmusicbee.com/forum/index.php?topic=41696.0), they are a lot more accurate than "eye candy."
Doesn't matter how "accurate" they are, unless you're recording they're still eye candy.
Title: Re: VUMeter Plugin
Post by: BoringName on December 08, 2024, 10:23:51 PM
First off, an apology to sveakul and BoringName for my harsh, defeatist attitude last night. I know you guys are trying to help but I was getting frustrated and it showed in my tone.

All good. It sucks when things don't work like they are supposed to and it's an annoying process trying to debug remotely.

- launched MB and got this error before doing anything, which appears to be a different error than what I posted yesterday with v5.2.1

Progress!!

Can you try this version - VUMeter_Phred.zip (https://www.mediafire.com/file/2g6tz4fkcucw98e/VUMeter_Phred.zip/file)

All it does is move the error/loading message from the VUMeter window to status bar. I don't think this will solve your issue but it should get it further a long in the loading process, I'm expecting it should get you to a point where you can right click the window and select a skin but it will probably error when it's selected.

Can you give me the specs of your test system. The motherboard name and graphics card (if it has one). I think your system might be a bit old and not support the version of OpenGL I'm using. I haven't put any checks in place for that scenario and might explain all the issues.


edit: whoops, clicked post too soon.

The easiest way to determine the supported OpenGL version is running GPU-Z (https://www.techpowerup.com/download/techpowerup-gpu-z/)
It's a standalone app and will list the OpenGL version in the bottom right corner.

If you don't want to run a third party app you can get some of the info from windows.

- Press the `Windows key` + `R` to open the Run dialog box.
- Type `dxdiag` and press `Enter`. This will open the DirectX Diagnostic Tool.
- In the DirectX Diagnostic Tool, click on the "Display" tab.
- Look for the "Drivers" section, and you should see the "Feature Levels" listed.

Can you list the feature levels here please.
Title: Re: VUMeter Plugin
Post by: BoringName on December 08, 2024, 10:37:38 PM
Oh Dear!
I got the VU meters working using the primary sound driver output, all was good. So I changed to Wasapi Shared and the meters stopped but the audio was still working. I was aware of the probs with Wasapi so I changed the sound device output to virtual cable and launched Tuneblade. Disaster! no sound from my streamer. I had to delete   plugin and restart MB and my Streamer. I really think all this Hassle for what is just a cosmetic display is not worth the time. Will it get sorted?

When you change the sound output, you need to wait for the track to change so the stream Info supplied by Musicbee is updated. Probably a good idea to restart Musicbee anyway.

Nothing in VUMeter will stop the sound so that is a different issue.

Getting it sorted will depend on how much troubleshooting you want to do.
If you could be more specific on what you are doing it will make it easier.
At this stage it seems like the following -
Working.
Output - Wasapi Exclusive
Output Device - Primary Sound Driver

Sound works, VU meter doesn't.
Output - Wasapi Shared
Output Device - Primary Sound Driver
I believe this will probably work if you restart musicbee or even just change to a different track playing.

No sound, no VU meter.
Output - Wasapi Shared
Output Device - Virtual Cable (I have no idea what this is...)
No sound is not a VU Meter issue. I think if you solve that problem the VU meter should start working.

Title: Re: VUMeter Plugin
Post by: phred on December 09, 2024, 03:11:07 AM
Can you list the feature levels here please.
It's getting late, but wanted you to know I've read your latest suggestions. I've downloaded my "special" version and will install it tomorrow. I will also get you the PC specs at that time.  

Getting the feature levels was quick and easy (via dxdiag) so here it is:
Feature Levels: 10_0, 9_1
And it looks like it's a damn old driver (2012.) I'll see what I can do about updating it tomorrow.
Here''s the system specs taken from dxdiag:
Code
   Time of this report: 12/8/2024, 22:01:02
             Machine name: MUSICSERVER
               Machine Id: {E2B79A58-693E-49B6-8A22-F9E3BEF416B4}
         Operating System: Windows 10 Pro 64-bit (10.0, Build 19045) (19041.vb_release.191206-1406)
                 Language: English (Regional Setting: English)
      System Manufacturer: LENOVO
             System Model: 5536A1U
                     BIOS: LENOVO BIOS Rev: 1.0 (type: BIOS)
                Processor: Intel(R) Core(TM) i5 CPU         650  @ 3.20GHz (4 CPUs), ~3.2GHz
                   Memory: 8192MB RAM
      Available OS Memory: 7862MB RAM
                Page File: 1923MB used, 7155MB available
              Windows Dir: C:\WINDOWS
          DirectX Version: DirectX 12
      DX Setup Parameters: Not found
         User DPI Setting: 96 DPI (100 percent)
       System DPI Setting: 96 DPI (100 percent)
          DWM DPI Scaling: Disabled
                 Miracast: Not Available
Microsoft Graphics Hybrid: Not Supported
 DirectX Database Version: 1.0.8
           DxDiag Version: 10.00.19041.5198 64bit Unicode
Title: Re: VUMeter Plugin
Post by: BoringName on December 09, 2024, 03:50:12 AM
Feature Levels: 10_0, 9_1

It's not an exact indicator but there is a pretty good chance your device only supports OpenGL 3.1 and it needs 3.3 for the plugin to work. 3.3 was released in 2010 so it wasn't an issue I expected or checked for. I'm not sure I can actually check for it effectively.....even if I could there is nothing I can do on my end to make it work but I will update the plugin pages to specify that requirement.

Updating the driver might get you there.

It's hard to find the specs but based on this - List_of_Intel_graphics_processing_units (https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units) I think that computer can only handle OpenGL 2.1 if you are using the onboard graphics.
Title: Re: VUMeter Plugin
Post by: phred on December 09, 2024, 09:12:55 PM
Progress!!
Maybe for you...

Quote
Can you try this version - VUMeter_Phred.zip (https://www.mediafire.com/file/2g6tz4fkcucw98e/VUMeter_Phred.zip/file)
This gets really weird using the Phred version.
- all remnants of previous VUMeter have been removed
- opened MB >  Preferences > Plugins > Add Plugin
- navigated to the Phred version > clicked ok > clicked restart
- on restart, error window pops up and closes, taking MB with it
- most recent entries in error log are from two days ago
- launched MB again and go an info window stating that MB wasn't able to load preferences and recovered a backup
- plugin preferences window shows VUMeter 2.6.3 as installed
- arrange panels doesn't have an entry for VUMeter
- there are no VUMeter files or directories
- launched MB in an attempt to remove VUMeter from the plugins window and it crashed with a quick view of the error window and then MB disappeared
- still no new entry in error log
- launched one more time and tried to get a screenshot of the error window, but MB closes too fast
- deleted MB Portable and created new one with no library, plugins, skins, nothing but defaults
- installed VUMeter Phred and it shows in Plugin Preferences
- restarted MB
- arrange panels has a vumeter entry and I moved it to thte right sidebar (which is where I've been putting it all along)
- saved the panel arrangement and got a window "No skin folder found, set to default" Now there's progress!!
- before clicking on 'ok' in the 'no skins found' window, I looked for VUMeter files/directories and there are none. So much for progress!
- clicked 'ok' and a black panel appeared where the meter should be and an error window popped but I was able to get this before MB closed
(https://i.imgur.com/X8p618h.jpeg)
and this from a little earlier
(https://i.imgur.com/AJMivVn.jpeg)
And there's no error message in the status bar as you can see in the full window screenshot.

I haven't started looking into drivers and OpenGL yet as I wan'ted to test the special phred version of the plugin. Since that was a bust, I'm going to take a break and may not deal with the drivers until tomorrow. But I do suspect BoringName is correct that the issue is the drivers being old as MB works fine on the test PC until I introduce VUMeter.
Title: Re: VUMeter Plugin
Post by: phred on December 09, 2024, 09:25:52 PM
I couldn't resist.

A quick wipe and reinstall of MB and another attempt at adding the plugin.
- restarted MB and got the "no skins found" message before I even tried to add the panel
- clicked 'ok' and MB closed with an error window that I couldn't see and nothing in the error log
- I noticed the .dll in the plugins directory and in AppData\Plugins\VUMeter was the settings xml and an empty VUSkins directory

That's it for now,
Title: Re: VUMeter Plugin
Post by: BoringName on December 09, 2024, 09:43:18 PM
and this from a little earlier
(https://i.imgur.com/AJMivVn.jpeg)

This indicates the system can't handle OpenGL 3.3

If you have already updated the video drivers the only other option is to install a video card or give up. Pretty much any card newer than 2010 should work so it shouldn't be too costly.

I'll try and set it up to exit gracefully if 3.3 isn't supported but I don't like my chances as I'm using a library for OpenGL and it's all loaded up at runtime. The fact the plugin wasn't even successfully reporting if a file exists makes me think everything is unstable from the get go which will make checking the OpenGL version a problem. I also don't have a system to test it on.
Title: Re: VUMeter Plugin
Post by: sveakul on December 09, 2024, 10:16:54 PM
I couldn't resist.

A quick wipe and reinstall of MB and another attempt at adding the plugin.
- restarted MB and got the "no skins found" message before I even tried to add the panel
- clicked 'ok' and MB closed with an error window that I couldn't see and nothing in the error log
- I noticed the .dll in the plugins directory and in AppData\Plugins\VUMeter was the settings xml and an empty VUSkins directory

That's it for now,
phred OpenGL is delivered by the video drivers.  You need to manually update them to the ones that match your system (OS and bit level) from here:
https://pcsupport.lenovo.com/nl/en/products/desktops-and-all-in-ones/thinkcentre-m-series-desktops/thinkcentre-m90p/5536/5536a86/downloads/driver-list/component?name=Display%20and%20Video%20Graphics&id=635380F4-448F-4129-AA77-265289D96F6F (https://pcsupport.lenovo.com/nl/en/products/desktops-and-all-in-ones/thinkcentre-m-series-desktops/thinkcentre-m90p/5536/5536a86/downloads/driver-list/component?name=Display%20and%20Video%20Graphics&id=635380F4-448F-4129-AA77-265289D96F6F)

If you install this tool it will tell you what version of OpenGL you have:
https://www.realtech-vr.com/home/?page_id=1402 (https://www.realtech-vr.com/home/?page_id=1402)

If your version is too low, like BoringName said you would need to install a new video card.

At least we have finally found the problem.
Title: Re: VUMeter Plugin
Post by: BoringName on December 09, 2024, 11:32:46 PM
So I can check what version of OpenGL is installed but that requires waiting until the OpenGL library is initialised. The issue is what to do once I've determined the version is too low. Any attempts I made to close it gracefully ended up emulating the behaviour Phred saw when trying to load the plugin.

Errors with SetPivotOffset which is just flat out bizarre. There is no code path for it to run and even if it does there are at least 5 environmental checks that should be failing and preventing it, but somehow they are all passing.... I think messing with the OpenGL initialisation just completely screws the application environment  because of how it's designed.

If it was a standalone app it wouldn't be a problem to sort out but it's not, so it is, at least for me.

So I'm giving up on that. I have added the OpenGL 3.3 requirement to the addon page. Any device running a graphics chip older than 2010 is not supported. And probably some after 2010 if the vendors were too lazy to add support in their drivers.
Title: Re: VUMeter Plugin
Post by: phred on December 10, 2024, 12:53:18 AM
@sveakul
@BoringName

Do y'all believe in euthanasia? It's time to put the two of you, and me, out of our collective misery. We're beating a dead horse. I have run the OpenGL viewer linked to by sveakul. The current version crashed while scanning. I went to v6 and it scanned successfully. The test PC is running OpenGL driver version 8.15.10.29 from November 26, 2012. It is the latest version for the test PC per OpenGL. It also shows that I'm using the latest version of the display drivers for my on-board video. This was confirmed when I went to the Lenovo site from sveakul's link and there are no drivers for this PC for Win10. Most are for XP, and a few are for W7.

The DirectX version per DxDiag is 12.

You guys put enough time into this and I appreciate that. I'm not going to spend a dime on the test PC so a stand-alone video card is not going to happen. I'm not using the PC for test CAD software. I don't need a high-powered new(er) machine. It runs fine as long as I don't try to install the wonderful VUMeter plugin.

I think we're done here.
Title: Re: VUMeter Plugin
Post by: BoringName on December 10, 2024, 03:01:42 AM
The test PC is running OpenGL driver version 8.15.10.29 from November 26, 2012.

Just for posterity, this driver only supports OpenGL 2.1. Considering the date of the driver and the computer being 2009? it would suggest the hardware is not able to support any higher versions of OpenGL ie) it's not a driver problem and there is no way to make it work.

Getting an old cheap second hand video card is probably best solution. Locally I can get a brand new low spec fanless one for $45AUD ($29US) but drivers might be an issue on an old machine.

I'm not going to spend a dime on the test PC

Fair enough. It's not a great return on investment most of the time, better off putting that money towards new hardware. The test machines I have here are like kids clothes, mostly running off hand me downs as my main machine is upgraded.
Title: Re: VUMeter Plugin
Post by: sveakul on December 10, 2024, 08:05:07 AM
I have run the OpenGL viewer linked to by sveakul. The current version crashed while scanning. I went to v6 and it scanned successfully. The test PC is running OpenGL driver version 8.15.10.29 from November 26, 2012. It is the latest version for the test PC per OpenGL. It also shows that I'm using the latest version of the display drivers for my on-board video. This was confirmed when I went to the Lenovo site from sveakul's link and there are no drivers for this PC for Win10. Most are for XP, and a few are for W7.
Not to beat a dead horse phred, but did that OpenGL viewer NOT give you a page that straight-out shows the OpenGL version as opposed to the "driver version"--like the below shows from the website.  I didn't mean to confuse things more!

(https://i.imgur.com/3QxjI7I.png)
Title: Re: VUMeter Plugin
Post by: phred on December 10, 2024, 01:19:05 PM
(https://i.imgur.com/IKPSFqb.jpeg)

(https://i.imgur.com/VWOKUrP.jpeg)
Title: Re: VUMeter Plugin
Post by: sveakul on December 10, 2024, 03:52:25 PM
Yikes!  "Too low for zero" (humor!).  No wonder it gave you that struggle.
Title: Re: VUMeter Plugin
Post by: phred on December 10, 2024, 06:20:04 PM
Yikes!  "Too low for zero" (humor!).  No wonder it gave you that struggle.
You mean zero isn't good? :-)
Title: Re: VUMeter Plugin
Post by: Bee-liever on December 10, 2024, 09:01:59 PM
@ Phred
There was supposed to be an updated driver for the Q57 chipset provided by Windows.
If you haven't already, turn on optional updates in windows update to see if it finds that new driver.
Alternatively there is the OpenCL™, OpenGL®, and Vulkan® Compatibility Pack available from https://apps.microsoft.com/detail/9nqpsl29bfff?hl=en-US&gl=US (https://apps.microsoft.com/detail/9nqpsl29bfff?hl=en-US&gl=US)
Title: Re: VUMeter Plugin
Post by: phred on December 10, 2024, 10:27:49 PM
Thanks Bee-liever. I just ran Windows updates and there is no Q57 chipset update. The only driver update available is for Western Digital, which is a portable drive attached to the test machine.

As for the OpenGL Compatibility Pack, I really feel like I'm done trying. But the masochist in me says "keep going." So I've downloaded it and will give it a try shortly and report back.
 
Title: Re: VUMeter Plugin
Post by: sveakul on December 11, 2024, 01:56:43 AM
@ Phred
There was supposed to be an updated driver for the Q57 chipset provided by Windows.
If you haven't already, turn on optional updates in windows update to see if it finds that new driver.
Alternatively there is the OpenCL™, OpenGL®, and Vulkan® Compatibility Pack available from https://apps.microsoft.com/detail/9nqpsl29bfff?hl=en-US&gl=US (https://apps.microsoft.com/detail/9nqpsl29bfff?hl=en-US&gl=US)
Do try Bee-liever's package first which sounds promising:

"This compatibility pack allows more of your favorite OpenCL™, OpenGL®, and Vulkan® apps to run on a Windows 10 or Windows 11 PC that doesn't have these hardware drivers installed by default. If a DirectX 12 driver is installed, supported apps will run with hardware acceleration for better performance. This package supports apps that use OpenCL version 3.0 and earlier, OpenGL version 3.3 and earlier, and Vulkan version 1.2 and earlier."

If we're still going, there's this too, referred to from www.opengl.org:

If your system does not contain a GPU, or the GPU vendor delivers graphics drivers providing OpenGL support that's so old as to be useless to you, you might want to consider installing the Mesa3D OpenGL library on your system to provide OpenGL support.
Mesa3D is a graphics library that provides an OpenGL implementation for multiple platforms. GPU hardware acceleration is supported on some GPUs, with a software (CPU) rendering pipeline generally available as a fallback or alternative rendering method (see Mesa3D Support Matrix).

For beginning developers and others which don't have the time or desire to build Mesa3D libraries from source, here are some pre-built Windows installer (EXE) images. Options are provided to install the Mesa3D OpenGL libraries either system-wide or per-application:
https://github.com/pal1000/mesa-dist-win/releases (https://github.com/pal1000/mesa-dist-win/releases)

At this point though I would have chosen the "what is my time worth?" option here:
https://www.amazon.com/QTHREE-Geforce-210-Graphics-Computer/dp/B0CGV2MP7Z (https://www.amazon.com/QTHREE-Geforce-210-Graphics-Computer/dp/B0CGV2MP7Z)
Title: Re: VUMeter Plugin
Post by: BoringName on December 11, 2024, 04:33:25 AM
I wouldn't bother with the other solutions. The graphics chip doesn't support 3.3 so anything that does provide that functionality, if it's even possible, will do it via software (CPU) and it will run like an absolute dog, especially on something that old.

Get a graphics card or forget about running VUMeter on that machine, it won't be worth the hassle.
Title: Re: VUMeter Plugin
Post by: phred on December 11, 2024, 11:59:00 AM
...or forget about running VUMeter on that machine, it won't be worth the hassle.
I'm pretty sure this is the correct answer.

While I have downloaded the compatibility pack Bee-liever linked to, I have yet to install it. And after a good night's sleep, I'm pretty sure I won't. At least not until I run out of other things to do.

The pack is there and waiting for me to feel inspired, or to punish myself one more time, but now isn't the time.
Title: Re: VUMeter Plugin
Post by: BoringName on December 13, 2024, 02:52:47 AM
Noticed that oops' foo_vis_vumeter version 0.8.0 is now capable of playing hiccup's new meters directly from the *.rar file, complete with the option to use/not use the *.bin settings.

I was going to reply to this the other day but got sidetracked, I think I'd already commented on this before. I got reminded when I checked out the foo_vis_vumeter thread on Hydrogrenaud.io

I have no intention of supporting RAR files. Few things I find more annoying than unpacking a rar file to find it contains more rar/zip files....

That annoyance aside, I get it makes the skin folder neater by allowing the INI file to be packaged with the bin file but I just don't have the motivation to deal with it and workaround the issues it will cause.

I noticed oops has been doing a few improvements and while I haven't played around with his plugin recently to see what they are, I'll say at this point I don't intend for VUMeter to mirror everything available in foobar, I have little interest in adding any kind of tweak settings beyond what already exist. I'm also conscious of the fact that anything I change will probably result in oops getting a request to support it as well.

I did see a screenshot where someone had the left meter in the bottom left corner and the right meter in the bottom right corner of the UI, not sure how I could implement that without running a second instance of VUMeter but that's probably next on the agenda. I did try the lazy way of loading the plugin twice by renaming the DLL but that didn't go so well.... I'll have to research if one plugin can exist in 2 separate panels or create a second VUMeter that uses a separate config.
Title: Re: VUMeter Plugin
Post by: sveakul on December 13, 2024, 10:23:09 AM
Nobody expects you to mirror the oops plugin in anyway.  I think you tend to misinterpret "informational" posts as "expectational."  To me it seemed like a compliment to you and hiccup that oops had added compatibility with the bin file.  At one time the AIMP skins needed to be in folders not zips, which is why I made that one question to you about extending that concept to rar's.  Instead we have the better, MORE useful feature of having the plugin being to switch a BIN to LZMA compression on its own, AND combine separate BIN parts into one.  I'll take that any day of the week.

Forget about connecting to foobar's plugin, and if they choose to connect to yours it's an acknowledgement of your skills.  Also, IMO the last thing we need is second panels or "tilts" etc. etc.  Your plugin seems to me like a fully featured, "done deal," the product of an extreme amount of work and given away for free.  Thank goodness we have developers like you and kamen working in MusicBee.
Title: Re: VUMeter Plugin
Post by: phred on December 13, 2024, 02:02:35 PM
Forget about connecting to foobar's plugin, and if they choose to connect to yours it's an acknowledgement of your skills.  Also, IMO the last thing we need is second panels or "tilts" etc. etc.  Your plugin seems to me like a fully featured, "done deal," the product of an extreme amount of work and given away for free.  Thank goodness we have developers like you and kamen working in MusicBee.
A real loud shout-out to BoringName and agreeing 100% with sveakul's comment.
Title: Re: VUMeter Plugin
Post by: BoringName on December 14, 2024, 03:29:08 AM
I think you tend to misinterpret "informational" posts as "expectational."

Well, after you mentioned it a second time I figured you were dropping a hint :)

Instead we have the better, MORE useful feature of having the plugin being to switch a BIN to LZMA compression on its own, AND combine separate BIN parts into one.

That's another reason I don't want to mess around with RAR files, aside from adding more overhead when loading skins, It would also mess up that functionality.

Also, IMO the last thing we need is second panels or "tilts" etc. etc.

I am happy with where it's at right now but I think being able to split the meters would be a good thing for skin\theme creators so If I can pull that off without having to run a second instance of VUMeter I will. While a second instance would probably work, it's a messy workaround and would require maintaining 2 separate sets of code and I'm not going to do that.
Title: Re: VUMeter Plugin
Post by: BoringName on December 16, 2024, 10:03:38 AM
I think being able to split the meters would be a good thing for skin\theme creators so If I can pull that off without having to run a second instance of VUMeter I will.

So this isn't happening. To be honest I didn't even try, just thinking about the logistics of it all was enough for me to dismiss the idea. If it gets to a point where I won't be updating the plugin anymore other than to keep it working with Musicbee changes, I might supply a separate version that uses different naming conventions for anyone really keen on running 2 instances of the plugin (assuming it actually works). Currently I'm not prepared to maintain 2 sets of code.

For now it would be possible to create a wide skin that goes into the bottom panel with the meters at each end. You just wouldn't be able to have any elements in between the meters, that space would have to be filled with the skin.
Title: Re: VUMeter Plugin
Post by: sveakul on December 16, 2024, 10:25:48 AM
Please don't waste any more time considering this, nobody needs more than one VU Meter, and that one can be changed at will to a hundred different types with a couple of clicks.  Some people just like "decorating" their PCs to look like Santa's workshop, you don't have to accomodate that.  What we have right now is like a miracle compared to what we had a year ago.  People who want to use additional visual tools should get kamen's sadly overlooked CESpectrum which has dozens of relevant and carefully engineered settings, variables, placement in floating or fixed widows, etc.

The last visual element I would like to see for MB is the ability to assign/place specific VST plugin GUI's to fixed or floating windows, with their adjustments made there reflected real-time in the audio.  That would be my recommendation for the next application of your coding genius if you felt like taking it on.  However, considering the "shakiness" of the current VST hosting interface, changes may need to made there first to increase its robustness and versatility with various VST plugin designs.
Title: Re: VUMeter Plugin
Post by: BoringName on December 17, 2024, 11:03:25 PM
The last visual element I would like to see for MB is the ability to assign/place specific VST plugin GUI's to fixed or floating windows,

I think you are out of luck there in regards to someone else developing a plugin for that. Considering VST Effects Support (https://www.getmusicbee.com/addons/plugins/16/vst-effects-support/) needs to be installed just to load them, I think Steven would need to add a dockable panel element to that plugin to get the functionality you want.
Title: Re: VUMeter Plugin
Post by: hiccup on February 14, 2025, 07:03:50 PM
So...

After taking a break using and testing the vumeter plugin, I gave it a new shot today.
I'm happy to say that the previously reported delays and slow-motion activity of the needle seems to have disappeared.

I wrecked my brain what might have caused it before, but I come up empty.
Perhaps some failed Windows update, other processes interfering, I have no clue whatsoever.

Anywayz, it seems to be working again.

But, I got several successive pop-up errors after installing the plugin on a spanking clean portable install of MusicBee 3.6 (using Options > Plugins > Add plugin…)

(https://i.imgur.com/nEFjCNo.png)

(https://i.imgur.com/eS9SBzK.png)

(https://i.imgur.com/Gm0CXKZ.png)

Is this just me?
Shouldn't it start with some default VU meter?
Title: Re: VUMeter Plugin
Post by: hiccup on February 16, 2025, 05:56:41 PM
And a heavily OCD infused comment:
There is an entry for 'Vertical Display', which can be checked or unchecked.

My brain tells me it would prefer two separate entries:
- Horizontal Orientation
- Vertical Orientation

How far have we come that it is now only things like this I can come up with.  ;-)

PS
I just tried some of my VU meter skins on foobar2000. They didn't function very well, and I got an instant headache only looking at the options trying to improve on that.
It makes me appreciate that 'our' plugin and VU meters 'just work' with maybe only some minimal effort by the user.

edit
I am also wondering if it wouldn't be better if 'Use Skin Default' would be checked by default.
When a skin creator made the effort to create an ini for their skin, why not use it by default?
Title: Re: VUMeter Plugin
Post by: sveakul on February 16, 2025, 10:30:34 PM
I just tried some of my VU meter skins on foobar2000. They didn't function very well, and I got an instant headache only looking at the options trying to improve on that.
It makes me appreciate that 'our' plugin and VU meters 'just work' with maybe only some minimal effort by the user.

edit
I am also wondering if it wouldn't be better if 'Use Skin Default' would be checked by default.
When a skin creator made the effort to create an ini for their skin, why not use it by default?
Your A-47 Accuphase with BIN/INI is working like a charm right now on foobar v2.24.1 x64; beautiful RMS-area needle response and the red peak lights respond using level "mixed"--change to "peak" and the needles AND lights follow the peaks.  The settings I am using with Layout "Left and Right Vertical" are:

(https://i.imgur.com/RpB3S0y.png)

Don't think that your skins aren't being used and sought-after by Foobar users concerned with quality.  BTW, I stopped with version .91 of their plugin after it seemed further development was being directed more and more at a few users' exotic needs and I was concerned on the effect on the core performance of the meter rather than compatibility with other panel formats, transparency etc.

I agree that in MusicBee the option to use a skin default if present should be checked by default.  And, I find the supplied adjustable settings perfectly adequate and basically "set-it-and-forget-it."

Question:  I have all of hiccup's calibrated meters from the AIMP zipped analog format before they were changed over to BIN/INI.  Is there any reason to keep both formats of the same skins?

I've noticed no general glitches, I am using 2.6.0 since I was not experiencing the skin folder problems that were driving phred crazy.
Title: Re: VUMeter Plugin
Post by: BoringName on February 16, 2025, 10:44:16 PM
New VersionVUMeter2.6.3.zip (https://www.mediafire.com/file/4vtcsvinfqg5goh/VUMeter2.6.3.zip/file)

Changes
- Use Skin Defaults is now enabled by default for fresh installs
- Fixed a regression bug that prevented a skin from loading on fresh installs.

The Vertical Display is going to remain a single option.

The settings I am using with Layout "Left and Right Vertical" are:

Looking at all those settings makes me wince, good on him providing all that but I'm glad I didn't go down that route.

Be interesting to know how many users actually take the time to fine tune it and how many there are. The last version of VUMeter released at the start of December has over 700 downloads.
Title: Re: VUMeter Plugin
Post by: hiccup on February 17, 2025, 04:18:52 PM
Thanks!  I imagine you meant to say "v2.6.3" for the meter version.
Nope, the improved needle action came with 2.6.2

Quote from: sveakul
Your A-47 Accuphase with BIN/INI is working like a charm right now on foobar v2.24.1 x64; beautiful RMS-area needle response and the red peak lights respond using level "mixed"--change to "peak" and the needles AND lights follow the peaks

Don't think that your skins aren't being used and sought-after by Foobar users concerned with quality
That's nice to hear.

Quote from: sveakul
Question: I have all of hiccup's calibrated meters from the AIMP zipped analog format before they were changed over to BIN/INI. Is there any reason to keep both formats of the same skins?
To be clear, those 'calibrated' meters were created during the earliest development of the plugin, and I created them mainly for the purpose of testing and learning.
Later on I came to understand that due to the nature of VU metering, a VU meter can never really be described as being 'calibrated', so I then removed these versions and descriptions and replaced them with newer versions that perform better for their purpose.

So I would recommend not using them (nor distribute them), but use the newer officially released and supported versions instead.

Regarding differences between AIMP vs foobar2000 versions, the main difference will probably be with the logarithmic curve that the needle travels. I can only suggest to just use the version that you like best.
After all, their main purpose in MusicBee is eye-candy, which is very different from what VU meters are used for in audio recording and production.
Title: Re: VUMeter Plugin
Post by: sveakul on February 18, 2025, 03:05:19 AM

Nope, the improved needle action came with 2.6.2
OK! When BoringName mentioned "There is no point installing this version unless you are having similar issues to phred" (the deal with locating the skin directory)  I figured he hadn't been doing the "innards work" with that one, dang it.  This is paranoid now, but I assume those improvements were carried over into 2.6.3?

Thanks for the explanation on the calibrated versions.  I re-downloaded all of them in BIN/INI.
Title: Re: VUMeter Plugin
Post by: BoringName on February 18, 2025, 05:17:36 AM
OK! When BoringName mentioned "There is no point installing this version unless you are having similar issues to phred" (the deal with locating the skin directory)  I figured he hadn't been doing the "innards work" with that one, dang it.  This is paranoid now, but I assume those improvements were carried over into 2.6.3?

I'm not actually sure what I changed. I was making changes to try and solve Phred's problem at the time but all I've got in the notes is Misc changes.... With all the crap I've got going on these days I should probably get up to speed with Github so I can keep a better history, I'm half arsing it at the moment.
Title: Re: VUMeter Plugin
Post by: hiccup on February 18, 2025, 07:11:34 AM
I'm not actually sure what I changed.
Thinking back, I believe we did all the discussion and testing that needle action improvements over PM,

So I now understand why sveakul wasn't sure (and could not know) what I was talking about.
Title: Re: VUMeter Plugin
Post by: SymptomoftheUniverse on April 16, 2025, 10:15:48 PM
When I try to download VUMeter with MediaFire, it redirects me elsewhere saying that the download link isn't safe. It hasn't done this before, but I wanted to bring it up in case it's a serious matter.

EDIT: Even after proceeding, the link doesn't seem to work.

EDIT 2: It works now.
Title: Re: VUMeter Plugin
Post by: BoringName on May 02, 2025, 06:56:08 AM
Mediafire is just a simple solution for me. I don't get all the spammy crap because I have a piHole on the network and use ad blockers in my browser so I guess it's possibly unpleasant for some users?

I get zero income from the stuff I release here so in turn I'm going the free option. If there is a better free option available I'll consider it.
Title: Re: VUMeter Plugin
Post by: sveakul on May 02, 2025, 08:30:07 AM
Mega has a 20GB free account option and is easier on the BS:
https://mega.io/pricing (https://mega.io/pricing)
Title: Re: VUMeter Plugin
Post by: SymptomoftheUniverse on May 04, 2025, 09:49:39 PM
Mediafire is just a simple solution for me. I don't get all the spammy crap because I have a piHole on the network and use ad blockers in my browser so I guess it's possibly unpleasant for some users?

I get zero income from the stuff I release here so in turn I'm going the free option. If there is a better free option available I'll consider it.

From what I can remember, the download issue ended up being that my ISP implemented some AI crap that misidentified the link as dangerous. But I let it go through and haven't had any issues since. The only thing I've noticed aside from that is the Vertical Display option seems to need MusicBee to restart to appear properly. But I'm not sure if that's intentional or a bug.
Title: Re: VUMeter Plugin
Post by: BoringName on May 05, 2025, 12:03:27 AM
The only thing I've noticed aside from that is the Vertical Display option seems to need MusicBee to restart to appear properly. But I'm not sure if that's intentional or a bug.

There is a graphical glitch/bug where sometimes the VU Meter window will be partially black. I could never figure out the cause. It's pretty much guaranteed to happen if you make the VU meter window larger than 50% of the screen in width.

You should be able to fix it without a restart by adjusting the size of the VU Meter window slightly.
Title: Re: VUMeter Plugin
Post by: hiccup on June 12, 2025, 08:51:07 PM
Same as I reported before here (https://getmusicbee.com/forum/index.php?topic=41692.msg230423#msg230423), on a new install of MusicBee 3.6.9285P I am again experiencing heavy slow downs, rendering VUMeter unusable.

- loading a VU meter skin takes a long time
- the needle moves much delayed and in slow-motion
- MusicBee itself becomes laggy (e.g. dragging the whole MB panel goes shaky with some delay)

But this time I think I noticed something valuable.
It seems related to the size of a library.

The slow-down is happening on my main library containing some 5000+ albums.
When I open a small library of e.g. 3 albums the problem goes away and everything runs smooth.
Switching back to the large library, and the slow-down is immediately present again.

What is also interesting is that the CPU load varies a lot depending on the size of the library. (when using the plugin)

- no VU meter: approx. 0.1%
- with VU meter:
    small library: approx. 3%
    large library: 10% and higher (it also saying: 'Power usage: Very high')

I know you are currently busy with other things, but I hope this will give you some valuable clue when you return and are able to take a look at this.