![]() ![]() ![]() With the old plugin, I used to get a BSOD when playing music in a playlist and some files have different sampling rate and bitrate. Also hangs in CoUninitialize() - AFTER closing the dialog - on my WinXP VM. Idiot award goes to ASIO4ALL which spawns a modeless dialog without giving the calling context a sane way to know whether the dialog is still running. Some drivers (M-Audio) fail to call InitCommonControls() before spawning their dialogs and their dialogs don't work if your app hasn't done InitCommonControls() before. For this reason I do not recommend using ASIO for playback as despite of my best efforts it's likely still buggier than regular DirectSound, at least with cards such as Xonar. The new plug-in is now capable of surviving these without taking foobar2000 down, but audio playback will still be interrupted. I'd like to mention that Asus Xonar drivers are responsible for 50% of all ASIO related crash reports that I've received for the old ASIO plug-in. ![]() Doing it before getChannels() isn't good either. SetSampleRate() // Necessary before createBuffers() or else Asus will hate you. GetChannels() // Necessary before getChannelInfo() even if you already know the channel count or else Creative will hate you. For anyone else writing ASIO software, here's the apparent standard for ASIO initialization call order (do it differently and Asus/Creative drivers will explode in your face): ![]()
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |