************************************************************************
************************************************************************
Version 08.04.06 Die wichtigsten Audio-CD Befehle
************************************************************************
************************************************************************
========================================================================
Inhalt
========================================================================
0. Vorbemerkungen
1. Audio-CDs rippen und encodieren
2. Lame installieren und anwenden
3. MP3 taggen
4. Audio-CDs rippen mit cdparanoia
5. Audio-CDs rippen mit cdda2wav
6. Audio-CDs brennen mit cdrdao
7. Audio-CDs brennen mit cdrecord und k3b
8. Mixed Mode und Multisession CDs brennen mit cdrecord
9. Audio saugen
10. FreeCDDB: Abfrage, neue Einträge, Genres.
11. Audio-Dateien editieren
========================================================================
0. Vorbemerkungen
========================================================================
________________________________________________________________________
Audio CDs können "nicht" gemountet werden (außer es wird wie bei Windows
ein spezielles cdfs (CD-file-system) verwendet).
Der "Datei-Manager" und Alleskönner Konqueror kann aber den Inhalt einer
Audio CD-Rom anzeigen! Die Adresse lautet: audiocd:/ (siehe unten!).
Audio CDs können aber sehr einfach ausgelesen werden, cdda2wav ist eines
von verschiedenen Programmen, die zur Verfügung stehen.
Beachte, unter KDE werden viele Einstellungen im ControlCenter vorgenom-
men: umbedingt nachschauen unter Sound & Multimedia!
Um kscd abzuschalten, damit es nicht startet, sobald eine CD eingelegt
wird, Suse-Plugger konfigurieren: Im System-Tray (das ist dort im Panel
wo all die kleinen Icons liegen) einen Rechts-Klick auf das SuSE Hard-
ware-Tool machen und "Configure" auswählen! Dann sollte alles klar sein!
Jedenfalls hat es bei mir mit SuSE 9.3 so geklappt. Ob das SuSE Hardware
Tool bei neueren Versionen immer noch so heißt?
________________________________________________________________________
========================================================================
1. Audio CD rippen und encodieren
========================================================================
________________________________________________________________________
Dazu muß ein Ripper (z. B. dagrab, cdda2wav oder cdparanoia) installiert
sein, was bei den meisten Distributionen der Fall ist.
Dann muß ein Encodierer (z. B. Lame, ogg Vorbis, Flac) installiert sein!
Mehr zur Installation von Lame siehe weiter unten.
________________________________________________________________________
Audio CD rippen und encodieren (mittels Kommandozeile):
1) RipIT! Dieses Kommandozeilenprogramm unterstützt CDDB, ID3v2 Tags und
UTF-8.
ripit -a -S 196 -c 0 -d /dev/sr1 --nop -o ~/documents/sound/mp3
Hilfe:
man ripit (ab Version 3.5)
ripit -foo
/usr/share/doc/packages/ripit/README
2) Yacd2mp3, auch ein Perl Script, finde ich aber nicht so flexibel:
yacd2mp3 --device /dev/sr1 --dir pfad/zum/sound/mp3/ \
--year 2004 --genre 27
3) abcde, hm..., sicher ein tolles Programm, aber meines Erachtens auch
umständlicher als ripit. Z. B. finde ich das editieren und abschicken
von CDDB Einträgen zu umständlich. Das geht mit Ripit besser.
________________________________________________________________________
Audio CD rippen und encodieren (graphisch) mit Konqueror:
1) Konqueror mit der Adresse "audiocd:/" öffnen ! Allenfalls im Control-
Center verifizieren, ob das CD-Laufwerk mit dem entsprechenden (siehe
auch die Datei /etc/fstab) CD-device eingetragen ist.
2) Im Konqueror erscheinen Verzeichnisse mit track.wav, mp3 und ogg Dat-
eien, einfach gewünschtes Format ins Heimverzeichnis rüberziehen. Ob
die Lieder auch id2v3 tags bekommen, habe ich nicht getestet.
Wiederum im KDE-Control-Center unter Sound & Multimedia --> Audio CDs
die Einstellungen prüfen, z.B. ob die Bitrate für Ogg Vorbis oder MP3
richtig ausgewählt sind, etc.
3) Nachteil: kann etwas langsam sein. In diesem Fall kann der paranoia-
Level herabgesetzt werden, was aber nur bei einem sehr guten CD Lauf-
werk zu empfehlen ist: Statt 2 also 1 (nur eine grundlegende Fehler-
kontrolle) oder 0 (gar keine Fehlerkontrolle):
audiocd:/?device=/dev/my_CD-rom?paranoia_level=0
Ich habe aber keine Ahnung was dieser Level ist! Jedenfalls habe ich
mit man cdparanoia nichts dergleichen gefunden. Kann mir jemand sagen
was dieser paranoia-level genau macht? mailto ripit[æt]suwald[ðot]com
---------------------------------------------------------------------
Vermutlich hat es (siehe man cdda2wav) mit folgendem zu tun:
Use Monty's libparanoia for reading of sectors
-paranoia selects an alternate way of extracting audio sectors.
Monty's library is used with the following default options:
PARANOIA_MODE_FULL, but without PARANOIA_MODE_NEVERSKIP
for details see Monty's libparanoia documentation.
In this case the option -P has no effect.
---------------------------------------------------------------------
4) Quellen: Michael Koflers Linux Buch, 6. Auflage, Seite 549 unten, und
Easy Linux, Ausgabe 10/2004, Seite 66.
________________________________________________________________________
Audio CD rippen und encodieren (graphisch) mit KAudioCreator:
Dieses sehr handliche GUI kann unter Multimedia ---> CD/DVD Tools aufge-
rufen werden. Es sollte selbsterklärend sein, außer vielleicht, daß ge-
wisse Einstellungen (Qualität etc.) im Control-Center vogenommen werden
müssen.
________________________________________________________________________
========================================================================
2. Lame installieren und anwenden
========================================================================
________________________________________________________________________
Audio Stücke einzeln encodieren oder decodieren
0) Ich habe lame-3.93.1.tar.gz heruntergeladen (von sourceforge) und wie
in der Datei Install beschrieben installiert:
1) Installieren geht wie von alleine (als su eingeloggt) automatisch ins
/usr/local/bin hinein:
./configure
make
make install
2) lame --tt title --ta artist --tl album --tn trackno -h input.wav \
output.mp3
3) lame --decode input.mp3 output.wav
4) Hilfe zu lame:
lame --help um die Version etc. anzuzeigen
lame --genre-list um die Genres auszugeben
lame --genre-list | sort -n ebenso, alphabetisch sortiert
5) Blabla:
(lame: Lame Ain't Mp3 Encoder, d. h. soviel wie: "Lame ist KEIN mp3-
encodierer"... das zur gebräuchlichen Namensgebung von GNU Progs.)
Ich mache mir so meine Gedanken über die Genre-Liste! Da tatsächlich
religiöse Genres eingeführt wurden, würde ich sie gern politisch kor-
ekt statt "christian" in "religious" umbenennen. Und da es sowas wie
New Wave und Dark Wave gibt, frage ich mich schon, wieso es kein Wave
gibt... Gern würde ich diese Einstellungen ändern... Weiß jemand Be-
scheid? In Lame habe ich es geschafft, aber all die anderen Audiopro-
gramme kennen die neuen genres nicht... Ich habe versucht die Datei
libmp3lame/id3tag.c zu hacken und neu kompilieren! Ohne Erfolg...
Weitere Infos siehe unten bei der ID3 Problematik!
________________________________________________________________________
========================================================================
3. MP3 taggen
========================================================================
________________________________________________________________________
Seit einiger Zeit verwende ich easytag, mit dem ich recht zufrieden bin.
Dabei starte ich das Programm aus der Shell, um gleich den Pfad zum Ver-
zeichnis mitzugeben und das "Scannen" aller Verzeichnisse zu verhindern.
easytag [directory]
Z.B:
easytag .
________________________________________________________________________
Mittels Kommandozeile geht auch id3v2 sehr gut!
ID3 Tags in MP3-Dateien editieren:
id3v2 -l *.mp3 listet alle Einträge auf
id3v2 -y 1998 *.mp3 fügt überall das Jahr hinzu
id3v2 -d *.mp3 löscht alle id3v2 Einträge
id3v2 -s *.mp3 löscht alle id3v1 Einträge
id3v2 -t "J'efface et j'oublie Dub Extende remix" Track11.mp3
________________________________________________________________________
Dann gibt es auch noch id3, ein netter "mass-tagger":
Z.B. lasse ich mit Artist und Titel inklusive aller im Verzeichnis vor-
handener mp3-Dateien so anzeigen:
for i in * ; do echo -n "$i: " ; id3 -2 -q "%a %t" "$i"; done
________________________________________________________________________
Hier ein Auszug aus den von Lame unterstützten MP3 genres. Alle diese
genres können mit dem Befehl lame --genre-list ausgegeben werden.
26 Ambient
132 BritPop
50 Darkwave
127 Drum & Bass
98 Easy Listening
52 Electronic
49 Gothic
66 New Wave
13 Pop
24 Soundtrack
147 Synthpop
113 Tango
18 Techno
31 Trance
27 Trip-Hop
________________________________________________________________________
========================================================================
4. Audio-CDs rippen mit cdparanoia
========================================================================
________________________________________________________________________
Ganze CD rippen mit cdparanoia:
cdparanoia -d /dev/cdrecorder
Option -D (device)
________________________________________________________________________
Einzelne Stücke rippen mit cdparanoia:
cdparanoia -d /dev/cdrecorder -B 1-3
Option -B (batch) generiert mehrere Dateien
________________________________________________________________________
Abschnitte einzelner Stücke rippen mit cdparanoia:
(Z.B. um ein Stück mit "ghost song" zu trennen)
cdparanoia -d /dev/cdrecorder -B 12-[6:48]
cdparanoia -d /dev/cdrecorder -B 12:[16:01]-
________________________________________________________________________
Versteckte Stücke rippen mit cdparanoia:
(Z.B. um ein "hidden track" zu extrahieren)
cdparanoia -d /dev/cdrecorder -B [0:00]-1
dabei entsteht ein track00.cdda.wav und ein track01.cdda.wav.
Wer nur den "hidden track" will:
cdparanoia -d /dev/cdrecorder -B [0:00]:1
________________________________________________________________________
========================================================================
5. Audio-CDs rippen mit cdda2wav
========================================================================
________________________________________________________________________
Ganze CD rippen mit cdda2wav:
cdda2wav -D /dev/cdrecorder -x -B -H
Option -D (device)
Option -s (stereo)
Option -x maximale Qualität, ist automatisch stereo, 16bit, 44,1 KHz
Option -B (bulk) generiert mehrere Dateien
Option -H generiert keine Info-Dateien
________________________________________________________________________
Einzelne Stücke rippen mit cdda2wav:
cdda2wav -D /dev/cdrecorder -x -B -H -t 1+3
Option -t 1+3 rippt tracks 1 bis 3, leider nicht nur 1 und 3
________________________________________________________________________
Abschnitte einzelner Stücke rippen mit cdda2wav:
(Z.B. um ein Stück mit "ghost song" zu trennen)
cdda2wav -D /dev/cdrecorder -x -t 12 -d 260
Option -d (duration) rippt die ersten 4'20" von track 12
cdda2wav -D /dev/cdrecorder -x -t 12 -o 32850
Option -o (offset) rippt ab sector 32850 von track 12 bis zum Ende,
d.h. ab 75*(7'18") = 75*(420+18) = 32850 Frames.
________________________________________________________________________
Tocs und Infos anzeigen:
cdda2wav -D /dev/cdrecorder -J
Option -J (info only)
gibt einen sehr informativen Output:
#Cdda2wav version 2.01_linux_2.6.8.1_i686_athlon, real time sched., soundcard, libparanoia support
AUDIOtrack pre-emphasis copy-permitted tracktype channels
1-14 no no audio 2
Table of Contents: total tracks:14, (total time 53:15.60)
1.( 3:16.65), 2.( 3:19.07), 3.( 2:46.58), 4.( 0:07.00), 5.( 4:39.12),
6.( 1:20.25), 7.( 4:23.28), 8.( 7:54.20), 9.( 3:57.02), 10.( 3:23.33),
11.( 5:13.40), 12.( 4:06.62), 13.( 5:48.68), 14.( 2:59.15)
Table of Contents: starting sectors
1.( 12375), 2.( 27140), 3.( 42072), 4.( 54580), 5.( 55105),
6.( 76042), 7.( 82067), 8.( 101820), 9.( 137390), 10.( 155167),
11.( 170425), 12.( 193940), 13.( 212452), 14.( 238620), lead-out( 252060)
CDINDEX discid: DXMhnAITXIb0ieYp7OECBgjr1gs-
CDDB discid: 0xcf0c7b0e
CD-Text: not detected
CD-Extra: not detected
Media catalog number: 0731455882124
scanning for ISRCs: 14 ...
index scan: 1...
track mismatch: 1, in-track subchannel: 2 (index 1, sector 27139)
index scan: 14...
Die zweit letzte Zeile sagt alles.
Was ich aber noch gern wüsste: was ist der "CDINDEX discid" für eine
Nummer, und was ist die "Media catalog number"? Schreib doch bitte ein
Mail an ripit[æt]suwald[ðot]com
________________________________________________________________________
FreeCDDB Abfrage
cdda2wav -D /dev/cdrecorder -J -H -L 0
speichert keine info Dateien, aber dafür eine Datei audio.cdindex in xml
Format gemäß:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE CDInfo SYSTEM "http://www.musicbrainz.org/dtd/CDInfo.dtd">
cdda2wav -D /dev/cdrecorder -J -L 0
speichert alle info Dateien, die audio.cdindex Datei und speichert auch
den FreeCDDB Eintrag unter audio.cddb ab.
________________________________________________________________________
Hidden Tracks können (noch?) nicht mit cdda2wav gerippt werden, schade.
Siehe man cdda2wav, unter BUGS:
Cdda2wav currently cannot sample hidden audio tracks (track 1 index 0).
________________________________________________________________________
========================================================================
6. Audio-CDs brennen mit cdrdao
========================================================================
________________________________________________________________________
Audio CD brennen im DAO-Modus mit CD-Text: (Damit die Archivkopien nicht
nur identisch, sondern sogar schöner als die Vorlagen werden): ACHTUNG!
Es gibt CD-Brenner, die keinen CD-Text unterstützen! Folgende Anleitung
funktioniert einwandfrei auf meinem CD-Brenner am PC, nicht aber auf dem
Notebook (teures Markenprodukt mit billiger Hardware)! Mehr dazu siehe
weiter unten.
0) Bisher (< SuSE 9.3) habe ich immer mit (als root)
cdrecord --scanbus
die Laufwerk Adresse abgefragt. Doch ab SuSE 9.3 geht das nicht mehr.
cdrdao scanbus
gibt die nötigen Infos, nämlich: Cdrdao version 1.1.9 und
ATA:1,0,0 QSI , CDRW/DVD SBW-241, VH04
1) Quell-CD einlegen, nicht versuchen zu mounten, Inhalt auslesen:
cdrdao read-cd --device 0,0,0 cd.toc CD-Rom Laufwerk
cdrdao read-cd --device 0,1,0 cd.toc zusätzlicher Brenner
cdrdao read-cd --device ATAPI:0,0,0 cd.toc CD-Laufwerk Notebook
2) Danach kann noch bei vorhandener Internetverbindung eine CD-DatenBank
aufgerufen werden, um die Liedernamen in die Inhaltsdatei cd.toc ein-
zutragen
cdrdao read-cddb --device 0,0,0 --driver generic-mmc cd.toc
cdrdao read-cddb --device 0,1,0 cd.toc
cdrdao read-cddb --device ATAPI:0,0,0 cd.toc
Wenn die CD bereits von einem anderen Programm ausgelesen wurde, kann
das Inhaltsverzeichnis ausgelesen und generiert werden (oder von Hand
schreiben, siehe unten!).
cdrdao read-toc --device 0,0,0 --driver generic-mmc-raw cd.toc
cdrdao read-toc --device 0,1,0 cd.toc
cdrdao read-toc --device ATAPI:0,0,0 cd.toc
Soll diese schneller gehen, nützt die Option --fast-toc.
3) Falls CD aus irgend einem Grund nicht ausgelesen werden kann, in ein
anderes (altes) LW einlegen und erneut versuchen. Ich habe beispiels-
weise ein PD LW das besser liest als mein Brenner am PC! Andrerseits
liest der ansonsten lahme CD-Brenner eines Notebooks anstandslos CDs,
die vom PC gleich wieder ausgespuckt werden. Im äußersten Notfall hab
ich auch schon den Discman via optischem Kabel an die Soundkarte ge-
hängt und den Sound digital aufgenommen.
4) Allenfalls
cdrdao blank --device 0,1,0
eingeben wenn (zu Testzwecken) eine CD-RW verwendet wird.
5) Testen (fakultativ): Rohling in den Brenner einlegen!
cdrdao simulate --device 0,0,0 --speed 12 cd.toc
(danach Rohling auswerfen und wieder einlegen!) oder gleich:
6) cdrdao write --device 0,1,0 --speed 12 cd.toc
cdrdao write --device ATAPI:0,0,0 --speed 12 cd.toc
cdrdao write --device ATA:1,0,0 --speed 12 cd.toc
FERTIG!
Obligate Nebenbemerkung zu SuSE (9.2):
Gut, mit einer SuSE-Box sind natürlich wieder alle Rechte verkrüppelt
worden... auf einem Notebook kann ich nur als root brennen... auf dem
PC mit SCSI Karte kann ich nicht einmal als Root auf dem IDE-Brenner
brennen.
________________________________________________________________________
Dies mag etwas mühsam sein, insbesondere wenn die CD auch zwecks Kompri-
mierung ausgelesen werden soll. Mit RipIT ab Version 3.5 gibt es deshalb
die Optionen:
ripit --wav --cdtoc 1
damit einerseits die wav-Dateien nicht gelöscht werden, und andrerseits
eine cd.toc Datei erstellt wird. Danach kann sofort eine Kopie, wie oben
in Schritt 6 erklärt, angefertigt werden!
________________________________________________________________________
CD.TOC (table of contents) von Hand erstellen: WICHTIG: nach jedem Lied-
namen muß mindestens der Abspielbeginn angegeben werden, also wenigstens
eine Null (0) stehen. Siehe Erklärung weiter unten!
CD_DA
//22 Pistepirkko
//Rally of Love
//von Hand geschrieben 18.6.4
//CD Text:
CD_TEXT {LANGUAGE_MAP {0 : EN}
LANGUAGE 0 {TITLE "Rally of Love"
PERFORMER "22 Pistepirkko"
DISC_ID "ac0b5b0c"
}
}
//discid habe ich von der freecddb
//Track 01
TRACK AUDIO
TWO_CHANNEL_AUDIO
CD_TEXT {LANGUAGE 0 {TITLE "Quicksand"
PERFORMER "22 Pistepirkko"
}
}
FILE "teil01.wav" 0 03:27:25
// 03:28:00 ist zu lang, es müssen dann aber das nächste Lied um
// 75-25=50 frames verlängert werden!
//Track 02
TRACK AUDIO
TWO_CHANNEL_AUDIO
CD_TEXT {LANGUAGE 0 {TITLE "This Time"
PERFORMER "22 Pistepirkko"
}
}
FILE "teil01.wav" 03:27:25 04:09:15
//wegen oben 04:09:50 statt 04:09:00
//04:09:50 ist ganz wenig zu lang
usf. für alle weiteren Lieder!
Beachte: nach dem Dateinamen folgen 2 Zahlen: Beginn und Ende der Spiel-
dauer, die vom entsprechenden Lied gebrannt werden soll, und zwar in der
Darstellung mm:ss:ff wo ff=frames, der Unterteilung der Sekunde; es gilt
0<= frame <= 75! Die Kurzform (das ganze Lied soll gebrannt werden) wäre
dann:
FILE "lied03.wav" 0
________________________________________________________________________
So schaut eine Ausgabe aus, wenn CD-Text NICHT unterstützt wird:
me@notebook:~/> cdrdao write --device ATA:1,0,0 --speed 12 cd.toc
Cdrdao version 1.1.9 - (C) Andreas Mueller <andreas@daneb.de>
SCSI interface library - (C) Joerg Schilling
Paranoia DAE library - (C) Monty
Check http://cdrdao.sourceforge.net/drives.html#dt for current driver
tables.
Using libscg version 'schily-0.8'
ATA:1,0,0: QSI CDRW/DVD SBW-241 Rev: VH04
Using driver: Generic SCSI-3/MMC - Version 2.0 (options 0x0000)
Burning entire 79 mins disc.
Starting write at speed 4...
Pausing 10 seconds - hit CTRL-C to abort.
Process can be aborted with QUIT signal (usually CTRL-\).
WARNING: No super user permission to setup real time scheduling.
Turning BURN-Proof on
Executing power calibration...
Power calibration successful.
Writing track 01 (mode AUDIO/AUDIO )...
Wrote 44 of 44 MB (Buffers 100% 95%).
Wrote 19894 blocks. Buffer fill min 93%/max 100%.
Flushing cache...
Writing finished successfully.
Vor der Zeile "Writing track 01 (mode AUDIO/AUDIO )..." sollte die Mel-
dung "Writing CD-TEXT lead-in..." erscheinen, wenn das Laufwerk CD-TEXT
unterstützt. Hier ist es offensichtlich nicht der Fall.
________________________________________________________________________
Ist nun das CD-Laufwerk CD-Text kompatibel, dann haben wir u.U. noch das
Problem der Umlaute und Sonderzeichen zu lösen. Dieses ist nicht nur von
cdrdao abhängig, sondern auch von der entsprechenden Abspiel-Software!
Soviel vorweg: Weder auf einem ibook mit iTunes noch auch einer DOSE mit
dem Mediaplayer wird CD-Text gelesen bzw. angezeigt, egal ob der CD-Text
mit UTF-8 oder (irgend einem) ISO-8859-15 geschrieben wurde. Bei iTunes
wird irgend ein x-beliebiger CDDB-Eintrag aufgezwungen, beim Mediaplayer
kommt nichts. Es bleibt also nur noch Linux oder andere Hardware, z. B.
KsCD oder mein Discman D-NE1 von Sony.
Zuerst aber meine lokalen Einstellungen: ich benütze Systemweit
me@notebook:~> locale
LANG=en_US.UTF-8 .
Wenn ich dann ein solchermassen generiertes cd.toc mit cdrdao schreibe,
dann zeigt KsCD alle Sonderzeichen falsch ("double encoded") an, was auf
fehlende UTF-8 Kompatibilität hinweist. Deshalb Schauen wir doch schnell
mal, was für eine Version von KsCD gerade verwendet wird:
KsCD 1.5 (Using KDE 3.4.0 Level "b" SUSE 9.3)
Dabei stellt sich heraus, daß KsCD sehr wohl UTF-8 kompatibel ist:
Extras --> Configure KsCD --> CD Player: Allow encoding selection: UTF-8
dies aber nur für die "Music Information Services" gilt, was wohl leider
den CD-Text nicht einschließt. Da aber so gut wie keine HW UTF-8 CD-Text
lesen kann, ist es wohl besser, diesen in entweder in ISO-8859-1 anzuge-
ben und die Sonderzeichen oktal zu kodieren. Wenn ich eine cd.toc Datei
mit
cdrdao read-toc --fast-toc
generiere, dann bekomme ich beispielsweise
ß \337
ê \352
was ja nicht wirklich der oktalen codierung entstpricht, wie es mir der
Shellbefehl
showkey -a
ß 195 0303 0xc3
159 0237 0x9f
ê 195 0303 0xc3
170 0252 0xaa
weißmachen will. Was ist denn da der Unterschied?
Langer Rede kurzer Sinn: ich habe 2 Methoden herausgefunden, um Sonder-
zeichen im CD-Text zu verwenden, wenn das System mit UTF-8 arbeitet:
1) die Sonderzeichen gemäß ISO-8859-1 codieren, siehe dazu die
ISO-8859-1-Tabelle
2) die cd.toc Datei mit iconv nach ISO-8859-1 konvertieren:
iconv -f UTF-8 -t ISO-8859-1 cd.toc > ascii.toc
Wichtig ist dann, daß auch die Dateinamen der zu brennenden Lieder
keine Sonderzeichen haben, sonst findet cdrdao die Stücke nicht mehr.
Ich benütze Variante 1), da dies auch mit meinem Discamn geht.
________________________________________________________________________
========================================================================
7. Audio-CDs brennen mit cdrecord und k3b
========================================================================
________________________________________________________________________
Audio CD brennen mit K3B (vergiss K3B (Version 0.9.x), vergiß SuSE) (das
war vor langer Zeit) heute am 17.12.05, mit
me@notebook:~> k3b -v
Qt: 3.3.4
KDE: 3.4.0 Level "b"
K3b: 0.11.22cvs
stürzt k3b immer noch ab, wenn ich CD-Text schreiben will, und außerdem
kann k3b keinen globalen CD-Text schreiben, und wenn noch eine SCSI-card
im PC steckt, dann startet k3b erst gar nicht...
Obsolet:
0) Es geht darum, Audiotracks direkt vom CD-ROM Laufwerk via K3B auf CD
zu kopieren.
1) K3b starten und mit neuem Projekt beginnen, erst dann erscheint die
Fläche um mit Drag'n'Drop die Tracks hizuzufügen.
2) So geht das natürlich nicht! Mit rechter Maustaste (alle) Tracks
auswählen, mit rechter Maustaste auf Kopieren, dann Auslesen
bestätigen.
3) Logischerweise funktioniert auch jetzt immer noch nichts, d.h. die
Tracks können nicht per Drag'n'Drop verschoben werden. Aber sie
wurden ins Home kopiert. Von dort aus lassen sie sich nun per
Drag'n'Drop einfügen. Wechsle dazu aus dem zu lesenden CD-LW ins
Home-Verzeichnis.
4) Monate später hat K3B auch einen copy CD button eingeführt...
Ehrlich gesagt, ab Version 0.11.9 benütze ich es... eigentlich nie!
Mann, ist dieses Logo dämlich!
Neu mit Version 0.11.15 scheint es schon besser zu gehen, auch CD-Text
wird geschrieben (sofern das Laufwerk CD-Text unterstütz), leider aber
nicht global... und es ist total mühsam, da alles von Hand eingegeben
werden muß, auch dann, wenn die Daten von einer CDDB heruntergeladen
wurden...
F: kann mir jemand sagen, wo ich einstelle wie der CD-Text geschrieben
werden soll?
A: Bist du denn sicher, daß Dein Laufwerk CD-Text unterstützt? Siehe
mehr dazu weiter oben.
k3b funktionert soweit, zeigt aber immer noch ein komisches Verhalten,
z.B. die Geschwindigkeiten mit denen er brennt. Z.B. meine 4x-12x CD-RWs
werden anstandslos mit 12x geschrieben, hingegen meine 42x CD-Rs nur mit
8x... wie kann ich da etwas schneller Daten schreiben? Ich bleibe also
noch eine Weile bei Kommando-Zeilen!
________________________________________________________________________
Ohne Inhaltsverzeichnis, einfach die einzelnen Lieder (oder die ganze
Datei der Quell CD) brennen:
cdrecord -v -dao speed=12 dev=0,1,0 audio01.wav audio02.wav ...
cdrecord -v -dao speed=12 dev=0,1,0 data.wav
________________________________________________________________________
Da cdrecord weder Audio auslesen noch auf freedb.org zugreifen kann, muß
dies ein anderes Programm erledingen, z.B. cdda2wav (siehe man cdrecord)
To copy an audio CD in the most accurate way, first run
cdda2wav dev=2,0 -vall cddb=0 -B -Owav
and then run
cdrecord dev=2,0 -v -dao -useinfo -text *.wav
Dabei entsteht eine Daten (Sound) Datei data.bin, und eine Inhaltsdatei
cd.toc. Die Inhaltsdatei wird dann zum Brennen verwendet.
________________________________________________________________________
========================================================================
8. Mixed Mode und Multiseesion CDs brennen mit cdrecord
========================================================================
________________________________________________________________________
Mixed mode CD mit defekten Liedern
Wegen Fehlermeldung (k3b versagt natürlich ohne zu helfen...)
cdrecord: Bad audio track size 43131904 for track 01.
cdrecord: Audio tracks must be at least 705600 bytes and a multiple of
2352.
cdrecord: See -pad option.
verwende ich die -pad Option
Ein Daten Abbild (cdimage) wie unten beschrieben mit mkisofs erstellen:
mkisofs -v -l -J -o cdimage daten/
dann die CD brennen:
cdrecord -v dev=0,1,0 -audio -pad teil01.wav teil02.wav teil03.wav \
teil04.wav teil05.wav teil06.wav \
teil07.wav teil08.wav teil09.wav \
teil10.wav teil11.wav \
-data cdimage
siehe man cdrecord
________________________________________________________________________
Multi Session Audio CD brennen (vergiss k3b, vergiss SuSE):
(aber lese die HOWTOS unter /usr/share/doc/packages/cdrecord)
1) cdrecord -v speed=16 dev=0,1,0 -eject -multi -audio -pad teil01.wav \
teil02.wav teil03.wav teil04.wav teil05.wav teil06.wav \
teil07.wav teil08.wav teil09.wav teil10.wav teil11.wav
oder eventuell besser:
-> cdrdao write --device 0,1,0 --speed 12 --multi cd.toc
dazu muss aber das Inhaltsverzeichnis cd.toc mit dem haeder CD_ROM_XA
beginnen, wie im man cdrdao beschrieben!
2) cdrecord -msinfo dev=0,1,0
am besten wir speichern uns die ausgegebenen Werte gleich in eine
Variable:
NEXT_TRACK=`cdrecord -msinfo dev=0,1,0`
echo $NEXT_TRACK
3) mkisofs -R -o cdimage2 -C $NEXT_TRACK verzeichnis_mit_den_Daten/
4) cdrecord -v speed=16 dev=0,1,0 -eject -data cdimage2
Beachte: die 2. Session soll die letzte sein, deshalb keine Option -multi
mehr. Falls weiter Sessionen geplant sind, weiterhin -multi verwenden.
________________________________________________________________________
Einige Probleme:
1) Manchmal wird bei einer mixed-mode CD das letzte Audio Stück vor dem
zu lang Daten track zu lang gerippt, was READ ERRORS zur Folge hat:
Dann habe ich folgendermassen ausgelesen:
cdparanoia -d /dev/sr1 -14 data.wav
2) Leider bekomme ich am PC immer wieder Fehlermeldungen der Art
Msf::Msf(int, int, int): Assertion `frac >= 0 && frac < 75' failed.
Dann benütze ich halt ein altes CD-ROM Laufwerk um die CD auszulesen.
Oder aber, wenn kein altes Laufwerk vorhanden ist, geht bei mir immer
(siehe EXAMPLES im man cdda2wav!!!)
cdda2wav -dev=1,0 -v=all -cddb=0 -B -O=wav
Option -v=all (verbosity) all
Option -cddb=0 user CDDB Auswahl vorschlagen
Option -B (bulk) alles in einzeltracks
Option -O=wav output als wav
Manchmal ist das Auslesen sehr langsam, oder aber es geschieht nichts
(bei copy controlled cds), bis plötzlich Data ausgelesen wird. Geduld
ist angesagt!
Meldungen der Art
|
PQ sub-channel reading (audio track) is supported, data format is BCD
Raw P-W sub-channel reading (audio track) is supported.
Cooked R-W sub-channel reading (audio track) is supported.
Analyzing track 01 (AUDIO): start 00:00:00, length 04:28:24...
?: Input/output error. : scsi sendcmd: no error
CDB: BE 00 00 00 02 BE 00 00 1A F8 01 00
status: 0x2 (CHECK CONDITION)
Sense Bytes: 70 00 05 00 00 00 00 0A 00 00 00 00 64 00 00 00
Sense Key: 0x5 Illegal Request, Segment 0
Sense Code: 0x64 Qual 0x00 (illegal mode for this track) Fru 0x0
Sense flags: Blk 0 (not valid)
cmd finished after 7.542s timeout 20s
Found ISRC code.
Control nibbles of track match CD-TOC settings.
|
sind OK
________________________________________________________________________
========================================================================
9. Audio saugen
========================================================================
________________________________________________________________________
wget http://streamstation.radiocubik.com:8000/listen.pls -O tango-01.mp3
wget http://streamstation.radiocubik.com:8000 -O download-01.mp3
________________________________________________________________________
Natürlich kann das auch Kaffeine erledigen. Record klicken und Datei
speichern unter...
________________________________________________________________________
Am einfachsten ist da vielleicht doch streamripper:
streamripper http://streamstation.radiocubik.com:8000
________________________________________________________________________
Frage: wie komme ich an die Titel ran, die meistens mitgesendet werden?
Mailto ripit[æt]suwald[ðot]com
________________________________________________________________________
========================================================================
10. FreeCDDB
========================================================================
________________________________________________________________________
Fehlt bei einer AudioCD der Daten-Eintrag, kann er meistens manuell ein-
gegeben werden. Damit diese Arbeit auch der Allgemeinheit zu Gute kommt,
ist es sinnvoll, die Daten zu einer cddb zu schicken. Meistens haben die
GUIs (z.B. kscd) eine solche Funktion. Um aber klassisch per email einen
solchen Datbenbak-Eintrag zu schicken, habe ich viel gelesen + probiert.
Übrigens kann auch die neueste Version von RipIT ganz einfach CDDB Ein-
träge abschicken und vorhandene Einträge ändern!
Siehe www.suwald.com/ripit/ripit.html
Oder aber, sofern KDE verwendet wird, gleich mein resubmit Progamm ver-
wenden (www.suwald.com/risubmit/risubmit.html). Mit einem Klick auf den
Link zur Quelldatei in www.freedb.org, und schon wird aus Kmail eine
neue Nachricht erstellt, die leicht geändert und dann abgeschickt werden
kann.
1) Die FAQ von www.freedb.org und das HOWTO, welches ich unter Download,
Misc gefunden habe, lesen!
2) Dann das tool discid von ebenda herunterladen (Download, Misc), damit
die CD-ID, Frames der einzelnen Lieder und Total-Spielzeit berechnet
werden. Dazu habe ich das Paket entpackt:
tar xvvfz discid-linux-1.3.tar.gz
und nachher im neu entstandenen Verzeichnis Linux "installiert": dazu
habe ich mich als su angemeldet und
make
eingegeben (da ein Makefile vorhanden ist).
Dann habe ich die entstandene (ausführbare) Datei discid nach
cp discid /usr/bin
kopiert und mich mit
exit
wieder abgemeldet.
Jetzt kann ich als user discid aufrufen, und sofern sich eine AudioCD
im default Laufwerk befindet, werden ID, Frames und Spielzeit angege-
ben. Eine brauchbare Ausgabe erzeuge ich mir mittels sed:
discid | sed 's/ /\n\# /g'
Wichtig: die erste Zeile mit # gibt die Anzahl Tracks an und wird nicht
benötigt! Danach hat es soviele Frames wie Lieder, und zu letzt die Ge-
samt-Spielzeit. Das sieht dann z.B. folgendermassen aus:
3604f404 <-- DiscID
# 4 <-- Anzahl Tracks
# 183 <-- 1. Frame
# 26910 <-- 2. Frame
# 54705 <-- 3. Frame
# 74310 <-- 4. Frame
# 1270 <-- Gesamt-Spielzeit
Natürlich kann diese Info auch anders erhalten werden , z.B. mit
cdda2wav -v all -D /dev/cdrom -J -H 2>&1
3) Jetzt brauchen wir nur noch ein Mail an
test-submit@freedb.org
mit dem Betreff
cddb rock af112a0e
zu schicken. Dabei entspricht rock einer der gültigen Kategorien und
die 8 stellige hex-Zahl der DiscID.
Im Textfeld des mails steht dann beispielsweise
# xmcd CD database generated by RipIT
#
# Track frame offsets:
# 200
# 25287
# 53352
# 69510
# 90117
# 109912
# 129980
# 157327
# 181190
# 200935
# 225407
# 255885
# 282330
# 308545
#
# Disc length: 4396 seconds
#
# Revision: 0
# Submitted via: ripit 2.8
#
DISCID=af112a0e
DTITLE=Various / Virtual Moves I
DYEAR=
DGENRE=rock
TTITLE0=Front 303 - Analog Approach (1° degree version)
TTITLE1=Drax Ltd II - Amphetamine (Oscillator mix)
TTITLE2=Spirits - The zone (Crazy mix)
TTITLE3=Arcadia - Interstellar (Interstellar mix)
TTITLE4=Silent Breed - Method
TTITLE5=J. Bertoli - Moment of bass (Esco-B enjoy the mix)
TTITLE6=Orpheus - Ecstasy (Moderato mix)
TTITLE7=Drax Ltd II - Interior
TTITLE8=Inquisitor - Astrodöme (Too much mix)
TTITLE9=Strength to Strength - Logical solution (Division I)
TTITLE10=Blackbones - Paranoïa (Is it acid mix?)
TTITLE11=Profile X - No speed Limit (Transpave mix A)
TTITLE12=Arcadia - Interstellar (Moebius mix)
TTITLE13=Drax Ltd II - Amphetamine (J. Bertoli mix)
EXTD=Oscillator Records \n
EXTD=Distributed by NEWS/BMG
EXTT0=
EXTT1=
EXTT2=
EXTT3=
EXTT4=
EXTT5=
EXTT6=
EXTT7=
EXTT8=
EXTT9=
EXTT10=
EXTT11=
EXTT12=
EXTT13=
PLAYORDER=
Wichtig ist gleich viel EXT Felder wie TTITLE zu haben.
4) Wurde die Eingabe von freedb akzeptiert, kann sie definitiv mit glei-
cher Betreff Zeile an freedb-submit@freedb.org geschickt werden.
________________________________________________________________________
Auch mittels telnet kann mit der CDDB Kontakt aufgenommen werden:
> telnet freedb.freedb.org 8880
Trying 130.179.31.49...
telnet: connect to address 130.179.31.49: Connection refused
Trying 193.166.235.14...
Connected to freedb.freedb.org.
Escape character is '^]'.
201 kivi CDDBP server v1.5PL2 ready at Sat Dec 04 03:33:41 2004
> cddb hello felix.suwald gmail.com ripit 2.8
> cddb query 3604f404 4 183 26910 54705 74310 1270
> cddb cddb read misc 3604f404
> help
> quit
________________________________________________________________________
Woher kommen eigentlich die ID3 Genres?
http://www.id3.org/faq.html:
Q: Could you add the genre X to the genre list?
A: No. The ID3v1 genre list is obsolete and inconsistent and was no good
to begin with. All genres above 79 has been added by Nullsoft and is
not really part of the "ID3v1 standard", if such thing existed.
F: Wie kann ich selber welche definieren?
A: Da würde ich vorschlagen, die Quelldateien Deines Encoders zu hacken.
Bei Lame habe ich z.B. mit
grep -r -i ambient *
die Datei
libmp3lame/id3tag.c
gefunden. Ich denke, da ließe sich was machen. Gesagt getan: Ich füge
der Datei meinen Namen und eine neue Versionsnummer hinzu, sowie bei
den Namen "Wave" und weiter unten die Zahl 148.
Neu kompiliert, und schon kennt lame den genre Wave!
F: Das genügt aber nicht!
A: Natürlich nicht, jetzt müßte noch id3lib etc. gehackt werden...
________________________________________________________________________
========================================================================
11. Audio-Dateien editieren
========================================================================
________________________________________________________________________
Wenn ich auf dem Notebook audacity starte, dann ist natürlich mal wieder
der Sound weg. Schade, aber nach kurzer Suche finde ich den Tipp: sarte
me@notebook:~/documents/sound/voice> artsdsp audacity &
und schon klappt es wieder mit dem Sound. Was mir im ersten Moment nicht
so gefällt, ist, daß während dem Abspielen der Cursor nicht mitwandert.
Desweiteren bin ich darüber gestolpert, daß die Export-Eigenschaften zum
Speichern von wav's nicht automatisch übernommen werden, sondern in den
Preferneces eingestellt werden müssen! Meine Aufnahmen sind also alles:
me@notebook:~/documents/sound/voice> file rec2.wav
rec2.wav: RIFF (little-endian) data, WAVE audio, IMA ADPCM, mono 8000 Hz
und wenn die einfach so exportiert werden, dann sind sie um einen Faktor
5 größer, da es von 4-bit(?) IMA ADPCM zu 32-bit float umgewandelt wird.
Wenn ich das in den Preferences Umstelle, ist alles OK.
Nur: was ist, wenn ich in ein paar Jahren wieder normale wavs bearbeite?
________________________________________________________________________
Um bei mp3-Dateien Passagen wegzuschneiden, verwende ich mp3cut:
~> mp3cut infile outfile -s 1860 -e 1900
hier wird das Ende ab der 186 Sekunde bis zur 190 Sekunde abgeschnitten.
Da ich häufig nur am Anfang einer mit Streamripper heruntergeladenen mp3
Datei einige Sekunden wegschneiden will, habe ich mir für KDE ein Servi-
ce-Menu erstellt, so daß ich mit dem Kontextmenü diese Aktion ausführen
kann:
--------------------------------bof-------------------------------------
[Desktop Action cut_mp3s]
Exec=mp3cut %f %f_cut.mp3 -s 0 -e `kdialog --title "Input dialog" --inputbox "Enter time in tenths of seconds to cut" "10"`
Name[de]=mp3 abschneiden
Name=cut start mp3
Icon=editcut
[Desktop Entry]
Actions=cut_mp3s
ServiceTypes=audio/x-mp3
--------------------------------eof-------------------------------------
Schreibe folgende Zeilen in eine Datei und kopiere sie nach
~/.kde/share/apps/konqueror/servicemenus/
oder ähnlich (je nach Distribution/Installation).
________________________________________________________________________