93 lines
1.8 KiB
Bash
Executable File
93 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# SoX Resampler Library Copyright (c) 2007-15 robs@users.sourceforge.net
|
|
# Licence for this file: LGPL v2.1 See LICENCE for details.
|
|
|
|
# Tests rate conversion time and generates spectrograms for
|
|
# qualities 0..7 & variable-rate.
|
|
|
|
|
|
|
|
tool=./3-options-input-fn
|
|
|
|
ext=f64; e=1
|
|
c=1
|
|
q1=0; q2=7
|
|
|
|
rates=48000
|
|
rates="48000 77773 96000"
|
|
|
|
z=(50 87 87 87 111 135 159 180 95)
|
|
|
|
zz() {
|
|
echo "spectrogram -z${z[$1]} -Z-30 -wd -ho"
|
|
}
|
|
|
|
for rate0 in $rates; do
|
|
|
|
rate1=$rate0
|
|
rate2=44100
|
|
|
|
for n in 1 2; do
|
|
|
|
rate1n=`expr $rate1 / 2`
|
|
|
|
|
|
|
|
# Measure time to convert a 5-minute file:
|
|
|
|
#: << :
|
|
sox -r $rate1 -n -c $c 0.$ext synth 5: sin 0:$rate1n gain -1
|
|
|
|
for q in `seq $q1 $q2`; do
|
|
echo $rate1 '-->' $rate2 c=$c q=$q
|
|
time $tool $rate1 $rate2 $c $e $e $q < 0.$ext > /dev/null;
|
|
done
|
|
echo $rate1 '-->' $rate2 c=$c q=v
|
|
time $tool $rate1 $rate2 $c $e $e 4 20 < 0.$ext > /dev/null
|
|
:
|
|
|
|
|
|
|
|
# Convert sweep, for spectrogram:
|
|
|
|
sox -r $rate1 -n -c $c 0.$ext synth 8 sin 0:$rate1n gain -1
|
|
|
|
for q in `seq $q1 $q2`; do
|
|
f=q$rate1-$rate2-a-$q
|
|
$tool $rate1 $rate2 $c $e $e $q 0 < 0.$ext | sox -c$c -r$rate2 -t $ext - -n $(zz $q) $f.png
|
|
done
|
|
q=8
|
|
f=q$rate1-$rate2-a-v
|
|
$tool $rate1 $rate2 $c $e $e 4 20 < 0.$ext | sox -c$c -r$rate2 -t $ext - -n $(zz $q) $f.png
|
|
|
|
|
|
|
|
# Convert impulse, for spectrogram:
|
|
|
|
#: << :
|
|
sox -r $rate1 -n 0.$ext synth 1s sq pad .03 .03 gain -1
|
|
|
|
for q in `seq $q1 $q2`; do
|
|
f=q$rate1-$rate2-b-$q
|
|
$tool $rate1 $rate2 1 $e $e $q 0 < 0.$ext | sox -c1 -r$rate2 -t $ext - $f.wav $(zz $q) $f.png -X 2000
|
|
done
|
|
q=8
|
|
f=q$rate1-$rate2-b-v
|
|
$tool $rate1 $rate2 1 $e $e 4 20 < 0.$ext | sox -c1 -r$rate2 -t $ext - $f.wav $(zz $q) $f.png -X 2000
|
|
|
|
# Combine impuse responses into multi-channel file (for inspection in Audacity):
|
|
sox -M q$rate1-$rate2-b-?.wav q$rate1-$rate2.wav
|
|
|
|
rm q$rate1-$rate2-b-?.wav
|
|
:
|
|
|
|
rate1=44100
|
|
rate2=$rate0
|
|
|
|
done
|
|
done
|
|
|
|
rm 0.$ext
|