Upload files to "/"

This commit is contained in:
2026-07-06 18:52:33 +00:00
commit 8bf4c4a567
2 changed files with 122 additions and 0 deletions
+80
View File
@@ -0,0 +1,80 @@
#!/bin/bash
# =========================================================
# Script for resampling audio files to cd resolution
# and automatically adjusting the peak level
#
# Dependencies: SoX, flac, bash, awk
# =========================================================
function printHelp() {
echo 'Usage: cmd [OPTION]... FILES'
echo 'Options:'
echo ' --help (-h): Print this page'
echo ' --no-gain-adjustment (-ng): Disable gain adjustment, no peak level changes'
#echo ' '
#echo ' '
#echo ' '
}
cmd=sox_ng
iterations=2
gainAdjustment=true
destination='resampled'
gain='0.00'
safeGuard='0.00'
targetLevel='0.01' # -0.01 dB
files=()
if [[ -z "${*}" ]]; then
echo 'No arguments given.'
printHelp
exit
fi
for argument in "${@}"; do
if [[ "${argument}" == '-h' ]] || [[ "${argument}" == '--help' ]]; then
printHelp
exit
elif [[ "${argument}" == '--no-gain-adjustment' ]] || [[ "${argument}" == '-ng' ]]; then
echo 'Disabling gain adjustment...'
iterations=1
gainAdjustment=false
elif [[ ! -r "${argument}" ]]; then
echo "The argument or filepath provided \`${argument}\` does not exist, quitting..."
exit
else
files+=("${argument}")
fi
done
mkdir -vp "${destination}"
for (( i = 0 ; i < iterations ; i++ )); do
for file in "${files[@]}"; do
cmdOutput="$("${cmd}" -DV4 "${file}" -b 16 -t flac "resampled/${file}" gain "${safeGuard}" rate -u -L -d 33 -b 96 44100 gain "${gain}" 2>&1)"
clipping="$(echo "${cmdOutput}" | grep -i 'clipped')"
echo "${cmdOutput}"
if [[ -n "${clipping// /}" ]]; then
echo 'Audio clipped, resetting...'
safeGuard="$(echo "${safeGuard} 0.30" | awk '{ print $1 - $2 }')"
gain='0.00'
i=-1
break
fi
done
if [[ "${gainAdjustment}" == true ]] && [[ "${i}" != -1 ]]; then
peakLevel="$(cd "${destination}" && "${cmd}" "${files[@]}" -n stats 2>&1 | grep 'Pk lev' | awk '{ print $4 }')"
if [[ -z "${peakLevel// /}" ]]; then
echo 'Error invoking SoX, check dependencies and audio files'
exit
fi
echo -e "\nTracks peak level: ${peakLevel} dB"
gain="$(echo "${targetLevel} ${peakLevel} ${gain}" | awk '{ print $3 + (($1 + $2) * -1) }')"
echo "Applied gain: ${gain} dB"
fi
done