AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

CD-Text auswerten

Ein Thema von Garfield · begonnen am 17. Aug 2013 · letzter Beitrag vom 1. Jan 2016
Antwort Antwort
Seite 1 von 2  1 2   
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, 18: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, 20x aufgerufen)
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: CD-Text auswerten

  Alt 17. Aug 2013, 19:51
Schau mal hier ab Seite 330 (Annex J)
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
kerberos002

Registriert seit: 20. Mär 2006
12 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: CD-Text auswerten

  Alt 17. Aug 2013, 20:43
Hallo,
für mein Projekt cdrtfe (cdrtools Front End) mußte ich mal das Gegenteil machen, also aus vorgegebenen Infos CD-Text-Daten erstellen, die an cdrecord verfüttert werden können. Die Infos dafür stammen aus dem schon genannten Anhang J des MMC-Standards und aus dem Quelltext von cdrecord. Damals hatte ich mir ein kleines Beispiel zur Veranschaulichung gebastelt. Hier die Einträge für die Blockgrößeninformationen:

Code:
  Byte
  0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17

  +-Pack Type
  |   +-Track Number
  |   |   +-Sequence Number
  |   |   |   +-Block Number, Character Position
  |   |   |   |   +-----------------Text Data-------------------+ +CRC16+
  ID1 ID2 ID3 ID4 |                                             | |     |

  $8F $00 $08 $00 $00 $01 $02 $00 $05 $03 $00 $00 $00 $00 $00 $00 $F3 $00
                  |   |   |   |   |   |
                  |   |   |   |   |   |
                  |   |   |   |   |   +-Number of sequences for pack type $81
                  |   |   |   |   +-Number of sequences for pack type $80
                  |   |   |   +-Copyright flags
                  |   |   +-Last track
                  |   +-First track
                  +-Charcode

  $8F $01 $09 $00 $00 $00 $00 $00 $00 $00 $00 $03 $0A $00 $00 $00 $36 $1B
                                              |   |
                                              |   +-Last sequence number
                                              |+-Number of Size Packs

  $8F $02 $0A $00 $00 $00 $00 $00 $09 $00 $00 $00 $00 $00 $00 $00 $87 $ED
                                  |
                                  +- Language code
Die Packs mit den Trackinfos (sequence number $00 bis $07) habe ich aus Platzgründen weggelassen. Das vollständige Beispiel gibt's hier.
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

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

AW: CD-Text auswerten

  Alt 17. Aug 2013, 22:04
Genau mit diesen drei Seiten Anhang J habe ich auch begonnen. Der ist in MMC 3 noch zu finden, dann nicht mehr. Zumindest in den PDF, welche ich hier habe. In MMC-6 Kapitel 6.25.3.7 Response Format 0101b: CD-TEXT wird auf die System Description Compact Disc Digital Audio Addemdum: CD-TEXT verwiesen, welche aber bisher nicht gefunden habe. Das Beispiel hier bringt mich ein gutes Stück weiter. Verstehe nur nicht, warum ich nicht von selbst darauf gestoßen bin. Vielen Dank.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#5

AW: CD-Text auswerten

  Alt 17. Aug 2013, 22:10
Schau mal hier ab Seite 330 (Annex J)
PDF-Seite 352
  Mit Zitat antworten Zitat
kerberos002

Registriert seit: 20. Mär 2006
12 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: CD-Text auswerten

  Alt 18. Aug 2013, 12:45
Habe noch etwas gefunden: CD Text Format.
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

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

AW: CD-Text auswerten

  Alt 18. Aug 2013, 14:00
@ Perlsau: Ich hätte die Seitenzahl genauso angegeben.

@ kerberos002: Ich habe mir sehr viele Seiten wegen dem CD-Text angesehen, aber die war nicht dabei. Vielen Dank.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

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

AW: CD-Text auswerten

  Alt 2. Jan 2014, 22:30
Zunächst allen ein gesundes und erfolgreiches Jahr.

Hätte nicht gedacht, dass es so lange dauert. Nun habe ich es geschafft, den CD Text von einigen CDs aus meinem Schrank und das Sony Beispiel zu lesen. Das Programm hat zwar einigen Überhang, aber zum Ansehen sollte es gehen. Das Demo ist unter Win8.1 mit XE5 compiliert. Unter WinXP will sie aber nicht. Da kann man sie mit TurboDelphi compilieren.
Miniaturansicht angehängter Grafiken
demo.png  
Angehängte Dateien
Dateityp: 7z podCDText.7z (789,4 KB, 18x aufgerufen)
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

AW: CD-Text auswerten

  Alt 3. Jan 2014, 16:50
Das gefällt!

Beim allerersten Aufruf, CD befindet sich im Laufwerk, greift das Programm in Leere (000054) der Fehler ist aber nicht reproduzierbar.
(W7)


Was man/Du verbessern könnte/st
a) die tollen Icons mit einer Erläuterung versehen
b) zumindestens den Listenbereich mit vergrößern
c) eine Exportfunktion spendieren

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

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

AW: CD-Text auswerten

  Alt 3. Jan 2014, 17:44
Vielen Dank für Deine Antwort p80286.

Das ist hier nur eine Demo, bei deren Source noch der ganze andere Kram drin ist welcher sich in den letzten Jahren bei dem Projekt angesammelt hat. Das soll jetzt in ein Programm hinein, welches die CD liest, die Daten von FreeDB und MusicBrainz (Bild von Amazon) holt und den CD-Inhalt als Wave oder MP3 (lame_enc.dll) speichert. Wenn dann die MP3-Tags drin sind, wollte ich das ganze noch mal aufhübschen und hier vorstellen.

Den Fehler kann ich leider nicht nachvollziehen. Die Routinen zum MMC READ TOC/PMA/ATIP Command hatte ich anfangs mit Turbodelphi unter WinXP und Win7 getestet. Seit Oktober 2013 mit XE5 unter Win8.1. Die damit erstellte Demo will bei mir unter WinXP auch nicht. Kann also gut sein, dass der Fehler auf die Erstellung mit Win8.1/XE5 zurückzuführen ist. Anbei eine Demo, die mit Turbodelphi unter WinXP erstellt wurde. Da habe ich nur einen Fehler, wenn ich auf das Label "Nachrichten ($85)" klicke wenn keine Nachrichten vorhanden sind. Sonst kann man noch auf die Label "Toc Info ($88)", "Toc Info2 ($89)" und "Closed Info ($8D)" klicken. Dann werden die Infos per ShowMessage angezeigt.

Hints werde ich noch für die Button einfügen. Die geringe Breite liegt daran, dass alle meine Demos so schmal sind bzw waren. Aber die Verhinderung der Verbreiterung hätte ich rausnehmen können. Eine Exportfunktion ist sicher sinnvoll. Weiß leider nicht so richtig was für ein Format ich dafür verwenden soll. Deshalb die ShowMessage-Boxen. Bei der Demo im ersten Beitrag kann man den rohen CDText in die Zwischenablage kopieren.
Angehängte Dateien
Dateityp: 7z CDText_XP_TD.7z (270,2 KB, 13x aufgerufen)
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz