rework test scripts
parent
a0ff383692
commit
ba8d717a37
|
@ -22,14 +22,15 @@ rate1n=`expr $rate1 / 2`
|
|||
#sox -r $rate1 -n 0.$ext synth 1s sq pad .03 .03 gain -1
|
||||
sox -r $rate1 -n 0.$ext synth 8 sin 0:$rate1n gain -1
|
||||
|
||||
for q in `seq 79 5 99`; do
|
||||
f=bw1-$rate2-p`printf %02u $q`
|
||||
$tool $rate1 $rate2 1 $e $e 4 0 $q < 0.$ext | sox -c1 -r$rate2 -t $ext - -n $spec $f.png
|
||||
for pass in `seq 79 5 99`; do
|
||||
f=bw1-$rate2-p`printf %02u $pass`
|
||||
$tool $rate1 $rate2 1 $e $e 4 0 $pass < 0.$ext | sox -c1 -r$rate2 -t $ext - -n $spec $f.png -c "bw-test pass:$pass stop:100"
|
||||
done
|
||||
|
||||
for q in `seq 79 5 99`; do
|
||||
f=bw2-$rate2-p`printf %02u $q`
|
||||
$tool $rate1 $rate2 1 $e $e 4 0 $q `expr 200 - $q` < 0.$ext | sox -c1 -r$rate2 -t $ext - -n $spec $f.png
|
||||
for pass in `seq 79 5 99`; do
|
||||
f=bw2-$rate2-p`printf %02u $pass`
|
||||
stop=`expr 200 - $pass`
|
||||
$tool $rate1 $rate2 1 $e $e 4 0 $pass $stop < 0.$ext | sox -c1 -r$rate2 -t $ext - -n $spec $f.png -c "bw-test pass:$pass stop:$stop"
|
||||
done
|
||||
|
||||
r=$rate1; rate1=$rate2; rate2=$r
|
||||
|
|
|
@ -37,7 +37,11 @@ rm *.f32
|
|||
|
||||
|
||||
# Exercise VR making sure that varied internal stage reconfigurations occur:
|
||||
variations=(slow-sweep fast-changing)
|
||||
signals=(sine-wave saw-tooth-wave)
|
||||
for n in 0 1 2 3; do
|
||||
$vg ./5-variable-rate $n | sox -tf32 -r44100 -c1 - -n spectrogram -z130 -hwd -o v$n.png -X 50
|
||||
signal=${signals[`expr $n % 2 || true`]}
|
||||
variation=${variations[`expr $n / 2 || true`]}
|
||||
$vg ./5-variable-rate $n | sox -tf32 -r44100 -c1 - -n spectrogram -z130 -hwd -o v$n.png -X 50 -c "variation:$variation signal:$signal"
|
||||
vg=""
|
||||
done
|
||||
|
|
|
@ -8,20 +8,20 @@ set -e
|
|||
|
||||
|
||||
|
||||
ir=96000
|
||||
ir=65537
|
||||
or=44100
|
||||
len=16
|
||||
f=0+48k
|
||||
g=48k+0
|
||||
ex=./3-options-input-fn
|
||||
f=1/32768
|
||||
g=32768:0
|
||||
tool=./3-options-input-fn
|
||||
|
||||
types=(f32 f64 s32 s16)
|
||||
|
||||
zs=(160 160 160 120 180 180 120 120)
|
||||
zs=(180 180 180 180 180 120 120 120 120)
|
||||
|
||||
do_one() {
|
||||
$ex $ir $or $c $1 $2 $3 < $c.${types[$1]} |
|
||||
sox -t ${types[$2]} -r $or -c $c - -n spectrogram -X50 -hwk -z${zs[$n]} -o io$c$n.png
|
||||
$tool $ir $or $c $1 $2 $3 < $c.${types[$1]} |
|
||||
sox -t ${types[`expr $2 % 4`]} -r $or -c $c - -n spectrogram -X50 -hwk -z${zs[$n]} -o io$c$n.png -c "io-test i:${types[$1]} o:${types[`expr $2 % 4`]} ($2) q:$3"
|
||||
n=`expr $n + 1`
|
||||
}
|
||||
|
||||
|
@ -33,14 +33,15 @@ for c in `seq 1 $j`; do
|
|||
done
|
||||
|
||||
n=0
|
||||
for m in `seq 0 3`; do do_one $m $m 4; done
|
||||
do_one 1 2 5
|
||||
do_one 2 0 5
|
||||
do_one 3 2 4
|
||||
do_one 0 3 4
|
||||
for m in `seq 0 3`; do do_one $m $m 5; done
|
||||
do_one 3 2 3
|
||||
do_one 0 3 3
|
||||
do_one 0 11 3
|
||||
|
||||
f="$f sin $g"
|
||||
g=48k:0
|
||||
g=0+32768
|
||||
done
|
||||
|
||||
rm ?.[sf][0-9][0-9]
|
||||
|
@ -52,7 +53,7 @@ rm ?.[sf][0-9][0-9]
|
|||
for i in 1 2 3; do
|
||||
prev=""
|
||||
sox -n -c $i 0.f32 synth $len gain -.1
|
||||
$ex 1 1 $i 0 2 < 0.f32 | $ex 1 1 $i 2 0 > 1.f32
|
||||
$tool 1 1 $i 0 2 < 0.f32 | $tool 1 1 $i 2 0 > 1.f32
|
||||
cmp [01].f32
|
||||
done
|
||||
rm *.f32
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
#!/bin/sh
|
||||
# SoX Resampler Library Copyright (c) 2007-13 robs@users.sourceforge.net
|
||||
# Licence for this file: LGPL v2.1 See LICENCE for details.
|
||||
|
||||
# Warning: the intermediate signal (piped) is 3.2 Gbytes so may slug the
|
||||
# system somewhat.
|
||||
|
||||
ex=../examples/3-options-input-fn
|
||||
q=6
|
||||
r=1e5
|
||||
|
||||
rm lr.png
|
||||
|
||||
../tests/vector-gen 1000 0 8 500 .9375 1.s32
|
||||
|
||||
$ex 1 $r 1 2 1 $q < 1.s32 | $ex $r 1 1 1 2 $q > 2.s32
|
||||
|
||||
sox -M -r 1k 1.s32 -r 1k 2.s32 -n spectrogram -hwk -z180 -o lr.png
|
||||
|
||||
display lr.png &
|
||||
|
||||
rm [12].s32
|
|
@ -0,0 +1,23 @@
|
|||
#!/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 interpolating then decimating be the same, large ratio.
|
||||
|
||||
tool=../examples/3-options-input-fn
|
||||
q=6
|
||||
ratio=2e4
|
||||
srate=8000
|
||||
nrate=`expr $srate / 2`
|
||||
|
||||
rm -f lr.png
|
||||
|
||||
../tests/vector-gen $srate 0 8 $nrate .9375 1.s32
|
||||
|
||||
$tool 1 $ratio 1 2 1 $q < 1.s32 | $tool $ratio 1 1 1 2 $q > 2.s32
|
||||
|
||||
sox -M -r $srate -c1 1.s32 -r $srate -c1 2.s32 -n spectrogram -hwd -Z-10 -z180 -o lr.png -c "large-ratio-test q:$q ratio:$ratio"
|
||||
|
||||
rm [12].s32
|
|
@ -6,31 +6,33 @@ set -e
|
|||
|
||||
# Tests varying phase-response.
|
||||
|
||||
|
||||
|
||||
tool=./3-options-input-fn
|
||||
|
||||
spec="spectrogram -z160 -Z-20 -wd -ho"
|
||||
spec="spectrogram -z160 -Z-20 -X 2000 -wd -ho"
|
||||
ext=f32; e=0
|
||||
rate1=48000
|
||||
rate2=44100
|
||||
|
||||
for n in 1 2; do
|
||||
sox -r $rate1 -n 0.$ext synth 1s sq pad .03 .03 gain -1
|
||||
|
||||
sox -r $rate1 -n 0.$ext synth 1s sq pad .03 .03 gain -1
|
||||
# Test the following combinations:
|
||||
names=(linear-phase intermediate-phase maximum-phase minimum-phase)
|
||||
filters=(standard-filter steep-filter)
|
||||
|
||||
for q in `seq 0 7`; do
|
||||
f=ph-$rate2-q$q
|
||||
$tool $rate1 $rate2 1 $e $e $q'6' < 0.$ext | sox -c1 -r$rate2 -t $ext - -n $spec $f.png -X 2000
|
||||
done
|
||||
for q in `seq 0 7`; do
|
||||
f=ph-$rate2-q$q
|
||||
name=${names[`expr $q % 4 || true`]}
|
||||
filter=${filters[`expr $q / 4 || true`]}
|
||||
$tool $rate1 $rate2 1 $e $e $q'6' < 0.$ext | sox -c1 -r$rate2 -t $ext - -n $spec $f.png -c "ph-test $filter $name"
|
||||
done
|
||||
|
||||
for q in `seq 0 10`; do
|
||||
f=ph-$rate2-p`printf %02u $q`
|
||||
$tool $rate1 $rate2 1 $e $e 46 0 0 0 $q'0' < 0.$ext | sox -c1 -r$rate2 -t $ext - -n $spec $f.png -X 2000
|
||||
done
|
||||
|
||||
r=$rate1; rate1=$rate2; rate2=$r
|
||||
# Test specific phase-response percentages:
|
||||
for q in `seq 0 20 100`; do
|
||||
f=ph-$rate2-p`printf %03u $q`
|
||||
$tool $rate1 $rate2 1 $e $e 46 0 0 0 $q < 0.$ext | sox -c1 -r$rate2 -t $ext - -n $spec $f.png -c "ph-test phase:${q}%"
|
||||
done
|
||||
|
||||
r=$rate1; rate1=$rate2; rate2=$r
|
||||
done
|
||||
|
||||
rm 0.$ext
|
||||
|
|
46
tests/q-test
46
tests/q-test
|
@ -4,24 +4,19 @@ 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.
|
||||
# Tests conversion 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)
|
||||
zs=(50 87 87 87 111 135 159 180 95)
|
||||
|
||||
zz() {
|
||||
echo "spectrogram -z${z[$1]} -Z-30 -wd -ho"
|
||||
echo "spectrogram -z${zs[$1]} -Z-30 -wd -ho"
|
||||
}
|
||||
|
||||
for rate0 in $rates; do
|
||||
|
@ -35,32 +30,17 @@ 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
|
||||
f=qa-$rate1-$rate2-$q
|
||||
$tool $rate1 $rate2 $c $e $e $q 0 < 0.$ext | sox -c$c -r$rate2 -t $ext - -n $(zz $q) $f.png -c $f
|
||||
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
|
||||
f=qa-$rate1-$rate2-v
|
||||
$tool $rate1 $rate2 $c $e $e 4 20 < 0.$ext | sox -c$c -r$rate2 -t $ext - -n $(zz $q) $f.png -c $f
|
||||
|
||||
|
||||
|
||||
|
@ -70,17 +50,17 @@ $tool $rate1 $rate2 $c $e $e 4 20 < 0.$ext | sox -c$c -r$rate2 -t $ext - -n $(zz
|
|||
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
|
||||
f=qb-$rate1-$rate2-$q
|
||||
$tool $rate1 $rate2 1 $e $e $q 0 < 0.$ext | sox -c1 -r$rate2 -t $ext - $f.wav
|
||||
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
|
||||
f=qb-$rate1-$rate2-v
|
||||
$tool $rate1 $rate2 1 $e $e 4 20 < 0.$ext | sox -c1 -r$rate2 -t $ext - $f.wav
|
||||
|
||||
# Combine impuse responses into multi-channel file (for inspection in Audacity):
|
||||
sox -M q$rate1-$rate2-b-?.wav q$rate1-$rate2.wav
|
||||
sox -M qb-$rate1-$rate2-?.wav q$rate1-$rate2.wav
|
||||
|
||||
rm q$rate1-$rate2-b-?.wav
|
||||
rm qb-$rate1-$rate2-?.wav
|
||||
:
|
||||
|
||||
rate1=44100
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
#!/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/bandwidth-test
|
||||
../../tests/eg-test
|
||||
../../tests/io-test
|
||||
../../tests/large-ratio-test
|
||||
../../tests/phase-test
|
||||
../../tests/q-test
|
||||
../../tests/time-test
|
|
@ -0,0 +1,35 @@
|
|||
#!/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 for qualities 0..7 & variable-rate.
|
||||
|
||||
tool=./3-options-input-fn
|
||||
ext=f32; e=0
|
||||
c=2
|
||||
q1=0; q2=7
|
||||
rates="48000 77773 96000"
|
||||
|
||||
for rate0 in $rates; do
|
||||
rate1=$rate0
|
||||
rate2=44100
|
||||
for n in 1 2; do
|
||||
rate1n=`expr $rate1 / 2`
|
||||
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
|
||||
|
||||
rate1=44100
|
||||
rate2=$rate0
|
||||
done
|
||||
done
|
||||
|
||||
rm 0.$ext
|
Loading…
Reference in New Issue