Martin Walker
Many musicians have been worrying recently about the CPU spikes that are attributed to Intel's Pentium 4 processor when dealing with very small audio signals. However, this isn't a particularly new problem in fact, I mentioned it in my 'Stabilising Your PC' feature way back in SOS November 2001, which you can read on-line at: www.soundonsound.com/sos/nov01/articles/pcmusician1101.asp.
To recap, the problem occurs when audio signals being processed by software plug-ins drop to very low levels. In the case of the Pentium 4, when these levels fall below around 1 x 10 -38, the CPU drops into the more intensive and high-resolution 'denormal' mode. When this does happen, some calculations may take up to 30 times longer, so typical symptoms include sudden CP However, I don't have any choice in the matter now that I run music software requiring a USB dongle. But since I didn't want to constantly fend off error messages each time I reboot, either from my general partition asking for the USB dongle drivers, or my music partition asking for the printer and modem drivers, I didn't want to install the drivers as I prefer to keep each partition as streamlined as possible. Here's how I configured my various partitions to avoid these issues, in addition to releasing one IRQ in each. Most modern motherboards have two USB Host Controllers, each supporting two USB ports. If you plug your non-music devices into one pair of USB ports, you only need enable the one associated controller in a general-purpose partition. And conversely, if you make sure you only plug music devices into the other pair of USB ports, you can enable just this controller in your music partition. Not only will this release one IRQ for other uses in each partition, but also, since the USB devices connected to the other pair of ports won't be detected, you needn't install their drivers either.
U overhead jumps to 80 percent or more. This can make your audio application feel occasionally sluggish while playing back silent sections of the song, at the end of note decays or reverb tails, or even just after you press the stop button.
Because Life's Never Too Short
Although my USB modem and printer remain permanently connected to my PC when running my general Windows partition, until recently I've not used any USB devices for my music making. Becuase of this, I had disabled both USB host controllers on my music partition by using Device Manager's 'Disable in this hardware profile' option, since this releases two possible IRQs for other purposes.
This behaviour isn't a bug as such, more an unfortunate side-effect; and it isn't just a Pentium 4 issue either, since Intel's Pentium II, III, and Celeron ranges also have a similar denormal mode, as does AMD's Athlon range. However, the Pentium 4 does seem to generate more problems in practice as its denormal threshold is higher, meaning that it's more likely to occur in real-world situations. The occasional denormal calculation is no cause for concern, but the CPU load can increase by a huge amount when all the processed numbers are denormal.
In the real world, the problem only seems to happen with certain effects and software instrument plug-ins, including both VST and DirectX types; and since the cause is processor-related, it doesn't matter what host application you're running. Some plug-ins that users have reported spike-related problems with include Steinberg's HALion and The Grand (the affected instruments all tend to be sample-based), and a few Waves plug-ins also seem to be affected, including Renaissance Reverb and C1. There are also plenty of unconfirmed rumours about products from other manufacturers.
Plug-ins that may cause such problems are those with IIR (Infinite Impulse Response) digital filter algorithms, which are employed by both EQ and reverb designs. These both use feedback that results in exponential decay, and so eventually the signal levels may drop below the denormal threshold, typically after an audio signal drops to 'silence' and the maths continues to be calculated to ever-lower values.
Software Solutions
Intel say that the CPU spikes are a software problem, which strictly speaking is quite true, since the denormal mode provides a high-precision way of dealing with very small numbers. Fortunately, there are various software solutions. You could periodically test for denormal values, forcing them to zero if they occur, for example, but
this would add an additional CPU overhead of its own, especially when the same test must be repeated at every calculation stage.

Alternatively, you could add a small continuous amount of dither noise to the audio so that signals never drop to this level. Since the floating-point values are orders of magnitude below the level of audibility (figures of -200dB have been quoted), you'll never hear this noise in practice, and in most cases it only needs to be added once at the input of the plug-in to resolve the problem for every subsequent calculation. Many software developers already include such code in their plug-ins, and others who don't are already releasing updates that do, partly due to the clamour from disgruntled users. You can even download a handy test plug-in that demonstrates the problem and a couple of cures courtesy of Toby Bear (www.phreque.com/~tobybear/pbugger.zip).
However, it's also possible to deal with the problem at the host level, by changing the way a program deals with digital silence. Cakewalk already provide an option in Sonar to combat the problem: in the Aud.ini file you'll find a line that normally reads 'ZeroFillMethod=2'. Many musicians with problem plug-ins have found that changing this to 'ZeroFillMethod=1' using a text editor like Notepad resolves the issue.
As a workaround for affected plug-ins, you could also insert a dither plug-in ahead of it in an insert chain. While this introduces higher levels of noise than are strictly required to cure the problem, as long as you use a 24-bit option, preferably without any noise shaping, you're unlikely to hear any degradation. At least this will prevent the CPU spikes occurring, which could be especially useful for older plug-in favourites that will never be updated to solve the problem.
Once you're happy with your design, clicking the Generate button creates a wave file ready to be loaded into your convolving reverb, while a random seed option offers slightly different variations each time you run it. There are currently 14 designs included with the demo version, ranging from small cabinets and columned halls through to more experimental spaces like labyrinths, bottle-shaped halls and underground garages. Although the results don't compare with real-world captured impulses, this is a wonderful way to create new environments and treatments. Impulse Modeler is shareware and although there are no restrictions on any wave impulses you generate, you'll need to register for a very modest $14.95 to save your room designs. After disappearing off the face of the planet, Seer Systems have risen again, in the form of SeerMusic. Regular readers will probably remember how enthusiastic I was about the Seer Systems' Reality software synth in SOS November 1997 the first software synth I ever installed on my PC, featuring physical modelling and excellent CPU efficiency. But after an upgrade to version 1.56 several years back, the web site went deathly quiet. Instead, Seer concentrated on SurReal, a simpler preset version, and SeerMusic, an Internet music delivery system using the Reality engine. As the new name suggests, SeerMusic is still the main thrust of the new site, although you can purchase Reality and SurReal (which is still only compatible with Windows 9x/ME, though), and there are free sound downloads available for users of these older products. There are also some forums that already mention a forthcoming version 2.0 product with features somewhere between Reality and SurReal, which will be VSTi/DXi and Windows XP compatible. Sounds good to me. If you think your CRT or LCD monitor display could do with some tweaks, why not pop along to MonitorsDirect and run their on-line tool kit. Aside from the basics, such as brightness and contrast, you can also use it to optimise your settings for convergence, focus and geometric distortion, in addition to testing for ghosting, streaking, dead pixels and ghost trailing on LCD screens. Best of all, it's totally free.
PC Snippets
Anyone who has a convolving reverb, such as Sonic Foundry's Acoustic Mirror or Samplitude's Room Simulator, will be interested in a new utility written by Aleksey Vaneev. Impulse Modeler is a stand-alone tool that lets you design graphic 'rooms' using a bird's eye view where you can drop vertices and attach reflecting walls of user-defined materials, or transparent walls that act as absorbers. You can then drag the vertices to new positions to create any room shape, before dropping one or more emitter to act as a sound source, complete with variable direction and dispersion characteristics. Finally, you can add one or more 'recepting' walls, which are effectively microphones, to collect the sound rays generated by the emitters after they've bounced around your room.
![]()
www.yohng.com/imodeler
![]()
www.seermusic.com
![]()
www.monitorsdirect.com/toolkit
Burnt At The Stake
Initial reports from concerned P4 users have now sadly turned into a bit of a witch-hunt, with innocent products being dragged into the fray. Every unexplained CPU glitch now seems to be getting blamed on either Intel or specific plug-in developers, when in truth there are many possible reasons, such as background tasks kicking in, a badly written soundcard driver, graphic updates and so on. Sluggish behaviour can also be caused by memory leaks, when badly written plug-ins slowly consume PC resources, eventually bringing your PC to a grinding halt and a possible crash.
It's perhaps surprising this situation didn't come to light earlier, since details of the denormal mode have been available to developers for a long time, but there are a huge number of plug-ins, and the slow uptake of the Pentium 4 by musicians probably meant that reports were slow to start feeding back.
Overall, this situation does mean that when you download a Pentium 4-optimised software update, it may be that the optimisations solve the denormalisation problem, rather than lowering CPU overheads. This hasn't helped the Pentium/Athlon debate at all. ![]()