summaryrefslogtreecommitdiff
path: root/doit.save
diff options
context:
space:
mode:
Diffstat (limited to 'doit.save')
-rwxr-xr-xdoit.save264
1 files changed, 0 insertions, 264 deletions
diff --git a/doit.save b/doit.save
deleted file mode 100755
index c6bb1e1..0000000
--- a/doit.save
+++ /dev/null
@@ -1,264 +0,0 @@
-#!/bin/bash
-
-# doit [ -f ] [ -ng ] input_1 input_2 ... input_n points output
-
-
-eval set -- "$(getopt -o hf1ni:p:o: --long help,force,noGain,dummy,input:,points:,output: -n "$(basename "$0")" -- "$@")"
-
-force=false
-noGain=false
-dummy=false
-
-while true; do
- case "$1" in
- -h|--help)
- echo "$0"' [ -f | --force ] [ -1 | --noGain ] [ -n | --dummy ] { ( -i | --input= ) input$i.flac } ( -o | --output= ) output.flac ( -p | --points= ) points'
- echo ' Mischen und Schneiden:'
- echo ' -f | --force: output.flac ggf. überschreiben'
- echo ' -1 | --noGain: Lautstärke nicht normalisieren'
- echo ' -n | --dummy: nur auszuführenden Befehl anzeigen und nichts tun'
- echo ' -i | --input=: Quelle'
- echo ' -o | --output=: Ziel'
- echo ' -p | --points=: Punktedatei'
- echo "$0"' [ -h | --help ]'
- echo ' Hilfe anzeigen'
- exit 0
- ;;
- -f|--force)
- force=true
- ;;
- -1|--noGain)
- noGain=true
- ;;
- -n|--dummy)
- dummy=true
- ;;
- -i|--input)
- shift
- inputs[${#inputs[@]}]="$1"
- ;;
- -o|--output)
- shift
- [ -n "$output" ] && echo 'Ich kann nur eine Output-Datei-Option verstehen.' && exit 1
- output="$1"
- ;;
- -p|--points)
- shift
- [ -n "$points" ] && echo 'Ich kann nur eine Point-Datei-Option verstehen.' && exit 1
- points="$1"
- ;;
- --)
- shift
- [ $# -gt 0 ] && echo 'Unbekannte Parameter: '"$#" && exit 1
- break
- ;;
- *)
- echo 'Hups, das sollte nicht passieren könne, '"$1"' kenne ich doch nicht ...'
- exit -1
- ;;
- esac
- shift
-done
-
-[ -z "${output}" ] && echo 'Output-Datei fehlt!' && exit 1
-[ -z "${points}" ] && echo 'Points-Datei fehlt!' && exit 1
-[ "${#inputs[@]}" -eq 0 ] && echo 'Input-Datei fehlt!' && exit 1
-
-dir="$(dirname $0)"
-
-[ ! -e "${points}" ] && echo "Die Schnittpunktedatei ${points} existiert nicht!" && exit 1
-for inp in "${inputs[@]}"
-do
- [ ! -e "${inp}" ] && echo "Die Inputdatei ${inp} existiert nicht!" && exit 1
- [ $(echo "${inp}" | grep -c " ") -gt 0 ] && echo "Bitte keine Leerzeichen im input-Dateinamen!" && exit 1
-done
-
-[ $(echo "${output}" | grep -c " ") -gt 0 ] && echo "Bitte keine Leerzeichen im output-Dateinamen!" && exit 1
-[ $(echo "${points}" | grep -c " ") -gt 0 ] && echo "Bitte keine Leerzeichen im points-Dateinamen!" && exit 1
-
-if [ -e "${output}" ]
-then
- if ${force}
- then
- ${dummy} || rm "${output}"
- else
- echo "Die Ausgabedatei ${output} existiert bereits!" && exit 1
- fi
-fi
-odn="$(dirname "${output}")"
-obn="$(basename "${output}")"
-if [ $(ls -1 "${odn}" | grep "$(echo "${obn}" | sed "s/%[0-9]\?n/.*/g")" | wc -l) -gt 0 ]
-then
- if ${force}
- then
- ${dummy} || rm ${odn}/$(echo "${obn}" | sed "s/%[0-9]\?n/*/g")
- else
- echo "Die Ausgabedatei ${output} existiert bereits!" && exit 1
- fi
-fi
-
-samplerate=$(soxi -r "${inputs[0]}")
-i=-1
-abstime=0
-while read -r in
-do
- line="$(echo "${in}" | sed "s/^ *//" | sed "s/ *\(\# .*\)\{0,1\}$//")"
- [ "${line}" == "" ] && continue
- if [ $i -eq -1 ]
- then
- firstline="$(echo "${line}" | sed "s/ *\#.*$//")"
- remixcmd="$(echo "${in}" | sed "s/^[^\#]*\#//" | sed "s/ *\(\# .*\)\{0,1\}$//")"
- i=0
- continue
- fi
- if [ $(echo "${line}" | grep -c "^\#") -eq 1 ]
- then
- trackmods[${i}]=" $(echo "${line}" | sed "s/^.*\#//")"
- timecorrections[${i}]=0
- while [ $(echo "${trackmods[${i}]}" | grep -c " trimsplice") -eq 1 ]
- do
- tmp="$(echo "${trackmods[${i}]}" | sed "s/X/x/g" | sed "s/trimsplice/X/g" | sed "s/^[^X]* X *//" | sed "s/ / /g")"
- end=$(${dir}/timetosample ${samplerate} $(echo "${tmp}" | awk '{print $1}'))
- if [ ! "${doverlaps[${i}]}" == "" ]
- then
- end=$[${end}+${doverlaps[${i}]}]
- fi
- discard=$(${dir}/timetosample ${samplerate} $(echo "${tmp}" | awk '{print $2}'))
- excess=$(${dir}/timetosample ${samplerate} $(echo "${tmp}" | awk '{print $3}'))
- leeway=$(${dir}/timetosample ${samplerate} $(echo "${tmp}" | awk '{print $4}'))
- trackmods[${i}]="$(echo "${trackmods[${i}]}" | sed "s/ *trimsplice *[^ ][^ ]* *[^ ][^ ]* *[^ ][^ ]* *[^ ][^ ]*/ trim 0s ${end}s ${discard}s splice -t ${end}s,${excess}s,${leeway}s/")"
-# trackmods[${i}]="$(echo "${trackmods[${i}]}" | sed "s/ *trimsplice *[^ ][^ ]* *[^ ][^ ]* *[^ ][^ ]* *[^ ][^ ]*/ trim 0s ${end}s ${discard}s/")"
- timecorrections[${i}]=$[${timecorrections[${i}]}+${discard}+2*${excess}]
- done
- continue
- fi
- i=$[${i}+1]
- tmp=$(${dir}/timetosample ${samplerate} $(echo "${line}" | sed "s/ *\(\#.*$\)\{0,1\}$//"))
- times[${i}]=$[${tmp}-${abstime}]
- abstime=${tmp}
-
- newFile[${i}]=true
- tmp="$(echo "${line}" | sed "s/^[^\#]*#\?//" | sed "s/\s\./ 0./g")"
- while [ -n "${tmp}" ]
- do
- if [[ "$tmp" = "overlap "* ]]
- then
- overlaps[${i}]=$[$(${dir}/timetosample ${samplerate} $(echo "${tmp}" | sed "s/^overlap \(\S\+\)\(\s.*\)\?$/\1/"))/2]
- doverlaps[${i}]=$[2*${overlaps[${i}]}]
- tmp="$(echo "${tmp}" | sed "s/^\S\+\s\+\S\+\s*//")"
- continue
- fi
- if [[ "$tmp" = "noNewFile"* ]]
- then
- newFile[${i}]=false
- tmp="$(echo "${tmp}" | sed "s/^\S\+\s*//")"
- continue
- fi
- echo "'${tmp}' ist unverständlich zwischen zwei Stücken"
- exit 1
- done
-done < "${points}"
-
-#for (( i=0; i<=${#times[@]}; i++ ))
-#do
-# echo "${i} ; ${trackmods[${i}]} ; ${times[${i}]} ; ${overlaps[${i}]} ; ${doverlaps[${i}]} ; ${timecorrections[${i}]}"
-#done
-#exit 0
-
-repcmd=""
-abstime=0
-for (( i=1; i<=${#times[@]}; i++ ))
-do
- abstime=$[${abstime}+${times[${i}]}]
- [ "${doverlaps[${i}]}" == "" ] && continue
- repcmd="${repcmd} trim 0s $[${abstime}-${doverlaps[${i}]}]s : trim 0s ${doverlaps[${i}]}s repeat :"
- abstime=0
-done
-
-trackmodcmd=""
-abstime=0
-for (( i=0; i<=${#times[@]}; i++ ))
-do
- if [ ${i} -gt 0 ]
- then
- [ "${timecorrections[$[${i}-1]]}" == "" ] || times[${i}]=$[${times[${i}]}-${timecorrections[$[${i}-1]]}]
- fi
- [ "${times[$[${i}+1]]}" == "" ] || abstime=$[${abstime}+${times[$[${i}+1]]}]
- [ "${doverlaps[${i}]}" == "" ] || abstime=$[${abstime}+${doverlaps[${i}]}]
- [ "${trackmods[${i}]}" == "${trackmods[$[${i}+1]]}" ] && continue
- if [ ${i} -eq ${#times[@]} ]
- then
- trackmodcmd="${trackmodcmd}${trackmods[${i}]} "
- else
- trackmodcmd="${trackmodcmd}trim 0s ${abstime}s${trackmods[${i}]} : "
- fi
- abstime=0
-done
-
-splicecmd=""
-abstime=0
-for (( i=0; i<=${#times[@]}; i++ ))
-do
- [ "${times[${i}]}" == "" ] || abstime=$[${abstime}+${times[${i}]}]
- [ "${overlaps[${i}]}" == "" ] && continue
- splicecmd="${splicecmd} ${abstime}s,${overlaps[${i}]}s,0s"
- abstime=$[${abstime}+${doverlaps[${i}]}]
-done
-[ "${splicecmd}" == "" ] || splicecmd="splice -t${splicecmd}"
-
-trimcmd=""
-for (( i=1; i<=${#times[@]}; i++ ))
-do
- trimcmd="${trimcmd}trim 0s =${times[${i}]}s : "
- ${newFile[${i}]} && trimcmd="${trimcmd}newfile : "
-done
-
-if ! ${noGain}
-then
- firstline="${firstline} gain -b"
- remixcmd="${remixcmd} gain -n"
-fi
-
-echo sox -M "${inputs[@]}" -p trim ${firstline}
-echo sox -t sox - -p ${repcmd}
-echo sox -t sox - -p ${trackmodcmd}
-echo sox -t sox - -p ${splicecmd} ${remixcmd}
-echo sox -t sox - ${output} ${trimcmd}
-
-if ! ${dummy}
-then
- sox -M "${inputs[@]}" -p trim ${firstline}| \
- sox -t sox - -p ${repcmd} | \
- sox -t sox - -p ${trackmodcmd} | \
- sox -t sox - -p ${splicecmd} ${remixcmd} | \
- sox -t sox - ${output} ${trimcmd}
-fi
-
-#if $noGain
-#then
-# echo sox -M "${@:1:$[$#-2]}" -p trim ${firstline}
-# echo sox -t sox - -p ${repcmd}
-# echo sox -t sox - -p ${trackmodcmd}
-# echo sox -t sox - -p ${splicecmd} ${remixcmd}
-# echo sox -t sox - ${output} ${trimcmd}
-#
-# sox -M "${@:1:$[$#-2]}" -p trim ${firstline}| \
-# sox -t sox - -p ${repcmd} | \
-# sox -t sox - -p ${trackmodcmd} | \
-# sox -t sox - -p ${splicecmd} ${remixcmd} | \
-# sox -t sox - ${output} ${trimcmd}
-#else
-# echo sox -M "${@:1:$[$#-2]}" -p trim ${firstline} gain -b
-# echo sox -t sox - -p ${repcmd}
-# echo sox -t sox - -p ${trackmodcmd}
-# echo sox -t sox - -p ${splicecmd} ${remixcmd}
-# echo sox -t sox - -p gain -n
-# echo sox -t sox - ${output} ${trimcmd}
-#
-# sox -M "${@:1:$[$#-2]}" -p trim ${firstline} gain -b | \
-# sox -t sox - -p ${repcmd} | \
-# sox -t sox - -p ${trackmodcmd} | \
-# sox -t sox - -p ${splicecmd} ${remixcmd} | \
-# sox -t sox - -p gain -n | \
-# sox -t sox - ${output} ${trimcmd}
-#fi