#!/usr/bin/env sh ## sfx-synth v0.3 ## produce system noises via PC speaker or soundcard fallback ## requires beep and sox for fallback synth noises ## usage: sfx-synth [named-sound] # emulates shrill piezo PC speaker beeps inside a metal case wav='sawtooth' piezo='highpass 800 lowpass 4000 equalizer 2000 0.8q +4' [ $# -eq 1 ] || { egrep '^##' < "$0" | sed -E 's/^## +//g' printf 'available sounds:' egrep -o '[a-zA-Z |]+)' < "$0" | tr '|)' ' ' \ | sed -E 's/(\w+) (\w+)/\t\1 \(\2\)/g' exit 1 } case "$1" in bell|bel) laptop-detect \ && play -qn synth 0.09 $wav 900 $piezo fade log 0 0.5 0.495 trim 0 0.05 vol 0.5 \ || beep -f 720 -l 90;; attention|attn) laptop-detect \ && play -qn synth 1 $wav 760 $piezo fade log 0 0.5 0.495 trim 0 0.2 repeat 1 vol 0.7 \ || beep -f 720 -r 2 -d 20 -l 90;; question|prompt) laptop-detect \ && play -qn synth 0.2 $wav 1047 $piezo fade log 0 0.2 0.1 vol 0.5 : synth 1 $wav 262 fade log 0 0.5 0.495 trim 0 0.2 vol 0.5 \ || beep -f 1047 -l 200 -n -f 262 -l 100;; keypress|btn) laptop-detect \ && play -qn synth 0.2 $wav 1862 $piezo fade log 0 0.05 0.04 vol 0.5 \ || beep -f 262 -l 20;; esac &