cdstatus 0.96.05 review

by on

cdstatus is a tool for diagnosing cdrom drive and cd problems, and for performing digital data (audio) extraction

License: GPL (GNU General Public License)
File size: 0K
Developer: Nathanael Hoyle
0 stars award from

cdstatus is a tool for diagnosing cdrom drive and cd problems, and for performing digital data (audio) extraction. It will query the drive status, and report what the system thinks the status is.

Due to problems, systems have been known to disagree with users as to the status of a drive. (The user says "the cd is in there" the drive says "door open". Time to try another cdrom drive (or close the door).

Here are some key features of "cdstatus":
Among other things, cdstatus will list the following:

disc (cd) type from: audio, data mode 1, data mode 2, XA mode 1, XA mode 2, and mixed mode (audio + data). If you have just tried to burn an audio cd, but what you really did was burn the wav files as data files rather than as audio tracks, this will let you know that the system is interpreting it as a data disc, not an audio one. (Time to re-burn, and be careful with options.)
the full table of contents, giving all track info for the cd (note: most cd-burning software writes the table of contents before writing the actual data. It is possible to have the table of contents show all the tracks properly, yet not actually have them be present on the disc. cdstatus can help detect such problems.).
starting points in minutes and seconds for each track on the cd, and the global frame offset (you probably don't need this, but if you do, it is good to have).

For both audio cd's, and the audio tracks of mixed mode cd's, the program is capable of reading every frame of audio, one frame at a time. There are 75 frames in each second of audio.

What this means is that you can isolate exactly where problems lie. Say you know a cd is scratched, but you aren't sure which tracks are affected. Using cdstatus, you can read every frame of the cd, one frame at a time. If cdstatus encounters a frame it can't read, it will tell you about it.

Note that even if you have retries enabled for failed reads (see the readme file), you will still be told if the initial read fails. Many programs will simply retry automatically, and hide the fact that there was a failed read at all.

This leaves you thinking that the cd is fine, when it is actually borderline for that frame. This will still read the audio if at all possible on the retries, but let you know that there was a problem.

cdstatus offers the following ripping features:

Ripping any given number of sectors (data chunks) in a single read operation: although reading one frame at a time (the default) is still fast the way cdstatus does it, I have added a --readchunk X option which allows you to specify a number of frames to read at once. This gives up some of the fine-grained error detection in favor of higher speed extraction. Don't go nuts with this, 500 is probably about the most that makes sense.
cddb lookup capabilities (see below)

Different output formats:

with --rawout:

The raw audio data that was read for each track is saved to a file called trackXX.raw (where XX is the track number) in the current directory. Please note that this is not a wav file. Some audio programs are capable of playing the raw output (if you specify the info. for "play", the tool that comes with RedHat, you will need to specify a line like: # play -c 2 -f s -r 44100 -s w trackXX.raw This is because the raw output is "headerless" and doesn't tell programs how to play it, so you must tell them manually. BladeEnc does a fine job of encoding .raw output into mp3's. I have not tried with LAME. This format is very useful for testing. If you were to read track 1 off of a scratched cd, and then off of a good cd (or using a questionable cdrom drive, and a good one), and then compare them (using "cmp" or "diff"), then you would know that an exact match meant that the questionable media/drive was good, and the more variation, the worse it would be. Please see the readme file for more info on using options (like retry count and track range selection) with the --readtest option.

with --waveout:

(or unspecified since this is now the default) but not the --cddb option (see below):
The files created will be in the form trackXX.wav. These are your every day, reverse intel field format, pulse code modulated, two-channel 16-bit signed audio files, that we love to call wav files. (Yeah, the wave file format spec is a pain.) They should be playable by just about anything you can imagine. Note that the wav format allows programs to "sub-chunk" the data differently, meaning that two perfectly extracted wav files of the same track are not neccessarily identical from different programs, whereas the raw output format would be.

with --cddb:

cdstatus now (as of version 0.94a) has the capability to lookup album and track information of audio cds via remote cddb (cd database). With an active internet connection, use of --cddb will automatically retrieve and populate this information. To complement this, I implemented a system to allow the user to specify how to convert this information to a filename, including the support for on-the-fly directory creation for artist and album directories. This is the --format option, documented in the readme file. Please note that cdstatus will convert all spaces to underscores (_) in the names, and remove any non-alphanumeric characters from them (unless --nomangle is used). This is to protect against trying to create files with names that the filesystem can't handle. Right now the --cddb capabilities are functional, but fairly rigid. There is no option to change the lookup server (except in the source code) etc. These will be added in the future. As per the cddb protocol guidelines, in cases where more than one exact or inexact match is found for a cd, a list is presented and the user is given the option to select a match numerically. These files will of course be normal wav files, but the automatic naming helps identify them clearly.
Configurable number of retries
On-the-fly directory creation for both a base output directory and directories specified by the --format spec for output.
specification of input drive, if other than /dev/cdrom
--silent operation mode to emit no output (under most circumstances) except the files.

cdstatus 0.96.05 search tags