Error correction can be expensive, even if it does not get active at all. If
c2errs is set to a value below 2.352, the server also reads
information about the errors received from the drive for each block. Thus the
data are no longer kept coherently in the buffer; they must be copied once more
on their way to the client. With a single CD this does not matter too much, but
if a large installation reads 32 CDs at the same time with a speed rate of 32x,
it results in copying an additional 150 MB in the memory per second. If the
error correction gets active, the server needs to read a block more than once
with lower speed rates. This results in a drastic reduction in throughput,
which might even fall below the data rate of 72 blocks per second, which is
necessary for listening to audio tracks in real time.
When good quality is important it is enough to set c2errs to 0 and
ignore all the other parameters. If necessary, the server reads the same blocks
a couple of times, which can be quite time-consuming for bad audio CDs.
Therefore, this setting will not be suitable for listening to music in real
time. With higher values of c2errs, e. g. 100, the server accepts
moderately bad blocks, with not as much time spent on corrections. For very bad
CDs this can also last a long time. She who wants to listen to CDs in real
time, and not doing without error correction, can set the minimum speed rate
c2mins to 2 (4x speed) and the number of repetitions (c2loop)
to 1. This allows for listening to CDs in real time in most cases.
To check the quality of a CD in the log file, c2logm should be set to
1. Then each block, which has more than c2loge errors in the first
attempt, will cause a line in the log file. To check the quality of the result,
c2logm should be set to 0x100. This causes the server to log, if even
the last attempt to read a block in the required quality failed. In this case
c2loge should be set to the same value as c2errs. To find out
exactly how the drive behaves at different speed rates, c2logm should
be set to 0xffffffff and c2logs should be set to 1.
The lowest speed rate does not always supply the best data. Often a drive at
speed level 1 (2x) supplies better data than with level 0 (1x). Therefore the
default value for c2mins is 1, not 0.