~pbatch/gestvm

c423000f3601f9b3c29ea0371b1148b1ceb766d2 — Paul Batchelor 1 year, 2 months ago ad3dadd
added current value override instruction
4 files changed, 63 insertions(+), 0 deletions(-)

A examples/cur.lil
A examples/cur.tal
M examples/render.sh
M gestvm.org
A examples/cur.lil => examples/cur.lil +21 -0
@@ 0,0 1,21 @@

gestvmnew gvm

gestvmload [grab gvm] cur.rom


phasor 2 0
hold zz
regset zz 0

gestvmnode [grab gvm] [gestvmsym cur.rom mel] [regget 0]
add zz 60
mtof zz
blsaw zz

butlp zz 800

unhold [regget 0]

wavout zz cur.wav
computes 15

A examples/cur.tal => examples/cur.tal +34 -0
@@ 0,0 1,34 @@
%NUM { #24 DEO }
%DEN { #25 DEO }
%NEXT { #26 DEO }
%CURR { #2b DEO }
%NOSWAP { #2c DEO }
%NOTE { #3c ADD NEXT }
%BHVR { #27 DEO }

|0100

@mel

( set up first value in NEXT )
#07 NEXT
BRK

( eval twice on init: sets cur/next to be 7,5 )
#01 NUM #04 DEN #02 BHVR
#05 NEXT
BRK

( override: set current to be 0 instead of 5 )
( this will cause an audible discontinuity )
#00 CURR
#01 NUM #02 DEN #00 BHVR
#0c NEXT
BRK
( do it again, and go back to the top )
#00 CURR
#01 NUM #02 DEN #00 BHVR

( no break, loops and sets next at top )

;mel JMP2

M examples/render.sh => examples/render.sh +1 -0
@@ 10,3 10,4 @@ render sequence
render skew
render weight
render expon
render cur

M gestvm.org => gestvm.org +7 -0
@@ 1213,6 1213,13 @@ case 10:
    gvm->interp = d->dat[port];
    break;
#+END_SRC
*** Interpolator Current (11)
#+NAME: port_commands
#+BEGIN_SRC c
case 11:
    gvm->cur = (SKFLT) d->dat[port];
    break;
#+END_SRC
** Tick
The =tick= function is called at audio-rate. It reads in
a conductor phasor signal, and uses it to determine whether