oldschooldaw.com

Operating Systems => IBM PC 32bit => Windows XP (Oct 2001) => Topic started by: chrisNova777 on March 04, 2017, 09:35:59 AM

Title: optimising windows xp for music (March 2002)
Post by: chrisNova777 on March 04, 2017, 09:35:59 AM
http://media.soundonsound.com/sos/mar02/articles/pcmusician0302.asp

(http://media.soundonsound.com/sos/mar02/images/pcmusicianhead.gif)

Quote
Martin Walker

During last month's somewhat positive review of Windows XP, I mentioned that with its default settings, it probably wouldn't provide audio performance on a par with a well-tweaked Windows 98SE installation. However, as any Windows 98 user who has taken the plunge and installed XP will already know, its system files, 32-bit architecture and fully protected memory model make it very different, and although some of the tweaks are identical, it also requires a fresh set of optimisations. In fact, it's very similar to Windows 2000, so many of the tweaks I'm about to present will be just as valid for this platform.

Before I start, it's worth reiterating for newcomers why musicians have to tweak each and every version of Windows to get the best audio (and, for that matter, MIDI) performance from it. It's not because Microsoft have 'got it wrong', but because we want to use our PCs in a very different way from most other people. Whereas the majority of users perform a variety of tasks one after the other, and want each one to be carried out at apparently breakneck speed, we need sustained performance in one main area -- the streaming of audio and MIDI data -- and all other activities, including user input, must take a lower priority. This may mean that occasionally the user interface feels a little sluggish, but to the musician this is far preferable to the alternative.

Multi-tasking

While you're recording an audio stream, as well as playing back perhaps dozens of others at the same time, there are loads of other tasks that need periodically revisiting if the system is to seem responsive to the user. These include graphic updates, accepting user input from the computer keyboard and MIDI keyboard, calculating the output from whichever real-time plug-ins and software synths and samplers you're running, and perhaps even editing some of the MIDI or audio data at the same time.Of course, these tasks aren't all being carried out at the same time. Instead, to maintain this illusion, the operating system has to do a little bit on each task in turn. Some, like audio streaming, are given a higher priority than others such as keyboard input, which is why any MIDI + Audio sequencer may feel a little sluggish to user input when you begin to push it closer to its particular performance limit. However, it's when you push your PC close to its performance limits that if any taks turns up out of the blue it can push things over the edge, and cause a dropout.

To make sure that nothing unexpected happens, we must rejig Windows slightly so that any of the tasks that normally get slotted into the inevitable little gaps, but which are not specifically required during music making, are either spread out as evenly as possible or deactivated altogether. Thankfully, Microsoft provide plenty of ways to tweak Windows to achieve this, so all we have to do is identify those tasks, and where possible make the appropriate changes.

ACPI Options

The Advanced Configuration and Power Interface (ACPI - http://www.oldschooldaw.com/forums/index.php?topic=3679) has caused many frustrations for musicians over the last few years, and since there's a switch in the Windows XP setup procedure that lets you install XP without using ACPI at all, this is the first topic on my agenda. It is also possible to remove ACPI once Windows XP is already installed, as I'll explain, but I can't guarantee that this will be as clean.

ACPI is a power-management specification developed by Intel, Microsoft and Toshiba, and support for it is built into every Microsoft operating system since Windows 98. It's designed to let the operating system control the amount of power provided to each hardware device or peripheral attached to the computer, and makes it possible for Windows to turn off your monitor screen, CD-ROM drive, and so on. As you might expect, It's particularly important in laptops, where extending battery life is a priority, and makes it possible for the entire PC to be turned on or off by external devices, so that you can for instance wake up your PC at the touch of a mouse or key: this technology is known as OnNow.

Once ACPI has been installed on a compatible PC, you can put it on Standby (also known as Suspend to RAM), which turns off the monitor and hard drives to conserve power until you want to do some more work, when your desktop will appear exactly as you left it. However, if you get a power cut, you will lose any unsaved work. Hibernation mode goes one further, by also saving everything currently in memory to your hard drive and then turning off the computer. When you restart it, your desktop will be restored exactly as you left it, although it will take longer to reappear than it does from Standby mode.

IRQ Steering Revisited

In theory, ACPI also makes adding new Plug and Play devices easier, since it's involved with reassigning IRQs to the various PCI expansion slots automatically, using our old friend IRQ Steering. There's no reason why multiple expansion cards shouldn't be able to share the same IRQ, as long as they all fully support such sharing. Unfortunately, some soundcards prefer to have their own dedicated interrupt, and if they end up sharing they may exhibit clicks and pops that don't respond to the normal OS tweaks.

As I've explained before, you can often solve such problems by moving the soundcard in question to another slot, which forces an IRQ reshuffle. However, with ACPI's IRQ Steering active, many musicians find that three or four hardware devices get forced to one IRQ (normally IRQ9), whatever they do, even when there are apparently other spare interrupts still available. This, at least, is what Windows reports: the reality may be that IRQ9 is used for ACPI configuration while each device actually gets its own IRQ, but Windows doesn't tell you what gets allocated to each device.

It's possible to disable just IRQ Steering, but the fact remains that many seemingly intractable soundcard problems have disappeared as soon as ACPI is disabled, especially in Windows 2000. Audio stuttering is a particular problem, even when the buffer sizes and therefore latency are increased way beyond typical values, as well as more random clicks and pops, sometimes only starting after the PC has come out of sleep mode. Some hardware web sites even claim that disk transfer rates drop with ACPI enabled!

Heated debate still occurs among experts about whether or not the cause of the problems is the Windows part of ACPI, or the particular soundcard, motherboard, or BIOS implementation. I've seen various claims that ACPI has been improved in Windows XP, and seems to spread its IRQ allocations rather better; certainly, some musicians have reported being able to achieve lower latencies using the same soundcard than when running under Windows 2000. Disabling ACPI in Windows 2000 can also have benefits: I spotted one user who reinstalled Windows 2000 in Standard Mode after running it in ACPI mode for some 18 months with occasional glitches at 12mS latency. Immediately after the change he managed the lowest 2mS latency with his Delta 1010 soundcard. Cakewalk Sonar users seem to be achieving particularly good results in this area.

Disabling ACPI Before Installation

Personally, I've never had any ACPI-related problems, but given that it's debatable whether sleep modes are particularly useful in a desktop PC anyway, you may want to consider preventing Windows XP from installing ACPI in the first place. Remember that if you also want to disable IRQ Steering, you'll need a unique interrupt for each hardware device. If you're confident that you have enough interrupts available, here's how to do it.

The simplest option is to disable your motherboard's ACPI functions in the BIOS, so that Windows XP doesn't detect it as an option during the install procedure. Unfortunately, BIOS options such as 'ACPI Function' seem to exist only in a few PCs. (One that you should find is 'Plug & Play O/S' which should be set to 'Yes' if you want Windows to reassign IRQs, and 'No' if you want to do it by hand in the BIOS.) However, ACPI normally only gets installed if all the components detected support Power Management, so if you have an older non-compliant BIOS or ISA expansion cards installed, you may find that XP simply ignores ACPI anyway, whatever BIOS settings you use.

During both the Windows XP and 2000 setup procedures, a few minutes in you'll see a screen that displays the message 'Press F6 if you need to install a third-party SCSI or RAID driver'. Instead, press the F5 key (there's no mention of this option on screen), whereupon you can choose either 'Standard PC' or 'ACPI System'. Choosing the former is the cleanest approach if you've decided to avoid the 'benefits' of Sleep and Hibernation modes on your PC. The only feature you may miss is the ability to Shut Down automatically using Windows, without having to use the power switch.

Removing ACPI From An Existing Installation

If you've already installed Windows XP, you can find out whether or not it's installed ACPI on your machine by looking in Device Manager (now in the Hardware page of the System applet inside Control Panel). At the top of the Device Manager entries you'll see 'Computer': if you click on the '+' next to it to expand the entry, you'll see the appropriate description, either 'Advanced Configuration and Power Interface (ACPI) PC', or 'Standard PC'.

If you've already installed XP with ACPI enabled by default, there are a couple of ways to switch to Standard mode without reformatting and going through the entire procedure again. If you right-click on the 'Advanced Configuration and Power Interface (ACPI) PC' description and select the Properties option, and then the Driver page on the window that appears, you can select 'Update Driver'. Choose the second 'Install from a list or specific location (Advanced)' option on the subsequent page, and then the 'Don't search. I will choose the driver to install' option on the following page. This should come up with two options, namely ACPI PC and Standard PC.

Microsoft apparently claim that you can switch from Standard Mode back to ACPI by choosing the ACPI option here and allowing the PC to reboot. However, they don't recommend it for removing ACPI functions, and some people trying this have been unable to boot their PCs at all afterwards -- so, if you want to try it, use some drive imaging software first to make a full backup.

The second approach takes longer, but is apparently more thorough and reliable. You just insert the Windows XP CD-ROM, and run its setup routine once more as an upgrade over the existing installation. XP claimed that this would take 49 minutes on my PC, but it actually took just 25. Once back at the desktop, you can disable IRQ Steering separately within Control Panel if you wish: open the properties page of 'PCI bus' in the System Devices section, and you can disable it from the IRQ Steering page.

Graphics Settings

The first thing that most new users of XP will notice is that like its predecessors, XP has loads of graphic frills, which range from 'dissolving' or 'fading' menus, to little windows that pop up containing tips, as well as various other animations and display refinements. However, each and every one takes processor power away from your music applications.

Thankfully, there's an extremely easy way to disable a lot of graphic fripperies with a single mouse click. If you go into Control Panel, click on System, select the Advanced page, and then click on the Settings button in the Performance section, up will pop a new window with a Visual Effects page. By default the main setting will be 'Let Windows choose what's best for my computer', which in my case meant that all but one of the sea of tick boxes beneath were activated. 'Adjust for best appearance' forces all selections to be enabled, but for our purposes 'Adjust for best performance' disables every single one, and is probably the quickest choice for a musician. However, should you wish to experiment, the 'Custom' option lets you choose each option individually, and I intend to do just this, since benchmark tests don't seem to show a significant hit with all the frills in place.

After making your choice of the various visual effects, you should as always select None for screen saver in Display, and preferably None for the Desktop background as well, to minimise graphic interruptions. I suspect most musicians will be using a 1024x768 resolution screen with a 17-inch CRT or equivalent 15-inch LCD monitor, and for best audio performance you'll probably want to select 16-bit or 24-bit 'Color Quality'. Although many music tweak sites still recommend 256 colours, these were written at a time when graphic cards were a lot slower. Nowadays most graphic cards have built-in acceleration features for higher colour depths, and if you drop to 256 colours your processor may have to work harder. Similarly, the hardware graphic acceleration features of your card should all be left enabled for best performance, so tick this in the Settings page of Display Properties. Click on the 'Advanced' button, and then you'll find the Hardware Acceleration slider on the Troubleshooting page.

Quite a few musicians (including me) now have LCD monitors, which provide various advantages such as a smaller footprint between the speakers, and freedom from interference when recording electric guitar close by. For these, Microsoft provide another new technology in Windows XP: ClearType, which delivers improved display resolution by comparison with traditional anti-aliasing, and improves readability on colour LCD monitors when using 256 or more colours. I found it provided a smoother rendition of text, as well as a significantly better legibility in many applications, with my Hansol 520F LCD monitor. However, it will make standard CRT monitors appear slightly blurry. As you might expect, you activate it in the Display applet of Control Panel, by clicking on the Effects button of the Appearance page. This launches a further dialogue window where you can select ClearType in the 'Use the following method to smooth edges of screen fonts' box. Microsoft also have a web site where you can automatically set ClearType to one of six different settings for the clearest display on your monitor (www.microsoft.com/typography/cleartype/).

Other Control Panel Tweaks

To make sure that your hard drives are correctly using DMA for low CPU overhead, open Device Manager and expand the entry labelled 'IDE ATA/ATAPI Controllers'. Right-click on each IDE channel entry, and select the Advanced Settings page. Here you can check that the Transfer Mode is correctly set to 'DMA if available'.

Open the 'Power Options' applet of Control Panel and set Power Schemes to 'Always On'. This will prevent your hard drive being powered down unexpectedly, while choosing 'No Sounds' as the Sound Scheme in the Sounds page of the 'Sounds and Audio Devices Properties' applet will prevent Windows from starting an 8-bit 11kHz system sound in the middle of your finest audio recording.

System Restore is similar to the identically named feature in Windows ME, and lets you backtrack to a previous state if anything goes wrong. However, to do this, it has to monitor your hard drive activity, and by default it runs in the background. XP lets you disable this monitoring on individual drives from the System applet in Control Panel, but only by ticking the 'Turn off System Restore on all Drives' option can you stop this altogether. Selecting this option will also delete all existing restore points, releasing some hard disk space. While you're here, jump to the Automatic Updates page, and assuming you don't wish Windows to start downloading update files automatically while you're on-line, tick the box labelled 'Turn off automatic updating. I want to update my computer manually.' You can also perform the same Virtual Memory tweaks as on the Windows 98 series. This time the Advanced page of the System applet holds a Performance Settings button: if you click on this and then select its Advanced page you'll find several settings worth tweaking. Check that Processor Scheduling is correctly adjusted for best performance of 'Background Services' rather than 'Programs'. Next, click on the Change button of the Virtual Memory section. You can then either choose a 'Custom size' -- most people recommend 1.5 times the System RAM for both Initial size and Maximum size -- or if you have 512Mb or more RAM, you could select 'No paging file' to get rid of the swap file altogether. Make sure you still have enough RAM for sample storage if you decide on the latter option.

Services On Demand

Like Windows 2000, Windows XP uses Services -- specialised routines that perform specific tasks. Microsoft describe a Service as "A program, routine, or process that performs a specific system function to support other programs, particularly at a low (close to the hardware) level." Most services can be set to either Automatic, Manual, or Disabled. The main difference is that with the Automatic setting Windows loads them into RAM when it boots, which can increase booting time, although they shouldn't take any CPU overhead until they are actually called to do something. When set to Manual, Windows is supposed to only load each Service when it's needed, decreasing booting time, but possibly decreasing system performance while it's activated. However, this doesn't always seem to be the case, so some care is needed. Going even further and setting a Service to Disabled also decreases booting time, but means that it must be started by hand if required. However, disabling some Services can stop Windows booting up at all, so you have to tread very carefully if experimenting.

The fact that the list of installed Services will vary from one installation to another, depending on such factors as Network settings, makes it impossible for me to specify definitive settings. Even long-term users of Windows 2000 don't yet seem to know all the answers, and of course Windows XP introduces new options that further complicate the issue. However, with sufficient knowledge it's possible to reclaim 10Mb or so of RAM by disabling irrelevant Services. It's up to you whether or not you attempt it.

The quickest way to launch the Services window is to select Run from the Start menu and type 'services.msc'. Here you will see which Services have been Started, and can Stop, Pause, or Restart them individually, as well as read a fairly detailed description for each one. To change the status of a particular Service, right-click on it and select Properties -- on the General page of the window that appears you will see a drop-down box labelled 'Startup Type' about half way down.

One sensible approach is to set all Services to Manual, and then reboot your PC and use it for an hour or two with your normal set of applications. By this time the Services that are needed will have been started, and you can set all these to Automatic. Then, the next time you boot XP, all the Services that you need will be pre-loaded, while unwanted ones won't clog up your RAM.

Due to the huge number of possible Services (I totted up 75 in my XP installation), I can't provide a comprehensive of do's and don'ts here, but I do hope to be able to post a fairly comprehensive list on the SOS Forum sometime soon. In the meantime, here are some to be going on with:

Quote
Automatic Updates can be switched from Automatic to Manual if you prefer to install system updates manually from the Microsoft web site.

* Computer Browser maintains an updated list of computers on a network. If yours isn't on one, you can change the setting from Automatic to Manual.

* DHCP Client also refers to network configurations (and certain permanent Internet connections), and can be changed from Automatic to Manual if you don't use one.

* Distributed Link Tracking Client is only relevant to those who have formatted their hard drives as NTFS volumes, and can be changed from Automatic to Disabled if you use the more audio-friendly FAT32 format.

* Indexing Service provides similar functions to FindFast in Microsoft Office, and can be safely disabled to speed up normal disk accesses slightly, at the expense of slightly slower file searches.

* Internet Connection/Firewall Sharing is only useful if you're sharing an Internet connection on a network, so musicians should be able to switch it to Manual.

* Logical Disk Manager detects and monitors new hard disk drives, and should be left well alone, since you can prevent XP from booting if you alter it.

* Portable Media Serial Number is by default set to Automatic, but if you don't ever plug a portable music player into your PC it can be disabled.

* Print Spooler loads files to RAM for printing out later, and if your music PC doesn't have a printer installed, you can safely switch this to Manual.

* Task Scheduler will be familiar to Windows 98 users, and schedules various utility programs to run at predetermined times. Since you can run these on demand anyway, you can disable it.

* Telnet allows a remote user to log on to the system and run console programs using a command line, and you should be able to disable this, providing better system security as well.

Slimming Down

One factor that will probably surprise many Windows 98 users is the sheer size of Windows XP: the default installation on my hard drive was 1.5Gb, compared with only a few hundred Megabytes for Windows 98. However, if you've decided to leave your PC in ACPI mode, there's a very quick way to regain a possibly huge amount of hard disk space. In the Power Options applet of Control Panel, take a look at the Hibernate page. If 'Enable Hibernation' is ticked, XP will create a file named hyperfil.sys to store the contents of your RAM. In my case, this is now 512Mb, so unticking this option immediately gave me back half a Gigabyte of hard drive space.

Windows 98 lets you decide during the course of its installation which Components (Accessories, Multimedia, System Tools and the like) you install. XP doesn't offer these options during the install, but if you do want to recover some hard disk space used by XP features that you never propose to use, here's how to do it.

The obvious place to try is the 'Add or Remove Programs' page of Control Panel. Clicking on 'Add/Remove Windows Components' scans your system to provide an up-to-date list of which components you currently have installed. Using this I removed the 12Mb of default Games, but on my PC only 35Mb of components were listed as being uninstallable. There are in fact various other components that are hidden, but it's possible to make them reappear by manually editing the file named sysoc.inf in the Windows/Inf folder. Make sure you make a backup first, then open the original using a simple text editor like Notepad. You'll notice that many of the lines contain the word 'hide', and by deleting just these four letters (leave the commas to either side) you can force the relevant component to appear in the Add/Remove list next time you run it. There's no reason why you shouldn't delete every instance of hide, as long as you're careful about what you actually delete later on. Once component that you can delete with no worries is Windows Messenger.

Many thanks to Rich Griffiths of Red Submarine for sharing some of his Services arcana.

Quote
   Disabling Background Tasks   
    Like most Microsoft operating systems before it, XP relies on the gaps between typical user input to perform various background tasks, and many of these will be fairly familiar to Windows 98 users. You can still disable startup tasks by clicking on the Run command in the Start menu, and typing 'msconfig' in its text box to launch the MS Config utility. On its General page, choose the Selective Startup option: you can disable individual startup routines from its Startup page.
XP's ability to log on multiple users with their own settings is certainly handy, and on occasion it might be useful to let someone else log on and do a bit of their own work on a different application while your MIDI + Audio sequencer is still running in the background. However, make sure that they log off before you continue doing any serious music making, since even if you switch back to your account their applications will still be consuming RAM, and possibly CPU overhead as well.

Quote
Windows XP Power Toys   
    Like previous versions of Windows, XP has its own Power Toys. Once again, Microsoft supply these useful utilities 'as is' with no technical support, to prevent floods of calls from users who manage to tweak their PC into a sorry state. However, they're a free download of just under 1Mb, and indispensable if only for Tweak UI, which lets you alter settings not otherwise available except by manually editing the Registry.
Unlike previous versions, Tweak UI for XP is a stand-alone utility rather than an applet that appears in Control Panel, and dispenses with multi-tabbed windows in favour of an Explorer-style display with cascading menu structure. Using it, I adjusted the menu display speed to the fastest possible setting in the Mouse options section, and stopped various applets from being displayed in the Control Panel section that are irrelevant to me, such as Accessibility Options, Game Controllers, and Telephony Control (I have no modem in my music PC). Finally, if you want to maintain your cool reputation, here's how to disable that ridiculous animated puppy in the Windows XP Search page: in the Explorer settings, click on 'Use Classic search in Explorer'.

I also found the 'Super-Fast User Switcher' handy. This lets you switch between different users without having to go through the Welcome screen, by using the Windows-Q keyboard shortcut. Most of the others are of questionable use. The enhanced replacement for Alt-Tab switching between open applications seems like a great idea, since it displays a thumbnail of the current screen of the actual application. However, generating these thumbnails takes time, which rather defeats the object of using the Alt-Tab switching shortcut.