2017-02-13 14:53:37 -05:00
|
|
|
|
|
|
|
<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 (since 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 <dfn>latency</dfn> 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.<br />
|
|
|
|
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 latency that you want for working with digital audio is typically in
|
|
|
|
the 1–5 ms range. For comparison, if you are sitting 1 m
|
|
|
|
(3 ft) from your speakers, the time the sound takes to reach your
|
|
|
|
ears is about 3 ms. Any modern computer can limit the delay to
|
|
|
|
100 ms. Most can keep it under 50 ms. Many will be able to get
|
|
|
|
down to 10 ms 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>
|
|
|
|
|
|
|
|
<h2>Hardware-related Considerations</h2>
|
|
|
|
<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><abbr title="Universal Serial Bus">USB</abbr> 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><abbr title="Central Processing Unit">CPU</abbr> speed control</dt>
|
|
|
|
<dd>Handling audio with low latency requires that your processor keeps
|
|
|
|
running at its highest 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 work around the problem.</dd>
|
|
|
|
<dt><abbr title="System Management Interrupt">SMI</abbr>s</dt>
|
|
|
|
<dd>SMIs are interrupts sent by the motherboard to tell the computer
|
|
|
|
about the state of various hardware. They cannot safely be 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>Hyperthreading</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 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 loud live sound (specifically, high bass volume),
|
|
|
|
make sure to place it so that the disk is not subject to noticeable
|
|
|
|
vibration. The vibrations will physically displace the head-write
|
|
|
|
heads of disk, and the resulting errors will force a retry of the
|
|
|
|
reading from the disk. Retrying over and over massively reduces the
|
|
|
|
rate at which data can be read from the disk. Avoid this.</dd>
|
|
|
|
</dl>
|
|
|
|
|