1#!/bin/sh 2 3# Sample rate conversion tests. Create a 20s sweep at the input sampling rate, 4# then use each resampler to convert it to the output rate. Display the results 5# in a PNG file for each conversion. 6 7# Set up the following two before running the script: 8SOX=./sox # The actual sox executable 9SSRC_PATH=/usr/local/bin # Path to the two ssrc executables 10 11RANGE=180 12 13# Temporary files 14BASE=`basename $0` 15IN=/tmp/$BASE-in-$$.wav 16OUT=/tmp/$BASE-out-$$.wav 17TIME=/tmp/$BASE-time-$$.wav 18 19test_converters () { 20 # Create input file 21 max=`expr $1 / 2` 22 $SOX -r $1 -n -twavpcm $IN synth 20 sin 0:$max sin $max:0 gain -2 23 for src in \ 24 "rate -h" \ 25 "rate -v" \ 26 "ssrc" \ 27 "ssrc_hp" \ 28 ; do 29 echo $src 30 case "$src" in 31 ssrc*) time -f %U -o $TIME $SSRC_PATH/$src --quiet --rate $2 $IN $OUT;; 32 *) time -f %U -o $TIME $SOX $IN -r $2 $OUT $src;; 33 esac 34 t=`cat $TIME` 35 $SOX $OUT -n spectrogram \ 36 -X 30 -z $RANGE -w kaiser \ 37 -t "$1->$2: $src" -c "${t}s user time" \ 38 -o "$1_$2_`echo $src | tr ' ' '_'`.png" 39 done 40 41 rm -f $IN $OUT $TIME # Clean up 42} 43 44test_converters 11025 48000 45test_converters 22000 96100 46test_converters 44100 96000 47test_converters 96000 44100 48test_converters 96000 8000 # rabbit 0.1.3 hangs, 0.1.4 is okay 49