view 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
line wrap: on
line source
(load "midi.scm")
(load "streams.scm")
(import "samer.maths.random.*")

(put "regulated" #t)
(put "colormap" (redgreen))
(put "symmetric" #t)

; (tasks)

(define N 64)
(define M 64)

(define matrix	(Matrix. "matrix" M N))
(define out   	(VVector. "out" N))
(define vgen  	(VGenerator. "gen"))
(define rowcol	(RowColumn. matrix))
(define decay 	(VDouble. "decay" 0.002))

(.setGenerator vgen (Binary.))

(define midiin (VVector. "midiin" 64))
(define synth (MidiWithAftertouch. midiin))
(define m 0)

(addtasks
	(sub 4 (task
		(.timesEquals matrix (- 1 (.get decay)))
		(.add matrix vgen)
		(.changed matrix)
	))

	(Ops.transfer rowcol midiin)
	(Ops.update midiin)
	synth
	(task
		(.setRow rowcol m)
		(set! m (if (< m (- M 1)) (+ m 1) 0))
	)
)

(define (load-file fn)
	(let ((f (ifstream fn)))
		(.load matrix f)
		(.close f)))

(define (f1) (load-file "walking_zither2"))
(define (f2) (load-file "walking_zither3"))
(define (f3) (load-file "walking_zither4"))
(expose)
(expose synth)