The Right Computer System for Digital Audio
It would be nice to think that you could just go and buy any computer, install a bit of software on it and start using it to record and create music. This idea isn't wrong, but there some important details that it misses.
Any computer that you can buy today (somewhere around the end of 2012) is capable of recording and processing a lot of audio data. It will come with a builtin audio interface that can accept inputs from microphones or electrical instruments. It will have a disk with a huge amount of space for storing audio files.
When you are recording, editing and mixing music, you generally want to work with very little delay between the time that a sound is generated and when you can hear it. When the audio signal flows through a computer, that means that the computer has to be able to receive the signal, process it and send it back out again as fast as possible. And that is where it becomes very important what computer system you have, because it is absolutely not the case that any computer can do this job well.
Routing audio through a computer will always cause some delay, but if it is small, you will generally never notice it. There are also ways to work in which the delay does not matter at all (for example, not sending the output from the computer to speakers).
The delay or "latency" that you want for working with digital audio is more typically in the 1-5msec range. For comparison, if you are sitting 1m (3ft) from your speakers, the time the sound takes to reach your ears is about 3msec. Any modern computer can limit the delay to 100msec. Most can keep it under 50msec. Many will be able to get down to 10msec without too much effort. If you try to reduce the delay on a computer that cannot meet your goal, you will get clicks and glitches in the audio, which is clearly extremely undesirable.
Many, many things can affect the lowest latency that a computer can support.
- Video interface
- Poorly engineered video interfaces (and/or their device drivers) can "steal" computer resources for a long time, preventing the audio interface from keeping up with the flow of data
- Wireless interface
- Poorly engineered wireless networking interfaces (and/or their device drivers) can also block the audio interface from keeping up with the flow of data
- USB ports
- If you are using an audio interface connected via USB, and sometimes even if you are not, the precise configuration of your system's USB ports can make a big difference. There are many cases where plugging the interface into one port will work, but using different USB port results in much worse performance. This has been seen even on Apple systems.
- Internal USB Hubs
- Ideally, you'd like your USB ports to all connect directly to the main "bus" inside the computer. Some laptops (and possibly some desktop systems) come wired with an internal USB hub between the ports and the system bus, which can then cause problems for various kinds of external USB devices, including some models of audio interfaces. It is very difficult to discover whether this is true or not, without simplying trying it out.
- CPU speed control
- Handling audio with low latency requires that your processor keeps running at its best performance (speed) at all times. Many portable systems try to regulate processor speed in order to save power - for low latency audio, you want this totally disabled, either in the BIOS or at the OS level
- Excessive Interrupt Sharing
- If your audio interface is forced by your computer to share an "interrupt line" (basically a way to tell the CPU that something needs its attention) with too many, or the wrong, other devices, this can also prevent the audio interface from keeping up with the flow of data. In laptops it is generally impossible to do anything about this. In many desktop systems, it is possible at the BIOS level to reassign interrupts to workaround the problem.
- System Management Interrupts (SMIs)
- SMIs are interrupts sent by the motherboard to tell the computer about the state of various hardware. They cannot be (safely) disabled, but they can also take a (relatively) long time to process. It is better to have a motherboard which never sends SMIs at all - this is also a requirement for realtime stock trading systems, which have similar issues with latency.
- This technology is becoming less common as actual multi-core CPUs become the norm, but it still exists and is generally not good for realtime performance. Sometimes you can disable this in the BIOS, sometimes you cannot. A processor that uses hyperthreading will be less stable in very low latency situations than one without.
- Excessive (bass) vibration
- This doesn't affect the flow of data to/from the audio interface, but it can cause the flow of data to/from your disk storage to become much slower. If you are going to use a computer in an environment with live sound, make sure to place it so that the disk is not subject to noticeable bass vibration. What actually happens is that the vibrations cause the mechanism inside the disk to detect read errors, and this forces a retry of the reading from the disk itself. Retrying over and over massively reduces the rate at which data can be read from the disk. Avoid this.