"I’m going to share my experiences of optimizing our CAS/DAW computers, to talk about how to improve the sound quality of PC.
CAS (Computer Audio system), as well as HTPC, for output to high-end audio systems playing back, mainly for entertainment usage.
And DAW (Digital Audio Workstation), is the industrial or workstation edition of CAS, mainly for audio studios, and composers, also for someone making home studio, or audio FX or music producing, and sometimes they would record something like guitar, bass, or vocal etc…
Both of them are also computers for pro-audio, and just the differences of functions, the way to optimize their sound are very nearly similar.
And my computer is even a system for PC + CAS + DAW 3 usage inside a same machine. So some universal ways those the others teach you to build a simple CAS/HTPC or DAW and told you to disable many stuffs. But I’m not going to tell you to do so. Because it’s still need to be kept a system-balanced stable status of a “normally well computer” and it can help the sound quality actually.
OK, now start from choosing the computer configurations.
First, audio is one of the media types.
For processing multimedia, AMD can never be as good as Intel or better, especially the CPU instructions, float operations etc. Intel is always the much faster one in such all. And even in full workloads, e.g. a large amount of keeping transcoding, turned on many high precision effectors etc., it’s really much more stable and faster in evidence.
So cause of this, that’s why Mac computers – which are the best for media production, they just use the complete Intel system only and never use the other CPU and chipsets except their old PowerPC.
So that’s why so many people said “the only advantage of AMD is just price”.
Normally there is a component called HPET (High Precision Event Timer) inside the Intel motherboards or Intel Chipset nowadays (around from the period of Pentium D).
This stuff is developed by Intel and Microsoft from 2005. But I cannot sure are there any same stuffs in the other chipsets or AMD systems.
HPET can be enabled in the BIOS of your motherboard. This stuff helps the sound quality so much in evidence. You can hear the large differences obviously between enabling it or not. So it is strongly recommended to enable it. If you cannot see any HPET inside your BIOS configurations, maybe you may upgrade your BIOS and let’s see it exist or not.
Make sure the power supplied to your computer must be sufficient.
Of course, there are seldom people may setup such systems with onboard sounds. Most of them are such as PCI/PCI-Express soundcard, 1394/USB/PCI DAC/Audio-Interface etc…
One thing you should notice that, if you need to use any 1394/USB cards, then you should better choose those products which are using the chips of Texas Instruments (TI) or NEC. The chips of ALI or VIA should be avoided to use. Otherwise....... OMG lol, nothing I could say anymore except “good luck”…
It may be better if you can use a display card. The workloads of CPU and I/O would be decreased a certain amount if you do not use your onboard display, but it never help too much actually.
Then now we talk about the operation systems. As I’ve mentioned before, Mac OSX may be the OS which is the best sound quality.
But generally most of the people are still habitually using the platforms of Microsoft Windows. In all of the Windows systems, it’s better to use Windows Vista or Windows 7. Because you can just get the best clocking timer only in the Windows Core Audio. And MMCSS (Multimedia Class Scheduler Service) is the essential key point, it’s extremely helpful for the WASAPI or ASIO. Certainly the performance of Windows 7 is much far better than Windows Vista.
Next, all the drivers must be upgraded to the latest version. And you should install all latest fixes, patches and service packs from the Windows Update.
Starting with Windows Vista, Microsoft requires all computer and audio device manufacturers to support Universal Audio Architecture in order to pass Windows Logo. Then the driver of those devices can work inside the environment of core audio. http://en.wikipedia.org/wiki/Universal_Audio_Architecture
As I’ve mentioned before, There’re still many people use their computer in the function of PC and CAS/DAW mixed usage. That means their computer would be used for audio playback and production but for web browsing, MSN, ICQ, Facebook etc. at the same time too. So they may need to install anti-virus software too.
For all of the anti-virus softwares, There is only the Avira from Germany can do the best detection rate and the best performance at the same time until now. It detects the most viruses but the most fastest speed, just like haven’t run any anti-virus inside. So this one is recommended to use.
This web does several times of benchmarks tests for the anti-virus softwares every year, so you may have a look on their latest test as a reference: http://www.av-comparatives.org/
OK, now we would focus on Windows Vista SP1 and Windows 7 in the following.
Control Panel > Hardware and Sound > Sound, open it, in the “playback” tab, select the output device u need, double-click or click ”Properties” to open, in the “Advanced” tab, select the default sampling rate and bit-size you need. In the part of “Exclusive Mode”, make sure those 2 checkboxes all had been ticked.
For those 2 checkboxes, the first one is for enabling the Exclusive mode of WASAPI, that means it can bypass the windows mixer and output simply directly, and the other sounds from the other tracks of OS mixer cannot be play out anymore, until the audio using the exclusive mode has been released again.
And the second checkbox below is for allowing the audio stream in exclusive mode can be boosted its priority in the whole computer by MMCSS, so it may reduce jitters.
For the slow performance computers, the old hardware configurations, slow display cards or onboard display, the Aero of Windows Vista/7 may better be disabled to speed up the overall performance. Just right click on the desktop > Personalize, then just choose the Windows 7 Basic theme. The basic theme of Windows 7 is still quite pretty although the Windows Vista one is little bit simple.
Now we start to talk about the softwares. Generally the CAS (HTPC) and DAW systems are running different softwares, so we are going to talk about them separately.
For CAS (HTPC) systems, we are going to go through with Foobar2000 as an example.
First, make sure the playback thread have the highest priority. In Foobar2000, File > Preferences > Advanced > Playback > thread priority, just keep it the highest value 7 would be fine
Nest, it’s so important to load the full audio file into RAM and just playback inside the memory. In the item File > Preferences > Advanced > Playback > full file buffering up to, set it to 100,000KB or larger value, just depends on the largest file size you would usually play.
ASIO or WASAPI exclusive mode should always be used for playback as possible as it can. If unfortunately both of them are not found either, Kernel Streaming would be an alternate substitute although it is a blemish in an otherwise perfect thing.
All the DSP effects would be disabled as possible as it can, and the volume fader of Foobar2000 should always be kept in 0dB, for avoiding from the unnecessary digital distortive noises. It’s better to keep the dithering disabled too if you are going to just play the simple 16bit x 44100Hz audios, because dithering should be added when the audio were being produced, and not added by user playback.
Finally, even the whole Foobar2000 process should be run in the highest “real-time” priority. Right click the Windows Taskbar > select the "Task Manager" (for Windows XP/Vista) or "Start Task Manager" (for Windows 7), in the “Processes” tab, find and select the process named ”foobar2000.exe” then right click on it > Set Priority > Realtime. If you think it is too trouble, you may just create a new text file and enter the following command text, then save it into a *.bat file:
start "" /realtime "C:\Program Files\foobar2000\foobar2000.exe"
Then every time when you want to launch Foobar2000, just run this .bat file and it is
For DAW systems, cause of the sound quality of Cakewalk Sonar is not very well, and the popularity of Protools and Logic softwares , so we are going to go through with Nuendo and Cubase of Steinberg as an example.
First, actually the whole process of DAW software running in the “realtime” priority can improve the sound quality too. The way to do is same as the CAS systems, but generally most of the DAW systems seldom use this way.
Next, launch your Cubase/Nuendo, then go to Devices > Device Setup > VST Audio System. Steinberg softwares can use ASIO only in general. Then in the “Advanced Options” part, the “Audio Priority” must be set to “Boost”, and “Multi-processing” must be checked. For the other configurations, just let them follow the default values would be fine.
About the rest matters of the DAW softwares are all just around the technique of composing, producing and mixing, and out of this topic, so we are not going to go through them anymore.
Here is one thing you may need to notice, although the WASAPI of Windows Vista and Windows 7 now support exclusive mode, but MMCSS is still not automatically supported by default when WASAPI is using with the external DAC or audio interfaces use USB/1394. So the company of those DAC/AI may offer some drivers for Windows Vista/7 which their ASIO drivers would apply the MMCSS manually, just like the driver of AudioFire:
But for the other brands of DAC/AI, they may have some other different solutions, and I don’t know are theirs would be the same. For more details you would have to contact the technical support of your own DAC/AI by yourself. I have also kept contact usually with my Echo technical supports by my own self
For more information about this:
“WaveRT however works only with PCI, PCI Express or onboard audio devices; it does not work with USB or FireWire interfaces which are more widespread in the professional audio industry.”
OK, we should come to the part which may be the most important part right now.
Even we can optimize the sound quality too by modifying the registries of Windows. Then we could get the most extreme priority of audio until the real limitation of your computer, and make your audio signals achieve nearly sample-realtime-perfect, even sounds near the perfect realtime of high end audio disc player machines.
So now just enter “regedit” into your start menu and run it to prepare for modifying your Windows registry.
First, find the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile . The "SystemResponsiveness" key is meaning the minimum percentage workload of every CPU clock task cycle must be reserved for the others except the media streams applied in MMCSS. It is also meaning the CPU workload usage hard limitation of MMCSS multimedia streaming. Otherwise if there are no limitations, the whole computer may possibly stop to response. It would seriously decrease the whole system stability. But Windows system have an acquiescent value 10% about this. Although you set it to 0%, actually system would still work it as only 10%. So you may just set it to 10(%).
And this show again the real differences between the kernel of Windows Vista/7 and kernels of Windows XP or before
http://technet.microsoft.com/en-us/magazine/2007.02.vistakernel.aspx < br />
And in the directory of HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks , stored some configuration profiles of MMCSS to let the programs or drivers choose to use.
Generally, Directsound, Waveout, WASAPI shared mode or such similar API would apply the profile “Audio”, when the WASAPI exclusive mode and ASIO would usually apply “Pro Audio”. But different programs or drivers may apply different profiles. For more details please find their own related information, or contact their technical supports.
So now we are going to go through with “Audio” and “Pro Audio”.
In each profile:
"Scheduling Category" is the overall applied priority policy, string values: “High”, “Medium” and “Low”, of course “High” should be used.
"Priority" is the fine-tuned priority value, integer from 1 to 8, 1 is the lowest and 8 is the highest, so 8 should be used.
"GPU Priority" value from 0 to 31, 0 is the lowest value when 31 is the highest, so you should use 31
"BackgroundPriority" the value of this one is same as "Priority", but just effect its background work time, and also from 1 to 8, when 1 is the lowest and 8 is the highest, so 8 may also be set.
"SFIO Priority" is meaning the priority when the audio streams access any I/Os, e.g. go in/out the DAC/AI, 1394/USB, PCI/PCIE bus, RAM, CPU or hard disk etc. such I/Os. This is string values: “Idle”, “Low”, “Normal” and “High”, so of course you should use “High”.
Just restart the MMCSS service or reboot your computer after you have modified those all and all things would be applied.
Increasing the priorities of some IRQs may help to improve the sound quality too. The IRQs those need to be increased their priority are: IRQ 0, IRQ 8 and the IRQ of your own soundcard or 1394 card. But you must make sure your soundcard own a really standalone IRQ value and ensured absolutely no other hardwares share this IRQ value with it before you do the following things. Otherwise it would decrease the effectiveness of this step. You may find the IRQ of your own soundcard in All Programs in Start menu > Accessories > System Tools > open the System Informations, then in the page of Hardware Resources > ”IRQ”. If there are not only your soundcard but shared the same IRQ number with the other hardwares, then you may try to change another PCI/PCIE slot for your soundcard, until your soundcard got its unique IRQ number. Windows OS never have any rights to change the IRQ number by itself. Perhaps you may change its IRQ in BIOS with some motherboards but not every motherboard.
IEEE 1394 generally must own its unique IRQ number, because this is its original own designed standard and never be changed. So IEEE 1394 is very easy to set its IRQ priority. This is its innate advantage of performance, for its high performance realtime industrial standard designed.
But if you are using some USB DAC/AI, then sorry, there’re really nothing I can help. USB must share its IRQ number with other hardwares. This is its innate designed standard too, from USB v1-v3 are same. Because its original design has never let you to use it in high performance works, so, USB card cannot be increased its own IRQ priority.
IRQ 0 is the system timer of your CPU, and IRQ 8 is the CMOS of your motherboard and the real-time clock, HPET may also be placed inside. So It help the sound quality a lot after you have increased those IRQ priorities.
Now keep going on, and also we have to run the “regedit”, and then go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl, and add a registry key “IRQ#Priority”. The “#” inside the key name is the IRQ number you may need to add. For example, it you need to increase the priority of CMOS then you should add a registry key "IRQ8Priority", and then set its value to 1.
It’s the same way to do for IRQ 0 and the IRQ of your soundcard/1394card, here are the examples:
OK, fine, just reboot your computer after you’ve set all, then all things would be applied.
After all the things I’ve said above have been configured, wow! All the sounds from the computer, sounds really all much better. The sound seems like a high-end disc player machine, really sounds like played from hardware firmware. If the quality of your sound codec is good enough, e.g. AKM 128x oversampling, then you would hear less and less digital noises, sounds like the analog tapes in studios. The noises had never been so less and even all the details those never been heard before and now I can hear! But this time the sound quality had been improved too much, the speakers sounds a little bit like new-bought. It’s time for us to burn-in our speakers again!
So buddies you may try those my personal ways, and share your own improved result here."