original in nl Philip de Groot
nl to en Philip de Groot
en to de Katja Socher
Bald bekommt er seinen Doktor von der Universit�t Nijmegen in Chemometrie. Er arbeitet gern mit Linux und schreibt regelm��ig seine Erfahrungen auf.
Einf�hrungNormalerweise ist es unm�glich, wave-sound direkt in Echtzeit in mp3-sound umzuwandeln. Die Prozedur, der man folgen sollte, ist:
Eine wave-Datei schnell aufzunehmen, verbraucht eine ganze Menge Plattenplatz (100MB f�r 10 Minutens Stereomusik in CD-Qualit�t). Dies beschr�nkt die Speicherkapazit�t f�r Musik, die in diesem Format aufgenommen wurde. Ein mp3-encoder ist in der Lage, eine wave-Datei von 100 MB auf 10 MB in der Standard mp3-Qualit�t (128 kbps, Stereo) umzuwandeln. Diese Eigenschaft erm�glicht das digitale Aufnehmen von Musik f�r 24 Stunden ohne Unterbrechung! 24 Stunden sind 60*24 = 1440 Minuten, die nur 1,4 GB (1440 MB) Festplattenplatz brauchen!!! Ich habe dieses Feature benutzt, um die 80er Top 300 aufzunehmen, �bertragen von Loostad radio (einige englische Seiten sind ebenfalls verf�gbar). Die Aufnahme wurde nur einmal unterbrochen, das mp3-Aufnahmeprogramm h�lt automatisch nach 24 Stunden an und dies war nicht dokumentiert..., die Aufnahme war sehr gut! Ich werde dir zeigen, was f�r Software ich benutzt habe und alternative Wege erkl�ren, wie man Echtzeit mp3-Aufnahmen machen kann. Ich habe die benutzte Software f�r diesen Artikel auch auf einer Seite verf�gbar gemacht (Links sind weiter unten im Artikel). |
'Mpegrec' macht dasselbe wie 'sox | lame', aber verschiedene Einstellungen sind schon definiert. Der Benutzer braucht sonst nichts weiter. Installiere einfach 'Lame'! Ich rate dir, 'mpegrec' zu benutzen. Behalte jedoch im Ged�chtnis, da� dieses Programm nach 24 Stunden aufh�rt!!! Dar�berhinaus f�hrt ein �rgerlicher casting-Fehler zu fehlerhaften Aufnahmezeiten: die Aufnahmezeit, die vom Benutzer angegeben wird, wird nicht korrekt benutzt. In den meisten F�llen ist sie viel k�rzer!
-b | Benutzt 128 kbps als die mp3 Bitrate. Der Standardwert in 'mpegrec' ist 192, was ein seltsamer (und viel zu hoher) Wert ist. Fast alle mp3-Dateien haben eine konstante Bitrate von 128 kbps. |
-o | Name der Ausgabedatei. In diesem Beispiel: ./test.mp3. Wenn keine Ausgabedatei definiert ist, wird alles zum Standardoutput ('stdout') geschickt. Normalerweise ist das der xterm, in dem das Programm ausgef�hrt wurde. Der gesamte mp3-Code wird auf deinen Bildschirm geplottet, statt in einer Datei gespeichert zu werden... |
Achtung:
Pa� bitte auf, da� deine Mixereinstellungen richtig eingestellt sind. Wenn
nicht, wird nichts aufgenommen! Die richtige Aufnahmequelle mu� ausgew�hlt sein
und die entsprechenden Lautst�rkeregler sollten auf ihren h�chsten Einstellungen
stehen.
sox | Das Aufnahmeprogramm: Sound wird aufgenommen durch Benutzen von 'line-in' der Soundkarte. |
-t ossdsp | Die Soundeingabe stammt urspr�nglich von den OSS Soundtreibern. Diese Treiber sind im Linuxkernel enthalten, wenn der Standardsoundsupport enthalten ist. |
-w | Der Samplebittyp ist ein 16 bit langes Wort (wenn du das nicht verstehst, mach dir nichts daraus, es ist nicht wichtig). |
-s | Die 'sample data' ist 'signed linear' (wenn du das nicht verstehst, mach dir nichts daraus, es ist nicht wichtig). |
-r 44100 | Die Samplingfrequenz ist 44100 Hz (CD-Qualit�t). |
-c 2 | Aufnahme von 2 Kan�len (stereo). |
/dev/dsp | Dies ist das sound-sampling device: das Linux-device, das die Aufnahmedaten liefert. Auf alle devices, ports, Platten, usw. wird �ber das '/dev'-Verzeichnis zugegriffen. Auf den wave-stream wird unter Linux �ber '/dev/dsp' zugegriffen. Es ist eine Tatsache, da� es sogar m�glich ist, deine Sounddatei durch Benutzen des folgenden Befehls zu erhalten: 'cat /dev/dsp >test.wav' (arbeitet nur, wenn die Mixereinstellungen richtig sind!!!). |
-t raw | Die Ausgabe sind 'rohe' Daten (unver�ndert, direkt von der Soundkarte). |
- | Benutzt die Standardausgabe, symbolisiert durch '-' |
lame | Das Enkodierprogramm: der aufgenommene Sound wird zu 'lame' gepiped (weitergeleitet) f�r die mp3 Umwandlung. |
-x | 'Force byte-swapping of input'. Ich kenne die genaue Funktion dieser Option nicht, aber ohne sie l�uft die Prozedur einfach nicht (bevor ich es herausfand!). |
-m s | Enkodiert eine mp3-Datei als Stereo. Der Standard, 'lame' enkodiert es als 'joint-stereo': nur die UNTERSCHIEDE zwischen beiden Soundkan�len werden enkodiert. Als Ergebnis erh�lt man eine h�here Kompression, aber die mp3-Qualit�t ist schlechter. |
- | Die Eingabe ist 'stdin'. Dies ist f�r das laufende Beispiel korrekt. |
./test.mp3 | Der Name der endg�ltigen mp3-Datei. |
Abbildung 1 zeigt, da� das Mikrofon die momentane Aufnahmequelle ist. F�r
unseren Zweck wird eine externe Quelle an den Computer angeschlossen, die den
'line-in' Konnector als Soundkarte benutzt. Die Aufnahmequelle sollte
'line-in' sein. Wenn der Mauszeiger auf dem line-in Kanal des KDE-Mixers
positioniert wird, f�hrt ein rechter Mausklick zu dem Men�, das in Abb. 2
gezeigt wird:
Nat�rlich wird 'RecSource' gew�hlt, um 'line-in' der Soundkarte als die Aufnahmequelle zu w�hlen. Benutz dieselbe Prozedur, um das Mikrofon als Aufnahmequelle abzustellen: du m�chtest den zus�tzlichen L�rm nicht haben!
Abb. 3: Der KDE-mixer ist richtig eingestellt.
Die Bemerkungen oben zeigen an, da� Aufnahmen am besten erhalten werden, wenn
keine grafische Umgebung vorhanden ist. Das hei�t, da� die Bash-shell benutzt
werden sollte (eine textbasierte Shell). Diese Methode hat einige Konsequenzen:
Diese zwei Probleme k�nnen ganz leicht gel�st werden. Das erste Problem,
Soundunterst�tzung, wird wie folgt gel�st:
'modprobe -k sb'
Dieser Befehl l�dt das Modul 'sb', das meine Soundkarte installiert (eine SoundBlaster AWE 64). Wenn du nicht wei�t, welches Modul installiert werden mu�, siehe in deinen '/etc/conf.modules' (SuSE) oder '/etc/modules.conf' (abh�ngig von deiner Distribution) nach. F�r mich ist der Soundkartenteil folgenderma�en:
Das zweite Problem ist das Ausw�hlen von 'line-in' auf deiner Soundkarte mit
einem textbasierten Mixerprogramm. Ich benutze das 'aumix' Programm. Wenn in der
Bash der Befehl 'aumix' ausgef�hrt wird, startet der Mixer im interaktiven Mode.
In diesem Mode k�nnen Einstellungen auf einen Blick �berpr�ft und ver�ndert
werden, siehe Abb.4.
Du kannst die verschiedenen Aufnahmequellen mit den Pfeiltasten ausw�hlen. Die '<' or '>' Tasten w�hlen die Lautst�rke (links) oder die Balance (rechts). Die '+' und '-' Tasten erh�hen oder veringern die Lautst�rke der momentan ausgew�hlten Quelle. 'm' mutes oder unmutes die momentane Quelle. Wenn die momentane Quelle als Aufnahmequelle ausgew�hlt ist, wird ein rotes 'R' auf der linken Seite dieser Lautst�rkequelle angezeigt. Wenn die Quelle nur f�r die Wiedergabe benutzt werden kann, wird ein gr�nes 'P' angezeigt. Dr�cken von 's' speichert die aktuellen Einstellungen in '~/.aumixrc'. Diese Einstellungen werden sehr leicht beim n�chsten Start mit dem Befehl: 'aumix -l' aktiviert.
Um die obige Prozedur zu automatisieren, habe ich ein kleines Skript geschrieben:
'./mrec test.mp3'. Dieses Skript enth�lt die folgenden Zeilen:
#!/bin/sh if [ -z "$1" ]; then echo "Usage: mrec mp3-output-file" exit 0 fi modprobe -k sb aumix -l mpegrec -b 128 -o "$1"
Die 'lame'-Dateien und Installationstipps kann man hier finden.
Die Zeilen, die kein '#' haben, sollten jetzt eines bekommen. Du mu�t diese Extraoptionen nicht benutzen!
mv /usr/sbin/cron /usr/sbin/cron.backup
Es ist wahrscheinlich, da� der Ort von 'cron' sich f�r andere Linuxdistributionen unterscheidet. Du kannst den Ort von 'cron' mit dem folgenden Befehl finden:
which cron
Bitte �berpr�fe, ob 'cron' f�r andere Aufgaben gebraucht wird. Auf einem Desktoplinuxrechner sollte dies kein Problem sein.