annotate examples/sound/midi/plinky.scm @ 8:5e3cbbf173aa tip

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