diff options
author | Thomas White <taw@physics.org> | 2021-05-16 11:40:47 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2021-05-16 11:40:47 +0200 |
commit | 417ebc04afe1fb98c6df4480be8725877697069a (patch) | |
tree | d95a5876000c3010eb6cf0826045fc016f2c3528 /guile/starlet/effects.scm | |
parent | 34d48b4402ec09feacc70bf33a10e107cf830c7d (diff) |
Restore effects using clocks
Diffstat (limited to 'guile/starlet/effects.scm')
-rw-r--r-- | guile/starlet/effects.scm | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/guile/starlet/effects.scm b/guile/starlet/effects.scm index fcffb3c..c14f5a0 100644 --- a/guile/starlet/effects.scm +++ b/guile/starlet/effects.scm @@ -19,6 +19,7 @@ ;; along with this program. If not, see <http://www.gnu.org/licenses/>. ;; (define-module (starlet effects) + #:use-module (starlet clock) #:export (flash sinewave)) @@ -32,12 +33,15 @@ 0)) (define (flash hz) - (lambda (time) - (square-wave time hz))) + (let ((clock (make-clock))) + (lambda () + (square-wave (elapsed-time clock) + hz)))) (define (sinewave hz range-min range-max) - (lambda (time) - (+ range-min - (* (/ (- range-max range-min) 2) - (+ 1 (sin (* 2 pi hz time))))))) + (let ((clock (make-clock))) + (lambda () + (+ range-min + (* (/ (- range-max range-min) 2) + (+ 1 (sin (* 2 pi hz (elapsed-time clock))))))))) |