From f0ad68dfbc2968173f608fd560647fa4d653b3bd Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Tue, 24 May 2016 22:04:16 +0200 Subject: --cd neu --- sound-cutter.in | 40 +++++++++++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 7 deletions(-) (limited to 'sound-cutter.in') diff --git a/sound-cutter.in b/sound-cutter.in index 2878350..5d16be7 100755 --- a/sound-cutter.in +++ b/sound-cutter.in @@ -7,17 +7,18 @@ verwendung() { >&2 echo '' >&2 echo 'Verwendung:' >&2 echo '' - >&2 echo "${me}"' [ -f | --force ] [ -a | --ausfuehrlich ] [ -1 | --noGain ] [ -n | --dummy ] { ( -i | --input ) input$i.flac } ( -o | --output ) output.flac ( -p | --points ) points' + >&2 echo "${me}"' [ -1 | --noGain ] [ -a | --ausfuehrlich ] [ -c | --cd ] [ -f | --force ] { ( -i | --input ) input$i.flac } [ -n | --dummy ] ( -o | --output ) output.(flac|wav|mp3) ( -p | --points ) points [ ( -s | --sampleRate ) Rate ]' >&2 echo '' >&2 echo ' Mischen und Schneiden:' - >&2 echo ' -f | --force: output.flac ggf. überschreiben' >&2 echo ' -1 | --noGain: Lautstärke nicht normalisieren' - >&2 echo ' -n | --dummy: nur auszuführenden Befehl anzeigen und nichts tun' - >&2 echo ' -s | --sampleRate: alternative Samplerate zum Abspeichern' + >&2 echo ' -a | --ausfuehrlich: ausführliche Zwischenausgaben machen' + >&2 echo ' -c | --cd: Dateien passend für CD-Tracks erzeugen' + >&2 echo ' -f | --force: output.flac ggf. überschreiben' >&2 echo ' -i | --input: Quelle' + >&2 echo ' -n | --dummy: nur auszuführenden Befehl anzeigen und nichts tun' >&2 echo ' -o | --output: Ziel' >&2 echo ' -p | --points: Punktedatei' - >&2 echo ' -a | --ausfuehrlich: ausführliche Zwischenausgaben machen' + >&2 echo ' -s | --sampleRate: alternative Samplerate zum Abspeichern' >&2 echo '' >&2 echo "$0"' [ -h | --help ]' >&2 echo ' Hilfe anzeigen' @@ -44,11 +45,12 @@ timetosample() { me="$(readlink -f "$0")" eval set -- "$( - getopt -o 1ahfi:no:p:s: \ + getopt -o 1acfhi:no:p:s: \ --long noGain \ --long ausfuehrlich \ - --long help \ + --long cd \ --long force \ + --long help \ --long input: \ --long dummy \ --long output: \ @@ -62,6 +64,7 @@ noGain=false ausfuehrlich=false force=false dummy=false +cdAusrichten=false while true; do case "$1" in @@ -71,6 +74,11 @@ while true; do -a|--ausfuehrlich) ausfuehrlich=true ;; + -c|--cd= + [ -n "${outRate}" ] && echo 'Ich kann nur eine Samplerate-Option verstehen.' && verwendung + outRate="44100" + cdAusrichten=true + ;; -f|--force) force=true ;; @@ -116,6 +124,12 @@ done [ -z "${points}" ] && >&2 echo 'Points-Datei fehlt!' && verwendung [ "${#inputs[@]}" -eq 0 ] && >&2 echo 'Input-Datei fehlt!' && verwendung +if ${cdAusrichten} && [[ ! "${output}" == *".wav" ]] +then + >&2 echo 'CD-Ausgabe sollte nur nach wav geschehen.' + exit 1 +fi + [ ! -e "${points}" ] && >&2 echo "Die Schnittpunktedatei '${points}' existiert nicht!" && exit 1 for inp in "${inputs[@]}" do @@ -302,6 +316,18 @@ do done [ -n "${splicecmd}" ] && splicecmd="splice -t${splicecmd}" +if ${cdAusrichten} +then + diff=0 + align2=294 + for (( i=1; i<${#outTimes[@]}; i++ )) + do + nDiff=$(bc <<< "(${outTimes[${i}]} + ${diff} + ${align2}) % (2 * ${align2}) - ${align2}") + outTimes[${i}]=$(bc <<< "${outTimes[${i}]} + ${diff} - ${nDiff}") + diff="${nDiff}" + done +fi + trimcmd="" for (( i=1; i<=${#outTimes[@]}; i++ )) do -- cgit v1.2.3-54-g00ecf