misc/scripts/beep
2022-11-16 01:10:58 +01:00

24 lines
450 B
Bash
Executable File

#!/bin/sh
n=3
case "$5" in
LOW) n=1 ;;
NORMAL) n=3 ;;
CRITICAL) n=5 ;;
esac
lock=/tmp/.beep-lock
test -f $lock && exit 1
touch $lock
python -c "
import sys, numpy as np
t = np.arange(0, 0.25, 1/48000)
for i in range($n):
tone = np.random.choice([0,3,5,6,7,10,12])
note = 0.8 * np.sin(np.pi * 650 * 2**(tone/12) * t)
sys.stdout.buffer.write(np.int32(2**31 * note).tobytes())
" | aplay -c 1 -f S32_LE -r 48000 -Dbeep
rm -f $lock