2017-02-13 14:53:37 -05:00
|
|
|
|
|
|
|
<p>
|
2017-03-14 23:57:34 -04:00
|
|
|
It is nice to think that one 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 necessarily wrong, but there are some important details that it
|
2019-11-09 15:30:32 -05:00
|
|
|
misses. Any computer that can be bought today (since somewhere around
|
2017-03-14 23:57:34 -04:00
|
|
|
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 and/or electrical instruments; it will have a disk with a huge
|
2017-02-13 14:53:37 -05:00
|
|
|
amount of space for storing audio files.
|
|
|
|
</p>
|
2017-03-14 23:57:34 -04:00
|
|
|
|
2017-02-13 14:53:37 -05:00
|
|
|
<p>
|
2017-03-14 23:57:34 -04:00
|
|
|
However, when recording, editing and mixing music, it is generally desirable
|
|
|
|
to have very little <dfn>latency</dfn> between the time a sound is generated
|
|
|
|
and when it can be heard. 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 quickly as possible. And this is where it
|
|
|
|
becomes very important <em>what</em> computer system is being used for this
|
|
|
|
task, because it is <strong>absolutely not</strong> the case that
|
|
|
|
<em>any</em> computer can do it well.
|
2017-02-13 14:53:37 -05:00
|
|
|
</p>
|
2017-03-14 23:57:34 -04:00
|
|
|
|
2017-02-13 14:53:37 -05:00
|
|
|
<p>
|
2017-03-14 23:57:34 -04:00
|
|
|
Routing audio through a computer will always cause some delay, but if it is
|
|
|
|
small, it will generally never be noticed. 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).
|
2017-02-13 14:53:37 -05:00
|
|
|
</p>
|
2017-03-14 23:57:34 -04:00
|
|
|
|
2017-02-13 14:53:37 -05:00
|
|
|
<p>
|
2017-03-14 23:57:34 -04:00
|
|
|
The latency that is typically needed for working with digital audio is in the
|
|
|
|
1–5 ms range. For comparison, if one is sitting 1 m
|
|
|
|
(3 ft) from a set of speakers, the time the sound takes to reach the
|
2017-02-25 00:30:29 -05:00
|
|
|
ears is about 3 ms. Any modern computer can limit the delay to
|
2017-03-14 23:57:34 -04:00
|
|
|
100 ms; most can keep it under 50 ms. Many will be able to get down
|
|
|
|
to 10 ms without too much effort. Attempting to reduce the latency on a
|
|
|
|
computer that cannot physically do it will cause clicks and glitches in the
|
|
|
|
audio, which is clearly undesirable.
|
2017-02-13 14:53:37 -05:00
|
|
|
</p>
|
|
|
|
|
|
|
|
<h2>Hardware-related Considerations</h2>
|
2017-03-14 23:57:34 -04:00
|
|
|
|
2017-03-14 12:43:24 -04:00
|
|
|
<table class="dl">
|
|
|
|
<tr><th>Video interface</th>
|
|
|
|
<td>Poorly engineered video interfaces (and/or their device drivers) can
|
2017-02-13 14:53:37 -05:00
|
|
|
"steal" computer resources for a long time, preventing the audio interface
|
2017-03-14 23:57:34 -04:00
|
|
|
from keeping up with the flow of data.</td></tr>
|
2017-03-14 12:43:24 -04:00
|
|
|
<tr><th>Wireless interface</th>
|
|
|
|
<td>Poorly engineered wireless networking interfaces (and/or their device
|
2017-03-14 23:57:34 -04:00
|
|
|
drivers) can also block the audio interface from keeping up with the flow of
|
|
|
|
data.</td></tr>
|
2017-03-14 12:43:24 -04:00
|
|
|
<tr><th><abbr title="Universal Serial Bus">USB</abbr> ports</th>
|
2017-03-14 23:57:34 -04:00
|
|
|
<td>When using an audio interface connected via USB, and sometimes even if
|
|
|
|
not, the precise configuration of the 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.</td></tr>
|
2017-03-14 12:43:24 -04:00
|
|
|
<tr><th>Internal USB Hubs</th>
|
2017-03-14 23:57:34 -04:00
|
|
|
<td>Ideally, all USB ports should 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
|
2017-02-14 10:20:06 -05:00
|
|
|
not, without simply trying it out.</td></tr>
|
2017-03-14 12:43:24 -04:00
|
|
|
<tr><th><abbr title="Central Processing Unit">CPU</abbr> speed control</th>
|
2017-03-14 23:57:34 -04:00
|
|
|
<td>Handling audio with low latency requires that the 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, this
|
|
|
|
should be totally disabled, either in the BIOS or at the OS level.</td></tr>
|
2017-03-14 12:43:24 -04:00
|
|
|
<tr><th>Excessive Interrupt Sharing</th>
|
2017-03-14 23:57:34 -04:00
|
|
|
<td>If the audio interface is forced by the computer to share an interrupt
|
|
|
|
line (basically a way to tell the CPU that something needs its attention)
|
|
|
|
with too many other (or wrong) 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.</td></tr>
|
2017-03-14 12:43:24 -04:00
|
|
|
<tr><th><abbr title="System Management Interrupt">SMI</abbr>s</th>
|
2017-03-14 23:57:34 -04:00
|
|
|
<td>SMIs are interrupts sent by the motherboard to tell the computer about
|
|
|
|
the state of various hardware. They cannot safely be disabled, and they can
|
|
|
|
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.</td></tr>
|
2017-03-14 12:43:24 -04:00
|
|
|
<tr><th>Hyperthreading</th>
|
2017-03-14 23:57:34 -04:00
|
|
|
<td>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 this can be disabled in the BIOS, sometimes it cannot.
|
|
|
|
A processor that uses hyperthreading will be less stable in very low latency
|
|
|
|
situations than one without.</td></tr>
|
2017-03-14 12:43:24 -04:00
|
|
|
<tr><th>Excessive vibration</th>
|
2017-03-14 23:57:34 -04:00
|
|
|
<td>This doesn't affect the flow of data to or from the audio interface, but
|
|
|
|
it can cause the flow of data to and from disk storage to become
|
|
|
|
<em>much</em> slower. If a computer going to be used in an environment with
|
|
|
|
loud live sound (specifically, high bass volume), make sure it is placed so
|
|
|
|
that the disk is not subjected to noticeable vibration. The vibrations will
|
|
|
|
physically displace the read-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.</td></tr>
|
2017-03-14 12:43:24 -04:00
|
|
|
</table>
|
2020-05-18 19:07:17 -04:00
|
|
|
|
2019-04-23 15:30:11 -04:00
|
|
|
<p>
|
|
|
|
Richard Ames presents a long (28
|
|
|
|
minute) <a href="https://www.youtube.com/watch?v=GUsLLEkswzE">video</a>
|
|
|
|
that is very helpful if you want to understand these issues in more
|
2020-05-18 19:07:17 -04:00
|
|
|
depth. It is a little bit Windows-centric, but the explanations apply to
|
2019-04-23 15:30:11 -04:00
|
|
|
all types of computers and operating systems.
|
|
|
|
</p>
|
2020-05-18 19:07:17 -04:00
|
|
|
|