annotate examples/sound/midi/plinky.scm @ 0:bf79fb79ee13

Initial Mercurial check in.
author samer
date Tue, 17 Jan 2012 17:50:20 +0000
parents
children 5df24c91468d
rev   line source
samer@0 1 (load "midi.scm")
samer@0 2 (import "samer.maths.random.*")
samer@0 3
samer@0 4 (put "regulated" #t)
samer@0 5 (put "colormap" (redgreen))
samer@0 6 (put "symmetric" #t)
samer@0 7
samer@0 8 (tasks)
samer@0 9
samer@0 10 (define N 64)
samer@0 11 (define M 64)
samer@0 12
samer@0 13 (define matrix (Matrix. "matrix" M N))
samer@0 14 (define out (VVector. "out" N))
samer@0 15 (define vgen (VGenerator. "gen"))
samer@0 16 (define rowcol (RowColumn. matrix))
samer@0 17 (define decay (VDouble. "decay" 0.002))
samer@0 18
samer@0 19 (.setGenerator vgen (Binary.))
samer@0 20
samer@0 21
samer@0 22 ; program 46 is cool!
samer@0 23 ; so are 10, 12, 111
samer@0 24 (define midiin (VVector. "midiin" 64))
samer@0 25 (define synth (MidiSynth. midiin))
samer@0 26 (define m 0)
samer@0 27
samer@0 28 (addtasks
samer@0 29 (sub 4 (task
samer@0 30 (.timesEquals matrix (- 1 (.get decay)))
samer@0 31 (.add matrix vgen)
samer@0 32 (.changed matrix)
samer@0 33 ))
samer@0 34
samer@0 35 (Ops.transfer rowcol midiin)
samer@0 36 (Ops.update midiin)
samer@0 37 synth
samer@0 38 (task
samer@0 39 (.setRow rowcol m)
samer@0 40 (set! m (if (< m (- M 1)) (+ m 1) 0))
samer@0 41 )
samer@0 42 )
samer@0 43
samer@0 44 (define (load-file fn)
samer@0 45 (let ((f (istream fn)))
samer@0 46 (.load matrix f)
samer@0 47 (.close f)))
samer@0 48
samer@0 49 (define (f1) (load-file "walking_zither2"))
samer@0 50 (define (f2) (load-file "walking_zither3"))
samer@0 51 (define (f3) (load-file "walking_zither4"))
samer@0 52