Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_vis_vumeter (Read 39461 times) previous topic - next topic
0 Members and 17 Guests are viewing this topic.

Re: foo_vis_vumeter

Reply #200
Firstly, sorry for my huffy post (#198). I did not see your "Try 0.7.7 " post above it before posting.

Anyway, I've been using 0.7.7 quite a bit and it's "90%" working but there is an issue with the SHIFT VIEW "skin loader" menu. It's only able to control/select only one VU Meter.

Let's say you have VU METER 1 and VU METER 2... If you change the skin of VU METER 2, via the SHIFT main\view\visualization\Analog VU Meter skins, it will change VU METER 1 instead.

VU METER 2 can't be changed at all. (It can only be changed if you right click on the actual meter).

If you want you can view my 1 minute video to demo the problem. Once this is solved everything will be working 100%. (Well, there might be more tweaks here and there, but you know what I mean)

www.youtube.com/watch?v=hY6kH0180OI

 

Re: foo_vis_vumeter

Reply #201
Anyway, I've been using 0.7.7 quite a bit and it's "90%" working but there is an issue with the SHIFT VIEW "skin loader" menu. It's only able to control/select one VU Meter.
Is this just a Columns UI issue, or does it extend to DUI?  I got lost back there with the screenshots.

Re: foo_vis_vumeter

Reply #202
Anyway, I've been using 0.7.7 quite a bit and it's "90%" working but there is an issue with the SHIFT VIEW "skin loader" menu. It's only able to control/select one VU Meter.
Is this just a Columns UI issue, or does it extend to DUI?  I got lost back there with the screenshots.

I'm not sure, I don't use DUI. In any case, everything has been solved except the one issue I mentioned above, which won't affect most users...but it does need addressing at some point.

Re: foo_vis_vumeter

Reply #203
Guesses for a starting point:
Mode: Stereo, Levels: RMS or Mixed, Jitter: 0.30, Decay: 1.00 (Normal; note the multiplier), Rise: 0.1,
Gain: need to adjust per track, Window: adjust to your liking (I think the closest would be around 100ms)

Here is a detailed explanation of each tuning parameter. The fastest way to match their behavior it is to use some samples that would test the impulse response repeatedly and in isolation. For example, testing that way one can deduce that Decay and Rise are equal in the older component. Use a different and accurately-measuring skin as that Accuphase one is unfortunately not.

Thanks for the tuning tips, and also the idea to test with dirac impulse. :)

.

Re: foo_vis_vumeter

Reply #204
Firstly, sorry for my huffy post (#198). I did not see your "Try 0.7.7 " post above it before posting.

Anyway, I've been using 0.7.7 quite a bit and it's "90%" working but there is an issue with the SHIFT VIEW "skin loader" menu. It's only able to control/select only one VU Meter.
Forget about it. On the menu, that is a deliberate decision to ONLY use the first instance. In a global menu, as opposed to the right-click context menu, how does one select which instance to target. So, I just picked instance 0. Also goes back to the menu populating question you asked before: if there are no instances, then the menu will not be drawn. Am I wrong in my interpretation of how the original works?

Is this just a Columns UI issue, or does it extend to DUI?  I got lost back there with the screenshots.
There is nothing CUI-exclusive here. These updates work across UIs. But as always, it will work best on the configuration I battle-test day-to-day: foobar2000 2.24 x64 on Windows 11 (Version 24H2, Build 26100.2454) using Default UI. It is a relatively simple setup from what you all got going on. And at the risk of oversharing, the only components that I run other than the defaults are: foo_vis_milk2, foo_vis_spectrum_analyzer, foo_input_sacd, foo_vis_vumeter, foo_wave_minibar_mod

Thanks for the tuning tips, and also the idea to test with Dirac impulse.
No problem, just watch out I made a mistake on the Jitter. That amount seems way too high, you probably want at maximum to use about half that (0.15).

Re: foo_vis_vumeter

Reply #205
One small bug to report ...

I set the panel skin directory in the advanced settings, and forgot to put the last backslash.




When foobar is started, it will throw the error below, and get stuck in an infinite loop throwing the same error. foobar cannot start.



My suggestion is that after throwing the error, user clicks "Ok", the component gives up, and yields control back to foobar. This allows the user to go correct the error in the advanced settings. Just a suggestion.

.

Re: foo_vis_vumeter

Reply #206
One small bug to report ...
I set the panel skin directory in the advanced settings, and forgot to put the last backslash.
When foobar is started, it will throw the error below, and get stuck in an infinite loop throwing the same error. foobar cannot start.
My suggestion is that after throwing the error, user clicks "Ok", the component gives up, and yields control back to foobar. This allows the user to go correct the error in the advanced settings. Just a suggestion.
Unsurprising there is a problem like this. I didn't test this too much since I find it simpler to use symlinks. I'll try to fix it.

Re: foo_vis_vumeter

Reply #207
Firstly, sorry for my huffy post (#198). I did not see your "Try 0.7.7 " post above it before posting.

Anyway, I've been using 0.7.7 quite a bit and it's "90%" working but there is an issue with the SHIFT VIEW "skin loader" menu. It's only able to control/select only one VU Meter.
Forget about it. On the menu, that is a deliberate decision to ONLY use the first instance. In a global menu, as opposed to the right-click context menu, how does one select which instance to target. So, I just picked instance 0. Also goes back to the menu populating question you asked before: if there are no instances, then the menu will not be drawn. Am I wrong in my interpretation of how the original works?

Well, just like having "unlimited" VU Meters (which you implemented in 0.7.5), the "skin loader" should be able to control each one of them. That's the way it is with the original VU Meter, as shown in my video. If you're just going to use instance 0, it's probably best to only show the one folder/vu meter, to avoid confusion. Showing all of them isn't necessary.

Anyway, I'll leave it up to you. I won't nag you anymore. :)


Re: foo_vis_vumeter

Reply #208
Well, just like having "unlimited" VU Meters (which you implemented in 0.7.5), the "skin loader" should be able to control each one of them. That's the way it is with the original VU Meter, as shown in my video. If you're just going to use instance 0, it's probably best to only show the one folder/vu meter, to avoid confusion. Showing all of them isn't necessary.

Anyway, I'll leave it up to you. I won't nag you anymore.
Not a nag. Just explain for me how you expect it to work so that it works that way. There is a single global menu. When you select a skin in the menu, what do you want to change? How do I deduce the intent? To start with, I tried to follow the exact naming and layout of the original DLL to not break and make 1:1 reuse of existing JavaScript? code. I'm fine with breaking changes going forward but get me closer to understanding the expected behavior. Maybe if you can provide the commands that are being run, I can build the menu/behavior accordingly.

Re: foo_vis_vumeter

Reply #209
And just as an extra, the menu group functionality in the original DLL is not completely independent per instance. Just tested it out. Here is what I think is occurring. Panels that are assigned a skin from the same Group/Folder MUST use the exact same skin. It follows then that if you want to use different skins between different instances, the skins MUST reside in different folders. Using either context or main menu to change the skin changes all instances using the same folder skin together regardless of what instance is clicked. That is how/why it has the enabled flag (dot next to selected skin) though often that is wrong. Conclusion: the existing behavior is treating ALL instances using the same folder and consequently skin as a "group" and applies skin change operations to the entire group. Other instance parameters, such as layout and aspect ratio remain unchanged.

Notes:
<Default> always exists because the Model 702 skin is included as a resource in the DLL.
The default group is where all the skins in the same folder as the DLL are grouped.
Nesting is only one level.
The main menu cannot change an instance to another group. Only the context menu can. Trying to do so has no effect.
The main menu can only change the skin of one group to another. If a group has only one skin, the main menu is pointless.
Changing an instance to another group, if there is already an instance on that group, the new instance takes on the skin of the existing instance of that group.

Which parts of this functionality/behavior do your tools rely on? With that said, what is it you want to happen?

Re: foo_vis_vumeter

Reply #210
Original VU Meter:



oops VU Meter:



In the images above I have DarkOne4PEAK in the center and DarkOne4VU at the left and right sides.

The old VU Meter changes the contents of both DarkOne4PEAK and DarkOne4VU via the below script.

Your VU Meter can only change one group so it's only changing one of the VU Meters, in this case the center one (DarkOne4PEAK). Furthermore, when the second fb.RunMainMenuCommand is executed for DarkOne4VU, it only affects the center one, so it changes DarkOne4PEAK to DarkOne4VU.

Quote
   if (name == "DisplayColour") {
          window.SetProperty("DisplayColour", info);
          display_system.InitColours();
          display_system.setColours();
         fb.RunMainMenuCommand("View/Visualizations/Analog VU Meter skins/DarkOne4PEAK/" + vu_style + " " + display_system.display_arr[display_system.display_combi_colour]);
           fb.RunMainMenuCommand("View/Visualizations/Analog VU Meter skins/DarkOne4VU/" + vu_style + " " + display_system.display_arr[display_system.display_combi_colour]);
            window.Repaint(g_all);
      }

Another short video link if the animated gifs aren't doing it...

www.youtube.com/watch?v=2JvleaZSPNc

Re: foo_vis_vumeter

Reply #211
Code: [Select]
		if (name == "DisplayColour") {
    window.SetProperty("DisplayColour", info);
    display_system.InitColours();
    display_system.setColours();
fb.RunMainMenuCommand("View/Visualizations/Analog VU Meter skins/DarkOne4PEAK/" + vu_style + " " + display_system.display_arr[display_system.display_combi_colour]);
        fb.RunMainMenuCommand("View/Visualizations/Analog VU Meter skins/DarkOne4VU/" + vu_style + " " + display_system.display_arr[display_system.display_combi_colour]);
            window.Repaint(g_all);
}
Lovely! This and the animations are immensely helpful to figure out what to target.


Re: foo_vis_vumeter

Reply #213
One small bug to report ...
I set the panel skin directory in the advanced settings, and forgot to put the last backslash.
When foobar is started, it will throw the error below, and get stuck in an infinite loop throwing the same error. foobar cannot start.
My suggestion is that after throwing the error, user clicks "Ok", the component gives up, and yields control back to foobar. This allows the user to go correct the error in the advanced settings. Just a suggestion.
Unsurprising there is a problem like this. I didn't test this too much since I find it simpler to use symlinks. I'll try to fix it.
Had to laugh, that one bit me too when I first installed the DX12 meter!!  The original one works without the final backslash for the skin directory.  I think most people figured it out pretty fast or there would have been more reports of it by now.  BTW, while I prefer the established method of spelling out the path in Advanced, experimenting with the Junction 1.07 tool (https://learn.microsoft.com/en-us/sysinternals/downloads/junction) I was able to create a working symlink folder connection from a zero fore-knowledge position.  Took a bit to work out that the original skin folder is the one that needs to be re-created as a symlink to the new shared one.  First I put all the skins in the external folder, then deleted the default one and re-created the latter with Junction with the original name/location but as a symlink.  Works fine with Windows 11 24H2.

Re: foo_vis_vumeter

Reply #214
Can you tell me why foobar doesn't see the plugin update? I have to download and install it manually.

Re: foo_vis_vumeter

Reply #215
Can you tell me why foobar doesn't see the plugin update? I have to download and install it manually.
Like many other plugins (ESLyric etc.), it hasn't been added to the official Components Registry.

Re: foo_vis_vumeter

Reply #216
Made a quick peak meter using mostly MS Paint.  Has a range of -60 dB to ±0 dB (foobar2000 for reference has a range -60 dB to +6 dB).  Each block is about 6 dB apart.  It's what I was able to get working after all.

Some features is that anything below -60 dB will have a single column of blue blocks indicating infinite.  Anything +0.1 dB or above will cause all blocks to turn red.  Includes the source files for those that like to mod stuff.

Things I wanted to do but couldn't:
- I wanted to do -3 dB spacing as that would of been more interesting with ReplayGain turned on but ran into problems getting it to work right below -54 dB.
- The range was going to be larger but I also encountered limitations there as well.
- Wanted to do multichannel as well.

Re: foo_vis_vumeter

Reply #217
Original VU Meter:



oops VU Meter:



In the images above I have DarkOne4PEAK in the center and DarkOne4VU at the left and right sides.

The old VU Meter changes the contents of both DarkOne4PEAK and DarkOne4VU via the below script.

Your VU Meter can only change one group so it's only changing one of the VU Meters, in this case the center one (DarkOne4PEAK). Furthermore, when the second fb.RunMainMenuCommand is executed for DarkOne4VU, it only affects the center one, so it changes DarkOne4PEAK to DarkOne4VU.

Quote
   if (name == "DisplayColour") {
          window.SetProperty("DisplayColour", info);
          display_system.InitColours();
          display_system.setColours();
         fb.RunMainMenuCommand("View/Visualizations/Analog VU Meter skins/DarkOne4PEAK/" + vu_style + " " + display_system.display_arr[display_system.display_combi_colour]);
           fb.RunMainMenuCommand("View/Visualizations/Analog VU Meter skins/DarkOne4VU/" + vu_style + " " + display_system.display_arr[display_system.display_combi_colour]);
            window.Repaint(g_all);
      }

Another short video link if the animated gifs aren't doing it...

www.youtube.com/watch?v=2JvleaZSPNc

Would you be kind enough to send me or upload your configuration (FCL) here for Darkone? I find it literally fantastic especially the first beautiful beautiful beautiful. THANK YOU. Umberto

Re: foo_vis_vumeter

Reply #218
Thanks for the tuning tips, and also the idea to test with dirac impulse. :)

I think I got it close enough. Sharing the tuning parameters in case it helps others:

Code: [Select]
Mode	Stereo
Levels RMS
Range 0.00
Decay 1.25
Rise   0.17
Jitter 0.11
Gain +9dB
Window 40ms
FPS      25



.

Re: foo_vis_vumeter

Reply #219
Use a different and accurately-measuring skin as that Accuphase one is unfortunately not.
Boxerfan88 and oops:  hiccup has done a re-calibrated BIN version of that skin, renamed "Accuphase A-47", that can be downloaded from his post here at the MusicBee forum:  https://getmusicbee.com/forum/index.php?topic=41767.msg228839#msg228839

Thank you! I will check out the new skin.

Re: foo_vis_vumeter

Reply #220
Err ... how come got dancing tea pot?
I don't know how it got activated ... it's cute though ...


Re: foo_vis_vumeter

Reply #221
Err ... how come got dancing tea pot?
I don't know how it got activated ... it's cute though ...
Weird, haha!  I think oops mentioned he put a new Easter egg in the latest foo_vis_vumeter, you must have activated it somehow!  Does it go away on a restart?

Do try the A-47 meter, the movement is great.  The center portion with the red LEDS is marked slightly different than A-46.  Also if you choose "mixed" from Levels, the red 0db/+3dbs LEDs will light independently for peaks while the needle shows RMS.

Re: foo_vis_vumeter

Reply #222
Yep, that is one of the Easter eggs! It does stay on after the restart. Use Esc or in the context menu disable Vertical Sync to deactivate it.

If you have a ".dds" file handy (in ABGR8 format), you can put it in <profile>\vumeter\textures\vu.dds to texture the objects if you don't like the plain white.

Re: foo_vis_vumeter

Reply #223
Ah, I found out how I activated it — debug!

Now I’m debugging why the component is so sluggish on my main 64bit install. <10fps average! The loudness peak meter also stuttering. The GPU is only <5% utilised.

I installed a fresh 64bit test copy , put both vu & loudness peakmeter, no problems at all. Getting just under 40fps. Really odd. Am still bug hunting…

Re: foo_vis_vumeter

Reply #224
Ah, I found out how I activated it — debug!
FYI, the debug checkbox function does nothing useful on a release build, you won't get additional insights that way--that is why I made it the "easy" way to activate the teapot. There is one slightly more scavenger hunt-like way using the keyboard.