From 5a2a3a03c0de5df399dce68e6d33880107552428 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 22 Jan 2022 23:50:26 -0500 Subject: [PATCH] add furnace test suite --- .gitignore | 3 +++ test/furnace-test.sh | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100755 test/furnace-test.sh diff --git a/.gitignore b/.gitignore index d5c518585..d1d24bff6 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,6 @@ linuxbuild/ *.swp .cache/ .DS_Store +test/songs/ +test/delta/ +test/result/ diff --git a/test/furnace-test.sh b/test/furnace-test.sh new file mode 100755 index 000000000..d2bab55c9 --- /dev/null +++ b/test/furnace-test.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# renders all files in test/songs/ and outputs them for delta testing. +# useful when doing changes to playback. +# requires GNU parallel. + +testDir=$(date +%Y%m%d%H%M%S) +if [ -e "test/result" ]; then + lastTest=$(ls "test/result" | tail -2 | head -1 || echo "") +else + lastTest="" +fi + +echo "lastTest is $lastTest" + +echo "furnace test suite begin..." +echo "--- STEP 1: render test files" +mkdir -p "test/result/$testDir" || exit 1 +ls "test/songs/" | parallel --verbose -j4 ./build/furnace -output "test/result/$testDir/{0}.wav" "test/songs/{0}" +echo "--- STEP 2: calculate deltas" +if [ -z $lastTest ]; then + echo "skipping since this apparently is your first run." +else + mkdir -p "test/delta/$testDir" || exit 1 + ls "test/result/$testDir/" | parallel --verbose -j4 ffmpeg -i "test/result/$lastTest/{0}" -i "test/result/$testDir/{0}" -filter_complex stereotools=phasel=1:phaser=1,amix=inputs=2:duration=longest -c:a pcm_s16le -y "test/delta/$testDir/{0}" +fi +echo "--- STEP 3: make delta images" +if [ -z $lastTest ]; then + echo "skipping since this apparently is your first run." +else + ls "test/result/$testDir/" | parallel --verbose -j4 ffmpeg -i "test/delta/$testDir/{0}" -lavfi showspectrumpic "test/delta/$testDir/{0}.png" +fi