Anleitung fr !ReadAudio
========================

!ReadAudio (C) 1997/1998 Steffen Huber

1.) Einfhrung

ReadAudio ist ein Programm, um digital Audiodaten von diversen CD-ROMs
auszulesen. Es ist ein Abfallprodukt des Prototyps von CDBurn, der wahnsinnigen
CD-Brenner-Software im Vertrieb von Warm Silence Software [1].

Die durch dieses Programm extrahierten Audiodaten knnen im WAV-Format oder in
einem Raw-CD-Format (16bit stereo signed linear little endian 44.1 kHz)
abgespeichert werden.

Das Programm ist NICHT multitaskend. [2]


2.) Konfiguration

In der Datei

!ReadAudio.settings

mssen der Typ des CD-ROMs (1. Zeile), die SCSI-ID (bzw. bei CDFS-CD-ROMs die
Laufwerksnummer) des CD-ROMs (2. Zeile), das abzuspeichernde Audioformat
(3. Zeile) und das Format der vom CD-ROM ankommenden Daten (little/big
endian) angegeben werden.

In EBNF sieht das so aus:
drivetype = (Toshiba | SCSIRead | MMC | CDDA | CDFS)
scsiid = (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7)
audioformat = ("WAV" | "CD")
littleendian = (0 | 1)

CD-ROM-Typen
------------

Toshiba - sollte mit Laufwerken der Typenbezeichnung XM3301/3401/3501/3601/
          3801/4101/4401/5201/5401 funktionieren, ebenso mit den Laufwerken
          von Plextor.
SCSIRead - sollte mit Philips-kompatiblen CD-Brennern funktionieren wie
           Philips CDD2000/2600, HP4020/6020i, Grundig CDW-100, Plasmon CDR4220,
           Yamaha CDR100/102.
MMC - funktioniert mit Laufwerken, die den MMC-Befehlssatz beherrschen. Dazu
      gehren alle CD-R/W-Gerte auf dem Markt, einige neuere Yamaha CDRs
      sowie einige sehr neue CD-ROMs.
CDDA - funktioniert mit einigen lteren CD-ROMs von Sony und Teac sowie mit
       den CD-Brennern Sony CDU-9XX und Teac CDR50/55S sowie Traxdata CDR4120.
CDFS - funktioniert immer dann, wenn der CDFS-Treiber das Kommando CD_ReadAudio
       fr das entsprechende Laufwerk anbietet.

SCSI-ID
-------

Einfach mal
*devices
eingeben und die SCSI-ID feststellen.

Bei Typ "CDFS" hingegen mu man die Laufwerksnummer anstelle der SCSI-ID
angeben und mu folglich
*-cdfs-cddevices
bemhen, um diese herauszufinden.

Audioformat
-----------

WAV oder CD, das ist hier die Frage. WAV kann jeder, CD ist ohne jeglichen
Headers, also nur "raw data" mit 16bit linear stereo 44.1 kHz little endian
Samples.

Endianess
---------

Es ist leider nirgends festgelegt, ob die Daten nun als little endian vom
CD-ROM zur Verfuegung gestellt werden oder als big endian. Als Faustregel
gilt, da little endian sehr viel weiter verbreitet ist. Wenn man nur
rosa rauschen hrt, war die Wahl falsch.

Beispiel
--------

Fuer ein Toshiba-Laufwerk auf SCSI-ID 6 wrde die "settings"-Datei also
folgendermaen aussehen:
Toshiba
6
WAV
1

Die Audio-Daten wrden also im WAV-Format gespeichert, und wie man sieht
benutzt Toshiba das "little endian"-Format.


Das Auslesen
------------

Die Angabe des auszulesenden Audiotracks erfolgt in der BASIC-Datei

!ReadAudio.!RunImage

und zwar in Zeile 290. Die Syntax des Kommandos lautet

PROCCD_ReadAudio (Tracknummer,Filename,Geschwindigkeit)

Damit wird dann der Audiotrack <Tracknummer> ausgelesen und unter <Filename>
gespeichert. <Geschwindigkeit> wird benutzt, um bei einigen CD-ROMs die
Auslesegeschwindigkeit zu manipulieren. Im Einzelfall kann das zu besseren
Ergebnissen fhren - bei Angabe von "0" wird die Geschwindigkeit so
belassen, wie sie momentan eingestellt ist.

3.) Kompatibilitt

Getestet wurde das Programm auf einem Acorn Risc PC 700 mit StrongARM und
RISC OS 3.7 sowie einem Castle Technology Storm DMA32 SCSI-Podule. Da das
Programm weder an Rechen- noch an I/O-Leistung besondere Ansprche stellt,
sollte es auch auf einem ARM2 mit RISC OS 2 laufen. Einzige Voraussetzung
ist prinzipiell eine SCSI-Karte mit Acorn-kompatibler Aufrufsyntax sowie
gengend Plattenplatz zum Speichern ;-)

4.) Mgliche Probleme

- es wird nicht berprft, ob gengend Plattenplatz vorhanden ist
- es wird nicht berprft, ob es sich bei dem zur eingestellten SCSI-ID
  zugehrigen Gert tatschlich um ein CD-ROM handelt [3]
- die ausgelesenen Audio-Daten beinhalten ein Knacken in relativ
  regelmigen Abstnden; das deutet auf Geschwindigkeitsprobleme des
  verwendeten Rechners hin [4]

5.) Status und Copyright

Dieses Programm ist urheberrechtlich geschtzt. Ich behalte mir alle Rechte
an Verwertung und Nutzung vor. Erlaubt ist die unentgeldliche Weitergabe
des Programms an andere Personen, sofern alle Dateien sich in ihrem
ursprnglichen Zustand befinden.

Ausdrcklich nicht erlaubt ist die Aufnahme dieses Programms in eine
kostenpflichtige PD-Library oder der Speicherung auf einer
kostenpflichtigen CD-ROM.

Die Urheberschutzrechte der ausgelesenen Audio-Daten sind zu beachten.

6.) Der Autor

Steffen Huber
Geigerckerstr. 19
71336 Waiblingen
Tel 07151/920354
Fax 07151/920355
EMail steffen@huber-net.de

------------------------------------------------------------------------------
[1] CDBurn ist ein vollstndiges, leistungsfhiges Programm zum Brennen
    von Daten- und Audio-CDs. Es untersttzt eine Vielzahl von CD-Brennern
    und -ReWritern. Es beinhaltet auch die Mglichkeit, ISO9660-kompatible
    CD-Images zu erstellen. On-the-fly-Brennen wird untersttzt.
    Nhere Informationen unter http://www.wss.co.uk/

[2] Das hat lediglich einen technischen Grund: CD-ROMs sind oftmals nicht in
    der Lage, SCSI-Blcke auf Audio-Tracks punktgenau anzufahren. Das Red Book
    erlaubt eine Abweichung von +- 75 Blcke, was genau einer Sekunde
    entspricht. Leider machen die Toshiba-Modelle da keine Ausnahme. Deshalb
    ist es das Ziel dieses Programms, die Daten "in einem Rutsch" vom CD-ROM
    auszulesen. Dazu wird in kurzen Intervallen auf die Festplatte gespeichert.
    
[3] Gefahr fr andere SCSI-Gerte sollte davon nicht ausgehen, da erstens
    keinerlei Schreibzugriffe (logisch!) vorgenommen werden, und zweitens
    andere Gerte bereits bei dem Kommando um die Position und Lnge eines
    Audiotracks zu bestimmen einen Fehler melden wrden.

[4] In einem solchen Fall ist mglicherweise ber eine Vernderung der
    Puffer-Gre eine Besserung herbeizufhren.
    In der Library "Const" ist dazu die Konstante "continuous%" zu verndern,
    die angibt, wieviele CD-Blcke zu je 2352 Bytes auf einmal eingelesen
    werden sollen. Bei einer starken Erhhung ist der WimpSlot im !Run-File
    ebenfalls zu erhhen!

"Sobald man nicht mehr an den Weihnachtsmann glaubt, geht's im Leben
 abwrts." (Tom Clancy)

This is the end, my friend the end
