#!/bin/bash # # /usr/local/bin/mp3tocd -- mp3-Files nach wav oder au umwandeln # und brennen. # Das Format 44100 Hz, 16Bit Stereo ist notwendig, siehe Text # # mp32wav mp3dir wavdir set -x function usage () { echo " mp32wav mp3dir wavdir mp3dir: Verzeichnis, in dem die mp3-Dateien gepseichert sind. wavdir: Verzeichnis, in das die erzeugten wave-Dateien geschrieben werden" } function yesno () { while true; do read ans case "$ans" in y|Y|j|J|[yY]es|[jJ]a) return 1 ;; n|N|[nN]o|[nN]ein) return 0 ;; *) echo -e '\a\nVertipper. (j,ja,y,yes/n,nein,no)' ;; esac done } if ! test -d "$1"; then usage fi if ! test -d "$2"; then usage fi mp3dir="$1" wavdir="$2" #pushd $destdir > /dev/null let count=0 for i in "$mp3dir"/*.mp3; do echo "$i wird decodiert" ## Der Umstand mit der fuehrenden Null in der 'if'-Abfrage bewirkt, ## dass (maximal) 100 Tracks in der richtigen Reihenfolge gebrannt ## werden if test "$count" -le 9; then track=""0$count"track.wav" else track=""$count"track.wav" fi trakfile="$i" echo Datei1 "$trakfile" track=$(basename "$i" .mp3).wav echo Datei2 "$track" mpg123 -v -s -r 44100 --stereo --wav "$wavdir"/"$track" "$i" let count=$(expr $count + 1) done echo -e "\n erzeugte Tracks:" ls -l "$wavdir"/[0-9][0-9]*.wav echo "KByte insgesamt: $(du -kc "$wavdir"/[0-9][0-9]*.wav | tail -n 1 | awk '{print $1}')" #echo " #Brennen durchfuehren (j,y,ja,yes/n,nein,no)?" #if ! yesno; then #cdrecord -v -speed=$speed $blank -pad dev=$wdev -audio [0-9][0-9]track.$format # popd > /dev/null # rm -R $destdir #else # echo "Die Tracks in $destdir wurden nicht geloescht" #fi