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

foo_wave_seekbar

Reply #1200
if that question is for me about the youtube clip, my original file is FLAC which i encoded myself from CD. i just searched youtube for the same song. its creation has nothing to do with me.

edit: 20 second sample here: https://dl.dropbox.com/u/22801321/2013/marc...ing%20More.flac (1.9MB)

@ gundelgauk, it seems i was a bit premature with my theory. i'm still getting the odd "normal" track which won't scan but then does on a restart. it's all a bit random really.

foo_wave_seekbar

Reply #1201
i'm still getting the odd "normal" track which won't scan but then does on a restart. it's all a bit random really.

I agree. While I was trying other files, I noticed that even files which scan and generate waveforms properly can cause one CPU core to spike and stay at 100% for me. This happens with MP3 and OGG as well as FLAC, at least for me. I also tried some "exotic" files like NSF and SID. Those cause more CPU cores to stay at 100% even though waveforms are generated, possibly because of multiple embedded tracks which are scanned in multiple threads (only speculation on my part)?

[EDIT]I tried your sample file. It does not generate a waveform with 0.2.30.1 and sends three cores through the roof for me.[/EDIT]

foo_wave_seekbar

Reply #1202
That sample reproduces the problem here indeed, it's related to the format and length of the file. It gets stuck in a twilight zone where the sample generator thinks it has emitted enough samples, while the consumer still lacks a few thousand samples.
Stay sane, exile.

foo_wave_seekbar

Reply #1203
I tested the sample file from marc2003 . . .

Yes it breaks my foobar000 too. The waveform doesn't render and the CPU shoots to 25% and stays there permanently. The rest of foobar2000 is still usable and does not crash this time, however if I stop playing the marc2003 sample track and change playlists and start a new track, the CPU usage continues at 25% . . . . . . . in fact, I tried restarting foobar2000 and played a track, but CPU usage spiked to 25% again.

The offending sample needs to be permanently removed from any playlist to bring foobar2000 back to normal. . . . . Nope that doesn't work either! The offending track has caused foobar2000 CPU usage to permanently spike up to 25% no matter how many times I restart, no matter if I delete the track from all playlists.

Eventually, all went back to normal only when I did this: exit foobar2000, delete the track from my computer, start foobar2000.

foo_wave_seekbar

Reply #1204
derty2: In order to let you restart foobar2000 freely when there are background scans in progress, the component helpfully stores the pending scans in the database, and restores the queue on startup. Normally this is desired behavior, and if you really don't want a job, you can close foobar2000, delete the offending job in the database with some surgery, and restart. There is way too much work to make a scan queue management interface, when the normal usage pattern has nothing that needs one.

Anyway, I've just uploaded 0.2.31, which handles all known problem tracks properly, by taking some morning hours to rewrite the offending snake's nest of code.
Stay sane, exile.

foo_wave_seekbar

Reply #1205
That's great work, Zao. I can confirm that for me the problem does not occur with marc's and my FLAC files. That also includes MP3 and OGG files which would generate a waveform but still cause permanent CPU usage. Thanks!

Some quick testing revealed that it still occurs with a SID (C64) file, however a NSF (NES) file works. But normal audio files seem to work perfectly. Thanks again!

[EDIT]Somehow I got foobar to crash by playing a midi file. Then after restarting foobar, it would crash on playing any file. Clearing the playlist in safe mode and deleting the waveform DB did not help. After uninstalling the component, deleting the DB and reinstalling the component it works normally again. I guess I just shouldn't play such strange files. [/EDIT]

foo_wave_seekbar

Reply #1206
I got exactly the same situation like derty2 with marc2003 sample... When I restart foobar it opens the handle for this file, despite it isn't on any playlist nor in Library, and it continuously uses 17% of my CPU. That's exactly 1/6 of six core Phenom... In a minute I will try 0.2.31 to check it.

EDIT:
At least with marc's FLAC iv. 0.2.31 works 100% OK. I haven't noticed any file from my own Library that exposed such behaviour, as I forced foobar some time ago to calculate all seekbar signatures at one time  . I went to a job, and foobar did the thing when I was out

foo_wave_seekbar

Reply #1207
rather bizarrely, the 20s sample still doesn't work for me. <<oops, i just remembered i have it configured not to scan waveforms outside my library. 

but the full length track does and that's all that matters. i've also tested the quietest track i can think of and that is also fine.

thanks for all your work Zao.

foo_wave_seekbar

Reply #1208
I actually got very curious so I tried to compile the component myself to be able to debug it. But I'm inexperienced with VS and after installing boost I found out that VS Express does not have ATL so I'm kind of stuck. Too bad, it seemed like a very interesting problem.

It works well enough with the latest version, so thanks again for your work!

foo_wave_seekbar

Reply #1209
gundelgauk: Good luck with that, it was never planned for independent building, so it's kind of tied to my SDK directory and system-installed libraries.
I don't think I have modified the SDK or the Boost too much, but I can't be sure, my system install is shared between a bunch of projects.

The dependencies are pretty much:
  • Visual Studio 2010 compiler,
  • DirectX SDK February 2010,
  • ATL,
  • WTL,
  • Boost 1.53-ish,
  • Scintilla (for D3D9 frontend),
  • reasonably vanilla foobar2000 SDK,
  • possibly Intel TBB, can't remember if I still use it.

In particular, June 2010 won't do, as there's bugs in the shader compiler.
The VS 2010 dependency is because all those filthy XP users won't stop crying if I migrate to 2012 and drop XP support 
Stay sane, exile.

foo_wave_seekbar

Reply #1210
AFAIK MSVS 2012 Update 1 does support Win XP

foo_wave_seekbar

Reply #1211
The v110_xp toolset is not usable in my world. For starters, Boost.Build will not ever target it, and it has lots of hidden caveats and is not as tested as a real compiler.
Not to mention that it doesn't _gain_ you anything but a slightly newer and untested mutilation of the toolchain. It's still using a bastardised WinSDK7.

To be really honest, I cannot trust a toolset that they put out in a hurry because people got their panties in a twist over not being able to target an EoL:d OS.
Stay sane, exile.

foo_wave_seekbar

Reply #1212
Zao, thanks for elaborating. It looks like I won't be able to set up a build environment in a reasonable time then, especially with not much VS experience. As an alternative, would it be possible for you to include debug information in a build or something, so that we can get you more helpful info with a standalone debugger or something to that account? It's just that I used to be able to play anything in foobar with your waveform seekbar up until recently and now that I seem to have problems with some file types, I really miss it.

foo_wave_seekbar

Reply #1213
Zao - as I said before I think that there should be "normalization" applied (division every point of seekbar waveform by maximal value calculated in whole file) to waveform when it's downmixed to stereo. If my file was looking really like this:



it would be absolutely unlistenable (especially at the end).

The same file, after conversion to 2ch FLAC with Converter and "Downmix 5.1 to stereo" DSP enabled gives completely different waveform:



And this is listenable... And This is how I expect to Waveform Seekar look in "Downmix to stereo" mode, when I play regular 5.1 version. Of course I understand that accuracy may be limited, but definitely it isn't diplayed properly at this time.

foo_wave_seekbar

Reply #1214
I will never normalize, as that destroys information as to the actual signal level of the waveform. If you want that, the best I can provide is a min/max parameter to the effects so that they may normalize.

The fundamental problem is two-fold.
  • I downmix the final waveform, not the source samples as they are not available.
  • The waveform I extract is optimistic. For each bucket, it contains the numerically minimum/maximum value for the whole bucket.

The optimistic extraction means that I probably introduce some additional energy into the waveform.
I could try to use the standard DSP if present, but I doubt it'd do much good at this stage.
Stay sane, exile.

foo_wave_seekbar

Reply #1215
Hmm... You are right about normalization performed on every waveform. This will destroy component functionality. Maybe it would be possible to trigger normalization only when there are 2 conditions met: source signal has more than 2 channels and user has chosen "downmix to stereo/mono" display mode? Or maybe it is possible to check how "Downmix 5.1 to stereo" DSP performs calculations of final track level, and use it to downmix final waveforms to resulting "downmixed" one ?

When I complain about functionalities of certain components I recall someone's forum signature... "This job would be great if it wasn't for the users." Haha... Peter is right. Good for me I am not programmer - I don't have to listen others complaints. Bad for me I am not programmer - I have to rely on others good will, free time and skills...

foo_wave_seekbar

Reply #1216
I cannot reproduce any failure to scan with the test files I have for MID, MOD, NSF.
Whoever fails to analyse these, please provide files.

Edit: I got a repro on SID, yay.
Stay sane, exile.

foo_wave_seekbar

Reply #1217
... include debug information in a build or something, so that we can get you more helpful info with a standalone debugger or something to that account ...

For a given release foo_wave_seekbar-X.fb2k-component, there's an archive of the debug symbols at http://www.acc.umu.se/~zao/foo_wave_seekbar-X-archive.fb2k-component, as an off-site backup. They should match the corresponding tag in the Github project.
Stay sane, exile.

foo_wave_seekbar

Reply #1218
For all you LFE lads, there's 0.2.32 now, which drops the LFE channel on the floor. If you want to see it, don't use downmixing.
This release also fixes an accident in RMS computation which I didn't spot as I don't visualise RMS myself.
Stay sane, exile.

foo_wave_seekbar

Reply #1219
Wow, Zao, I don't know what you did but this is awesome. I just finished uploading some midi, mod and other files which caused crashes when I saw the new version. Now with 0.2.32, these crashes are gone and waveforms are generated normally. So far I could only find one file which still seems to cause high CPU load. It's a SID file, I'll send you a message with a link.

Thank you very much! It seems I can listen to all my weird stuff with waveform seekbars again!

Also, thanks for the hint about debug symbols.

foo_wave_seekbar

Reply #1220
This should probably resolve your SID issues, turns out that my component brings out the worst in others 

foo_sid version 1.30 highlights: Fixed a race condition which affected starting a batch of conversions or wave seekbar scans without starting a single track for playback first.
Stay sane, exile.

foo_wave_seekbar

Reply #1221
hello and sorry for asking probably not something very very related - personally I found wave_seekbar really really useful - I use foobar + wave_seekbar to somewhat come closer to programs like vdj for basic dj-ing. there are various reasons for this and they are off-topic.. what I miss most and can't find any plugin to do is to insert custom mix points on the run - wave_seekbar helps to identify visually the place to start, and if you are fast enough, with long crossfade enabled you can skip lengths by clicking - but wouldn't it be great to be able to set track start point visually before activating it for play? I know this is quite beyond the reasons why wave_seekbar exists, and would probably call for another plugin entirely, possibly basing on wave_seekbar... but - was just wondering.. it would be interesting to hear your thoughts on the matter... thank you.

foo_wave_seekbar

Reply #1222
There is something terribly wrong with this component. It was undoubtedly caused by the recent updates. Waveforms disappear randomly, tracks display wrong waveforms (for example, the second track of an album, when player after the first, displays the waveform of the first track)...

foo_wave_seekbar

Reply #1223
Having no such problems here with the latest version. Maybe another component or settings causes this?

foo_wave_seekbar

Reply #1224
+1 for problems with latest update (0.2.33) - files (mp3) added to the library after component update have no waveform, trying to extract seekbar signature manually also does not help. Some waveforms appear after few plays, only to disappear on the next play.