I've been building up my collection of online music for the home LAN, grabbing stacks of CDs from the shelves and converting them to Oggs. (This is an ongoing project of mine that became a special mini-marathon effort what with the approach of the holidays, the multi-disc changer now in storage, and the family's hankering for me to play holiday music.) To speed the process up, I've been tinkering with some of the cdda2wav options in an effort to match the software to the hardware using suggestions in the cdda2wav(1) manpage.
Before my tuning efforts, I was setting "speed=0" on the cdda2wav command line and that works well for many CDs. I interpreted the man page information as saying 0=full speed which, for my Lite-On ("iHAS324") drive is 48x when reading CDs. At times, though, I was getting messages about minor errors with some of the reads (0.1%, 0.2%, 0.3% of the reads) even for discs that had zero scratches, fingerprints, and any other visible flaws. The cdda2wav(1) page mentions that for "maximum extraction quality" that users should keep speed no higher than 8. Generating WAV files was noticeably slower at this speed (no big surprise there), but still usually just taking a few minutes.
To try and speed things up, I then tried configuring the readahead to be a better match to the drive's buffer. In the case of the Lite-On, that's 2MB which, according to the manpage, tells me that I should be using a value of "450" for each megabyte of buffer or "900". WAV creation time jumped a whopping amount: 24 minutes! Zero read errors but at a huge decrease in throughput.
Setting the drive speed back to "0" but still using the expanded readahead, got it back down to a tad over 6 minutes to read ~75 minutes of content which is better but will likely bring back some of those read errors on some discs.
Q1: Any tips on methods to speed up this read process?
Q2: Is cdda2wav
really using the larger readahead setting? When starting the read, I see:
Code:
$ sudo /usr/bin/cdda2wav dev=4,0,0 -speed 8 -vall -B -cddb=0 -x -paranoia -paraopts=readahead=900
Type: ROM, Vendor 'ATAPI ' Model 'iHAS324 F ' Revision 'CL8E' MMC+CDDA
569344 bytes buffer memory requested, transfer size 131072 bytes, 4 buffers, 55 sectors
cdda2wav: Read TOC CD Text failed (probably not supported).
#Cdda2wav version 3.02a09_linux_4.12.14-lp151.24-default_x86_64_x86_64, real time sched., soundcard, libparanoia support
...
which is
exactly the same startup information I get when I omit the "-paraopts=..." switch. Passing arguments to increase libparanoia's readahead buffering doesn't seem to be affecting anything. Or... does that buffer memory message in the program startup have nothing to do with the libparanoia's buffering?
Q3: Is using the "-paranoia" switch the culprit here? If so, I suspect there's an entirely different method of tuning cdd2wav for good performance when
not using the "-paranoia" switch, right?
Any tips are welcomed.
TIA...