#!/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