home *** CD-ROM | disk | FTP | other *** search
- /* SFX ApplySine */
-
- OPTIONS RESULTS
- ADDRESS REXX_SFX
-
- okay=1
- IF(~SHOW('l','rexxmathlib.library')) THEN okay=ADDLIB('rexxmathlib.library',0,-30,0)
- IF okay=1 THEN DO
- GetActiveBuffer
- buf1=RESULT
- IF buf1>-1 THEN DO
- GetLength buf1
- slen=RESULT
- GetRate buf1
- srat=RESULT
- GetChannels buf1
- cha=RESULT
-
- NewBuffer slen srat cha
- buf2=RESULT
- IF buf2>-1 THEN DO
- pif=0.0001917475985 /* 6.283185307/32768.0 */
- brk=0
- DO ch=0 TO cha
- IsChannelActive buf1 ch
- IF RESULT>0 THEN DO
- InitProWin slen '"Working on ApplySine['ch']"'
- pwi=RESULT
- IF pwi>-1 THEN DO
- DO pos=0 TO slen
- RefrProWin pwi pos
- IF RESULT=0 THEN DO
- GetSampleValue buf1 ch pos
- sval=RESULT*pif
- sval=32767.0*sin(sval)
- PutSampleValue buf2 ch pos sval
- END
- ELSE DO
- brk=1
- LEAVE pos
- END
- END
- RemoveProWin pwi
- END
- ELSE DO
- Message '"Can`t open ProceedWindow !"'
- LEAVE ch
- END
- END
- IF brk=1 THEN LEAVE ch
- END
- RedrawBuffer buf2
- END
- ELSE Message '"Can`t add samplebuffer !"'
- END
- ELSE Message '"No sample to operate on !"'
- ActivateSFX
- END
- ELSE Message '"Can`t open rexxmathlib.library !"'
- ActivateSFX
- EXIT
-