You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
4.1 KiB
146 lines
4.1 KiB
#!/bin/bash
|
|
#
|
|
# This script uses test-mixer to generate WAV files
|
|
# for evaluation of the AudioMixer component.
|
|
#
|
|
# Sine and chirp signals are used for input because they
|
|
# show up as clear lines, either horizontal or diagonal,
|
|
# on a spectrogram. This means easy verification of multiple
|
|
# track mixing.
|
|
#
|
|
# After execution, look for created subdirectories like
|
|
# mixer_i_i
|
|
# mixer_i_f
|
|
# mixer_f_f
|
|
#
|
|
# Recommend using a program such as audacity to evaluate
|
|
# the output WAV files, e.g.
|
|
#
|
|
# cd testdir
|
|
# audacity *.wav
|
|
#
|
|
# Using Audacity:
|
|
#
|
|
# Under "Waveform" view mode you can zoom into the
|
|
# start of the WAV file to verify proper ramping.
|
|
#
|
|
# Select "Spectrogram" to see verify the lines
|
|
# (sine = horizontal, chirp = diagonal) which should
|
|
# be clear (except for around the start as the volume
|
|
# ramping causes spectral distortion).
|
|
|
|
if [ -z "$ANDROID_BUILD_TOP" ]; then
|
|
echo "Android build environment not set"
|
|
exit -1
|
|
fi
|
|
|
|
# ensure we have mm
|
|
. $ANDROID_BUILD_TOP/build/envsetup.sh
|
|
|
|
pushd $ANDROID_BUILD_TOP/frameworks/av/media/libaudioprocessing
|
|
|
|
# build
|
|
pwd
|
|
mm
|
|
|
|
# send to device
|
|
echo "waiting for device"
|
|
adb root && adb wait-for-device remount
|
|
adb push $OUT/system/lib/libaudioprocessing.so /system/lib
|
|
adb push $OUT/system/lib64/libaudioprocessing.so /system/lib64
|
|
adb push $OUT/system/bin/test-mixer /system/bin
|
|
|
|
# createwav creates a series of WAV files testing various
|
|
# mixer settings
|
|
# $1 = flags
|
|
# $2 = directory
|
|
function createwav() {
|
|
# create directory if it doesn't exist
|
|
if [ ! -d $2 ]; then
|
|
mkdir $2
|
|
fi
|
|
|
|
# Test:
|
|
# process__genericResampling with mixed integer and float track input
|
|
# track__Resample / track__genericResample
|
|
adb shell test-mixer $1 -s 48000 \
|
|
-o /sdcard/tm48000grif.wav \
|
|
sine:2,4000,7520 chirp:2,9200 sine:1,3000,18000 \
|
|
sine:f,6,6000,19000 chirp:i,4,30000
|
|
adb pull /sdcard/tm48000grif.wav $2
|
|
|
|
# Test:
|
|
# process__genericResampling
|
|
# track__Resample / track__genericResample
|
|
adb shell test-mixer $1 -s 48000 \
|
|
-o /sdcard/tm48000gr.wav \
|
|
sine:2,4000,7520 chirp:2,9200 sine:1,3000,18000 \
|
|
sine:6,6000,19000
|
|
adb pull /sdcard/tm48000gr.wav $2
|
|
|
|
# Test:
|
|
# process__genericResample
|
|
# track__Resample / track__genericResample
|
|
# track__NoResample / track__16BitsStereo / track__16BitsMono
|
|
# Aux buffer
|
|
adb shell test-mixer $1 -c 5 -s 9307 \
|
|
-a /sdcard/aux9307gra.wav -o /sdcard/tm9307gra.wav \
|
|
sine:4,1000,3000 sine:1,2000,9307 chirp:3,9307
|
|
adb pull /sdcard/tm9307gra.wav $2
|
|
adb pull /sdcard/aux9307gra.wav $2
|
|
|
|
# Test:
|
|
# process__genericNoResampling
|
|
# track__NoResample / track__16BitsStereo / track__16BitsMono
|
|
adb shell test-mixer $1 -s 32000 \
|
|
-o /sdcard/tm32000gnr.wav \
|
|
sine:2,1000,32000 chirp:2,32000 sine:1,3000,32000
|
|
adb pull /sdcard/tm32000gnr.wav $2
|
|
|
|
# Test:
|
|
# process__genericNoResampling
|
|
# track__NoResample / track__16BitsStereo / track__16BitsMono
|
|
# Aux buffer
|
|
adb shell test-mixer $1 -s 32000 \
|
|
-a /sdcard/aux32000gnra.wav -o /sdcard/tm32000gnra.wav \
|
|
sine:2,1000,32000 chirp:2,32000 sine:1,3000,32000
|
|
adb pull /sdcard/tm32000gnra.wav $2
|
|
adb pull /sdcard/aux32000gnra.wav $2
|
|
|
|
# Test:
|
|
# process__NoResampleOneTrack / process__OneTrack16BitsStereoNoResampling
|
|
# Downmixer
|
|
adb shell test-mixer $1 -s 32000 \
|
|
-o /sdcard/tm32000nrot.wav \
|
|
sine:6,1000,32000
|
|
adb pull /sdcard/tm32000nrot.wav $2
|
|
|
|
# Test:
|
|
# process__NoResampleOneTrack / OneTrack16BitsStereoNoResampling
|
|
# Aux buffer
|
|
adb shell test-mixer $1 -s 44100 \
|
|
-a /sdcard/aux44100nrota.wav -o /sdcard/tm44100nrota.wav \
|
|
sine:2,2000,44100
|
|
adb pull /sdcard/tm44100nrota.wav $2
|
|
adb pull /sdcard/aux44100nrota.wav $2
|
|
}
|
|
|
|
#
|
|
# Call createwav to generate WAV files in various combinations
|
|
#
|
|
# i_i = integer input track, integer mixer output
|
|
# f_f = float input track, float mixer output
|
|
# i_f = integer input track, float_mixer output
|
|
#
|
|
# If the mixer output is float, then the output WAV file is pcm float.
|
|
#
|
|
# TODO: create a "snr" like "diff" to automatically
|
|
# compare files in these directories together.
|
|
#
|
|
|
|
createwav "" "tests/mixer_i_i"
|
|
createwav "-f -m" "tests/mixer_f_f"
|
|
createwav "-m" "tests/mixer_i_f"
|
|
|
|
popd
|