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