Quote:
Answer to the top question nobody asks: audio stutters when streamed through Virtual Audio Cable and VSTHost
There are a dozen settings in VAC and VSTHost that are claimed to be related to this: MS per int and Stream format limit in VAC, buffer size in VSTHost, priority levels for VSTHost... but none have had as great an effect on fixing things than this fix for me:
These two audio-related services in windows need to be manually raised to high priority for audio to play smoothly through VAC and VSTHost on any but the most bare-bones system with nothing running in the background.
Instructions for Windows Vista / 7
1. Open Task Manager (Ctrl-Alt-Del)
2. Go to the Processes tab
3. At the bottom, there's a button with a shield icon labelled "Show processes from all users". Click this button and okay any security warning that pops up.
The svchost processes that host these two services will be hidden unless you take this step.
4. Go to the Services tab
5. Click on the Name column to sort services by name, this helps you to find the two audio services easily.
6. Right click on AudioEndpointBuilder, click "Go to Process"
7. You will be taken to the Processes tab where a process called svchost.exe will be highlighted.
8. You may see several identically named svchost.exe. Right click the one
that is currently highlighted, click "Set Priority", choose "High". Confirm to change priority in the warning window that pops up.
9. Go back to the Services tab and repeat steps 6-8 for AudioSrv to raise its service host priority to high as well.
After I made these manual tweaks, VAC and VSTHost have been running as stutter-free as can be expected on my heavily loaded system.
Some observations about these services:
Both Svchost processes serve also other services. You can list the services with command
tasklist /SVC /FI "IMAGENAME eq svchost.exe"
My list is:
Image Name PID Services
========================= ======== ============================================
svchost.exe 1204 DcomLaunch, PlugPlay, Power
svchost.exe 1284 RpcEptMapper, RpcSs
svchost.exe 1432 AudioSrv, Dhcp, eventlog,
HomeGroupProvider, lmhosts, wscsvc
svchost.exe 1476 AudioEndpointBuilder, CscService, hidserv,
HomeGroupListener, Netman, PcaSvc, TrkWks,
UmRdpService, UxSms, wudfsvc
svchost.exe 1504 AeLookupSvc, Appinfo, BITS, Browser,
CertPropSvc, gpsvc, IKEEXT, iphlpsvc,
LanmanServer, MMCSS, ProfSvc, RasMan,
RemoteAccess, Schedule, SENS, SessionEnv,
SharedAccess, ShellHWDetection, Themes,
Winmgmt, wuauserv
svchost.exe 1720 EventSystem, fdPHost, netprofm, nsi,
SstpSvc, WdiServiceHost, WebClient
svchost.exe 1848 CryptSvc, Dnscache, LanmanWorkstation,
NlaSvc, TapiSrv, TermService
svchost.exe 2052 BFE, DPS, MpsSvc
svchost.exe 2208 stisvc
svchost.exe 4284 PolicyAgent
svchost.exe 4444 FDResPub, FontCache, SSDPSRV, upnphost
svchost.exe 6992 p2pimsvc, p2psvc, PNRPsvc
When you change the priority, you have to change it always after reboot. When you change the priority, you are changing it for all the services in the same process.
The services are configured in Registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost
If I read the registry right, it might be possible just to create new Scvhost processes just for these audio services.
Key:LocalServiceNetworkRestricted
Value:
DHCP
eventlog
AudioSrv
BthHFSrv
LmHosts
wscsvc
homegroupprovider
WPCSvc
Key:LocalSystemNetworkRestricted
UxSms
WdiSystemHost
Netman
trkwks
AudioEndpointBuilder
WUDFSvc
IPBusEnum
hidserv
dot3svc
irmon
sysmain
PcaSvc
homegrouplistener
WPDBusEnum
wlansvc
TabletInputService
CscService
UmRdpService
and there's sub keys for both of these with additional options.
It might be possible just to make duplicate copies of these and isolate audio services to those.
But I don't know what happens when I get updates for Microsoft if they assume the services are not modified. That might mess my system.
More info:
http://support.microsoft.com/kb/314056
It might be possible to try to automate this priority change:
- list tasks to spool file
- grep with the audio services, get pid
- change priority (somehow) with pid.
And the add this to boot.