• # version 3 !

    Posté par . En réponse au journal TapTempo en emacs lisp. Évalué à 3.

    En tenant compte des différentes remarques, voici une nouvelle version

    (setq t-start nil)
    (setq t-end nil)
    (setq t-list (list))
    (setq t-data-num 9)
    (defun tap ()
     "Record a tap"
     (interactive)
     (setq t-end (float-time()))
     (if t-start (push (- t-end t-start) t-list))
     (if (> (length t-list) t-data-num)
     (progn
     (message "BPM %S" (* 60 (/ 1. (/ (float (apply '+ t-list)) (length t-list)))))
     (setq t-list (reverse (cdr (reverse t-list))))
     )
     (message "Result available in %S tap"(- t-data-num (length t-list)))
     )
     (setq t-start t-end)
     )
    (global-set-key [C-f2] 'tap)