Changes
3 changed files (+30/-18)
-
-
@@ -1,12 +1,13 @@(use-modules (ice-9 binary-ports)) (include "music.scm") ; Bitrate is the number time to sample the music function each second (define bitrate 8000) ; Get the music as a list sampled at the bitrate (define (play t) ( cons (music t) (if (< t 30) (play (+ t (/ 1 bitrate))) (define (play t end) ( cons (* 1/4 (tri (* t (music t)))) (if (< t end) (play (+ t (/ 1 bitrate)) end) '() ) ))
-
@@ -17,4 +18,4 @@ let ((b (modulo (inexact->exact (round (* (+ a 2) 32768))) 65536)))cons (put-u8 (current-output-port) (modulo b 256)) (put-u8 (current-output-port) (quotient b 256)) )) (play 0)) )) (play 0 4))
-
-
-
@@ -1,5 +1,5 @@; Saw wave with a period of 1 second (define (saw t) ( ; Triangle wave with a period of 1 second (define (tri t) ( let ((m (floor-remainder (+ t (/ 1 4)) 1))) (if (< m 1/2) (- (* 4 m) 1)
-
@@ -11,7 +11,7 @@ (define (note freq start len) (lambda (t) ( if (or (< t start) (>= t (+ start len))) 0 (saw (* freq t)) freq ) ))
-
-
-
@@ -1,19 +1,30 @@(include "lib.scm") (define (melody t) ( apply + (map (lambda (octave pitch start len) ((note (getfreq octave pitch) start len) t)) ;'(3) ;(cons (* 3 (sin t)) '()) ;'(0) ;'(6.28) '(3 3 3 3 3 3 3 3 3 3) '(4 8 4 11 4 2 8 4 11 4) '(0 1/4 3/4 1 5/4 3/2 7/4 9/4 5/2 11/4) '(1/4 1/4 1/4 1/4 1/4 1/4 1/4 1/4 1/4 1/4) apply + ( map (lambda (x) ( apply (lambda (octave pitch start len) ((note (getfreq octave pitch) start len) t)) x )) '( (2 5 1 1) (2 8 4 1) (3 5 7 1) (3 0 9 1) (2 10 10 1) (2 8 12 1) (2 7 15 1) (2 8 17 1) (2 7 18 1) (3 3 19 1) (2 8 21 1) (3 0 22 1) (3 3 23 1) (3 5 25 1) (3 0 30 1) (3 3 31 1) ) ) )) (define (music t) ( melody (floor-remainder t 3) melody (* t 8) ))
-