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: Pops and clicks using official ASIO in Windows 8 with foobar, but no p (Read 28557 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Microsoft seems to have written a new scheduler for handling tasks better in 8, and it works, but the priority settings now mean different things, and anything below the redesigned "Realtime" setting means it's handled in a way that is not suitable for audio playback on some ASIO drivers, so it pops at every latency.  The easiest solution is to add ALL of the priority options to the ASIO component instead of just having a tickbox for "high priority."

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #1
Windows 8 users, if you're experiencing pops, try the fix for yourself!
Open Task Manager and set the ASIO host's priority to real-time.  Problem solved!

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #2
are you using native asio drivers or asio4all? personally, with tascam us-144mkII i had/have no issues with asio at all ( native driver ) on win8.

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #3
are you using native asio drivers or asio4all? personally, with tascam us-144mkII i had/have no issues with asio at all ( native driver ) on win8.


Native.  Setting priority to "Realtime" universally fixes them, and has caused no instability in 10 continuous hours of use (so faR).

 

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #4
Would be really nice if such an option to set asio host priority to realtime would be implemented in some future release.

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #5
Windows 8 users, if you're experiencing pops, try the fix for yourself!
Open Task Manager and set the ASIO host's priority to real-time.  Problem solved!


Well, the problem is that foobar closes/reopens ASIO host every time you start to play song, or when the song is paused/stopped, and it's priority is reset to normal or high which is not enough to work without problems under Win8. So I made a little tray tool to detect and set/keep ASIOhost32.exe or ASIOhost64.exe priority to realtime. Will test it today, and if everything would work I'll share it here.

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #6
Well, here it is. It works OK for me using foobar 1.1.16, ASIO 2.1.2, Asus Xonar ST with Unixonar driver 1.64 and Windows 8 Pro x64. You can put this to your startup if you want. You can download it from here. Disclaimer: use it on your own responsibility.

Edit: just found there could be multiple asiohosts opened at the same time in foobar. e.g. if you open asio properties from settings while playing music through asio out, or vice versa. Only the first (oldest) asiohost process will be set to realtime priority. I have no intention to deal with that 'coz messing with the ASIO settings while playing music is not something we should be doing anyway. Hope foobar will get an option to set ASIO host realtime priority in some future release, so this tool would become unnecessary.

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #7
BTW be sure to run it as an administrator (give admin privileges to the shortcut or .exe file) !

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #8
Version 1.1. update: no longer need to run as administrator, now runs through Windows UAC. Link is the same as above.

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #9
Would be really nice if such an option to set asio host priority to realtime would be implemented in some future release.


This is just to report that I experienced that ASIO host real time priority is crucial for ASIO Lynx driver running in win 7.
Even in a system where latency looks not to be an issue.

Infact, I was looking for a workaround for my Lynx two B card (thanks for the nice piece of software).
I strongly encourage to implement real time priority choice in foobar ASIO tab.
As far as I  checked in my system (Athlon 64x2 3600+) it does not affect stability.

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #10
Seems the problem no longer exists in Win 8.1. foobar 1.2.9, Asus Xonar ST with latest Asus driver, not a single pop/skip since Win8 -> Win8.1 upgrade.

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #11
Seems the problem no longer exists in Win 8.1. foobar 1.2.9, Asus Xonar ST with latest Asus driver, not a single pop/skip since Win8 -> Win8.1 upgrade.


Huh, the problem is back  .

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #12
Check your anti-virus/firewall settings. Some cause high DPC latencies on network interfaces when surfing the web and even more so when torrrenting. This causes the system to be unable to process audio/low latency tasks properly. When you encounter this issue a next time use LatencyMon to see if/which drivers are causing the high DPC latency. In my case Avast Internet Security's Firewall caused ndis.sys (network driver interface) latency to spike. Malwarebytes Anti-Malware's Malicious website blocking feature does as well.
My 'solution' (more like a workaround) was uninstalling the Avast firewall and revert to using Windows 8.1's built in firewall and disabling the malicious website blocking* in MBAM.

Also, the Asus drivers are pretty awful. Try these: http://maxedtech.com/asus-xonar-unified-drivers/

*; Have got features like this already anyway in Chrome itself and via OpenDNS web filtering and Avast browser plugin.

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #13
Would be really nice if such an option to set asio host priority to realtime would be implemented in some future release.


I subscribe, I'm using an ASUS STX and clicks & pops but dissapears when asio host is set to realtime priority instead of high.

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #14
Microsoft seems to have written a new scheduler for handling tasks better in 8, and it works, but the priority settings now mean different things, and anything below the redesigned "Realtime" setting means it's handled in a way that is not suitable for audio playback on some ASIO drivers, so it pops at every latency.  The easiest solution is to add ALL of the priority options to the ASIO component instead of just having a tickbox for "high priority."


Which latency buffer are you talking about ... ASIO I/O buffer or foobar2k playback buffer?

If you set the ASIO I/O buffer to say 50ms does it still give issues (on foobar2k you get the ASIO dialog opened by double clicking the ASIO device name in ASIO drivers list box) ? If it does then have you ever checked if your system is working well for audio streaming? (use tools: http://www.thesycon.de/deu/latency_check.shtml or http://www.resplendence.com/latencymon)


Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #15
The problem still exists in 10. I have more details about it, too: Mirosoft re-programmed the scheduler to move processes around the queue depending on their CPU usage. "Priority settings" are now only biases or, in simplified terms, suggestions. Under this new system, a low-priority application will get moved above a high-priority application in the queue if it's currently using a lot of cycles. The only way around this is to set the ASIO host process to real-time, which bypasses the new dynamic queue. Otherwise, the ASIO host will be benched any time something crunches on the CPU, which will cause the music to stutter severely. This happens most often on my end with Firefox.

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #16
Priority classes have _always_ been base levels, which are then offset by the individual thread priority levels. Check the Windows C headers in the SDK, or in MinGW if you value your ability to contribute to that particular project, but don't trust what you see in their headers, glaring errors can only be corrected by someone who has been told second hand that something is amiss, actual contributors aren't allowed to look at the Windows SDK.

Anyway. Priority Class controls the base priority level, thread priority adds to or subtracts from that level. Process Explorer handily displays threads' effective priority levels.

Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #17
Priority classes have _always_ been base levels, which are then offset by the individual thread priority levels. Check the Windows C headers in the SDK, or in MinGW if you value your ability to contribute to that particular project, but don't trust what you see in their headers, glaring errors can only be corrected by someone who has been told second hand that something is amiss, actual contributors aren't allowed to look at the Windows SDK.

Anyway. Priority Class controls the base priority level, thread priority adds to or subtracts from that level. Process Explorer handily displays threads' effective priority levels.


Thinking back, you're right. They were always suggestions. It seems to me that priority classes are considered less important post-W8 than they were pre-W8. I've NEVER seen a Low process straight up steal cycles en masse from a High process in normal use cases in 7 and earlier, but I see it in 8+ all the time. It kind of sucks, because I used to be able to set renders to Low and continue using my PC, but now it messes with UI rendering and other software like the priority class does nothing at all. It's infuriating.

The easiest fix would be to just change the "high" checkbox in the asio plugin to be a dropdown that selects priority class. Then everyone wins. The source isn't available, though.

Re: Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #18
This can be solved by disable UAC completely.

To disable UAC completely, we have to set HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA to 0. Restart. Then foobar2000 can start the ASIOHost process in realtime priority, no gliches anymore, all is good.
Except that metro apps will not work anymore, which is fine to me =)

If you want to keep metro apps, you can change foobar2000.exe's compatibility setting to enable "Run this program as administrator". Same effect as above.
The downside of this method is that explorer's context menus like "Play in foobar2000", as well as drag & drop music files into foobar2000, will not work anymore, since explorer and foobar2000 are not running in the same account now.

Re: Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #19
Disabling UAC is a poor workaround at best. Audio related threads already work with higher priority than anything else and further boosts should be absolutely unnecessary.
If the default 1000 ms playback buffer is not enough try increasing it. ASIO drivers usually have their internal buffer setting that one may need to increase too. It's tiny by default since ASIO is meant for realtime monitoring.
And Latency Monitor can help with tracking down drivers that are causing audio issues.

Re: Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #20
Disabling UAC is a poor workaround at best. Audio related threads already work with higher priority than anything else and further boosts should be absolutely unnecessary.
If the default 1000 ms playback buffer is not enough try increasing it. ASIO drivers usually have their internal buffer setting that one may need to increase too. It's tiny by default since ASIO is meant for realtime monitoring.
And Latency Monitor can help with tracking down drivers that are causing audio issues.
Playback buffer does not affect ASIO in any way, because as you've said yourself, it has its own internal buffer. On many devices ASIO buffer can't be set higher than a certain rather low value (80ms for Xonars, for instance). It's usually enough for idle playback with no issues, but attempting to do anything else that is CPU taxing (like opening a browser) on a not-so-hiend PC will result in stutters. And I speak from experience. So setting ASIO host process to realtime indeed does help. neograniceni's little tool from post #6 in this thread saves the day, and I want to thank him for it. I have not tried the UAC method though.

Re: Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #21
Disabling UAC is a poor workaround at best. Audio related threads already work with higher priority than anything else and further boosts should be absolutely unnecessary.
If the default 1000 ms playback buffer is not enough try increasing it. ASIO drivers usually have their internal buffer setting that one may need to increase too. It's tiny by default since ASIO is meant for realtime monitoring.
And Latency Monitor can help with tracking down drivers that are causing audio issues.
Microsoft changed scheduler behaviour in late versions of windows (after Vista?), anything other than realtime is not suited for pro audio with tiny buffers.
But just as you said, realtime is a poor and dangerous solution since it can easily hung the entire system if something goes wrong, and windows requires admin privilege to run a process in realtime.
So MMCSS (Multimedia Class Scheduler Service) is introduced specially for this scenario, and foobar2000 does run itself using MMCSS, but it seems the spawned ASIOHost process is not using it?

Re: Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #22
neograniceni's little tool from post #6 in this thread saves the day, and I want to thank him for it.
Great tool! Thanks neograniceni & Pollux88, this is better than disabling UAC.

Re: Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #23
Because the original link to my tool does not work anymore, here is the link to the latest build. Please rename the downloaded file to ASIOhrp.7z and unpack it using asiohrp as a password.
ASIOhrp

Re: Pops and clicks using official ASIO in Windows 8 with foobar, but no p

Reply #24
Thank you for the new file.

I have the same probleme !  Does it work with Windows XP ?