Beim einen oder anderen noch nicht vollends vom digitalen Zeitalter erfassten Leser steht vielleicht ein Plattenspieler oder gar ein Grammophon herum. Tonträger auf solchen Geräten abzuspielen hat zwar etwas Nostalgisches, aber die Schellack- oder Vinylscheiben werden dadurch nicht besser.
Was liegt also näher, als die guten Stücke mit Rechnerunterstützung zu digitalisieren und dabei ein wenig Knackser zu entfernen? Das unter der GPL stehende GramoFile wurde von Anne Bezemer genau für diesen Zweck geschrieben.
Vor der Aufnahme
Für die Installation von GramoFile ist nicht viel erforderlich:
- der GNU-C-Compiler (gcc),
- make und
- die ncurses–Bibliothek mit den zugehörigen Header-Dateien.
Jetzt ist es Zeit für den Download des GramoFile-Quelltextarchivs von http://panic.et.tudelft.nl/~costar/gramofile/. Zur Übersetzung des Programms sind folgende Schritte nötig:
tar xzf gramofile-1.6.tar.gz cd gramofile-1.6 make strip gramofile bplay_gramo chmod 755 gramofile bplay_gramo su (root-Passwort eingeben) cp gramofile bplay_gramo brec_gramo /usr/local/bin exit
Ton ab
In einem xterm oder einem anderen Terminalemulator geben Sie nun den Befehl gramofile ein. Nach einem kurz eingeblendeten Startlogo sollte uns das Programm mit dem Hauptmenü begrüßen (Abbildung 1). Mit den Cursortasten und der Tabulatortaste springen Sie zwischen den Menüpunkten hin und her. Return wählt einen Menüeintrag aus.
Bevor etwas mit GramoFile aufgenommen wird, sollten Sie die Mixereinstellungen der Soundkarte ansehen und dafür sorgen, dass genug Plattenplatz für die Aufnahme bereit steht. Pro Minute werden immerhin knapp 10 MByte gebraucht. Bei der Auswahl 1. Record audio to a sound file will das Programm zunächst den Namen der neuen Audiodatei wissen (Abbildung 2).
Wie schließe ich den Plattenspieler an den Rechner an?
In den meisten Fällen kann man den Ausgang des Plattenspielers nicht direkt mit dem Eingang der Soundkarte verbinden, weil das Ausgangssignal zuvor entzerrt werden muss. Ein Entzerrer-Vorverstärker oder notfalls der Line-Out-Ausgang des Verstärkers, an dem der Plattenspieler angeschlossen ist, sollte hier zum Einsatz kommen. Als Eingang der Soundkarte verwendet man am besten Line-In.
Die Aufnahme läuft so lange, bis Sie Return drücken. Sie können ruhig eine ganze Plattenseite mit mehreren Musikstücken aufnehmen, da GramoFile über eine sehr zuverlässig arbeitende Funktion zum Auffinden der Pausen verfügt (Track location). Genau diese Funktion werden wir als Nächstes benutzen.
Hack es klein!
Aus dem Hauptmenü wählen Sie jetzt 3. Locate tracks. Nach der obligatorischen Dateiauswahl geht es mit einigen Konfigurationsdaten weiter (Abbildung 3). Hier sind bereits sinnvolle Voreinstellungen getroffen. In die sogenannte RMS-(“Root Mean Square”-)Datei werden die gewichteten Mittelwerte eines Blocks (4410 Werte) geschrieben. Diese Information wird von GramoFile für die meisten Funktionen benötigt und sollte daher auf jeden Fall erzeugt werden.

Track location«” width=”300″ height=”211″ />
Abbildung 3: Pausen finden mitDer Vorgang kann eine Weile dauern, dann verkündet GramoFile stolz, wieviele Tracks es gefunden hat (Abbildung 4), und speichert die Fundstellen in eine Textdatei mit der Endung .tracks. Die genaue Arbeitsweise der Funktion können Sie in der Datei Tracksplit2.txt nachlesen.

Abbildung 4: Drei Stücke gefunden
Zu diesem Zeitpunkt wurde die Audiodatei noch nicht zerlegt. Es existieren lediglich die Positionen in der .tracks-Datei, die Sie, wenn nötig, auch noch mit einem Texteditor “feintunen” können. Als Basisname der .tracks-Datei wird der in der Dateiauswahl eingegebene verwendet. Einen Ausschnitt aus einer Beispieldatei zeigt Listing 1.
Listing 1
Ausschnitt aus einer .tracks-Datei
Number_of_tracks=3 # Track 1 - blocks 8 to 2514 - length: 0:04:10.700 Track01start=0:00:00.800 Track01end=0:04:11.500 # Track 2 - blocks 2535 to 4187 - length: 0:02:45.300 Track02start=0:04:13.500 Track02end=0:06:58.800 # Track 3 - blocks 4212 to 6218 - length: 0:03:20.700 Track03start=0:07:01.200 Track03end=0:10:21.900
Raus mit den Knacksern
Jetzt können wir in einem Arbeitsgang die Audiodatei in einzelne Stücke unterteilen und dabei “entknacksen”. Dazu bietet GramoFile verschiedene Filter an, die sich hinter dem Menüpunkt 4. Process the audio signal verbergen. Die Funktion Split tracks sollte immer angekreuzt sein (Abbildung 5), es sei denn, die aufgenommene LP- oder Single-Seite besteht ohnehin nur aus einem Stück.
Links finden Sie alle verfügbaren Filter. Mit den Cursortasten werden sie markiert und mit Return in die Auswahl auf der rechten Seite übernommen. Der voreingestellte Conditional Median Filter II ist in den meisten Situationen die beste Wahl.
Wollen Sie stattdessen die Aufnahme nur in einzelne Stücke zerteilen, aber das Signal ansonsten unverändert lassen, wählen Sie den Filter Copy Only. Zu den meisten Filtern existieren noch weitere Parametereinstellungen, die Sie mit Return auf einem bereits gewählten Filter erreichen. Für die Experimentierfreudigen gibt es einen Filter, der sich – mit ausreichend C-Kenntnissen – selbst programmieren lässt (Experimenting Filter).
Noch nicht implementiert
Im Hauptmenü fällt auf, dass die Punkte 2. Copy sound from an audio CD to a file und 5. Write an audio CD noch keine Funktion haben. Aber GramoFile wäre nicht Open-Source-Software, wenn sich nicht in absehbarer Zeit ein fleißiger Entwickler darum kümmern und die Tools cdparanoia und cdrecord einbinden würde. Denn was als Studienarbeit begann, muss mit Version 1.6 nicht enden…
Glossar
-
digitalisieren
-
Ein kontinuierliches analoges Signal in aufeinander folgende digitale Werte umwandeln. Bei Rechnern übernimmt der Analog/Digitalwandler auf der Soundkarte diese Aufgabe.
-
GPL
-
Die GNU General Public License. Eine Softwarelizenz, die es erlaubt, das Programm weiterzugeben unter der Voraussetzung, dass der Quelltext dabei immer erhältlich bleibt. Ebenfalls erlaubt und ausdrücklich erwünscht ist es, eigene Verbesserungen an der Software vorzunehmen und wieder zu veröffentlichen. Linux selbst steht ebenfalls unter der GPL.
-
make
-
Programm zur Ablaufsteuerung beim Übersetzen von Quelltexten. Die Konfigurationsdatei von make (das Makefile) enthält dabei beispielsweise Informationen über Abhängigkeiten zwischen den einzelnen Programmmodulen.
-
Bibliothek
-
Dateien, die eine Sammlung nützlicher C-Funktionen für bestimmte Zwecke enthalten. So gibt es etwa die libm, die mathematische Funktionen bereit stellt, oder die libncurses, die Funktionen zur terminalabhängigen Textausgabe realisiert. Oft werden Bibliotheken von mehreren Programmen gemeinsam (“shared”) genutzt.
-
Header-Dateien
-
In Header-Dateien (auch Include-Dateien genannt) sind die in einer Bibliothek verfügbaren Funktionen nebst Parametern aufgelistet. Der C-Compiler braucht diese Information beim Übersetzen eines Programms. Bei den gängigen Distributionen hat ein Header-Paket zu einer Bibliothek üblicherweise den Zusatz dev oder devel im Namen.
-
Quelltext
-
Die für Menschen lesbare Form einer Software. Durch das Übersetzen (“Kompilieren”) mit einem Compiler wird daraus ein ausführbares Programm.








