2022-08-03 22:10:19 +00:00
|
|
|
#!/usr/bin/env bash
|
2016-03-23 05:33:14 +00:00
|
|
|
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
|
2022-08-03 22:10:19 +00:00
|
|
|
w=$(echo -e "`sox --ver |sed 's/.*SoX v//'` d\n14.4.1 k"|sort -Vr|head -1|sed 's/.* //')
|
2016-03-23 05:33:14 +00:00
|
|
|
#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`]}
|
2022-08-03 22:10:19 +00:00
|
|
|
$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"
|
2016-03-23 05:33:14 +00:00
|
|
|
vg=""
|
|
|
|
done
|