Kurzanleitungen/Howtos

Lautstärke von MP3s automatisch anpassen

20.10.2018

Lautsprecher

Möchte man die Lautstärke von vielen Audiodateien anpassen, geben die folgenden Skripte Hinweise, wie Sie dies automatisieren können. Die Gesamtlautstärke zu verringern ist hierbei noch trivial. Komplizierter wird es, wenn nur ein Kanal eines Joint Stereo-MP3s abgesenkt oder die Stereodifferenz und der Dynamikumfang verringert werden sollen.
Für alle Skripte gilt, daß die Änderungen auf alle MP3-Dateien in allen Unterverzeichnissen angewendet und die Originaldateien überschrieben werden. Zudem sorgen Statusdateien dafür, daß – auch bei mehrmaligem Ausführen der Skripte – die Änderungen nur jeweils einmalig angewendet werden.

Gesamtlautstärke verringern

Das Skript leiser.sh verringert die Gesamtlautstärke mittels MP3Gain:

#!/bin/bash
find "`pwd`" -type d | while read dir
do
  cd "$dir"

  if [ -f 'leiser.done' ]
  then
    continue
  fi

  mp3gain -g -6 *.mp3
  touch 'leiser.done'
done

Lautstärke von rechtem Kanal auf 25% verringern

rechtsLeiser.sh verringert die Lautstärke des rechten Kanals auf 25% mittels sox:

#!/bin/bash

find "`pwd`" -type d | while read dir
do
  cd "$dir"

  if [ -f 'rechtsLeiser.done' ]
  then
    continue
  fi

  ls *.mp3 | while read in
  do

    mpg123 -w "/tmp/infile.wav" "$in"

    # Stereo-Kanäle in zwei Mono-Spuren exportieren
    sox /tmp/infile.wav /tmp/outfile.l.wav remix 1
    sox /tmp/infile.wav /tmp/outfile.r.wav remix 2

    # Rechten Kanal leiser machen
    sox -v 0.25 /tmp/outfile.r.wav /tmp/outfile.r2.wav
    mv /tmp/outfile.r2.wav /tmp/outfile.r.wav

    # Mono-Spuren zu Stereo-Datei zusammenfügen
    sox -M /tmp/outfile.l.wav /tmp/outfile.r.wav /tmp/output.wav

    # Neu komprimieren
    lame -V 2 /tmp/output.wav "$in"

    rm /tmp/outfile.l.wav /tmp/outfile.r.wav /tmp/infile.wav /tmp/output.wav
  done

  touch 'rechtsLeiser.done'
done

Stereoabstand und Dynamikumfang verringern

stereoVerringern.sh verringert Dynamikumfang und Stereoabstand: Hiermit werden leise Abschnitte lauter und laute Abschnitte leiser und die Unterschiede zwischen linken und rechten Kanal verringert.

#!/bin/bash

find "`pwd`" -type d | while read dir
do
  cd "$dir"

  if [ -f 'stereoVerringern.done' ]
  then
    continue
  fi

  ls *.mp3 | while read in
  do

    mpg123 -w "/tmp/infile.wav" "$in"

    # Stereo-Kanäle in zwei Mono-Spuren exportieren
    sox "/tmp/infile.wav" /tmp/outfile.l.wav remix 1
    sox "/tmp/infile.wav" /tmp/outfile.r.wav remix 2

    # Beide Kanäle zu mono mischen => Mitte
    sox /tmp/infile.wav /tmp/outfile.m.wav remix 1,2

    # Kompressor anwenden
    sox /tmp/outfile.m.wav /tmp/outfile.m2.wav compand 0.3,1 6:-70,-60,-20 -5 -90 0.2

    # auf 75% Lautstärke bringen
    sox -v 0.75 /tmp/outfile.m2.wav /tmp/outfile.mleise.wav

    # Linke-Mono-Datei mit Mitte zu Mono mischen
    sox -m /tmp/outfile.l.wav /tmp/outfile.mleise.wav /tmp/outfile.l2.wav
    # Rechte-Mono-Datei mit Mitte zu Mono mischen
    sox -m /tmp/outfile.r.wav /tmp/outfile.mleise.wav /tmp/outfile.r2.wav

    # Mono-Spuren zu Stereo-Datei zusammenfügen
    sox -M /tmp/outfile.l2.wav /tmp/outfile.r2.wav /tmp/output.wav

    # Neu komprimieren
    lame -V 2 /tmp/output.wav "$in"

    rm /tmp/outfile.l2.wav /tmp/outfile.mleise.wav /tmp/outfile.r2.wav /tmp/outfile.wav\
    /tmp/outfile.l.wav /tmp/outfile.m.wav /tmp/outfile.m2.wav /tmp/outfile.r.wav /tmp/output.wav
  done

  touch 'stereoVerringern.done'
done

Achtung! Achtung! Die folgenden Anweisungen richten sich ausschließlich an fachkundige Personen. Bei jedem Schritt kann es zum kompletten Datenverlust kommen. Alle Angaben ohne Gewähr! Die Anweisungen, Skripte, etc. sind ausschließlich für Lernzwecke auf Lernsystemen und nicht für Produktivumgebungen bestimmt!