Skip to main content
Topic: foo_vis_shpeck (Read 585667 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foo_vis_shpeck

Reply #175
Yes, that would propably work fine  Maybe this helps other users too.

Thanks for a quick reply.

foo_vis_shpeck

Reply #176
I have installed the msvc*80.dll but version 0.2.3 still don't work. I have to go back to 0.2.2. After I installed I found the *.dlls in the folder WinSxS of Windows is this correct?

foo_vis_shpeck

Reply #177
Right, although the only needed DLL is WinSxS/x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375/msvcr90.dll.
You might also try downloading just this one DLL (obsolete link removed - no DLL magic needed since v0.3.0) and putting it to the foobar2000 instalation folder (i.e. where the foobar2000.exe is). But it's not recommended, after all this is what they were trying to avoid by introducing the side-by-side assemblies, and you'll need it soon anyway, when more newly compiled programs will start to appear.
Full-quoting makes you scroll past the same junk over and over.

foo_vis_shpeck

Reply #178
Is strange I instaled the Microsoft Visual C++ 2008 Redistributable Package but this didn't install this .dll, maybe is an old one that I have.
Yes this is because the one I have is an old one. Is working.
Thanks for the support.

foo_vis_shpeck

Reply #179
Fractal_Mortality, T&L, ...: Please download version 0.2.4 beta 1 from here (Edit: link removed) to verify whether the thread priority really has effect on your problems with random pauses. (Nothing has changed except for that aforementioned checkbox.) I have tried the Convolver DSP, but I wasn't able to replicate the behavior described by you.
Full-quoting makes you scroll past the same junk over and over.

foo_vis_shpeck

Reply #180
I now tested 0.2.4 beta 1 and noticed that the setting almost removes pausing when using priority 4, so it definitely does something, but unfortunately doesn't help enough. Roughly 1/4 of the pause remains and when using higher playback priority (5-7) the effect remains the same as before.

Maybe foobar2000 itself forces visualisations/plugins to use low priority and it leads to this problem with some computers?

foo_vis_shpeck

Reply #181
No, it only forces the decoding threads to use higher priority (by default), so that the playback does not stutter, which is a common good practice.

Anyway, are you using the standard "Convolver 0.3 for foobar2000 0.9x"? And with what impulse response file? How big FFT size? I'd still like to replicate the issue here.
Full-quoting makes you scroll past the same junk over and over.

foo_vis_shpeck

Reply #182
Anyway, are you using the standard "Convolver 0.3 for foobar2000 0.9x"? And with what impulse response file? How big FFT size? I'd still like to replicate the issue here.


I'm using the standard Convolver http://www.foobar2000.com/components/foo_convolve.zip and my current impulse response file is: 512 KB, 131072 samples, 1 channel,  262144 FFT points (32bit/48kHz). I have exported it from RoomEQWizard to lessen the enhanced 50Hz range which is causing trouble with my room.

And now when you mentioned the impulse response file, I tried even a 8MB MP3-file as a response and it didn't cause the pausing. With the 32bit file foobar2000 uses 0-10% CPU (I expect it isn't too much?) and with a smaller 8bit file under 5%. Tomorrow I will try to make a 16bit response file if it would solve the issue.

Thanks for the help 

foo_vis_shpeck

Reply #183
All right, I was experimenting a bit more, among other things changing processor affinity of foobar2000 to one CPU only and then, I finally saw the periodic pauses. I run the Process Monitor and as I expected, they were indeed occuring always when the next batch of samples was decoded (and pushed through the DSP engine).

Unfortunately, Convolver, due to its nature, negatively affects playback performance. Have a look at the following image:

The part to the left of the pink marker is with Convolver enabled. It can easily be seen that both CPU usage and I/O throughput (source file reads) are in spikes. I don't fully know how Convolver internally works, but this is probably because it always reads, decodes and stores aside quite a lot of sound data, processes them and then does nothing for a while - it just needs the big number of adjacent samples.
This amount might be seen as the memory usage difference in the picture, and also as the delay between the point I removed Convolver from the list of active DSPs and when the data started to be read again. Of course, it can be heard when manipulating with Convolver, too.
Without Convolver, as you can see, the source file is read, processed, played, and so on in small amounts every now and then. There are no big spikes anywhere and everything is quite smooth.

Anyway, it has nothing to do with my component, it rather affects the whole system and Shpeck only rides on the same train. Any other application would exhibit the same pauses, if doing some continuous work where they can be seen as easily as here. I tried a few unrelated convolving plugins in other audio applications and they were showing the same CPU usage spikes when using large impulse response files. I can't do much with it, I'm sorry. You can try changing impulse response size or other parameters, different equalizing DSPs or visualisation plugins.
Full-quoting makes you scroll past the same junk over and over.

foo_vis_shpeck

Reply #184
After installing that msvc90 package everything works fine!
I can finally see the AVS visualizations correctly under Vista!
Thanks, Yirkha, for this great plugin!

foo_vis_shpeck

Reply #185
I've just made Shpeck v0.2.4 beta 2. Although there are a few fixes here and there, the biggest change is in the titlebar of embedded windows - the background color, text color, font and the control buttons are now customizable, which might help to better integrate them into existing OS or *UI themes.
The default colors are now retrieved from the system settings, background color being the "button face" color, text color being the "button text" color and font being the "default GUI" font. The internal button images are used by default (with added transparency, so they blend somewhat to the background color), but any other BMP file should work.
(download link Edit: link removed)



Edit: Added screenshot.
Full-quoting makes you scroll past the same junk over and over.

foo_vis_shpeck

Reply #186
When I put the .dll in the components directy I get the following message when I start foobar..


Failed to load DLL: foo_vis_shpeck.dll
Reason: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log for more detail.


foo_vis_shpeck

Reply #188
That did the trick!  Thank you very much Yirkha for this GREAT plug-in

foo_vis_shpeck

Reply #189
...
I tried a few unrelated convolving plugins in other audio applications and they were showing the same CPU usage spikes when using large impulse response files. I can't do much with it, I'm sorry. You can try changing impulse response size or other parameters, different equalizing DSPs or visualisation plugins.
What DSPs would you recommend leaving enabled in order to achieve best results with Spheck?

Moderation: Removed unnecessary full-quote of the referenced post.

foo_vis_shpeck

Reply #190
Shpeck (or rather the plugins running in its emulation) is not generally dependent on DSPs. On a "single core CPU", any concurrently running program doing some exhaustive action every now and then, thus resulting in similar spikes in CPU sage, can make the animations not always smooth.
Speaking about foobar2000 DSPs, the only one exhibiting this behavior that I'm aware of is the Convolver.
Full-quoting makes you scroll past the same junk over and over.

foo_vis_shpeck

Reply #191
When having Spheck activated in a panel foobar keeps giving me an error-message when exiting foobar (at least most of the times).

Its says:

Microsoft Visual C++ Runtime Library

Runtime Error!

Program: [path]\foobar2000.exe

R6025
-pure virtual function call

Any idea what the problem might be?

foo_vis_shpeck

Reply #192
I'll be able to say more after getting all the necessary approvals to install PanelsUI again here.
In the meantime - which visualization plugin are you using?
Full-quoting makes you scroll past the same junk over and over.

foo_vis_shpeck

Reply #193
the error seems to occur regardless of selected visualization plugin -happens with AVS or Milkdrop2

foo_vis_shpeck

Reply #194
I wasn't successful in replicating the issue yet.

(Yes, I realized it deals with a panel in Columns UI only, not with that "other UI component".) However, no matter how which version I tested (latest "stable" v0.2.3, v0.2.4 beta, and the latest internal build, nothing happened. Which version do you use, by the way?

What I was doing was essentially adding a Shpeck panel to a horizontal splitter, choosing MilkDrop2 or AVS, playing with it a little bit, leaving the panel shown or hidden, with focus on the plugin's window or playlist, etc., then closed the application. Are there any ideas what more should I try?

Also, I assume no classic foobar2000's crash dumps were generated. But when you quit the program and that error message appears, is the rest of the UI still shown or is it closed already?

Thanks.

Edit: Added the query for version used, I almost forgot again.
Full-quoting makes you scroll past the same junk over and over.

foo_vis_shpeck

Reply #195
I use Spheck in Tabbed Panel Stack Mod with some other visuals (with splitters) -maybe that's important? -but it happens whether the tab is active or not. (but not everytime -and I couldnt find out how to force it)
I'm using the latest Version of Foobar and Spheck (v0.2.4 beta 2) but the crash already occured in older versions of foobar and Spheck.

When I close foobar it takes a few seconds to shut down (i guess because of my very large library) -the UI is already gone -only the systray-icon is still shown (until shutodown is complete or ist crashes which takes about the same time I estimate) -actualy the error seems to pop up shortly after the icon disappers.

I transfered an Installation of foobar to another PC and the problem persists.

-I dont know if its important but after I close the error messege I get another error-popup (partly german) that tells me "unknown software exception" (0x40000015) at 0x0201d42b

And no, there are no crash dumps generated -sorry

foo_vis_shpeck

Reply #196
I tried "Tabbed Panel Stack Mod", but had no luck either. I'll propose another way to crack this problem.

If you can, please keep Process Explorer somewhere handy. When the error happens again, leave the first "pure virtual function called" message displayed, run ProcExp and find foobar2000 process. If you double-click it, a tabbed dialog will appear.

The area of interest is the tab called "Threads" - there should be one or only a few threads still active. The one of them responsible for the crash is the one which is waiting for your input in the error dialog. You can find it by trying them one after another and clicking the "Stack" button. The victim will have some ntoskrnl/win32k/ntdll stuff at the top, but under that some intelligible MessageBox-like names in USER32.DLL.

Then you can select the whole stack dump (e.g. clicking the first line and pressing SHIFT+PAGE DOWN or whatever) and copy it here in a neat [​codebox]. Or, if you don't see any foo_vis_shpeck.dll or vis_milk/avs.dll down the list, this probably doesn't have anything to do with this component. (The "Start Address" field in the list can also be useful to know who is responsible for creating the offending thread.)
Full-quoting makes you scroll past the same junk over and over.

foo_vis_shpeck

Reply #197
Alright, here you go:
Hope that helps and thanks for your efforts

Code: [Select]
ntoskrnl.exe+0x57e8
ntoskrnl.exe+0x15f975
ntdll.dll!KiFastSystemCallRet
USER32.dll!DrawStateW+0x1f2
USER32.dll!SoftModalMessageBox+0x677
USER32.dll!MessageBoxIndirectA+0x23a
USER32.dll!MessageBoxTimeoutW+0x7a
USER32.dll!MessageBoxTimeoutA+0x9c
USER32.dll!MessageBoxExA+0x1b
USER32.dll!MessageBoxA+0x45
foobar2000.exe+0xa673e
foobar2000.exe+0x9f039
foobar2000.exe+0x9bef0
foo_ui_panels.dll+0x9d4a9
foo_ui_panels.dll+0x945a1
foo_ui_panels.dll+0x9460b
ntdll.dll!LdrShutdownProcess+0x142
kernel32.dll!IsValidLocale+0x8eb
kernel32.dll!ExitProcess+0x14
foobar2000.exe+0x9ec2d
foobar2000.exe+0x9ee1a
foobar2000.exe+0x9ee43
foobar2000.exe+0x9d7e8
kernel32.dll!RegisterWaitForInputIdle+0x49

foo_vis_shpeck

Reply #198
Excellent. Now, how it happens:
  • Whole application is being closed.
    Code: [Select]
    ...
    kernel32.dll!ExitProcess+0x14
  • Windows are unloading one component DLL after another.
    Code: [Select]
    ntdll.dll!LdrShutdownProcess+0x142
  • PanelsUI is cleaning its stuff as well and tries to call some function from the foobar2000 core, even though everything is closed already.
    Code: [Select]
    foo_ui_panels.dll+0x9460b
    foo_ui_panels.dll+0x945a1
    foo_ui_panels.dll+0x9d4a9
  • It fails and shows just the error message.
    Code: [Select]
    foobar2000.exe+0x9bef0 == _purecall
    foobar2000.exe+0x9f039
    foobar2000.exe+0xa673e
    USER32.dll!MessageBoxA+0x45
    ...

I'm sorry, definitely a foo_ui_panels problem.
Full-quoting makes you scroll past the same junk over and over.

 

foo_vis_shpeck

Reply #199
Yeah, I was expecting that when seeing this List.
The problem seems to have vansihed though when Spheck is deaktived. I will have a close look on foo_ui_panels and see if I can figure anything out.

Many thanks again for all your efforts and keep up the great work.

 
SimplePortal 1.0.0 RC1 © 2008-2019