#!/bin/bash

WAVDIR='WAV'
FLACDIR='FLAC'
FLACVOL='FLAC_VOL'

#[[ $TERM =~ 'xterm' ]] ||
#   exec xterm -bg black -fg white -e $0
#	exec xfce4-terminal -e $0

f_sox() {
	# rate:
	# -v - very high
	# -s - steep filter
	# -L - linear phase
	# dither:
	# -s - noise shaping
	# -f - filter type
	local VOL=''
	if [[ $1 == 'vol' ]]; then
		VOL='vol -4dB'
	fi

	sox \
	--buffer 131072 \
	--multi-threaded \
	--show-progress \
	$WAV \
	--bits 24 \
	--type wav \
	- \
	${VOL} \
	rate -v 48k \
	dither # TPDF no shaping
#	dither -s -f improved-e-weighted
#	rate -v -s 48k \
#   rate -L ..
#	dither -s -f gesemann
#	dither -s -f low-shibata
#	gain -n -1 \
#	--guard \
#	rate -v -s -L 48k \
#	rate -v -a -L 48k \
}

f_flac() {
	local FLAC=$1

	#--exhaustive-model-search \
	#--qlp-coeff-precision-search \
	#--mid-side \
	flac \
	--compression-level-8 \
	--force \
	--output-name=$FLAC \
	--totally-silent \
	-T "TITLE=$TITLE" \
	-T 'ARTIST=Xj' \
	-T 'ALBUM=Not Yet' \
	-T 'LICENSE=All Rights Reserved' \
	-T 'COPYRIGHT=Xj Kompany' \
	-T 'ORGANIZATION=Xj Kompany' \
	-T "DESCRIPTION=$TITLE Song by XJ" \
	-T "COMMENT=Converted by $(basename $0) script by Xj" \
	-T 'GENRE=Xj Music' \
	-T 'CONTACT=xj@wp.pl' \
	-T "DATE=$(date +%Y-%m-%d)" \
	-
}

for WAV in $WAVDIR/*.{wav,aif,flac}; do
	[[ ! -f $WAV ]] && continue

	TITLE="$(basename ${WAV%.*})"

	f_sox | f_flac "${FLACDIR}/${TITLE}.flac"
#	f_sox 'vol' | f_flac "${FLACVOL}/${TITLE}.flac"

	[[ $? -eq 0 && $1 != '-k' ]] && rm -f "${WAV}"
done
