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 82563 times) previous topic - next topic
0 Members and 54 Guests are viewing this topic.

foo_vis_vumeter

The updated foo_vis_vumeter is a reimagining of the existing analog VU meter component. It decodes panels from the same ".bin" files and it renders using DirectX 12.

It is available in the components repository.

Enjoy!

Re: foo_vis_vumeter

Reply #1
@oops
Thank you for a good job.

Windows 11 Home
VU Meter Visualisation 0.1.0-beta (foo_vis_vumeter) 2024-10-07
foobar2000 v2.24 preview 2024-10-04 64-bit

\profile\vumeter

AKAI-Grey


2sony, Neutron


Foxboro


Sony-Blue

SHURE SRH1840, SENNHEISER HD660S2, SENNHEISER HD620S, SENNHEISER HD 490 Pro Plus, beyerdynamic DT 1990 PRO, HiFiMAN Edition XS, Bowers & Wilkins P7, FiiO FT5, 水月雨 (MOONDROP) 空鳴 - VOID, Nakamichi Elite FIVE ANC, SONY WH1000XM5 (made a Upgrade/Balanced Cable by myself)


Re: foo_vis_vumeter

Reply #3
@Meisfu
https://hydrogenaud.io/index.php/topic,124454.msg1051855.html#msg1051855

> I don't know how to adjust it, but when using the VU Meter Skin, the black background shows white in the corners.

Context menu > Options > Rounded Corners
SHURE SRH1840, SENNHEISER HD660S2, SENNHEISER HD620S, SENNHEISER HD 490 Pro Plus, beyerdynamic DT 1990 PRO, HiFiMAN Edition XS, Bowers & Wilkins P7, FiiO FT5, 水月雨 (MOONDROP) 空鳴 - VOID, Nakamichi Elite FIVE ANC, SONY WH1000XM5 (made a Upgrade/Balanced Cable by myself)

Re: foo_vis_vumeter

Reply #4
The updated foo_vis_vumeter is a reimagining of the existing analog VU meter component. It decodes panels from the same ".bin" files and it renders using DirectX 12.

It is available in the components repository.

Enjoy!
Great work, after a simple test, it is better than the original component!
One suggestion, can the vumeter folder support subfolders to facilitate the classification, storage and reading of *.bin files?

Re: foo_vis_vumeter

Reply #5
Thank you! This is indeed excellent and welcome news. One of the last niche pieces of 64bit development.
Quis custodiet ipsos custodes?

Re: foo_vis_vumeter

Reply #6
@oops  @Air KEN
Perfect has been resolved, thanks again!

Re: foo_vis_vumeter

Reply #7
@marc2k3
Thanks!

Re: foo_vis_vumeter

Reply #8
As there is no readme in the new beta version, attached is an abridged version from the last alpha that includes helpful information on the fine-tuning options available in the context menu.

Also, just to clarify, after installing the plugin it creates the empty folder "vumeter" in path foobar2000/profile.  You must first populate that folder with meter skin(s) to see anything in the foo_vis_vumeter panel after adding it in layout editing mode (element appears under Playback Visualization as "VU Meter (DirectX 12)").

Meters can be downloaded at TomTec's site: https://tom2tec.wordpress.com/foobar2000-vu-meter-skins-gallery/ .  You must extract the *.bin files from any zip container directly into the skin folder, it will not read directly from zips/rars.  Unlike the old 32-bit version there are no tuning settings in Foobar Prefs/Advanced.

Finally, thank you oops!  Especially appreciate the effort that went into the LKFS level option and the general sharpness of the skin display.  I am using Foobar v2.2 latest 64-bit preview.


Re: foo_vis_vumeter

Reply #9
If the VU Meter skin contains neutron_light / neutron_light_a, there is a high probability that it will cause a crash, my player crashes all happen converting to these two skins.

Re: foo_vis_vumeter

Reply #10
As there is no readme in the new beta version, attached is an abridged version from the last alpha that includes helpful information on the fine-tuning options available in the context menu.
Spoiler (click to show/hide)
Finally, thank you oops!  Especially appreciate the effort that went into the LKFS level option and the general sharpness of the skin display.  I am using Foobar v2.2 latest 64-bit preview.


Thank you @sveakul.

Re: foo_vis_vumeter

Reply #11
The updated foo_vis_vumeter is a reimagining of the existing analog VU meter component. It decodes panels from the same ".bin" files and it renders using DirectX 12.

It is available in the components repository.

Enjoy!
Hi @oops,

Wow, wow, you brought back one of the best fb2k components! Especially with more features  and this component is now under ‘control’.

Rome was not built in a day, and in my humble opinion, more features and updates are already in your mind, in addition to its advanced  graphics API DirectX12, 64bit capable, peak, RMS and LKFS option . . .
The king is back.

Thank you very much.

P.S. I still hope that one day, @pqyt can manipulate the web_view component to redirect the audio path, allowing streaming platforms like Tidal and Spotify to come back under "fb2k’s umbrella". As such, along with VU_Meter (DirectX12) will bring more joyfulness and happiness to us.

Re: foo_vis_vumeter

Reply #12
CRASH!!!

Windows 11 Home 64bit 24H2 build 26100.1882 Windows Feature Experience Pack 1000.26100.23.0

DirectX Version: DirectX 12

Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz (8 CPUs), ~4.0GHz

NVIDIA GeForce GTX 960




Re: foo_vis_vumeter

Reply #13
@Meisfu
"neutron_light" doesn't load and crashes.
So I deleted it from the vumeter folder.
It wasn't a skin I was particularly attached to.

@2tec
Thank you for creating such an amazing page (Skin *.bin).

My vumeter folder (Skin .bin).
https://mega.nz/file/kSFDUIgS#vHDSdsNsQJcYe6f0NXLwWLxvORPBZ4LDmMLNrercj_Q
SHURE SRH1840, SENNHEISER HD660S2, SENNHEISER HD620S, SENNHEISER HD 490 Pro Plus, beyerdynamic DT 1990 PRO, HiFiMAN Edition XS, Bowers & Wilkins P7, FiiO FT5, 水月雨 (MOONDROP) 空鳴 - VOID, Nakamichi Elite FIVE ANC, SONY WH1000XM5 (made a Upgrade/Balanced Cable by myself)

Re: foo_vis_vumeter

Reply #14
the problem is that inside JSP3 i have only Vu Meter and not Vu Meter( windows 12 ) ?
i can see the vumeter only in external windows ?

Re: foo_vis_vumeter

Reply #15
Thanks for creating and sharing this plugin oops, it's an impressive piece of work.

I'm trying to get some better understanding (and some grip) on the needle positions at different loudness levels.

When the plugin is set to use 'peak' and a 1khz sine-wave of 0dB is playing, I assume that the needle should point at the 0 dB position?
And when the setting is changed to 'RMS', I think the needle should drop to -3 dB on the scale?
Is there a skin that you are using that is accurate in this way and that you can recommend for some further testing?
If such a skin exists, I am guessing the sensitivity should be set at 0.0 to get the expected result?

Re: foo_vis_vumeter

Reply #16
@2tec / Thank you for creating such an amazing page (Skin *.bin).
You're welcome.  I add new meter skins to the list as I find them. There's also a list of Foobar2000 themes and I'm working on a theme gallery,

It's the least I could do given how much Peter and the other developers have done.

Credit should really go to all the meter skin developers who've done such an impressive job for free.
Quis custodiet ipsos custodes?

Re: foo_vis_vumeter

Reply #17
First, new version out. 0.1.1 adds middle click to reset the currently selected tuning parameter only. I also added the dark mode fixes. For now, they are static in that they are set at component launch, will fix that later but using mark2k3's suggestions was the easiest/fastest way to get it to match. Last but not least is the hierarchical directory support. I limit it to 3 levels deep and it supports directory symlinks too in case you want to share a common skins directory for x86 and x64, for example--but don't go too crazy.

@2tec
Thank you for creating such an amazing page (Skin *.bin).
Seconded.

Is there a skin that you are using that is accurate in this way and that you can recommend for some further testing?
If such a skin exists, I am guessing the sensitivity should be set at 0.0 to get the expected result?
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. LKFS uses its own scaling and doesn't map so nicely.

Re: foo_vis_vumeter

Reply #18
I'm writing up a wiki but here is a preview.

What the mouse wheel controls is selected through new "Tuning" menu.
If the changes result in bad state, use the "Options->Reset" option.
The selected mode value can be reset with middle click.

Fine tuning meanings (mouse wheel-controlled):
  • Sensitivity: adds/subtracts from the result of the loudness/peak/RMS calculation result. Default is 0.
  • Decay: sets how fast the needle falls per frame. It is a subtractive factor. Can also be set to predetermined values. Default is 0.01.
  • Rise: sets how fast the needle rises per frame. It is a multiplicative factor. Default is 0.2.
  • Epsilon: sets the minimum loudness change threshold needed for the needle to move. Default is 0.
  • Window: sets the sampling window size in milliseconds. Default is 42.
  • FPS: sets the maximum number of frames rendered per second. Default is 60.
  • Corner: sets the default corner radius width in pixels of the skin image size. Can also be set to on/off. Default is 16.

Other option meanings:
  • Cubic Interpolation: selects between high quality cubic (enabled) and linear (disabled) Direct2D interpolation modes.
  • LKFS: calculates loudness as prescribed in Rec. ITU-R BS.1770-5--except for the 400ms window as that is controlled/fine-tuned above.
  • RMS: calculates root mean square of the samples.
  • Peak: finds the highest (absolute value) sample.
  • Downmix Channels: instructs foobar2000 to combine all channels into one.
  • Vertical Synchronization: disabled and not functional.
  • Lock Aspect Ratio: locks the aspect ratio of the skin.
  • Reset: Resets all options except layout/visual options.
  • Rescan: Rescans panels directory.

The layout options should be self-explanatory.

Preferences > Advanced > Visualisations > VU Meter:
  • Panels directory: <empty> (untested; defaults to <foobar2000 profile folder>\vumeter).

Panel variants verified:
  • Model 702.bin - 702 panel extracted from original DLL resources. This is the hard-coded default.
  • nos.bin - Single panel, uncompressed file.
  • bzip2s.bin - Single panel, bzip2-compressed file.
  • lzmas.bin - Single panel, LZMA-compressed file.
  • leds.bin - Single panel with LEDs, bzip2-compressed file.
  • pl.bin - Single panel with needle and LEDs, bzip2-compressed file.
  • lzma1/lzma2.bin - Individual L/R panels in separate LZMA-compressed files, no space between file name root and number.
  • leds 1/leds 2.bin - Individual L/R panels with LEDs in separate bzip2-compressed files, space between file name root and number.
  • lzmai.bin - Individual L/R panels LZMA-compressed and concatenated into one file.
  • bzip2i.bin - Individual L/R panels bzip2-compressed and concatenated into one file.

Identifying LZMA-compressed heuristic is limited; especially if the skin was compressed outside of VUEditor.
The LZMA file identification is limited it to the default VUEditor LZMA properties so as not to confuse a compressed file with an uncompressed ".bin" file of any width less than 225.
Best results with bzip2-compressed files since they start with an easily identifiable magic number.

Re: foo_vis_vumeter

Reply #19
CRASH!!!

Windows 11 Home 64bit 24H2 build 26100.1882 Windows Feature Experience Pack 1000.26100.23.0

DirectX Version: DirectX 12

Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz (8 CPUs), ~4.0GHz

NVIDIA GeForce GTX 960

Do you mean \profile\vumeter is missing?

What happens when you use this vumeter?

My vumeter folder (Skin .bin).
https://mega.nz/file/kSFDUIgS#vHDSdsNsQJcYe6f0NXLwWLxvORPBZ4LDmMLNrercj_Q
SHURE SRH1840, SENNHEISER HD660S2, SENNHEISER HD620S, SENNHEISER HD 490 Pro Plus, beyerdynamic DT 1990 PRO, HiFiMAN Edition XS, Bowers & Wilkins P7, FiiO FT5, 水月雨 (MOONDROP) 空鳴 - VOID, Nakamichi Elite FIVE ANC, SONY WH1000XM5 (made a Upgrade/Balanced Cable by myself)

Re: foo_vis_vumeter

Reply #20
CRASH DUI.

Only 1 Vu Meter is vibile Left o Right

Two Vu Meters, 1 single VUM Left whit add element in DUI and 1 VUM Right in other add element and CRASH.

Re: foo_vis_vumeter

Reply #21
> Only 1 Vu Meter is vibile Left o Right
> Two Vu Meters, 1 single VUM Left whit add element in DUI and 1 VUM Right in other add element and CRASH.
This is a problem that has been resolved in Alpha 4

It is a good idea to also include the name of the Skin (.bin) and the link.

Please delete the user-components-x64\foo_vis_vumeter folder once.
Delete \profile\vumeter as well.

Then place the following vumeter folder in \profile\vumeter:

vumeter folder (Skin .bin) Tested.
https://mega.nz/file/kSFDUIgS#vHDSdsNsQJcYe6f0NXLwWLxvORPBZ4LDmMLNrercj_Q

Finally, download foo_vis_vumeter-0.1.1 and install it.

foo_vis_vumeter-0.1.1.65534.fb2k-component
https://www.foobar2000.org/components/view/foo_vis_vumeter
SHURE SRH1840, SENNHEISER HD660S2, SENNHEISER HD620S, SENNHEISER HD 490 Pro Plus, beyerdynamic DT 1990 PRO, HiFiMAN Edition XS, Bowers & Wilkins P7, FiiO FT5, 水月雨 (MOONDROP) 空鳴 - VOID, Nakamichi Elite FIVE ANC, SONY WH1000XM5 (made a Upgrade/Balanced Cable by myself)

Re: foo_vis_vumeter

Reply #22
the problem is that inside JSP3 i have only Vu Meter and not Vu Meter( windows 12 ) ?
i can see the vumeter only in external windows ?
This is not a JSP3 sample, it's a separate plugin that after installed will appear in your Prefs/Components list as foo_vis_vumeter.

To install it to a panel you need to go into Layout Editing Mode, where it appears in the UI Element List as "VU Meter (DirectX 12)."  Either make new panel for it via Layout Editing Mode or replace the content of an existing one then Add (or Replace) element and select that one from the list.  If you are not familiar with using Layout Editing Mode, read about it here:
https://wiki.hydrogenaud.io/index.php?title=Foobar2000:Layout_Editing_Mode

Re: foo_vis_vumeter

Reply #23
For now, they are static in that they are set at component launch, will fix that later but using mark2k3's suggestions was the easiest/fastest way to get it to match.

Your UI element must have a notify override..

You can detect colour changes like this...

Code: [Select]
void notify(const GUID& what, size_t, const void*, size_t) final
{
if (what == ui_element_notify_colors_changed)
{
// do stuff
}
}


Re: foo_vis_vumeter

Reply #24
Suggestion: Support multiple vumeter panels in DUI layout