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

Re: foo_vis_vumeter

Reply #450
I've noticed some people are posting rar files here with png's and a skin.ini file inside. What am I supposed to do with these? Thanks.

Never mind, I didn't realize the zip file could be read by VU Meter. Is there a program that can load the skin.ini file and convert it to a bin file?
You cannot use the skin.ini as such, but a AIMP style VU zip comes with all the PNG's you need to build a BIN from it in VU Editor. You just need to set knots for the needle positions and knots for the lights. Then you can build the BIN.

In this post I attached a whole VU Editor project which should give you a pretty good idea how it works.
https://hydrogenaud.io/index.php/topic,126733.msg1057824.html#msg1057824

It's actually not really hard, but takes some practice.
Have a look in the project files themselves, they are plain ascii and show the knot definitions I made for this line of BIN's.

Hard part is when you want to alter an existing BIN and you don't have the needle and lights PNG's for it. Those you will first have to create yourself in that case.

Re: foo_vis_vumeter

Reply #451
Thx for the update. I can confirm the ELP crash on exit is solved.
...
I hope it is a simple fix.
Thanks for checking. But oh man! So regretting porting into Columns UI, the behavior is just all over the place with the window messages. Like why? Obviously, it doesn't help that your UI is packed to the gills. Still looks really jarring.

Here are the messages from dragging the window. My debugger prints EVERY one (the ones with the timestamps are the ones I handle):
Spoiler (click to show/hide)
This is an issue with foobar2000 in general. It doesn't send WM_ENTERSIZEMOVE and WM_EXITSIZEMOVE to the panels. So then I see these WM_SIZE messages every 100ms or less, where I have to tell the DirectX device to resize because all of my logic to wait and do so only once the resize or move is complete doesn't get activated. Another limitation I don't know how to fix.

On the second video, even worse. Just why does interacting with a different panel affect the VU meter? At some point just have to admit were in silly mode. I don't know whether to laugh or be annoyed.

Re: foo_vis_vumeter

Reply #452
Thx for the update. I can confirm the ELP crash on exit is solved.
...
I hope it is a simple fix.
Thanks for checking. But oh man! So regretting porting into Columns UI, the behavior is just all over the place with the window messages. Like why? Obviously, it doesn't help that your UI is packed to the gills. Still looks really jarring.

Here are the messages from dragging the window. My debugger prints EVERY one (the ones with the timestamps are the ones I handle):
Spoiler (click to show/hide)
This is an issue with foobar2000 in general. It doesn't send WM_ENTERSIZEMOVE and WM_EXITSIZEMOVE to the panels. So then I see these WM_SIZE messages every 100ms or less, where I have to tell the DirectX device to resize because all of my logic to wait and do so only once the resize or move is complete doesn't get activated. Another limitation I don't know how to fix.

On the second video, even worse. Just why does interacting with a different panel affect the VU meter? At some point just have to admit were in silly mode. I don't know whether to laugh or be annoyed.
I also tested with one of the vanilla FCL's.

Layout:
1) PSS not transparent paints background + cover art. Has child ELP vanilla which is not set to transparent.
2) PSS not transparent paints background + cover art, has tiny fix to force VU to reinitialize on track changes (I need the same fix in my skin too for Wavebar MINI). Has child JSplitter set to transparent, which has VU as a child.

Scrolling ELP does not produce the flicker, but if you go to settings in ELP (rightclick) and go to Field definitions, there you can scroll through the definitions (I added a couple of empty ones which enables scrolling).
If you scroll with mousewheel ... VU will flicker.

EDIT: If you look in the code of the second PSS you will see a $movepanel(0,0,0,0,0). This will force a reinit of the JSplitter and it's childs. So that kind of "solves" the issue in the first video.

Re: foo_vis_vumeter

Reply #453
Thanks for checking. But oh man! So regretting porting into Columns UI, the behavior is just all over the place with the window messages. Like why? Obviously, it doesn't help that your UI is packed to the gills. Still looks really jarring.
This is what I meant earlier when I said there is a point where trying to put out repeated fixes/features just to facilitate personal use cases can reach the point where it begins to have a negative effect on the general performance of the plugin as a whole, whether the common user may immediately notice it or not.

I'm glad that Defender finally ended up with the ELP issue fixed.  And who could fault him for pursuing it.  But now there are background repainting problems, and so another alteration gets tried, etc.

I have decided holding at version .9.1.0 is best for a fully featured, "bug-free", DUI edition until some kind of path is decided at to whether future releases are primarily intended to cover personalized, experimental projects.  So much precision development and tuning has gone into this meter to ensure it reflects something other than "eye-candy" that I just don't want to take the risk of having that affecting an essentially "complete" work.

Re: foo_vis_vumeter

Reply #454
oops, just an FYI... On my tweaked 64-bit DarkOne skin I can also see the transparent VU Meter flickering when Wil-B's biography loads certain images...more specifically larger images. When I say flickering I mean the transparency disengages for a split second, revealing a white background.

I'm only running these components... Columns UI, Jsplitter, ESLyrics, Spectrum Analyzer and Seekbar. 

0.9.7 does not have this issue.

oops and Defender... Thanks very much for your info on BIN/AIMP files. I'll take a closer look at it little later.

Re: foo_vis_vumeter

Reply #455
I can see a line that goes down the middle of a meter. Like they are not quite perfectly joined in the middle. You'll only see it at certain screen sizes so if you can't see it at your particular screen size you can see it if you drag/resize the foobar2000 window.
I rewrote this section fusing operations and carefully minimizing rounding. We'll see if it improves or worsens the visibility of the joint.

The old VU Meter doesn't do this.
No need to mention this any longer. Our implementations have substantially diverged and don't have the old one installed anywhere. Differences in certain behaviors are to be expected (such as all the funky interactions in CUI). I don't refer to it because this is my remix of the concept. Not directed at you @Majestyk, but for those who don't agree with my approach the old version is still bloody fantastic, and, to be honest, there is little incentive to switch if the old one does the job in your setup.
That said, at this point, other than the windowing COM features, I don't think there is any feature in the old VU meter that is not implemented. The big differences are that the old one uses GDI and some DirectX 9 to render the meters, whereas the new one uses DirectX 12 (principally) and supports more than just x86.

Re: foo_vis_vumeter

Reply #456
Uploaded 0.10.0-rc4. Once again not marked as "current" for automatic updates.

Changes are mainly:
  • Trying to remove the visible joint between the left and right panels.
  • Fixing loading both separate panel BINs from a RAR archive. Previously only the right side was loaded.
  • Fixing lots of functions and behaviors centering around the tuning dialog.

Re: foo_vis_vumeter

Reply #457
I have decided holding at version .9.1.0 is best for a fully featured, "bug-free", DUI edition until some kind of path is decided at to whether future releases are primarily intended to cover personalized, experimental projects.  So much precision development and tuning has gone into this meter to ensure it reflects something other than "eye-candy" that I just don't want to take the risk of having that affecting an essentially "complete" work.
Acceptable. But allow me to share some "insider" information. Most of the movement in the last couple of weeks only appears to relate to others' personal projects because that is what is active in this forum. However, the bulk of the fixes span the entire component. In large part because the testing others and I do in those "special" scenarios have uncovered problems (many that have not been reported) that apply across the entire component.

The roadmap from here on is very simple: eliminate undesired behaviors and provide/maintain sufficient performance and "reasonable" simulation accuracy. Sadly, in the past couple of weeks, there have been a couple of nasty bugs. But the behavior in DUI only keeps getting more stable. Again, the DUI version is the most battle-tested and has the lowest probability of showing any regressions.

Just so you know, you are missing large amounts of stuff and 0.9.1.0 is far from bug-free. But it is your setup and grateful for your trust and help. But above all, I respect having the self-control to not upgrade.  ;)

Re: foo_vis_vumeter

Reply #458
Uploaded 0.10.0-rc4. Once again not marked as "current" for automatic updates.

Changes are mainly:
  • Trying to remove the visible joint between the left and right panels.
  • Fixing loading both separate panel BINs from a RAR archive. Previously only the right side was loaded.
  • Fixing lots of functions and behaviors centering around the tuning dialog.

Visible joint is fixed. Thanks!

Re: foo_vis_vumeter

Reply #459
I have decided holding at version .9.1.0 is best for a fully featured, "bug-free", DUI edition until some kind of path is decided at to whether future releases are primarily intended to cover personalized, experimental projects.  So much precision development and tuning has gone into this meter to ensure it reflects something other than "eye-candy" that I just don't want to take the risk of having that affecting an essentially "complete" work.
Acceptable. But allow me to share some "insider" information. Most of the movement in the last couple of weeks only appears to relate to others' personal projects because that is what is active in this forum. However, the bulk of the fixes span the entire component. In large part because the testing others and I do in those "special" scenarios have uncovered problems (many that have not been reported) that apply across the entire component.

The roadmap from here on is very simple: eliminate undesired behaviors and provide/maintain sufficient performance and "reasonable" simulation accuracy. Sadly, in the past couple of weeks, there have been a couple of nasty bugs. But the behavior in DUI only keeps getting more stable. Again, the DUI version is the most battle-tested and has the lowest probability of showing any regressions.

Just so you know, you are missing large amounts of stuff and 0.9.1.0 is far from bug-free. But it is your setup and grateful for your trust and help. But above all, I respect having the self-control to not upgrade.  ;)

Thanks for your frank and informative reply, oops.  When updates add new features and capabilities that personally I would never use, I prefer to "hold" at an "older" version in the interest of less bloat and the "less to go wrong" factor.  One specific concern I had about the new versions is the mention of adding text numerical flags to the meter files names themselves to allow for saving layouts, configs and so forth.  This is because I am using a shared meter folder with 3 different players with VUMeters--Foobar, MusicBee, and AIMP--and worry about interference in normal selection/playback.  Can that be chosen to be never written at all, not just "ignored when present?"

Re: foo_vis_vumeter

Reply #460
One specific concern I had about the new versions is the mention of adding text numerical flags to the meter files names themselves to allow for saving layouts, configs and so forth.  This is because I am using a shared meter folder with 3 different players with VUMeters--Foobar, MusicBee, and AIMP--and worry about interference in normal selection/playback.  Can that be chosen to be never written at all, not just "ignored when present?"
It searches for a very specific regular expression: \{([0-4])}
I think it is unlikely anyone will have that very specific thing in their file names. It would be a bad coincidence, it is inert on other plugins/components.
Easily ignorable by using the "Ignore Defaults" option from the context menu that I added a while back to ignores the INI file overrides. If you recall (or are familiar with those), this is rough the equivalent of opening the INI file and setting different "isVertical" and "singleMeter" combinations, except I like this better for my purposes. If you use the screensaver mode, you'll very quickly realize why you need this if you run enough skin variety.

Re: foo_vis_vumeter

Reply #461
would it be possible to put the latest 0.9.1 up in the updated components rather than the 0. 9.5

Re: foo_vis_vumeter

Reply #462
would it be possible to put the latest 0.9.1 up in the updated components rather than the 0. 9.5
Please don't take my remarks as why I am holding at 0.9.1 as a reason to not use the latest version if it has features you need or just would like to try.  With the release version of 0.10.0 so close you might want to try that first.

However, you can download 0.9.1 here: https://www.foobar2000.org/components/view/foo_vis_vumeter/release/0.9.1

Re: foo_vis_vumeter

Reply #463
@oops

About the scrolling bug.

I tested a bit extra like this:
Grandparent PSS paints a blurred background.
On top of that the parent JSplitter draws a green background with alpha 32.
VU 2024 only gets half of the JSplitter dimensions and is set to Locked aspect ratio and transparency.

Of course VU 2024 should not respond to external scrolls, and that has been mentioned,
When VU 2024 is reacting to a scroll. It always shows/repaints (?) it's own background (a black one) first before quickly restoring transparency.
Both grandparent and parent have no issues and the background on which VU 2024 is living, is not disturbed at all.

You mentioned that on request you could make available some code to modify png's inside a BIN to be transparent. Since I'm optimistic you will solve the flicker issues, I would like to start experimenting with that stuff. How can I get hold of that code?

Re: foo_vis_vumeter

Reply #464
Great work on the meters. I'd like to see also a correct behavior when the music is paused: they should not freeze in the position, but drop to zero, like they do when music stops.

Re: foo_vis_vumeter

Reply #465
Great work on the meters. I'd like to see also a correct behavior when the music is paused: they should not freeze in the position, but drop to zero, like they do when music stops.
The current behavior is the intended one. This mimics similar pause vs. stop behavior of Peter Stuer's spectrum analyzer component which I really enjoy.
If you think about it, it makes sense:
"Pause" pauses the seekbar in position and so the visualization stops in position. On resume, the needle starts out where it left off as the audio does.
As you said, pressing the "Stop" button decays it to zero and resets the audio position.

Re: foo_vis_vumeter

Reply #466
I prefer freeze in position upon pause too...

Re: foo_vis_vumeter

Reply #467
I prefer freeze too.

Why not make it optional? Should not be that hard.

Re: foo_vis_vumeter

Reply #468
I also vote freeze. (Yes, I know it's not up for voting)

Re: foo_vis_vumeter

Reply #469
New release candidate: 0.10.0-rc5.

One change I think is not going to be popular is that I undid some hacks. In essence AIMP VU meters where the needle goes to the edge end up showing a few pixels under the glass image. Since AIMP VU meters have been added, they have come with the hack of scaling the glass image size up between 1% and 4% in the vertical dimension (the overflow gets cut out). I don't want to provide a false sense of correctness if these are not properly designed. So the hacks have been removed for now. There will at least be a version for designers to see how their skins would look and behave without the scaling hack; and make you all aware of the issue.

See image below for how the very bottom of the needle and its shadow show through without the hack:

Re: foo_vis_vumeter

Reply #470
New release candidate: 0.10.0-rc5.

Thanks for the update! Right now I'm using 0.9.7 because of the flicking issue with transparencies. Hopefully you can find the source of that issue in the future, although I don't think it's going to be easy.

0.10.0-rc5...


Re: foo_vis_vumeter

Reply #471
New release candidate: 0.10.0-rc5.

Thanks for the update! Right now I'm using 0.9.7 because of the flicking issue with transparencies. Hopefully you can find the source of that issue in the future, although I don't think it's going to be easy.

0.10.0-rc5...


I hope other people see the potential of transparent VU meters too ;-)

Couple of questions:

The flickering you have seems to be a bit different than mine. It seems as if scrolling through your playlist itself does not trigger the flickering. With me it does. Only when you click a different item in the playlist it is triggered. So when metadb changes. This is a global trigger.

Also your waveseekbar reacts to this change of metadb with a flicker (it shows the Darkone image underneath). In my skin waveseekbars do not flicker.

Also scrolling though artist images in your biography panel cause the flickers in VU but if I'm seeing correctly NOT to waveseekbar. With me that does not cause flickers in both VU and waveseekbars either. What biography script are you using?

Attached video is with 0.10.0-rc5 and waveseekbar 0.3.0 alpha 1.

BTW. Beautiful VU skin. Which one is it?

Re: foo_vis_vumeter

Reply #472
@oops

Maybe it slipped your mind.
How can I get hold of the stuff you made to ease the process of making BIN's transparent?

Re: foo_vis_vumeter

Reply #473
Maybe it slipped your mind.
How can I get hold of the stuff you made to ease the process of making BIN's transparent?
It didn't. I need to package it up.

Re: foo_vis_vumeter

Reply #474
Thanks for the update! Right now I'm using 0.9.7 because of the flicking issue with transparencies. Hopefully you can find the source of that issue in the future, although I don't think it's going to be easy.

0.10.0-rc5...
I kind of, sort of, may be seeing the same issue. It is very intermittent and fleeting in my case. Definitely due to GDI since that is the part that flashes. I've used the performance counters on that bit of code and it completes all it needs within hundreds of microseconds consistently. Too fast to see or for the monitor to even display. There are no messages received asking the VU meter to do anything from outside of it. The suspicion right now is the timer is going too fast and likely the parent is being drawn slower due to possibly being in the main thread for the player, but this is a wild guess. Because of your busier UI that is what makes it look really obvious and annoying because I can barely get it to do the flashing more than 3 or 4 times per minute when actively trying.