Refactor code
This commit is contained in:
parent
40867d8991
commit
230494f347
|
@ -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 @@
|
|||
cons
|
||||
(put-u8 (current-output-port) (modulo b 256))
|
||||
(put-u8 (current-output-port) (quotient b 256))
|
||||
)) (play 0))
|
||||
)) (play 0 4))
|
||||
|
|
6
lib.scm
6
lib.scm
|
@ -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 @@
|
|||
lambda (t) (
|
||||
if (or (< t start) (>= t (+ start len)))
|
||||
0
|
||||
(saw (* freq t))
|
||||
freq
|
||||
)
|
||||
))
|
||||
|
||||
|
|
33
music.scm
33
music.scm
|
@ -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)
|
||||
))
|
||||
|
|
Loading…
Reference in a new issue