/examples/temporal_recursion_101.scm
http://github.com/digego/extempore · Scheme · 30 lines · 15 code · 5 blank · 10 comment · 0 complexity · 682ed1dd6ed0564cff2cc5a8de81e620 MD5 · raw file
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;
- ; Good old temporal recursion at it's simplest
- ;
- ;
- ; temporal recursion
- ;
- (define tr
- (lambda (t x rate)
- (println t x)
- (callback (+ t rate) 'tr (+ t rate) x rate)))
- (let ((t (now)))
- tr t "a" (* 4 44100))
- (tr t " b" (* 2 44100))
- (tr t " c" 44100))
- ;
- ; metro also works
- ;
- (define metro-test
- (lambda (beat x dur)
- (println x beat)
- (callback (*metro* (+ beat dur)) 'metro-test (+ beat dur)
- x dur)))
- (metro-test (*metro* 'get-beat 4.0) "A" 2)
- (metro-test (*metro* 'get-beat 4.0) "--B" 1/2)