Frequently Asked Questions

Status
======


Q: What is the copyright status of cdda2wav?

A: Cdda2wav is software copyrighted by Heiko Eissfeldt and released under the
   COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (see file CDDL.Schily.txt).

Compilation
===========


Q: What are the requirements to run cdda2wav?

A: All operating systems that are supported by cdrecord should also be able to
   run cdda2wav. Currently DOS and Windows are not covered.
   Requirements of previous versions of cdda2wav have been cut down for the
   sake of portability. Features like fork(), realtime scheduling, or shared
   memory are all optional now. You need a shell, which runs autoconf, a c
   compiler (even a K&R compiler should work) and a c library to build cdda2wav
   on a supported operating system. To run cdda2wav, a SCSI transport
   implementation for the os, a cdrom or cd burner device to read from, and
   at least say 65K of memory for buffers are needed.


Q: Why does it not compile under Linux, although I am using the newest kernel?

A: There have been changes in the generic driver by Douglas Gilbert, that are
   in its first release not compatible with the scsi library from Joerg
   Schilling. We are working on this problem...
   In the meantime better do not use this variant, use the older one instead.


Q: Why does it not compile using standard make?

A: Like cdrecord, cdda2wav needs a sophisticated make program like Joerg
   Schilling's smake or GNU gmake. Pure posix make functionality is not enough.

Setting Up (for now Linux only)
===============================


Q: Should I use scsi emulation or the eide driver for my ATAPI cdrom drive?

A: Scsi emulation is preferred, since it enables cdda2wav to use more commands
   and is often the only way to get special information like track titles with
   cd-text. The emulation module is called ide-scsi, the eide module is called
   ide-cd.


Q: How can I use my parallel-port-connected cdrom with cdda2wav?

A: Under Linux there is a driver, that makes this device under SCSI
   emulation available. For more information see the cdrecord documentation.


Q: How do I check, if the current Linux kernel does support generic SCSI?

A: run 'cat /proc/devices | grep "21 sg"' and see, if a line with 'sg' appears.
   If it does not appear, the current kernel is not able to use the generic_scsi
   interface. If you have generic SCSI support compiled as a module, see next
   question, otherwise you need to recompile the kernel and enable generic SCSI.
   You might try to use the 'cooked_ioctl' interface as a last resort, but then
   you need to supply a cdrom device with -D (like -D/dev/cdrom). In this case
   cdda2wav completely relies on the cdda reading methods from the kernel
   driver, so it might not work (due to unsupported). 


Q: How do I load the generic SCSI module by hand?

A: run 'insmod sg' and check the result (see above).


Q: How do I find the device setting for my drive?

A: Under Linux use the script scan_scsi.Linux. It prints the available devices
   and their respective device option to be used.
   Be aware of the fact that the generic device naming may change whenever the
   devices on the SCSI bus change (present or not present).

General usage (sampling)
========================


Q: How do I record the whole cd, each track in a seperate file?

A: Use the '-B' option. This will automagically create a file for each track.


Q: How do I record the whole cd into one file?

A: Just extend the default recording time from one track to a big enough
   time in seconds to cover the whole cd (like -d99999).


Q: How do I record successive tracks (a track range) into seperate files?

A: Use the '-B' option and -t<first tracknumber>+<last track number>.


Q: How do I record successive tracks (a track range) into one file?

A: Use -t<first tracknumber>+<last track number>.


Q: How do I record different tracks into seperate files with individual file
   names?

A: Use the supplied script 'readmult'. For usage see the comments at the
   beginning of the script.


Q: How can I get the highest speed out of cdda2wav?

A: See the file README. There is a section about performance and what is
   influencing it.


Q: How can I burn audio cds with cdda2wav and cdrecord on-the-fly?

A: This has not been tested very well, so caveat emptor. It is possible to
   use cdda2wav and cdrecord with pipes, _but_ there are several issues.
   1.: The cd drive may become too slow to keep cdrecords buffer happy, when
       a scratch on the audio cd is encountered, and several retries take place.
   2.: Currently there is no way to carry individual track information from
       cdda2wav to cdrecord. Several information bits are available very late
       but are needed in advance from cdrecord.
   3.: Some operating systems have limitations in multiple SCSI accesses and
       other ressources (shared memory). cdda2wav and cdrecord may block each
       other, or might fight over limited ressources.
   For these reasons it is not recommended to burn on-the-fly with cdda2wav.

Frontends
=========


Q: Which frontends for cdda2wav are available?

A: See the file 'Frontends'. There are command line and graphical frontends.

Album and track titles
======================


Q: Does cdda2wav support titles from cd extra (aka cd plus aka enhanced cd)?

A: In general, yes. In order to get this information, cdda2wav needs to read
   a data sector from the second session of the cd. This requires multisession
   support and the capability to read XA sectors. The titles are printed on the
   screen and written into the inf files, then.


Q: Does cdda2wav support titles from cd-text?

A: Newer versions support the most important features of cd-text like titles
   and creators. Non-supported are currently 16-bit characters, so asian
   titles etc. are currently not available.


Q: Does cdda2wav support CDDB ids?

A: Yes, while it does not make CDDB lookups itself, it supplies an cddb file
   with the table of contents and the cddb id. For cddb lookups see the
   perl script tracknames.pl and tracknames.txt. If the titles are known to
   cdda2wav, it fills the titles itself in the cddb file.


Q: What is the MCN?

A: The media catalog number is an unique id for the audio cd release. It is
   similar to the ISBN for books, but unfortunately it is included only on
   some audio cds.


Q: What is the ISRC?

A: The International Standard Record Code is an unique id for a track. Like the
   MCN (see above) it is an optional item.

MP3 coding
==========


Q: Does cdda2wav support on-the-fly mp3-coding?

A: Yes. As of version 1.9alpha I integrated the LAME encoding engine as a new
   output format.
   To support external encoders, I added two scripts. The trick
   is to avoid big temporary files. There are three versions (cdda2mp3.file,
   cdda2mp3.pipe, and cdda2mp3.fifo), the first using files, the second uses
   pipes, and the last uses a named pipe (also called fifo). The examples
   use the Fraunhofer encoder 'l3enc', which is a commercial product and has
   to be purchased seperately. Other encoders should be usable in a similar way.

Conversions
===========


Q: How do I create a file suitable for cd burning?

A: If you are using cdrecord, you can produce cdr or wav files. To select
   cdr files, use -Ocdr, to select wav files use -Owav (the default).
   Audio files that have been recorded with a length not a multiple of the 
   audio sector size 2352 bytes, should be used with cdrecords -pad option.


Q: How do I convert a wav file into a cdr file (my other cd burning program
   does not accept wav format)?

A: Use 'dd if=wavfile of=cdrfile conv=swab ibs=44 skip=1 obs=2352' 


Q: How to convert cdr to wav?

A: Use sox, the sound utility. It supports other formats as well.

Specials
========


Q: Does cdda2wav support the pre-emphasis bit?

A: If the table of contents marks a track as pre-emphasized, the corresponding
   inf file will have this information, too. That enables a cd burning program
   to retain the state of the track.


Q: Can cdda2wav undo the pre-emphasis effect in the samples?

A: Yes, if the -T option is given (and cd quality is selected),
   cdda2wav filters the samples with the reverse emphasis on-the-fly. This has
   been checked with a sine sweep from a pre-emphasized test cd.


Q: My cdrom delivers the stereo channels swapped. How can I undo this?

A: Use the -cs option.


Q: Does cdda2wav support indices?

A: Yes, but since there are positioning problems with a lot of drives,
   information might be inaccurate. A start index can be specified with the
   -i option. To get all indices, use the -v7 option.


Q: Can cdda2wav avoid including the pre-gap region at the end of the track?

A: Currently not. This might be added later, but is not easily done.


Q: How can I get all information about the cd without writing files?

A: Use the -J option, which switches analysis to the max, and aborts after
   the report.


Q: Can cdda2wav display/save the graphics on my CD+graphics disc?

A: No, this is not planned. A seperate X11 program could do that probably
   better.


Q: Can cdda2wav read the audio portion from my CD-I/Video-CD/DVD mpeg streams?

A: No, these are special formats, which require much more effort.

User support/feedback
=====================


Q: Cdda2wav is great. How can I support you to encourage further development?

A: Look into the file NEEDED. Also constructive criticism and feedback is
   appreciated.


Q: I want to port cdrtools (cdrecord/mkisofs/cdda2wav) to a new platform (like
   DJGPP,cygwin,os/2). How should I proceed?

A: It would be convenient to have a unix like environment (like cygwin provides)   A shell, and a make program would be needed to first create smake (in order
   to make the makefile system working). Another critical component is autoconf.
   Once that is running, os dependent interfaces and the SCSI library should be
   adjusted. For the makefile system and the scsi library please contact Joerg
   Schilling.


Q: Cdda2wav sucks. Are there other alternatives available?

A: Yes, for Linux you might try 'cdparanoia' from Monty (see README file).
