rendered paste body0 [if]
Any thoughts? I'm not so happy about the "rot rot"
[then]
\ needs NAB's struct words:
: struct{ 0 ;
: field: ( n "fieldname" -- )
over create , +
does> ( o -- o+n ) @ + ;
: }struct constant ;
struct{
1 cells field: dur-inc
1 cells field: dur-max
1 cells field: dur-min
}struct wav-params
: tri-wav ( -- ) create
does> ( dur1 -- dur2 )
2dup dur-min @ > not rot rot
2dup dur-max @ < not rot rot
2swap or if
dup dur-inc @ negate over dur-inc !
then
dur-inc @ +
;
tri-wav update-dur 1 , 4 , 1 ,
\ generates a series: 1 2 3 4 3 2 1 2 3...
\ with repeated calls to update-dur
2 update-dur dup .
update-dur dup .
update-dur dup .
update-dur dup .
update-dur dup .
update-dur dup .
update-dur dup .
update-dur dup .
update-dur dup .
update-dur dup .
update-dur dup .
update-dur dup .