Blog: 2026-05-16

From razwiki
Jump to navigation Jump to search
function display_bpm
    set -U beats (gdate +%s.%3N) $beats[1..3]

    if test (count $beats) -lt 4
        return
    end

    set diffs \
        (math $beats[1] - $beats[2]) \
        (math $beats[2] - $beats[3]) \
        (math $beats[3] - $beats[4])

    set avg (math "($diffs[1] + $diffs[2] + $diffs[3]) / 3")
    set bps (math 1 / $avg)
    set bpm (math "$bps * 60")

    if test $bpm -gt 55
        printf "%.0f " $bpm
    end
end