Mercurial > hg > jslab
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) |