boo/soxr/tests/eg-test

49 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env 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.
# Exercises each example programme.
len=8
w=$(echo -e "`sox --ver |sed 's/.*SoX v//'` d\n14.4.1 k"|sort -Vr|head -1|sed 's/.* //')
#vg="valgrind --leak-check=full --show-reachable=yes"
# Exercise example 1:
$vg ./1-single-block
# Check that examples 2-4 can convert 96k<->44k1 and that results are same for each:
ir=96000
or=44100
for i in 1 2; do
prev=""
sox -r $ir -n 0.f32 synth $len sin 0+`expr $ir / 2`
for f in `find . -type f -executable -name "[2-4]*"`; do
$vg $f $ir $or < 0.f32 > $f.f32
test x$prev != x && cmp $f.f32 $prev
prev=$f.f32
done
or=96000
ir=44100
done
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
signal=${signals[`expr $n % 2 || true`]}
variation=${variations[`expr $n / 2 || true`]}
$vg ./5-variable-rate $n | sox -tf32 -r44100 -c1 - -n spectrogram -z130 -hw$w -o v$n-$w.png -X 50 -c "variation:$variation signal:$signal"
vg=""
done