soxr-code/tests/io-test

59 lines
1018 B
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 IO
ir=96000
or=44100
len=16
f=0+48k
g=48k+0
ex=./3-options-input-fn
types=(f32 f64 s32 s16)
zs=(160 160 160 120 180 180 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
n=`expr $n + 1`
}
j=3; test z$1 != z && j=$1
for c in `seq 1 $j`; do
for n in `seq 0 3`; do
sox -r $ir -n $c.${types[$n]} synth $len sin $f gain -.1
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
f="$f sin $g"
g=48k:0
done
rm ?.[sf][0-9][0-9]
# Check conversion between differing I/O types, but no rate-change:
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
cmp [01].f32
done
rm *.f32