#!/bin/sh
# Show a frequence spectrogram using sox and timg
# https://sound.stackexchange.com/questions/40226/show-the-differences-between-two-similar-audio-files-using-graphical-method
case $1 in
  (-a) shift
    for arg; do $0 "$arg"; done
    ;;
  (-d) shift
    one="$(basename "$1")"
    two="$(basename "$2")"
    diff="/tmp/diff-$one-$two.wav"
    ffmpeg -y -v warning -i "$1" "/tmp/$one.wav"
    ffmpeg -y -v warning -i "$2" "/tmp/$two.wav"
    sox -m -v 1 "/tmp/$one.wav" -v -1 "/tmp/$two.wav" "$diff"
    $0 "$diff"
    ;;
  (*)
    out="${2:-/tmp/freq-$(basename "$1").png}"
    mkdir -p "$(dirname "$out")"
    sox "$1" -n spectrogram -o "$out"
    timg --title "$out"
    ;;
esac