!ReadMe for !ReadAudio

!ReadAudio is a small, crude utility to extract audio data from various
CD-ROMs as well as CD Writers. It should work perfectly with the
Toshiba XM3601, the Philips CDD2000, the Yamaha CDRW4260, the Plextor
PX32TS UltraPlex and the Teac CDR55S as I own these devices and
therefore tested it with these. It is also likely to work on any MMC
compatible CD device (like newer Yamaha CD writer drives etc.).

First you have to configure the application for your system. Look at the
file "settings" inside the application. It has the following format:
<Type of CD-ROM>
<SCSI-ID>
<Output format>
<Little/Big Endian>

<Type of CD-ROM> can be "Toshiba", "SCSIRead", "MMC", "CDDA" or "CDFS" at
the moment. 

- "Toshiba" should work for the drive types XM3301/3401/3501/3601/4101/4401,
  but will definitely not work with newer types such as the 5401 or the
  3801 - the Plextors also work with this device type.
- "SCSIRead" should work with some CD writers on the market such as
  the Philips CDD2000/2600 (as well as the compatible drives HP4020/6020,
  Plasmon CDR4220, Grundig CDW-100) and various older Yamaha models
  (CDR100/102).
- "MMC" should work with every CD-R/W device and some of the newer CD writers
  (like Yamaha's CDR200/400) and CD-ROMs.
- "CDDA" works with every CD-ROM which supports the "Read CD DA" SCSI command.
  Some Sony and Teac drives support this.
- "CDFS" works for those of you lucky enough to have a good CDFS driver that
  is able to extract digital audio data from your CD-ROM.

If you don't possess any of the mentioned devices, try out all five settings -
it can't do any harm (hopefully...).

<SCSI-ID> determines the SCSI id where your CD-ROM is located. Use
*devices
to find out the id if you don't know it already. If you chose "CDFS" as drive
type, you have to use the drive number instead of the SCSI device id. Use
*-cdfs-cddevices
to find out which drive number belongs to the selected CD-ROM.

<Output Format> can be "WAV" or "RAW". Both output 16bit stereo, little
endian, 44.1 kHz, signed linear audio data, but "WAV" also adds a suitable
WAV header so that it can be played e.g. via MovieFS. The appropriate
filetype is also added (&FB1).

<Little/Big Endian> can be "1" or "0" and depends on the used drive and
its standard output format of audio data. E.g. the Philips drives output
their data as Big Endian, so the parameter should be "0". The Toshiba
drives output their data as Little Endian, so the parameter should be
"1". MMC drives seem to output their data with little endian, as well as
many many other drives. In fact there are only a few that use big endian,
despite this format being the native format on the Audio CD.

You have to actually edit the source code to do the job - look at line 290
in the !RunImage. Edit the
PROCCD_ReadAudio
to suit your taste. First parameter is the track number, second is
the filename, third is the speed. Please be aware that the "speed"
setting has a major impact on the working of !ReadAudio. First, the
higher the speed is, the more likely is it that errors creep in the audio
data. Second, speed setting is not standardised (except on MMC drives), and
so it could well be possible that !ReadAudio would work on your CD-ROM, but
the speed setting routine is trying to do illegal things. So if you
specifiy "0" as the reading speed, !ReadAudio does not try to set any
special speed and leaves it to the CD-ROM to decide, and therefore
maximising compatibility.

!ReadAudio does not do much error handling, so the parameters should
be valid, or else strange things could happen! It does not multitask
during audio extraction, as this process is very time critical.

If anybody is interested to do a proper version with frontend either in
Ada 95 or in BASIC, please contact me.

Have fun,

Steffen Huber
(steffen@huber-net.de)
