manual/_manual/03_setting-up-your-system/01_the-right-computer-system-for-digital-audio.html

60 lines
5.7 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
layout: default
title: The Right Computer System for Digital Audio
menu_title: The Right Computer System
---
<p>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. </p>
<p>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. </p>
<p>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 <em>what</em> computer system you have, because it is <strong>absolutely not</strong> the case that any computer can do this job well. </p>
<p>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).</p>
<p>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.</p>
<p>Many, many things can affect the lowest latency that a computer can support.</p>
<h3>Hardware-related Considerations</h3>
<dl class="wide-table">
<dt>Video interface
</dt>
<dd>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</dd>
<dt>Wireless interface
</dt>
<dd>Poorly engineered wireless networking interfaces (and/or their device drivers) can also block the audio interface from keeping up with the flow of data</dd>
<dt>USB ports
</dt>
<dd>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.
</dd>
<dt>Internal USB Hubs</dt>
<dd>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.
</dd>
<dt>CPU speed control
</dt>
<dd>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</dd>
<dt>Excessive Interrupt Sharing</dt>
<dd>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.</dd>
<dt>System Management Interrupts (SMIs)
</dt>
<dd>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.</dd>
<dt>Hyperthread</dt>
<dd>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.
</dd>
<dt>Excessive (bass) vibration
</dt>
<dd>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 <em>much</em> 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.</dd>
</dl>
<p>  </p>
<!-- remove if more text is added below --><!-- remove if more text is added below -->