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

Re: foo_wave_seekbar

Reply #2200
 like to keep the sacd iso because I burn it to DVD, I have a blu-ray player that also reads the burned sacd, then the sacd iso in dst format you say that I should convert them to DSD file? or in WavPack? but I have a powerful CPU and it doesn't worry me as Just_Addict says.

Re: foo_wave_seekbar

Reply #2201
Yes, you have a powerful CPU. The decoding will only be painful for the entire process of waveform scanning, where you're likely to be able to scan one or two files at once, at slightly better than real time. I hope you don't have a whole lot of files to scan, that will take almost as long as it takes to listen to them.

Re: foo_wave_seekbar

Reply #2202
Yes, you have a powerful CPU. The decoding will only be painful for the entire process of waveform scanning, where you're likely to be able to scan one or two files at once, at slightly better than real time. I hope you don't have a whole lot of files to scan, that will take almost as long as it takes to listen to them.

Which program should I use to convert DST64 to WavPack? BatchEncoder? and to have the tags do cue + WavPack?
foobar doesn't do this kind of conversion right? as BatchEncoder.
Please illuminate yourself.

Re: foo_wave_seekbar

Reply #2203
Is there a way to completely defeat storing of all waveform signatures?

I'm doing development of upmix programs and 99 times out of 100 I need to remove the signature to see the new one because I have modified the file and it has the same filename.

Thanks!



Re: foo_wave_seekbar

Reply #2206
Could somebody please post a screenshot?

[/quote]

Hi. Where is the shader code to show the waveforms as shown in the above image ? I've tried fiddling with the colour setting but all I get is a flat colour displayed on the waveform, ie. it does not have all the subtle blending. Anyone ?

Re: foo_wave_seekbar

Reply #2207
I found out I had the colours set wrong after my previous post. However turning any colour selects off does not give that yellow coloured waveform. What I'm really looking for is some "jazzed" up settings for the "Frontend Settings" where you put the code in. I could not find very little when going through this entire thread or on the net. Cheers.

Re: foo_wave_seekbar

Reply #2208
Unchecked colour boxes are not fixed colours, they're taken directly from the player theme colours of the same names.
The screenshot probably used the DUI colour theme "Gray Orange" which has the following parameters (RGB):
  • Background: 33 35 31
  • Text (foreground): 244 126 70
  • Highlight: 175 171 143
  • Selection: 171 163 154



There's indeed no central gallery to find and share effect files with each other, the bundled effect is likely quite close to how it looked back in those days, it looks somewhat similar with the above parameters.

I had some plans and attempts at creating such a place, but it did not pan out before the end of maintenance of this component.

There's a few effect files scattered across this thread, but overall the system was simultaneously too complicated and powerful, exposing too much to users. While there were some impressive effects created, many of them had subtle errors in them which made it almost impossible for me to alter the component as it could silently break the looks of people's players.

As for foobar2000 component development, it's pretty dead to me personally.
For my old components there's pressure to support super ancient operating systems and the player is still a 32-bit process, making it quite a second-class citizen these days when it comes to development.

These days, I would have to build special-purpose virtual machine or run on old hardware to compile the component again.
Stay sane, exile.

Re: foo_wave_seekbar

Reply #2209
There's a few effect files scattered across this thread, but overall the system was simultaneously too complicated and powerful, exposing too much to users. While there were some impressive effects created, many of them had subtle errors in them which made it almost impossible for me to alter the component as it could silently break the looks of people's players.

As for foobar2000 component development, it's pretty dead to me personally.
For my old components there's pressure to support super ancient operating systems and the player is still a 32-bit process, making it quite a second-class citizen these days when it comes to development.

These days, I would have to build special-purpose virtual machine or run on old hardware to compile the component again.

Should I be using some other plugin ? What about JScript panel ? There's something at the end of the thread about displaying waveforms. I know for a fact that HTML5 can have custom shader effects over page components.

Re: foo_wave_seekbar

Reply #2210
A big part of the my two components (this one and Case's mod of the minibar) is to automatically or explicitly decode tracks behind the scenes to precompute a simplified idea of the waveform, which is subsequently visualised.

The visualisation is straightforward enough, but you have no way to generate or access those datasets from the outside.

Fun fact - in the beginning this component was split into two distinct components, one that handled the database cache and generation aspects, and one that dealt with the UI element. Those were merged eventually as trying to keep them in sync was inconvenient.
Stay sane, exile.

Re: foo_wave_seekbar

Reply #2211
re: JScript Panel it's very crude. It passes the filename of the playing track to ffmpeg which decodes the file and pipes the output to Sox which generates a spectrogram image saved as png which is cached indefinitely and used as a background image for the seekbar. It's possible to customise the SoX options/clear the cache using the right click menu.

By default, it looks like this...



It's very much limited to using gdiplus for displaying images.

Re: foo_wave_seekbar

Reply #2212
Looks good !

I can't find it now, but you can generate a waveform using javascript.

I used sox at one point do add waveforms to a Linux file browser.

None of the DJ mixer software puts these waveforms in the music library browser apart from Pioneer Rekordbox and I don't think foobar2000 can have them as a column in playlist. This is important for identifying tracks alongside a proper cover. Can you tell I started DJ'ing with boxes of vinyl ? And yes I could identify a track by remembering the pattern of the vinyl grooves. Anyway I digress.

Re: foo_wave_seekbar

Reply #2213
It seems that when deleting a track its entry is not deleted from the waveform database.
I've noticed it when I had 2 tracks with the same metadata (the second track is an Audacity enhanced version of the first track) . After I deleted the first track I started playing the second. To my surprise the plugin used the waveform of the first track without processing the playing track.

Re: foo_wave_seekbar

Reply #2214
So I presume @Zao that this is dead and there's no way you'll make a 64bit version?

I ask because Case's choice to make the minibar mono only means it's really not feature-equivalent with this one, and just doesn't satisfy the needs of a lot of us.
I have no performance issues with this original component.

Re: foo_wave_seekbar

Reply #2215
A long time ago I copied this code on some site
X

Spoiler (click to show/hide)

Re: foo_wave_seekbar

Reply #2216
...and just doesn't satisfy the needs of a lot of us.
Sorry to seem picky, but what does "a lot of us" mean?  "Some of us" might be the more accurate phrase, unless someone has the statistics.
It's your privilege to disagree, but that doesn't make you right and me wrong.

Re: foo_wave_seekbar

Reply #2217
Sorry to seem picky, but what does "a lot of us" mean?  "Some of us" might be the more accurate phrase, unless someone has the statistics.
Well it's all anecdotal unless we do a poll, and even then it's hardly scientific. But there were certainly a fair few enquiries when Case released the mod, and he was so definitive about it that it basically shut down any further discussion at least over there. His choice of course.

I also realise that upgrading this to 64bit is highly unlikely, but I did want to just put it out there.

Re: foo_wave_seekbar

Reply #2218
So I presume @Zao that this is dead and there's no way you'll make a 64bit version?

I ask because Case's choice to make the minibar mono only means it's really not feature-equivalent with this one, and just doesn't satisfy the needs of a lot of us.
I have no performance issues with this original component.

Fun fact - I wrote the original minibar (which Case then took over and improved) as a fresh start with an intentionally reduced feature set. This was both due to the maintenance burden of historical design choices and to feel out how it would be different if done without legacy constraints. It turned out quite well and I'm generally pleased with the direction and stewardship Case has put into it.

Sorry to seem picky, but what does "a lot of us" mean?  "Some of us" might be the more accurate phrase, unless someone has the statistics.
Well it's all anecdotal unless we do a poll, and even then it's hardly scientific. But there were certainly a fair few enquiries when Case released the mod, and he was so definitive about it that it basically shut down any further discussion at least over there. His choice of course.

I also realise that upgrading this to 64bit is highly unlikely, but I did want to just put it out there.

Theoretically it could probably be built as x64, but it would need an audit of the codebase for portability issues as it's written in an era where a 64-bit foobar was a running joke and as such it may have some explicit or implicit assumptions about data types.

On the chance of seeing a recompile of it - I haven't even touched the new foobar200 SDK nor have I tested the new fb2k versions more than briefly. There's also the problem that the tail end of development on this component had a tendency to break in new ways every time I touched it, I don't have much confidence in that a new build would be reliable.
It's also rough to build for anyone else given the quite weird ancient dependencies needed.

As I'm swamped with other projects which I can barely give any attention to, I'm not super keen on picking something as support-heavy like this up again even though it has a happy and loyal following beyond my wildest beliefs.

All in all, the old rationale I've posted a couple of times holds, this component is forever stuck with bad design decisions like exposing ill-formed D3D9 shader source to end users which puts a big mute on the desire to touch it again.
Stay sane, exile.

Re: foo_wave_seekbar

Reply #2219
Thanks Zao, certainly makes sense.

Re: foo_wave_seekbar

Reply #2220
@frogworth So... thanks to people like you on the boards, on GitHub and on IRC wishing for this component to carry on I've done some occasional work in the last month to get it building and it is mostly functional. Some loose thoughts around it all follow here.

I'd like to make any eventual release of this experiment a 0.3 version, breaking away from some of the old constraints like which data I store in the cache, the need to write raw HLSL effects, and a revamped customization user interface leveraging Dear ImGui. I have absolutely no idea about the timeline of all this and how the final component will work.

I've ported the Direct3D 9 frontend to Direct3D 11 and as such some of the more complicated old effects may need some fixing to build with a more conformant effect compiler. I've not yet figured out the user story around that. This would raise the minimal spec needed for the component a bit, not sure how far but probably Win7 or Win10 with Direct3D 11.

It's too much development effort to keep everything old around and if I have to cut things out I might as well do it right from the start to avoid having to support it for another decade, the old component and 32-bit foobar is still around for people stuck in the far past.

I'd like to turn the current kind of shader effect into a bit of a legacy thing, instead favouring some sort of layer stacking model where you compose simpler layers like a background, a waveform, a highlight, a progress indicator, etc. That's still quite in the air, haven't prototyped anything around that yet.

WIP screenshot from just last night where I got multiple elements working again:
Stay sane, exile.

Re: foo_wave_seekbar

Reply #2221
Amaaaazing news, @Zao, this is great to hear and looks good!
I do think that in order to support a 64bit host, breaking from a lot of backward compatibility with effects etc is totally understandable.
I'll be happy if it supports showing multi-channel waveforms really :)

Now I have to find those Infected Mushroom remixes...

Re: foo_wave_seekbar

Reply #2222
@Zao That's awesome! Thanks! This component is currently the only thing which keeps me from upgrading.

Re: foo_wave_seekbar

Reply #2223
@Zao gotta do a shout out for touching it again man. Personally I used GDI rendering, but really we settle for Vulkan or DX12 nowadays as well  ;)  ;)
Seriously though I'm thanking you for even attempting it. if dx9 has to go for stability then really just gut it out as many probably won't even have it installed anymore. The main reason people here ask about it is the per channel seekbar.

Re: foo_wave_seekbar

Reply #2224
Personally I used GDI rendering, but really we settle for Vulkan or DX12 nowadays as well  ;)  ;)

No....You don't need VK just to render 2 triangles.