; plays wav-files in row ; ; > al, ar AmbiRow Sfiles, kSpeed, kUserIndex, iFadeTime opcode AmbiRow, aa, S[]kki Sfiles[], kSpeed, kUserIndex, iFadeTime xin kNext init 0 iSize lenarray Sfiles kEnvPoints init 0 kenv linseg 0, iFadeTime, 1, 1, 1 kUserIndex = floor(kUserIndex) aLeft init 0 aRight init 0 kTrig changed kUserIndex kTrigChange delayk kTrig, iFadeTime kLoad init 1 kTrigChange = kTrigChange + kLoad kSkipFirst linseg 1, 0.1, 1, 0.1, 0, iFadeTime + 0.1, 0, 0.1, 1 kTrigChange = kTrigChange * kSkipFirst if (kTrig == 1) && (kNext != kUserIndex) then ;printks "Fade out: %d\n", 0.001, kUserIndex kNext = kUserIndex kEnvPoints = 0 ; timout 0, iFadeTime, fade_out ;reinit fade_out endif if kTrigChange == 1 then ;printks "Change: %d\n", 0.001, kUserIndex kEnvPoints = 1 reinit load_file kLoad = 0 endif kEnv2 portk kEnvPoints, iFadeTime * 0.5 xout kEnv2 * aLeft, kEnv2 * aRight fade_out: ;prints "Do fade\n", 0.001 kenv linseg 1, iFadeTime, 0, 1, 0 ; rireturn load_file: kenv linseg 0, iFadeTime, 1, 1, 1 ;prints "Do load: %d\n", 0.001, kNext iIndex = i(kNext) if (iIndex >= 0) && (iIndex < iSize) then Sfile = Sfiles[iIndex] iStop = 0 else iStop = 1 endif if iStop == 0 then aLeft, aRight diskin2 Sfile, kSpeed else aLeft = 0 aRight = 0 endif rireturn endop