Einzelnen Beitrag anzeigen

Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.334 Beiträge
 
Delphi XE5 Professional
 
#1

CD-Text auswerten

  Alt 17. Aug 2013, 17:29
Hallo,

in den Multimediacommands gibt es das READ TOC/PMA/ATIP Command mit dem Operation Code $43. Mit dem Response Format 0101b CD-TEXT kann man den rohen CD-Text von AudioCDs lesen, falls welcher vorhanden ist. Das selbe Ergebnis erhält man auch mit IOCTL_CDROM_READ_TOC_EX und dem Format CDROM_READ_TOC_EX_FORMAT_CDTEXT (Konstante = 0101b).

Der Text besteht aus Packs/Sätzen zu je 18 Byte. Die ersten vier sind der Header, dann folgen zwölf Byte Daten und zwei mit einem CRC. Das erste Byte des Headers gibt den Typ der Daten (zB. Album/Trackname) an. Das zweite den Index der Liste (zB Track 2), das dritte ist der Zähler für die Packs und das vierte enthält drei Werte. Zum einen wieviele Daten für das Feld bereits im vorigen Pack stecken, eine Blocknummer und ein Flag für Double Byte Character Code indication.

Die Packtypen sind
$80 - Liste mit den Namen des Albums und der Tracks (Albumname),
$81 - Liste mit den Namen der Interpreten (Perfomer),
$82 - Name des Texter (Songwriter),
$83 - Name des Komponisten (Composers),
$84 - Name des Arrangeurs (Arranger),
$85 - Nachricht vom Inhalteanbieter und/oder Künstlers,
$86 - Discidentifikationinformation,
$87 - Genreidentifkation und Genreinformation,
$88 - Table of Content Information,
$89 - Table of Content Information 2,
$8D - Für den Inhalteanbieter reserviert,
$8E - Liste mit dem UPC/EAN Code des Albums und ggfs deb ISRC Codes aller Tracks und
$8F - Blockgrößeninformation.

In meinem geringen Bestand von AudioCDs mit CDText habe ich immer die Listen mit den Album/Tracknamen ($80) und den Interpreten ($81) sowie die Blockgrößeninformationen ($8F) gefunden. Mit den letzten kann ich nichts anfangen. Die Listen der Namen ($80, $81) sind ASCII. Da die CDs jeweils von einem Interpreten stammen, enthalten die Performerlisten ($81) leere Einträge, Tabulatorzeichen oder entsprechend viele Wiederholungen des Namens. Die Discidentifikationinformation ($86) sollen ein Binärwert sein. Allerdings komme ich damit nicht weiter. Bei einer CD fand ich eine EAN ($8E) als ASCII-Wert. Entspricht dem Barcode auf der Verpackung.

Vielleicht könnt Ihr mir mit Informationen oder Links weiterhelfen?

Im Anhang zwei Bilder und das Programm mit Quelltext.
Miniaturansicht angehängter Grafiken
bild1.png   bild2.png  
Angehängte Dateien
Dateityp: 7z CDText.7z (348,5 KB, 21x aufgerufen)
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat