;@ map d ENVtim
;@ map d BUT007

;TODO: should be polymorphous

;@ args ii,kkk,kk
opcode EnvH, 0, kk
	kSW, kH xin
	kIn zkr 1 ; CHANGE
	kAM zkr 2; CHANGE
	kTrig zkr 3; CHANGE
	kTab[][] init 2,4 ;MAYBE GLOBAL?
	kTab fillarray 1,-1,  1, -1,  0, 1,  -1, 0 ;double check
Init:
	kEnv = 0
	kTimer = 0
	if kTrig == 0 then goto Run 
		kEnv = 1
Run:	
	kTimer += kEnv/kr ; KR TIME STEP
	if kTimer >= kH then goto Init
	kEnvH = kTab[1][kSW]*kEnv*(1-kAM)+kTab[2][kSW] ; CHECK AM RANGE
	zkw kEnvH, 1 ; CHANGE
	zkw kIn*kEnvH, 2 ; CHANGE
endop
