(in-package :cm)
(note 64) ;; -> E4
(keynum 'e4) ;; -> 64
(keynum 440 :hz) ;; -> 69
(note 440 :hz) ;; -> A4
(hertz 'a4) ;; -> 440.0
(hertz 69) ;; -> 440.0
(between 34 52) ;; -> irgendeine ganze Zahl zwischen 34 und 52
(between 34.0 52.0) ;; -> irgendeine Fließkommazahl zwischen 34.0 und 52.0
(shuffle '(1 2 3 4 5 6)) ;; -> ergibt neue Liste mit Listenwerten in
;; Zufallsreihenfolge
(pick 1 2 3 4 5 6)
(pickl '(1 2 3 4 5 6) :avoid 2)
(odds 0.2) ;; -> durchschnittlich 1 von 5 Werten ist T, ansonsten sind alle Werte NIL.
(ran :type :gaussian) ;; -> Zufallswerte mit verschiedenen Verteilungsmöglichkeiten
;;; Beispiel für 1000 Werte in Gausscher Normalverteilung:
(loop for x below 1000 collect (ran :type :gaussian))
;; Interpolation
(interpl 50 '(0 0 100 1)) ;; -> 1/2
(interpl 50 '(0 0 100 1) :scale 2) ;; -> 1
(interpl 50 '(0 0 100 1) :scale 2 :offset 3) ;; -> 4
(interpl 175 '(0 0 100 1 200 0)) ;; -> 1/4