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