aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/effects.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guile/starlet/effects.scm')
-rw-r--r--guile/starlet/effects.scm16
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)))))))))