aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/effects.scm
blob: 73b19eb3b462f2582d5c3d297be7030d373090f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
(define-module (starlet effects)
  #:use-module (starlet base)
  #:export (flash
             sinewave))


(define pi (* 2 (acos 0)))

(define (square-wave time hz)
  (if (> (sin (* 2 pi hz time))
         0)
      100
      0))

(define (flash hz)
  (lambda (time)
    (square-wave time hz)))


(define (sinewave hz range-min range-max)
  (lambda (time)
    (+ range-min
       (* (/ (- range-max range-min) 2)
          (+ 1 (sin (* 2 pi hz time)))))))