annotate examples/sound/midi/plinky.scm @ 1:5df24c91468d

Oh my what a mess.
author samer
date Fri, 05 Apr 2019 16:26:00 +0100
parents bf79fb79ee13
children b67a33c44de7
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@0 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
samer@0 23 ; program 46 is cool!
samer@0 24 ; so are 10, 12, 111
samer@0 25 (define midiin (VVector. "midiin" 64))
samer@0 26 (define synth (MidiSynth. midiin))
samer@0 27 (define m 0)
samer@0 28
samer@0 29 (addtasks
samer@0 30 (sub 4 (task
samer@0 31 (.timesEquals matrix (- 1 (.get decay)))
samer@0 32 (.add matrix vgen)
samer@0 33 (.changed matrix)
samer@0 34 ))
samer@0 35
samer@0 36 (Ops.transfer rowcol midiin)
samer@0 37 (Ops.update midiin)
samer@0 38 synth
samer@0 39 (task
samer@0 40 (.setRow rowcol m)
samer@0 41 (set! m (if (< m (- M 1)) (+ m 1) 0))
samer@0 42 )
samer@0 43 )
samer@0 44
samer@0 45 (define (load-file fn)
samer@1 46 (let ((f (ifstream fn)))
samer@0 47 (.load matrix f)
samer@0 48 (.close f)))
samer@0 49
samer@0 50 (define (f1) (load-file "walking_zither2"))
samer@0 51 (define (f2) (load-file "walking_zither3"))
samer@0 52 (define (f3) (load-file "walking_zither4"))
samer@1 53 (expose)
samer@1 54 (expose synth)