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

foo_wave_seekbar

Reply #625
Try looking at the threads with a recent (>12.00) Process Explorer and see which threads are consuming much CPU.
A processing task takes a file, decodes it all, collects statistics on the fly per channel and chunk, and in the end mangles that into a signature.

There shouldn't be anything significantly different between a 2ch file and a 6ch file, really.
Stay sane, exile.

foo_wave_seekbar

Reply #626
Seems that the problem was in my OS! It was acting weird lately, so reinstalled OS and now all is ok. 

PS. When we can expect update? 

foo_wave_seekbar

Reply #627
That - only the almighty longcat knows.

To be honest though, I don't know really. The code is a bit unreadable to me after a few months of inactivity, and I've got a couple of crash bugs I ought to fix some day.
The primary thing holding it up is that I'm dreading the day when I need to merge the effect-rewrite branch to the main trunk.
That, and of course the overall cruftyness of a codebase that has evolved rather been designed.
Stay sane, exile.

foo_wave_seekbar

Reply #628
I have feature request that would make this component even more awesome than it already is .

If I am not mistaken, the loudness levels are currently only calculated by summed output power. The result of this is, that in songs with bass it's mostly the lower frequencies that define the waveform. If you'd run the sound through the Fletcher-Munson curves, that represent the level at which the human ear actually hears the sound (this is also what replaygain does). This would give the waveform a way more "realistic" form.

Form the replaygain specifications:
Quote
The human ear does not perceive sounds of all frequencies as having equal loudness. For example, a full scale sine wave at 1kHz sounds much louder than a full scale sine wave at 10kHz, even though the two have identical energy. To account for this, the signal is filtered by an inverted approximation to the equal loudness curves (sometimes referred to as Fletcher-Munson curves).


Implementation of this should be rather easy, as sourcecode is readily available from every replaygain implementation (e.g. http://forums.winamp.com/attachment.php?at...p;d=1159455163).

(Also you don't need to understand your sourcecode to implement that . I'd guess the sound processing part is rather simple or at the least the point at which you'd plug in those calculations should be simple enough to find ^^)

foo_wave_seekbar

Reply #629
You have clearly not seen the hackfest that is my analysis code. Some day I'll make some private DSPs and feed my data through those instead of the ad-hoc madness I current have.
I don't suppose that you as a component developer happens to sit on the secret of how to keep interest in a component after it's reasonably mature? 
Stay sane, exile.

foo_wave_seekbar

Reply #630
Quote
I don't suppose that you as a component developer happens to sit on the secret of how to keep interest in a component after it's reasonably mature?

No - I have the same problem . I stopped development on every component I created, once it became reasonably mature ^^. The only minor helpful tip I have is to write such bad code, that you have to do a major rewrite before the component is mature. That way you will at least be able to understand your code later on .

But it would still be awesome if you would manage to get you interest up and develop this component a bit further. But on the other hand I'd be lying if I'd say it's not good as it is .

foo_wave_seekbar

Reply #631
I just have a little suggestion for this great component:
Let the user define some image that will be shown while no waveform is shown.
This might happen for example if tracks outside of the media library are played and the corresponding option is unticked.
Support for transparent PNGs and centering the image would be ideal 

foo_wave_seekbar

Reply #632
Generic transparency is impossible for D3D, as that would require control over the toplevel window and its backbuffer, as well as D3D9Ex.
The problem with showing a placeholder is that you've got a lose-lose tradeoff of having it flicker into existence for a moment between tracks, and delaying the placeholder, resulting in a gap where nothing shows and lots more implementation pain.

I'm unsure if I expose the playing state to the shader, but it would probably be possible to do it all shader-side, assuming that the texture loading hasn't broken while I looked away.
Stay sane, exile.

foo_wave_seekbar

Reply #633
Great plugin, thank you! A little slow when seeking lossless data but all work fine!

loquor mee menti: factus de materia, cinis elementi...

foo_wave_seekbar

Reply #634
Complain at or optimize the decoder for your files then.
Stay sane, exile.

foo_wave_seekbar

Reply #635
Complain at or optimize the decoder for your files then.


Excuse me, but my english is very limited. What did you mean with "complain at or optimize blah..." ?
loquor mee menti: factus de materia, cinis elementi...

foo_wave_seekbar

Reply #636
The plugin uses whatever file format plugins you have installed. If it seems slow, it's because your decoder (in this case OptimFrog) is slow, or the files are encoded with a mode that is costly to decode.
Looking at the speed charts on the OF site, it seems like a rather expensive format to decode in general, compared to Wavpack and FLAC.
Another source of slowness might be if your disk or storage cannot take the load of several processes decoding a track at once. If that is the case, there is a setting in advanced preferences to restrict the number of concurrent analysis threads.
Stay sane, exile.

foo_wave_seekbar

Reply #637
Thank you for your reply. You're right. The Optimfrog decompression is a little slow when stracting seekbar signature. It doesn't bother me. Unfortunately, the Optimfrog project is frozen since 2006.
Thank you, Zao! You made a pretty component.
loquor mee menti: factus de materia, cinis elementi...

foo_wave_seekbar

Reply #638
Yet another suggestion: Create an option and/or hotkey to show the waveform of the currently selected track.

foo_wave_seekbar

Reply #639
Hey Guys,
this is my first post at this forum, I follow it for more than a year now and always solved my problems without writing something myself.
But I think I need help with this one.

The Waveform Seekbar is the only component I added to my Foobar in the past months. It's really handy and looks great!

Only problem is that I have Windows 7 (64 bit) with no DirectX 9. I don't wanna install it so I get to pick between GDI and Direct2D. That's fine, I like the simple b/w-GDI-look. But as people tell that GDI uses a lot more CPU-power I wanted to switch to D2D. Problem is I really don't like the D2D look, the white bachground, black waveform with a white core.

Now here is my question: I don't have an effects folder, no seekbar.fx and I don't see any option to change the whole look of D2D.
Am I missing something here? I read through the whole thread but most of the people are talking about D3D so I didn't get to solve this.

Can anyone help?

Thanks a lot!

Here is my Foobar with the GDI look.

foo_wave_seekbar

Reply #640
The shader only affects the D3D path. If you only want to adjust colours of the seekbar; you can right click -> configure, otherwise you need to install the DirectX Runtimes and use D3D. There is not really any reasons why installing the runtimes would be bad.

foo_wave_seekbar

Reply #641
The D3D9 mode should run on anything that has DX9 drivers and some kind of SM2.0 support. It has been shown to work on cards as low as the Geforce FX series, as well as most Intel GMA cards.

As for "no Direct3D9", you always have DirectX installed in the OS. The things you are missing are the D3DX libraries I use, which come with a new version a couple times per year.

That's all that will be installed if you install the runtime.

As for configuring the GDI and D2D frontends, they are rather restricted aside from the usual color/channel configuration.
Stay sane, exile.

foo_wave_seekbar

Reply #642
Thanks for the fast replies!

I'm sorry, I don't really get this D3D 9, runtimes, libraries stuff because I don't even know what DirectX does... I think I have DirectX 10 or even DX 11 preinstalled on Windows 7. But your seekbar needs DirectX 9, right? So I have to install it as well. I know it's not possible to uninstall DX9 once it's on a computer. Thats why I don't really wanna put it on mine. Because installing a multi-mb programm just for the seekbar to look nicer is not worth it for me.

I'm afraid it is something like with the windows media player. My girlfriend installed it once just because she didn't know what she was doing and it turned out it's just not possible to uninstall it in any way without damaging your system.

foo_wave_seekbar

Reply #643
Read the first post, links to the required runtimes.
Windows 10 Pro x64 // foobar2000 1.3.10

foo_wave_seekbar

Reply #644
Windows Seven has support for all DirectX versions up to 11.
If I didn't use the functions from the D3DX helper libraries, it would run just fine out of the box on a fresh install of Seven.

Now, as I'm not masochistic, I use functions from the D3DX version from February 2010 instead of reinventing the wheel, so the DirectX redistributable from February 2010 needs to be installed.

Additionally, the installer linked from the first post is a web installer, so it will only install the bits required for your system.

As for installing it unnecessarily, it's not a big dependency, and it tends to be common among games or multimedia applications.

You cannot destroy anything irreversibly by installing a DirectX redistributable, it only installs any components that do not already exist.
Stay sane, exile.

foo_wave_seekbar

Reply #645
You cannot destroy anything irreversibly by installing a DirectX redistributable, it only installs any components that do not already exist.


Alright, I did it. I launched the Webinstaller, switched to D3D and everything looks like with GDI but runs a lot smoother. Nice! Thanks again for this wonderful component, Zao!

One last thing though: I would love to see the waveform getting scaled by replay gain. Some of my songs have a very low volume and the waveform's amplitude is really low.
I downloaded some guys seekbar.fx, it scaled the waveform just fine but changed to colors and look of it as well. As I said, I really like the simple white bachground, black wave look. So I tried for like one hour to understand whats going on in seekbar.fx but I didn't understand anything.

So maybe somebody could post a seekbar.fx with replay gain scaling...?

Thanks!

 

foo_wave_seekbar

Reply #646
If you're talking about the one I posted here, you can right click the seekbar, select configure, and change the colours to something you like.

Or if you prefer the look of the default seekbar here's the fx file with replay gain scaling. http://pastebin.com/5Fv4kZDR


foo_wave_seekbar

Reply #648
How much does this plug-in wear on the harddrive?

foo_wave_seekbar

Reply #649
When analysing a track, as much as decoding it normally would do, as well as writing out a few kilobytes to the database, with whatever overhead that might have.

When changing tracks, reading said kilobytes from the database.

And oh, when exiting fb2k with jobs in queue, writing those job descriptions to the database, as well as reading them in when starting up again.
Stay sane, exile.