Problems
Copying Audio CDs
The
audio CD standard was designed from the beginning for sequential
access (audio streaming) only. The digital audio, on the other
hand, was intended to be read in real time and converted to
an analog signal.
Reading
audio with random access and moving digital data over the data
bus without converting it to an analog signal, is a relatively
new feature added only recently to CD-ROM drives. The main problem
with reading CD audio data over the data bus is the low degree
of seek accuracy provided by CD-ROM drives when accessing CD
audio blocks. This is caused by the fact that CD audio data
are stored in a different format that CD computer data.
Problem
Accessing CD Audio Blocks
In
a computer data block there are 2,048 bytes of user data plus
header and error correction information. The header information
in a computer data block contains the precise address of the
block allowing the drive to precisely seek the correct block
before reading. In an audio data block, the 2,352 bytes of the
physical block are entirely filled up by audio data. There is
no header containing the block address, no sync codes and no
error correction. This means that the drive must use the Q sub-code
information to find an individual block. Unfortunately, the
Q sub-code information was only designed to allow consumer audio
CD players to provide audio positioning and position display
within an accuracy of 1 second. As a result, Q sub-code addressing
is only approximate. When searching for a specific audio data
block, a CD-ROM drive moves the laser assembly to a position
near where the block should be located, starts reading, and
compares the Q sub-code information to the desired block address.
When a Q sub-code address close to the desired block address
is located, the drive begins transferring data. Most CD-ROM
drive specifications state that "the actual starting audio address
will be within four Q sub-code addresses of the requested starting
audio address", in other words 4 audio blocks or 4/75th of a
second. As a result, given the address of a single block, a
read request might return any one of 9 blocks (according to
specifications of the drive). Some drives may be even less accurate
than four Q sub-code addresses.
Buffer
Overflow Problem
A
second problem with CD audio data capture occurs when the computer
cannot accept audio data from the drive fast enough. This is
referred as a "buffer overflow", because the CD-ROM drive must
write data into its internal buffer before the computer has
finished retrieving data already in the buffer. During a CD
duplication process, a buffer overflow condition is usually
a direct result of the CD-ROM drive reading faster than the
CD recorder writes. It is common to see 32X or 40X CD-ROM drives
while the fast CD recorders are usually 4X, 6X or 8X. When a
buffer overflow occurs, the read operation must be restarted.
The next read may not begin transferring data at exactly the
same sample (a side effect of the 4 audio blocks accuracy problem)
resulting in a few lost or repeated samples. This lost or extra
data can create audible artifacts in the resulting sound file.
Because of the previous problems, it is not possible to reliably
read accurately an audio stream without a re-matching or re-synchronization
procedure.
About
Digital Audio Extraction
If
you are having problems with the quality of audio tracks that
have been recorded to CD-R disc, please check that your source
CD-ROM drive is capable of "Digital Audio Extraction" at a least
twice the speed that your recorder is set to record at. Copying
audio digitally from a CD requires a CD-ROM drive or CD recorder
which supports digital audio extraction (DAE). A CD-ROM drive
may play audio CD's perfectly, but this does not mean that it
is capable of the far more complex task of extracting Audio digitally.
Many CD-ROM drives do not support DAE at all. Some support DAE
but not very well. Few high speed CD-ROM drives can extract audio
successfully at or even near their top-rated data speed. If your
CD-ROM drive is not capable of DAE then it is preferable that
you write the audio tracks to and then from an image file on your
hard drive. All CD recorders can perform DAE.
Unsuccessful
audio extraction will give you clicks, pops, or hissing within
the track. The most common reason is that DAE was performed at
too high a speed for your source CD-ROM or CD recorder to maintain
proper synchronization of the audio data (some professional duplicators,
such as the Microboards DSR 8880)
allow you to change the DA reading speed, see). Audio samples
are skipped or repeated, causing errors which sound to the human
ear like clicks, pops, or hiss. The solution is to slow down DAE.
However, for some drives to get a clean audio extraction, it requires
reading at very slow speeds, with lots of going back and re-reading
the same audio samples over again to make sure that everything
is in the right place. This is refered to jitter
correction. Sometimes the read will be so slow that it becomes
impossible to copy directly from the source audio CD to the CD
recorder. In this case you will have to copy the audio tracks
to hard disk and then record them back to CD.
A
CD-ROM drive that is not capable of extracting digital audio can
also cause read errors when trying to record an audio CD from
it. If your CD ROM is capable of Digital Audio Extraction and
you are getting this problem, try dropping the extraction speed
(i.e. change the Audio Extraction to a slower setting). Some drives
are better at extracting Audio at higher speeds than others. Once
the audio tracks have been copied to a disc, they will be saved
in the specified temporary folder as Wave files. You can listen
to these using either your soundcard software or Windows media
player. If you find that the quality is good, but once written
to a CD, the quality is poor, try dropping the recording speed.
About
"jitter" and "jitter correction"
There
are two kinds of jitter that relate to audio CDs. The usual meaning
of "jitter" refers to a time-base error when digital samples are
converted back to an analog signal. The other form of "jitter"
is used in the context of digital audio extraction from CDs. This
kind of "jitter" causes extracted audio samples to be doubled-up
or skipped entirely.
The
problem occurs because the Philips CD specification does not require
block-accurate addressing. While the audio data is being fed into
a buffer (a FIFO whose high- and low-water marks control the spindle
speed), the address information for audio blocks is pulled out
of the subcode channel and fed into a different part of the controller.
Because the data and address information are disconnected, the
CD player is unable to identify the exact start of each block.
The inaccuracy is small, but if the system doing the extraction
has to stop, write data to disk, and then go back to where it
left off. The CD player will not be able to seek to the exact
same position. As a result, the extraction process will restart
a few samples early or late, resulting in doubled or omitted samples.
These glitches often sound like tiny repeating clicks during playback.
As
discussed previously, the blocks on a computer data CD-ROM have
a 12-byte sync pattern in the header, as well as a copy of the
block's address. It is possible to identify the start of a block
and get the block's address by referencing to the data FIFO alone.
This is why it is so much easier to pull single blocks off of
a computer data CD-ROM.
With
most CD-ROM drives that support digital audio extraction, you
can get jitter-free audio by using a program that extracts the
entire track all at once. The problem with this method is that
if the hard drive being written to cannot keep up, some of the
samples will be dropped. Since the output buffer used during DAE
is small comparing to the input buffer, this worsens the problem.
Some CD-ROM drives, e.g. most of the Plextor models, include special
circuitry that enables them to accurately detect the start of
a block.
"Jitter
correction" is the process of compensating for jitter and restoring
the audio to its intended form. Jitter correction can be done
by software. This involves performing overlapping reads, and then
sliding the data around to find overlaps at the edges. Most DAE
programs will perform jitter correction.