Lautstärkenanpassung von MP3-Dateien

Wer seine MP3-Sammlung auf ein einheitliches Lautstärke-Niveau bringen möchte, der muss dafür zuerst das Paket mp3gain via

su -c'yum install mp3gain'

aus dem rpmfusion Repository installieren. Mp3gain ist ein sehr mächtiges Werkzeug, um die Lautstärke von MP3-Dateien anzupassen.

Anschließend kann mit dem folgenden Shell-Skript bequem die Lautstärke aller MP3-Dateien auf ein einheitliches Niveau gebracht werden:

#!/bin/bash

OLDIFS=$IFS
IFS=$'\n'
MP3DIR="/home/heiko/Musik/Charts"
GAIN=$(which mp3gain)

# check if mp3gain is installed
if [ "$GAIN" == "" ]
then
  echo "mp3gain not installed";
  exit -1;
fi

rm -f "$MP3DIR"/gain.log
touch "$MP3DIR"/gain.log

for mp3 in $(find "$MP3DIR" -name *mp3);
  do "$GAIN" -c -r -k -d 2 "$mp3"|grep Applying >> "$MP3DIR"/gain.log;
done;

cat "$MP3DIR"/gain.log;

IFS=$OLDIFS

Damit das Skript einwandfrei ausgeführt werden kann, muss vor dem ersten Start der Wert der  Variable MP3DIR angepasst werden.

Der Vorteil dieses Skriptes ist, das man nicht mit unzählen „nix zu tun“ Meldungen bombadiert wird, sondern nur die Dateien aufgelistet bekommt, bei denen tatsächlich die Lautstärke angepasst wurde und das diese Information bis zum nächsten Ausführen des Skriptes vorhanden ist.

Von Heiko

Gründer, Admin und Hauptautor von Fedora-Blog.de. Benutzt Fedora seit Core 4, hat nach Core 6 aber bis zum Release von Fedora 12 einen Abstecher zu CentOS gemacht, ist inzwischen aber wieder zu Fedora zurückgekehrt und plant auch nicht, daran in naher Zukunft etwas zu ändern.

11 Kommentare

  1. tausend dank für das script! bei mir funktioniert daß nur leider nicht… wenn ich das ganze in eine datei kopier und mit chmod a+x ausführbar gemacht habe dann kommen keine neuen ausgaben. das mp3dir ist angepasst und mp3gain auch installiert. was fehlt bei mir? schön wäre es wenn mir hier jemand weiterhelfen könnte! 🙂

  2. Alternativ ändere mal die Zeile

    do mp3gain -c -r -k -d 2 „$mp3″|grep Applying >> „$MP3DIR“/gain.log;

    in

    do mp3gain -c -r -k -d 2 „$mp3“;

    und schau, ob dann irgendwelche Ausgaben kommen

  3. danke für die schnelle antwort! in der gain.log-datei steht nichts. hab schon versucht die zeile abzuändern wie vorgeschlagen – nur der gleiche effekt (ein paar sekunden nichts, dann wartet die bash wieder auf einen neuen befehl) hoffe wir kommen noch zu einer lösung! 🙂

  4. Geb mal in der Shell

    find „$MP3DIR“ -name *mp3

    ein und ersetze vorher „$MP3DIR“ durch den Pfad Deines MP3-Verzeichnisses

  5. hallo! danke abermals für deine schnelle antwort! ich hoffe du hattest genauso schöne feiertage! 🙂 wenn ich daß eingebe listet er mir die ganzen mp3’s auf die in dem verzeichnis sind. ich blicks nicht warum es nicht funktioniert…

  6. Kommentiere mal probeweise die Zeilen

    OLDIFS=$IFS
    IFS=$’\n‘

    und

    IFS=$OLDIFS

    aus und schaue, ob es dann funktioniert

  7. hab ich jetzt auskommentiert – leider mit dem gleichen ergebnis (erst nichts außer cursorblinken und dann wartet die bash wieder auf neuen input…) danke daß du dir immer noch die mühe gibst zu antworten! 🙂

  8. Dumme Frage: Du bist sicher, das mp3gain überhaupt die Lautstärke Deiner MP3s anpassen muss? Mir gehen dummerweise langsam die Ideen aus.

  9. grad eine cd gerippt und das ganze nochmal ablaufen lassen. es funktioniert! das war ja mal was – soo einfach kann die lösung sein. 🙂 eine andere frage noch zuletzt: wenn ich dieses tolle script jetzt nach jedem einloggen im hintergrundlaufen lassen will, trag ich den pfad-zum-script mit einem „&“ davor in die .bash_profile ein und das wars? wünsch dir noch einen schönen abend!

  10. Wie das mit der .bash_profile geht, muss ich passen. Aber abgesehen davon, finde ich die Idee blödsinnig. Oder kaufst und rippst Du so viele MP3s, das es sich lohnt, das Script bei jedem Start der Bash auszuführen? 😉

Die Kommentare sind geschlossen.