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

foo_wave_seekbar

Reply #675
Well, I know these types of I-don't-want-to-read-the-whole-thread type remarks are bothersome, but here's one anyway:

I really like this component, but the problem is that a large part of the library I'm using is on a network share - only a smaller often accessed part is attached to a local disc. Everything is included in the library for searching etc. purposes, but the building the waveform db kills our network - It is stressed enough as it is with reading the meta tags.

It would be nice to have a blacklisting option, maybe a simple "don't analyse the files under path xyz" or even better a custom evaluation that skips the files if true (like $strstr(%path%,M:\) or something else).

foo_wave_seekbar

Reply #676
The only filtering you have available for now is to exclude anything that is not in the media library. The problem with implementing your suggestion is that it requires making some UI for specifying the paths, which is something I loathe.
Stay sane, exile.

foo_wave_seekbar

Reply #677
When I listen to internet radio suddenly my custom background color turns to gray. How can I fix this?

When a stream is playing, it shows an empty waveform of 1s duration. As such, it fills up quickly with shaded background colour. If you want to avoid that, you can disable the "shade background" setting.


That seems to work. But a want to use shade played. In a stream the length of the track is 0. Perhaps you could only use the normal background color in this case.

foo_wave_seekbar

Reply #678
If it wasn't for whiny finns, you'd have something like this for tracks without information. 
Stay sane, exile.

foo_wave_seekbar

Reply #679
The problem with implementing your suggestion is that it requires making some UI for specifying the paths, which is something I loathe.


I don't know the SDK, but there shouldn't it be rather easy to add a "Blacklist Path" or "Blacklist query" text field option under Preferences->Advanced->Tools->Waveform seekbar? Many other components do it this way, and the problem i described unfortunately really is a showstopper for using your component with a slow network setup.

foo_wave_seekbar

Reply #680
Sure, it's reasonably "simple". The bothersome bit is exposing the ability to blacklist more than one thing, and whether I should intermingle this with the existing banned protocols or not.

And of course, the codebase is in no shape to be released, due to some accidental merges from an experimental branch. Maybe in the next year, when I'm on something more powerful than a netbook that cries if you load VS10.
Stay sane, exile.

foo_wave_seekbar

Reply #681
Hello Zao,
I've been using the component for quite some time and found it very useful and very well done.
I do have one problem - suppose a file have a waveform stored in the DB, if I change the file to a different file with the same name (overwrite), the waveform used is the one extracted for the old file.
(Not sure that's exactly what happens, but some sort of waveforms mixup).
A possible solution would be to add a time stamp for the extraction and if the file date is newer (as in "introduced to the media library later"), rescan (I think the media library has some mechanism for tracking when files are introduced to the media library, file date is not something you can count on).
Another possible (though pretty damn, I must admit), is to not store waveforms at all, and rescan every file on launch.

Once again, thanks for the component, Adam.

foo_wave_seekbar

Reply #682
Responding to media library notifications is already in my todo. As for file date, that will fail rather spectacularly for things like CUE sheets.
Stay sane, exile.

foo_wave_seekbar

Reply #683
Dunno about CUE sheets, I split them files right away
Thanks, Zao.

foo_wave_seekbar

Reply #684
Might have been on the last 20something pages ... but you need a function to clean the wavecache.db from dead entries

foo_wave_seekbar

Reply #685
You mean the one in Library -> Waveform Seekbar -> Remove Dead Waveforms? 
Stay sane, exile.

foo_wave_seekbar

Reply #686
You mean the one in Library -> Waveform Seekbar -> Remove Dead Waveforms? 


Oh I'm sorry, didn't see it there ... just looked into the options. And now I see it's also mentioned in the documentation =)

foo_wave_seekbar

Reply #687
Sorry about that, thought you were talking about my component, heh.
For what it's worth for you regular users, I've added support in my development build to restrict the update rate even further.
Stay sane, exile.

foo_wave_seekbar

Reply #688
Hey Zao, first of all thanks for that. I´m a music producer and that component is just great, really useful.

If I´m not asking for too much, is possible to put a zoom tool so we can zoom in and out the waveform as the cursor follow it, or even an option to follow or not follow cursor like on music production apps ? This could be useful cause sometimes if the music is too long, the waveform will become a brickwall.

foo_wave_seekbar

Reply #689
Zooming is something that the current architecture doesn't handle well at all.
The way it works is that it as an offline step analyses the whole audio stream collecting results into a finite set of buckets (2048 or so). As such, almost all the data I have stored is visible in a typical window size. If you zoom 2x, any window wider than 1024 would have to interpolate the results, already having hit the resolution of my data.

Allowing zoom would require on-the-fly analysis and generation of data, something which the current architecture is not designed for. This is coincidentally why stream waveforms are not in there either.
Stay sane, exile.

foo_wave_seekbar

Reply #690
Hello

First, thanks to Zao for useful and elegant component. Zao, have you ever thought of making volume-handling component with aesthetics similar to the Seekbar? I would use it from the day one.

Second, could anyone share an .fx file that makes the tracing bar a bit wider?

TIA

 

foo_wave_seekbar

Reply #691
You should be able to change that width yourself, look for the variables seekWidth and positionWidth in the PS function. They are 2.5px by default.
Stay sane, exile.

foo_wave_seekbar

Reply #692
You should be able to change that width yourself, look for the variables [font= "Courier New"]seekWidth[/font] and [font= "Courier New"]positionWidth[/font] in the [font= "Courier New"]PS[/font] function. They are 2.5px by default.


Thanks. Should there be any default file created somewhere? I don't see any 'effects' folder created.

foo_wave_seekbar

Reply #693
It should be in the foobar2000 directory of your user profile, as is proper, as it's per-user data.
Stay sane, exile.

foo_wave_seekbar

Reply #694
It should be in the foobar2000 directory of your user profile, as is proper, as it's per-user data.


OK, it's there. No idea why I haven't noticed earlier.

foo_wave_seekbar

Reply #695
Hello!

I think this component might be leaking memory. I experienced growing memory from foobar. When I listened all day long to music foobar would reach 600 MB of memory usage. This plugin and some others became suspicious. So I removed this and I didn't seem to experience the kind of memory growth. And now I also made a test. I kept tapping the random track hotkey for a few minutes (on a playlist that had all of the songs cached) with and without waveform seekbar and the memory usage became significantly higher with waveform.

The first is with with waveform. And the second is after removing it.

Made another test:


This time I added 13 waveform seekbar panels and (a menubar) to columns UI. Foobar started with about 376 MB memory (gues this is normal) and after a few minutes and about 400 random file opens it ended up with 957 MB.

foo_wave_seekbar

Reply #696
I'm innocent!  I'd guess that I've got some circular smart pointers keeping each other alive.
Does this happen for any of the frontends or just a single one of D3D9/D2D/GDI? It'd help in tracking down where it might be.

I've reproduced this locally with 0.2.12.
Stay sane, exile.

foo_wave_seekbar

Reply #697
I'm innocent!  I'd guess that I've got some circular smart pointers keeping each other alive.
Does this happen for any of the frontends or just a single one of D3D9/D2D/GDI? It'd help in tracking down where it might be.

I've reproduced this locally with 0.2.12.

Now I tried it with all three frontends. Memory increase seems to happen with all. Although GDI is much slower so I couldn't exactly try the same thing as with the other two. Also interestingly foobar starts with a lot less memory when GDI is selected. (55 MB compared to the 566 MB and 158 MB for Direct3d and direct2d).

foo_wave_seekbar

Reply #698
It's likely fixed in my development trunk now. If it's what I think it was, it was due to storing and mishandling corrupt data in the database.
I've got no idea if it's possible to make a release though, the codebase is in a horrible shape.
Stay sane, exile.

foo_wave_seekbar

Reply #699
It's likely fixed in my development trunk now. If it's what I think it was, it was due to storing and mishandling corrupt data in the database.
I've got no idea if it's possible to make a release though, the codebase is in a horrible shape.

I suppose its not worse than it was at the last release. A bug fixed is still a bug fixed. Anyway, if you decide not to release it "officially" maybe you could share it here for people like me to try?