Thetis audio glitch discussion
Posted: Thu Dec 26, 2019 2:40 am
Referencing the PowerSDR FAQ post here, I've been doing a little work on trying to narrow down the best way to solve this problem with Thetis.
The PC is an i7-7700k overclocked to 5GHz with 32GB of 3200MHz RAM. In other words it's a pretty damn fast machine.
My resampler settings give stable, low latency results, except at startup where I need to poke at VAC a few times to get things going OK. So that's all good to go and not responsible for any audio glitches.
I do see seq errors in the log, but they are an occasional thing, are of a low order (1 to 3 packets missing), and these are not audible, therefore technically not audio glitches, so I don't care so much.
My serious, audible audio glitches come from blocked Thetis process threads. I've pretty much proven this to myself as follows:
1. I load up the CPU to 50% or so by a) running Thetis, b) running OBS for my live radio stream, and c) running a bunch of open tabs in Chrome.
2. Under these conditions I then fire off a LAN speed test session using Tamosoft Throughput Test. I get a steady stream of seq errors in the log from this, but they are of low order (1 to 3 missing packets) and none of these are audible. So it's not a LAN, NIC or IP stack problem.
3. Without Tamosoft running, I load or close complex web pages in Chrome. This causes CPU spikes and BAM!, audible glitches, with corresponding seq errors of a very high order, sometimes even 100's of packets.
I've done the CPU affinity dance with Chrome and Thetis and that does not seem to do the trick.
I've used Task Manager to laboriously set every Chrome process priority (20 or more separate processes!) to "low" priority and that seems to work pretty good!
The question is: can the critical threads in Thetis be identified, and can they be given an appropriate priority such that normal priority threads don't mess with them, thereby eliminating the need to having to either a) manually mess with the priorities of other processes like Chrome or, worse, b) avoiding running other software on the PC while running Thetis?
The PC is an i7-7700k overclocked to 5GHz with 32GB of 3200MHz RAM. In other words it's a pretty damn fast machine.
My resampler settings give stable, low latency results, except at startup where I need to poke at VAC a few times to get things going OK. So that's all good to go and not responsible for any audio glitches.
I do see seq errors in the log, but they are an occasional thing, are of a low order (1 to 3 packets missing), and these are not audible, therefore technically not audio glitches, so I don't care so much.
My serious, audible audio glitches come from blocked Thetis process threads. I've pretty much proven this to myself as follows:
1. I load up the CPU to 50% or so by a) running Thetis, b) running OBS for my live radio stream, and c) running a bunch of open tabs in Chrome.
2. Under these conditions I then fire off a LAN speed test session using Tamosoft Throughput Test. I get a steady stream of seq errors in the log from this, but they are of low order (1 to 3 missing packets) and none of these are audible. So it's not a LAN, NIC or IP stack problem.
3. Without Tamosoft running, I load or close complex web pages in Chrome. This causes CPU spikes and BAM!, audible glitches, with corresponding seq errors of a very high order, sometimes even 100's of packets.
I've done the CPU affinity dance with Chrome and Thetis and that does not seem to do the trick.
I've used Task Manager to laboriously set every Chrome process priority (20 or more separate processes!) to "low" priority and that seems to work pretty good!
The question is: can the critical threads in Thetis be identified, and can they be given an appropriate priority such that normal priority threads don't mess with them, thereby eliminating the need to having to either a) manually mess with the priorities of other processes like Chrome or, worse, b) avoiding running other software on the PC while running Thetis?