Thema: Cuesheets
Cuesheets, und was es damit (für uns hier) auf sich hat.
Cuesheets sind zunächst nichts anderes als "Merkzettel" für alles Mögliche, wie z.B. die Reihenfolge der Tanzschritte oder die Harmoniefolge für den Keyboarder einer Band oder, oder, oder.
Wir interessieren uns hier für die Archivierung (und Abbildung) von Audio-CDs, und so sind für uns eigentlich nur die Cuesheets interessant, die durch die Programmierer der Brennsoftware CDRWIN ca. 1995 entwickelt wurden. Hierbei handelt es sich um eine ASCII-Textdatei mit der Fileendung ".cue", deren Befehlssatz und Syntax einerseits recht übersichtlich, andererseits aber völlig ausreichend ist, um CDs jeglicher Art beschreiben zu können. Wer Interesse am kompletten Befehlsatz hat, dem sei die Seite http://mitglied.lycos.de/big_sleepy/cuesheet.htm ans Herz gelegt.
Da Foobar2000 ebenfalls mit den audiorelevanten Inhalten umgehen kann, und darüber hinaus aber auch einige nicht normgerechte Erweiterungen in Cuesheets akzeptiert, ist dies neben dem CD-Abbild der zweite Aspekt, welcher für uns von Interesse sein wird.
Etliche Anfragen im Forum zeigen immer wieder, dass oftmals Unsicherheiten in Bezug auf die Auswirkungen oder die Eigenschaften der Cuesheets bestehen, vor allem auch wegen der Möglichkeit, bei EAC verschiedene Arten von Cuesheets erzeugen zu können, wobei ich da insbesondere an die nicht normgerechte Noncompliant-Variante denke. Aus diesem Grund versuche ich mal, alles m.E. Relevante zum Thema zusammenzutragen, um das Verständnis für etwaige Problemstellungen zu verbessern.
Um ein Gefühl dafür zu bekommen, wo die kleinen aber feinen Unterschiede liegen, benötigen wir zunächst einen Blick auf die grundsätzliche Norm der Audio-CD oder deren Ableger.
Am Anfang war das (Laser) Licht, welches uns den Weg durch die Höhen und Tiefen (Pits and Lands) des neuen Mediums CD weisen soll. Da dieses Licht jedoch nicht automatisch wie der Tonabnehmer durch den Tonschnitt (Rille) einer Schallplatte geführt wird, hat man sich einige andere Sachen einfallen lassen müssen, damit die Wiedergabe problemlos funktioniert. Neben den mechanischen Dingen waren dies dann noch die zusätzlichen Daten, oder neudeutsch Subdates, wie z.B. das Inhaltsverzeichnis (Table Of Content = TOC), der Timecode, Track- und Indexmarken und einiges mehr. Damit die Zusatz- und die Audiodaten (natürlich passgenau) ihre Zugehörigkeit erhalten, wurden einige Vorschriften eingeführt, um ein Durcheinander zu vermeiden.
[1] Es gibt maximal 99 Tracks auf einer CD. (Nummer 01-99)
[2] Die erste Tracknummer auf einer CD ist beliebig, danach aber weiterzählend.
[3] Ein Track muss mindestens 4 sec. lang sein.
[4] Ein Track muss mit einer Pause beginnen. (Ursprünglich mal angedacht mit einer Länge von mindestens 2 sec, wurde dann aber zugunsten von Live-CDs auch mit einer Länge von 0 sec ermöglicht, kann aber eine beliebige Länge aufweisen.)
[5] Der Trackanfang, das Ende und jegliche evtl. Markierung dazwischen müssen immer am Beginn der kleinsten Timcode-Einheit liegen.
[6] Die kleinste Timecode-Einheit ist ein Frame (siehe Bild unten) und hat die Länge von einer 75stel Sekunde; oder anders ausgedrückt: 13,333 ms oder 1176 Samples (Stereo) / 588 (Mono).
[7] Der Timecode wird im Format MMM:SS:FF geschrieben. (M = Minuten, S = Sekunden, F = Frames)
[8] Ein Track kann in maximal 100 Untereinheiten aufgeteilt werden. (Indexnummern 00-99 >> 00 = Pause, 01 = Trackstart, 02 – 99 = frei wählbar)
[9] Eine Audio-CD ist nicht multisessionfähig. (Hier liegt z.T. der Hund bei den sogenannten "Un-CDs", CDs mit Kopierschutz, begraben.)</li>
Dies sind bei weitem nicht alle Vorschriften, aber alle, die uns im Zusammenhang mit Cuesheets interessieren sollten.
Der Punkt 4 (Beginn mit Pause) ist hierbei die Vorschrift, welche für die meiste Verwirrung sorgt. Doch der Reihe nach! Schauen wir uns erst einmal eine fiktive CD in Ihrem Aufbau an. Damit es sich lohnt, gehen wir von einem Live-Album aus.
Nach einem fulminanten Opener, um dem Publikum einzuheizen, kommt nahtlos als zweite Nummer ein Medley mit 3 Titeln aus der Frühgeschichte der Band. Applaus und Begrüssung des Publikums folgen, bevor es mit der dritten Nummer weitergeht. Das Konzert geht seinen, für uns unbekannten, weiteren Gang, bevor es mit dem 14ten Titel endet.
Da diese CD eigentlich zu einer Box von 5 CDs gehört, welche das Tributkonzert zugunsten der Aidshilfe wiedergeben soll, haben sich die Produzenten entschlossen, die beiden wichtigen, aber doch recht langen Reden auf die erste CD des Sets zu bringen, um dann den vier auftretenden Bands jeweils eine CD zu widmen. Aus diesem Grund sollte auch die zweite CD mit Tracknummer 3 weitergehen. CD 3 beginnt dann mit Tracknummer 17 und so weiter. Wie würde jetzt ein (unvollständiges) Cuesheet für diese CD ausschaun?
CATALOG 1234567890123
TITLE "Aidshilfe XY CD 2"
PERFORMER "Band 1"
FILE "D:\Daten\Audio\Konzerte\Aidshilfe\CD 2\ Aidshilfe Band 1 - Image.wav" WAVE
TRACK 03 AUDIO
TITLE "Titel 1"
ISRC ABCDEFGHIJ01
INDEX 00 00:00:00
INDEX 01 00:02:00
TRACK 04 AUDIO
TITLE "Titel 2"
ISRC ABCDEFGHIJ02
INDEX 01 04:00:00 REM Medley Titel 1
INDEX 02 07:30:00 REM Medley Titel 2
INDEX 03 09:00:00 REM Medley Titel 3
TRACK 05 AUDIO
TITLE "Titel 3"
ISRC ABCDEFGHIJ03
INDEX 00 11:25:00
INDEX 01 12:08:00
.
.
.
TRACK 14 AUDIO
TITLE "Titel 16"
ISRC ABCDEFGHIJ14
INDEX 01 65:34:00
Wenn ich diese CD nun mit der Einstellung "Hänge Pausen an den vorherigen Track" rippe und dann auch die entsprechende Cuesheet (Multiple WAV Files with Gaps (Noncompliant)) erzeuge, sieht das Ergebnis plötzlich so aus:
CATALOG 1234567890123
TITLE "Aidshilfe XY CD 2"
PERFORMER "Band 1"
FILE "E:\Rips\Aidshilfe\CD 2\ 03 - Titel 1.wav" WAVE
TRACK 03 AUDIO
TITLE "Titel 1"
ISRC ABCDEFGHIJ01
INDEX 00 00:00:00
INDEX 01 00:02:00
FILE "E:\Rips\Aidshilfe\CD 2\ 04 - Titel 2.wav" WAVE
TRACK 04 AUDIO
TITLE "Titel 2"
ISRC ABCDEFGHIJ02
INDEX 01 00:00:00 REM Medley Titel 1
INDEX 02 03:30:00 REM Medley Titel 2
INDEX 03 05:00:00 REM Medley Titel 3
TRACK 05 AUDIO
TITLE "Titel 3"
ISRC ABCDEFGHIJ03
INDEX 00 07:25:00
FILE "E:\Rips\Aidshilfe\CD 2\ 05 - Titel 3.wav" WAVE
INDEX 01 00:00:00
.
.
.
FILE "E:\Rips\Aidshilfe\CD 2\ 16 - Titel 14.wav" WAVE
TRACK 14 AUDIO
TITLE "Titel 16"
ISRC ABCDEFGHIJ14
INDEX 01 00:00:00
Würde ich die CD, der Vorschrift entsprechend, mit den Pausen am Anfang der Datei rippen, müsste das Cuesheet mit der Einstellung "Multiple WAV Files with Corrected Gaps" erzeuget werden, und sähe dann so aus:
CATALOG 1234567890123
TITLE "Aidshilfe XY CD 2"
PERFORMER "Band 1"
FILE "E:\Rips\Aidshilfe\CD 2\ 03 - Titel 1.wav" WAVE
TRACK 03 AUDIO
TITLE "Titel 1"
ISRC ABCDEFGHIJ01
INDEX 00 00:00:00
INDEX 01 00:02:00
FILE "E:\Rips\Aidshilfe\CD 2\ 04 - Titel 2.wav" WAVE
TRACK 04 AUDIO
TITLE "Titel 2"
ISRC ABCDEFGHIJ02
INDEX 01 00:00:00 REM Medley Titel 1
INDEX 02 03:30:00 REM Medley Titel 2
INDEX 03 05:00:00 REM Medley Titel 3
FILE "E:\Rips\Aidshilfe\CD 2\ 05 - Titel 3.wav" WAVE
TRACK 05 AUDIO
TITLE "Titel 3"
ISRC ABCDEFGHIJ03
INDEX 00 00:00:00
INDEX 01 00:43:00
.
.
.
FILE "E:\Rips\Aidshilfe\CD 2\ 16 - Titel 14.wav" WAVE
TRACK 14 AUDIO
TITLE "Titel 16"
ISRC ABCDEFGHIJ14
INDEX 01 00:00:00
Was uns beim Vergleich der drei Cuesheets auffällt, ist, dass sich die Indexzeiten verändern, bzw., dass die Position der FILE-Anweisung unterschiedlich ist. Dies liegt daran, dass ein Cuesheet eine sequenzielle Ausführungsliste ist, bei der die Indexzeiten immer wieder auf 0 gesetzt werden, sobald eine FILE-Anweisung zum Laden der nächsten Datei auffordert.
Befinden sich nun die Pausen am Ende der vorherigen Datei, so muss zunächst natürlich der TRACK-Befehl mit seinen Zusätzen wie ISRC, TITLE, PERFORMER und so weiter, und letztendlich dem INDEX 00, für den Beginn von Pause und Track, gesetzt werden, bevor die nächste Datei geladen (und gebrannt) werden kann.
Diese Abhängigkeiten machen es nicht gerade leicht, das Cuesheet nachträglich zu editieren. Wichtig, und am einfachsten, ist zunächst die Pfadangabe für die Datei. Diese kann absolut, wie in den Beispielen oben, also begonnen mit dem Laufwerksbuchstaben, gefolgt vom kompletten Pfad, erfolgen, oder auch relativ, von der Position des Cusheet bis zu den Audio-Dateien gesehen. Um eine Ordnerebene tiefer zu gelangen, benutzt man zwei Punkte, also ..\.
Noch ungefährlicher ist das Einfügen von Kommentaren mit Hilfe der REM-Anweisung. Jeglicher Text ab der REM-Anweisung bis zum Zeilenende wird ignoriert. Diesen Umstand macht sich Foobar2000 zu Nutze, indem hier einige TAG-Informationen abgelegt werden können, welche für eine Brennsoftware nicht von Belang, für Foobar2000 aber hilfreich sein können. Vorzugsweise sind dies das Genre oder die Replaygain-Werte.
Veränderungen der Struktur des Cuesheets sind hingegen nur mit dem genauen Wissen um die Abhängigkeiten und ein wenig Mathematik treffsicher möglich. Ich kann z.B. mit Hilfe des Cuesheets ein Image-File in Foobar2000 mittels Convert in seine Einzelfiles zerschneiden, muss mir aber darüber im Klaren sein, dass Foobar2000 dabei die Datei an der INDEX 00, und, falls diese, weil keine Pause vorhanden ist, fehlen sollte, an der INDEX 01 schneidet.
Belasse ich also vor dem Zerschneiden die INDEX 00-Marken im Cuesheet, erzeuge ich auf diese Weise Dateien, bei denen sich die Pause, normgerecht, am Anfang der Datei befindet. Wenn ich die INDEX 00-Marken vorher aus dem Cuesheet entferne, werden eventuelle Pausen an das Ende der vorherigen Dateien angehängt. Lediglich die erste Pause des ersten Tracks ist eine Pflichtpause und muss auch dort belassen werden, falls ich den Originalzustand wieder herstellen möchte.
Möchte ich hingegen ein Cuesheet erzeugen, welches dem originalen Abbild entspricht, sich jetzt aber auf die Einzelfiles bezieht, muss ich nun die Indexzeiten gemäss meiner gewählten Schnittmethode berechnen und die FILE-Anweisungen im neuen Cuesheet entsprechend platzieren. Bei belassenen INDEX 00-Marken kommt der FILE-Aufruf vor der TRACK-Anweisung, bzw., wenn die INDEX 00-Marken vor dem Schnitt entfernt wurden, kommt die FILE-Anweisung vor die INDEX 01-Marke. Die INDEX 00-Marke muss vor der FILE-Anweisung wieder eingefügt werden und natürlich die zugehörige Zeit, bezogen auf die letzte FILE-Anweisung davor, neu berechnet werden. Viel Handarbeit also.
Auch der Weg andersherum ist natürlich möglich. Ich kann mit der Convert-Funktion von Foobar2000 alle Einzelfiles einer CD zu einem Imagefile zusammenfassen, muss hier aber bei der Neuberechnung der Indexzeiten wieder viel Hirnschmalz investieren. Also: Filelängen genau messen und in Frames umwandeln und dann entsprechend addieren.
Hat man erst einmal verinnerlicht, wo die Stolpersteine liegen, bzw., wie ein Cuesheet funktioniert, kann man dieses Wissen auch bei eigenen Aufnahmen benutzen, um diese zu strukturieren.
Foobar2000 kann Cuesheets übrigens auf zwei Arten verarbeiten:
[A] Als eigenes File, welches ich in Foobar2000 wie eine Audiodatei lade, was dann das Nachladen der entsprechenden Audiofiles verursacht.
[B] Oder als sogenanntes "Embeddet Cuesheet", welches ähnlich wie ein ReplayGain-Tag in die Imagedatei eingepflegt wurde. Für diesen Fall bietet Foobar2000 einen eigenen Cuesheet-Editor an.</li>
Ich hoffe, dass ich alle relevanten Aspekte in diesem Artikel zusammengefasst habe und dass hiermit das Verständnis für Cuesheets erleichtert wurde.
Gruss, TomPro