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