READ_CDDA(1)

NAME
read_cdda - read Audio CD tracks via the SCSI interface

SYNOPSIS
read_cdda [-h] [-a] [-8] [-b blks] [-d] [-t] [-D dev] [-s start] [-e end] track [outfile]

DESCRIPTION
read_cdda reads an audio track from the CD and stores it in the named file, or standard output. The current version supports jitter control which will correct some synchronisation errors (which show up as crackles and pops in the output) The program also has options to specify the starting and ending second to record. (useful for cutting out the 10 minute "blanks" at the end of songs that some groups like to add) It only works under Solaris 2.4 and higher (older versions don't support CDDA) and it only works with CD-ROM's that support CDDA which according to the workman(1) docs are:

     * SunCD 12 (See notes)
     * SunCD Plus (really a Toshiba 3401)
     * Sun SPARCstation internal drive (really a Toshiba 4101)
     * Toshiba 3401
     * Toshiba 3501
     * Toshiba 4101
I have only tested it on the Sun SPARCstation 5, 20, and Ultra internal drives. You need to have read access to the CDROM device. If volume management is running, read_cdda will read from /vol/dev/aliases/cdrom0, otherwise from the raw disk device /dev/rdsk/c0t6d0s2. Alternately you can specify the device directly.

By default read_cdda outputs CDR format - suitable for writing to a CD Recorder to create your own CD. (I've made a number of mixed CD's) Again I've only tested this by writing CD's on a Phillips CDD 522 attached to a linux box - but, in theory, it shouldn't matter :^) It can also output in Sun .au format (both 8bit mono and 16bit stereo) which is useful for testing without having to write a CD.

-t, --toc
    Only print out the Table of Contents

track
    Track number to read

file
    File name for PCM (CDR) or .au output. If the file is "-" then output is to standard output.

-s, --start
    Starting second for the track.

-e, --end
    Ending second for the track.

-t, --toc
    Only print out the Table of Contents.

-x, --swap
    Swap bytes (for x86?)

-8, --au8
    Output in Sun .au format 8KHz.

-a, --au16
    Output in Sun .au format 44.1KHz.

-v, --verbose
    Be talkative while running.

-d, --drvtype
    Print CD-ROM model type only.

-D, --device
    Device to read from.

-b, --buffer
    Size of read-ahead buffer. You should not need to change this but there is a small chance this can fix up problems with some drive/machine combinations. -V, --version Print program version number only.

NOTES
Let me know of any problems you have. Version 1 has been used by quite a few people successfully. Version 2 is much newer and therefore not real well tested by it does work for me. One final note: I know the packaging is a bit excessive for a relatively small program, but believe it or not, its easier for me as I just have a script that sets it up. When I use the 12x CDROM in our Ultra I still get occasionally crackle or pop even with the jitter control. I've confirmed this with other CDDA readers too. You must have read access to the CDROM device. If writing to the disk falls behind reading from the CDROM then you will get a corrupted file. (usually not a problem unless you are writing over a congested network) The speed of reading depends on the drive type. The internal CDROMs in our SPARC 20s read at 1x speed. The 12 speed CDROMs in our Ultras read at 4x speed. You can't query the drive type if there is no CD in the drive, or if you are using volume management. This probably won't work under Solaris for x86, but there is an options to swap the bytes which might enable it to work.

CREDITS
This program was written by Jim Mintha (mintha@geog.ubc.ca) and is covered by the GNU Public License. (See the file LICENSE in this directory)

Much of this work was derived from the workman(1) sources written by Steven Grimm (koreth@hyperion.com), and he deserves much credit for figuring out how Sun's CDDA works, not to mention writing the great program Workman. I figured out how to do jitter control from Zlatko Calusic <Zlatko.Calusic@CARNet.hr> and Gilles Boccon-Gibod <bok@bok.net> Many thanks to them. Also thanks to Alexander V. Panasyuk, Hans Werner Strube, Andreas Karrer for various fixes and patches.