blob: c5d3c06b43cd424376755508cf4f78208a986236 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#!/usr/bin/env sh
set -eu -o pipefail
[ $# -lt 1 ] && echo "Fuck" && exit 1;
AUDIO_TRACK_ID="$1"
DB="${2:-fun.db}"
db() { sqlite3 -tabs -noheader "$DB" "$@"; }
samples() {
audio_track_id="$1"
db "SELECT value FROM audio_track_samples WHERE audio_track_id='$audio_track_id' ORDER BY position ASC"
}
to_pcm() {
awk '{printf "%02x\n", $1}' | xxd -r -p
}
play() {
format="$1"
sample_rate="$2"
ffplay -f "$format" -ar "$sample_rate" -b:a 128K -ch_layout mono -autoexit -
}
track_info() {
local audio_id="$1"
db "SELECT format, sample_rate FROM audio_tracks WHERE id='$audio_id'"
}
# ## Main stuff
data="$(track_info "$AUDIO_TRACK_ID")"
format="$(echo "$data" | cut -f1)"
sample_rate="$(echo "$data" | cut -f2)"
echo "-----------$data--------"
samples "$AUDIO_TRACK_ID" | to_pcm | play "$format" "$sample_rate"
|