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 10379 times) previous topic - next topic
MordredKLB and 1 Guest are viewing this topic.

Re: foo_vis_vumeter

Reply #100
1.  LKFS level mode seems broke, produces unnaturally low dB values (-20dB) from all plugin types and music.  Previously always read just slightly below RMS,
2.  LEDS on AIMP skins now work correctly
3.  Just a Q on the removal of the "Linear" level option--I had asked previously what that was meant to measure but never got an answer; hate to lose an option without even knowing what it was in the first place!
  • Not broken. In previous versions, before there were preamp gain settings, I artificially boosted the LKFS by +15 dB to move it into the realm of the other modes. I've removed that boost. So, what you're seeing more closely follows the standard. If you look at the table mid-way down this page, you can find what standard mixing levels would be when using LKFS/LUFS in different environments. For streaming (YouTube, Netflix, Apple, Disney) my understanding is that the mixing range is somewhere between -18 and -14 dB.
  • Good. Glad it works as expected.
  • Linear was there when I was trying to improve displaying on non-dB scale panels like for example those modeled around voltmeters or ammeters. In these, 0 dB is meaningless and they should behave more like a 0-100% displays, not logarithmically. It was a way to compress and map the audio range into these scales. You can achieve the exact same effect of the "Linear" mode by using "Peak" and tuning the "Range" (where 0% starts) and "Zero" (where 100% is) settings to control/linearize the full-scale range. For those math-inclined, it is this equation:
    f(t) = c + ((d - c) / (b - a)) * (t - a) maps [a,b] to [c,d]; where a,b are 0,1 and c,d are controlled by range,zero
    Sorry I missed answering this question previously.

An additional clarification on the background since I think this point has been unmentioned in the discussion. The edge sampling is still there because a color is needed to fill the "empty" space in the window. This means the space that is not taken by the panel when the aspect ratio is locked. So, for example, when using a solid color background (bg.png) in AIMP skins that color will be extended to fill the entire window client area not used by the panel.

Re: foo_vis_vumeter

Reply #101
As shown above, what I think will be the final release candidate before a full public release is out: 0.4.0
It includes the last batch of features and fixes and barring any major bugs, the code is frozen. The documentation I'll work to publish next week is based on this feature set.

I've fine-tuned the roots of the galvanometer differential equations to get the needle movement looking as real as I could in both rise and decay. Hope you like it, if not, tune to your heart's content.

In case you want to replicate the original foobar2000 VU meter component behavior and look, the closest settings for that are:
  • Mode: Stereo
  • Levels: RMS
  • Decay: Normal (1.00)
  • Zero: 0.00 frames
  • Range: 0.00
  • Rise: 0.20
  • Jitter: 0.00
  • Gain: 0.00 dB (skin-dependent)
  • Window: 200.00 ms
  • FPS: 60.00 fps
  • Corner: 0.00 pixels
  • Downmix Channels: disabled
  • Cubic Interpolation: disabled

Speaking of the background, some AIMP skins include a background. If it doesn't, the component falls back on the edge sampling method to determine the background color. In oddly-shaped skins, this might not be ideal due to the transparent pixels. Instead of guessing or trying to replicate other music players' behavior, my recommendation is to just add a bg.png file with the appropriate size and colors to the ZIP archive. Any solution I bake into the component will likely be wrong for some skin and it's just easier/quicker to modify the skin.

On the topic of the path to the panels folder, an alternative implementation is to use a symbolic link. Here is what you can do in PowerShell to point to a more convenient folder, instead of modifying the Advanced Options:
Code: [Select]
Set-Location -Path "<foobar2000 profile folder>"
Remove-Item -Path "vumeter" -Recurse -Force
New-Item -Type SymbolicLink -Path "vumeter -Target "<full path to more conveniently-located, possibly shared folder>"
Note: adding the folder on initialization if it doesn't exist is there to a) guide new users on where to place the panels and b) prevent crashes on first install.

Finally, I haven't run AIMP in many years. I don't know how the skins look or what is their behavior. What you see in this component is my "artistic" interpretation. Specifically, the LEDs in LVU skins the light is continuous and the position is interpolated in between the skin's "dbs" entries; while in the AIMP analog skins, the LEDs are discrete (i.e., they don't turn on partially).

With that, thanks for reading and sharing your feedback!
Hi @oops,
This component is now 1 of my top favorites.
You have leveraged it up to a new level, and make the best become better.
Thank you a lot.
@ilovefb2k

Re: foo_vis_vumeter

Reply #102
Updated version with mostly complete AIMP analog VU meter skin support: 0.2.0

This version went through a large refactor to merge everything but the initial loading and device drawing functionality between the foobar2000 BIN files and the AIMP ZIP files. So, if you decide to try it and see a functionality regression let me know. This is not "current" so manual download and install is necessary.

Quick notes:
  • 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.
Spoiler (click to show/hide)
Hi @oops,
I have just played some songs using AIMP to quickly observe the VU Meter:
- The needle seems sensitive to tempo.
- The dB scale ranges from -20dB to 3dB.
- The VU Meter follows its own algorithm to calculate the dB, and it seems higher than fb2k's. This can be scaled up to push the level beyond 0 dB (to +3dB). This is just a guess and may be for a symmetric and nice look and feel.
- Based on the formula from here:https://www.aimp.ru/forum/index.php?topic=52865.msg325256#msg325256, @Black_AVP
   A = Am * (0.5 - 10^((L - Lm)/20)) + 90
   where:
      + Am is the full angle of the scale, assuming it is symmetrical (MinAngle and MaxAngle are equal in absolute value);
      + L is the calculated level in dB;
      + Lm is the same MaxLevel - the extreme mark of the scale.

      and the 'skin.ini' from the VU Meter skin stocked with AIMP (Classic) shows that:
       -20dB = -52 degree
         3dB = 52 degree
      Applying the above formula and adjusting :
       -20dB = -44.6 degree (not -52 degree). It should be -60 dB to reach that -52 degree.
=> The VU Meter is based on its own algorithm to draw the needle and its decay/attack speed on-the-fly. Therefore, without the exact formula, we cannot justify further. Moreover, AIMP may have its own dB scale, which is different from others.
As such, it is very kind of you to try to adapt AIMP VU meter skins.
Spoiler (click to show/hide)
Once again, thank you very much for your beautiful component and valuable contribution to us.
Regards,
@ilovefb2k

Re: foo_vis_vumeter

Reply #103
"DejaVU Compact Calibrated Bright"
I like it better than "DejaVU Compact Calibrated".
The way the needle moves is really cool.
Thanks, Air KEN!  BTW I did some additional changes to the body to add definition:


If you'd rather use this one, download the attached zip and overwrite the existing BIN files.

You'll notice that when used with the old 32-bit foo_vis_vumeter.dll (if you've got a second 32-bit portable Foobar like I do!), the LEDs follow the Peaks while the needle uses an RMS averaging.  With the new 64-bit foo_vis_vumeter, both the LEDs and the needle seem to always follow together.  If that is because of the new DLL instead of how the BIN was made, I recommend to oops that he allow the old behavior of "untied LEDs" again, if possible.
Hello everyone, @ Sveaakul this is what I see in my footbar with your vu meter skin (.bin):
   I like and a lot the upper part, while the lower one does not, Why does this happen to me? With all the other vu meter skin I see them "normal". @all how and where can I see the settings of every vu meter skin? (.bin) Because they "work" always between "-5 and +3/over", while the Peakmeter Spectrum "works" between "-10 and 0", only the Vu Metter Skin "Mcintosh" "works" like the Peakmeter Spectrum. How can I do to make all the Vu Meter "work" with the same frequencies/results as the Peakmeter Spectrum? Thank you
I'm new with Foobar, sorry if the translation is not perfect, I'm ItalianX

Re: foo_vis_vumeter

Reply #104
@UMBY71 :

1.  Are you sure you are downloading the zip from this post ?

2.  Are you sure you are putting BOTH of the 2 BIN files from the zip into your profile/vumeter folder, not just 1?  Both are required.

The skin itself was made by hiccup of the MusicBee forum, with re-coloring of the LEDs and body done by me.  It's my favorite VU meter.

For the settings options I use--  Layout L+R: Vertical, Mode: Stereo, Levels: RMS, Decay: Slow.

Re: foo_vis_vumeter

Reply #105
Released new version with minor fixes: 0.5.0

I have just played some songs using AIMP to quickly observe the VU Meter
...
A = Am * (0.5 - 10^((L - Lm)/20))) + 90
Only a few skins in AIMP are "calibrated" to the dB scale and only those will match the right levels. The one for which the formula applies is one of those and matches perfectly. Another is "DejaVU Compact LED Calibrated Elemental" linked a few posts back1. For those seeking more information, I calculate the display angle from the audio level using the point-slope equation; a generalized version of what is linked in the quoted post that works with non-symmetric VU meter skins.

Hello everyone, @sveakul this is what I see in my foobar with your vu meter skin (.bin)...
I've never seen this and have no idea why it shows like that. Try to follow instructions from @sveakul. Pay attention to point 2: You need to unzip the download and place each of the ".bin" files in the "vumeter" directory.

1 Referring to the AIMP skin by hiccup. The @sveakul port to the ".bin" format and the AIMP modifications work just as well and are also properly calibrated.

Re: foo_vis_vumeter

Reply #106
1 Referring to the AIMP skin by hiccup. The @sveakul port to the ".bin" format and the AIMP modifications work just as well and are also properly calibrated.
oops : Thanks a lot for the new .5 version of your plugin!  Just wanted to clarify that while I posted the BIN port of hiccup's AIMP skin here, hiccup created the BIN version also.  I merely added the red/green LED coloration and a darker body to his original color scheme.  I was able to do that because he forwarded to me the extracted components and the two *.vu project files for VUEditor to put it back together.  Unfortunately I don't have the time or concentration to come up with project files myself.

Re: foo_vis_vumeter

Reply #107
Thanks for the clarification. Fixed a couple more minor issues: 0.5.2

Since all of the fixes/changes are getting smaller and more targeted and I have not experienced any bad behavior or crashes in a while, this might be the final release candidate.

Re: foo_vis_vumeter

Reply #108


I have just played some songs using AIMP to quickly observe the VU Meter
...
A = Am * (0.5 - 10^((L - Lm)/20))) + 90
Only a few skins in AIMP are "calibrated" to the dB scale and only those will match the right levels. The one for which the formula applies is one of those and matches perfectly. Another is "DejaVU Compact LED Calibrated Elemental" linked a few posts back1. For those seeking more information, I calculate the display angle from the audio level using the point-slope equation; a generalized version of what is linked in the quoted post that works with non-symmetric VU meter skins.

Hi @oops,
thank you for your feedback,  valuable information and a very nice & rich-feature component
regards
@ilovefb2k

Re: foo_vis_vumeter

Reply #109
As promised, I've created some documentation. I hope it is useful.

Apologize in advance to friends in other locales as I've used the North American convention of a point as the decimal separator. And it is only available in rather technical English.

I included the file specifications in the documentation for the ".bin" as well as both forms of AIMP ".zip" files. It is as I understand them. I tried to be thorough, but I'm sure there is something that was missed.

Re: foo_vis_vumeter

Reply #110
The girl in the photo and I say thank you  ;D


 

Re: foo_vis_vumeter

Reply #111
As promised, I've created some documentation. I hope it is useful.

Apologize in advance to friends in other locales as I've used the North American convention of a point as the decimal separator. And it is only available in rather technical English.

I included the file specifications in the documentation for the ".bin" as well as both forms of AIMP ".zip" files. It is as I understand them. I tried to be thorough, but I'm sure there is something that was missed.
This is a piece of work oops, terrific--thank you!