Audio Manipulation

index AudioProcessingAudioManipulation

Die meisten Sound-Bearbeitungsprogramme gestatten die Anwendung von Effekten auf die bearbeitete Sounddatei. Von besonderer Wichtigkeit ist aber unter Linux die LADSPA (Linux Audio Developers' Simple Plugin API), welche eine Architektur und Sammlung von Effekt-Modulen (plugins) darstellt.

Ein Problem bei der massenhaften Nachbearbeitung von Schallplatten- oder Tonbandaufnahmen ist hier aber, daß die benutzten Effekte jedesmal neu eingestellt werden müssen... Eine Ausnahme ist glame, welches allerdings bei mir immer abstürzt, wenn man versucht, ein frisch angelegtes Filternetzwerk zu speichern bzw. zu registrieren. Warum, kann ich nicht sagen. Aber als schnelle Alternative bot sich mir ecasound an:

„automatische Nachbearbeitung“

ecasound -- Effekte anwenden

ecasound -i:test.wav -o:alsa,default \
-el:mbeq,10,6,3,0,0,0,2,4,6,8,10,10,10,5,0 -el:amp_stereo,6

Dieser Befehl spielt gibt die Datei test.wav (-i:) unter Verwendung der ladspa-Filter mbeq (multiband equalizer) und amp_stereo (stereo amplifier -- Lautstärkeregulierung) ab -- als Ausgabegerät wurde mit -o:alsa,default das Standard Alsa-Gerät angegeben. Die Zahlen nach mbeq und amp_stereo sind die Filterparameter und bedeuten in diesen Fällen die Einstellungen der einzelnen Frequenzbänder bzw. der Lautstärke.

Sollen die eingestellten Effekte nun in einer neuen Datei abgelegt werden (bspw. zwecks Konservierung auf einem optischen Tonträger oder so), dann wird statt -o:alsa,default der gewünschte Dateiname angegeben:

ecasound -i:test.wav -o:test1.wav \
-el:mbeq,10,6,3,0,0,0,2,4,6,8,10,10,10,5,0 -el:amp_stereo,6

Statt die Lautstärke mit dem "amplifier" zu regeln, könnte man auch das Kommando ecanormalize (siehe man ecatools) verwenden, zumindest solange man keine Knackser in der Aufnahme hat, die das Maximum des Signals verfälschen und somit verursachen, daß das eigentliche Geräusch weiter zu leise bleibt...

ecasound: Presets

Um die Kommandozeile zu verkürzen, und um sich die Parameter nicht jedesmal merken zu müssen, legt man Voreinstellungsdateien an (preset-Dateien), welche typischerweise die Endung .ecp besitzen. Z.B.:

$ cat kahler.ecp 
# ecasound preset for manipulation of speech files
kahler = -el:mbeq,10,6,3,0,0,0,2,4,6,8,10,10,10,5,0 \
         -el:amp_stereo,5

Der so definierte Vorlage-Effekt wird nun mit bspw. wie folgt aufgerufen:

# Ausgabe über alsa-Gerät (Soundkarte, Standardkanal)
ecasound -i:test.wav -o:alsa,default -pf:kahler.ecp
# Ausgabe in Ausgabedatei test3.wav
ecasound -i:test.wav -o:test3.wav -pf:kahler.ecp
<example>

Damit läßt sich dann beispielsweise der folgende Einzeiler zur
Verwandlung aller Dateien mit Namensmuster xy.wav &Rarr; xy.new.wav
ausführen:

<example>
$ for F in [01][0-9].wav; do G=`echo $F | sed 's/\.wav/.new.wav/'`; \
ecasound -i:$F -o:$G -pf:kahler.ecp; done