home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / music / sfx-030m / sfx-data / _rexx / applysine.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1998-03-08  |  1.2 KB  |  62 lines

  1. /* SFX ApplySine */
  2.  
  3. OPTIONS RESULTS
  4. ADDRESS REXX_SFX
  5.  
  6. okay=1
  7. IF(~SHOW('l','rexxmathlib.library')) THEN okay=ADDLIB('rexxmathlib.library',0,-30,0)
  8. IF okay=1 THEN DO
  9.     GetActiveBuffer
  10.     buf1=RESULT
  11.     IF buf1>-1 THEN DO
  12.         GetLength buf1
  13.         slen=RESULT
  14.         GetRate buf1
  15.         srat=RESULT
  16.         GetChannels buf1
  17.         cha=RESULT
  18.  
  19.         NewBuffer slen srat cha
  20.         buf2=RESULT
  21.         IF buf2>-1 THEN DO
  22.             pif=0.0001917475985        /* 6.283185307/32768.0 */
  23.             brk=0
  24.             DO ch=0 TO cha
  25.                 IsChannelActive buf1 ch
  26.                 IF RESULT>0 THEN DO
  27.                     InitProWin slen '"Working on ApplySine['ch']"'
  28.                     pwi=RESULT
  29.                     IF pwi>-1 THEN DO
  30.                         DO pos=0 TO slen
  31.                             RefrProWin pwi pos
  32.                             IF RESULT=0 THEN DO
  33.                                 GetSampleValue buf1 ch pos
  34.                                 sval=RESULT*pif
  35.                                 sval=32767.0*sin(sval)
  36.                                 PutSampleValue buf2 ch pos sval
  37.                             END
  38.                             ELSE DO
  39.                                 brk=1
  40.                                 LEAVE pos
  41.                             END
  42.                         END
  43.                         RemoveProWin pwi
  44.                     END
  45.                     ELSE DO
  46.                         Message '"Can`t open ProceedWindow !"'
  47.                         LEAVE ch
  48.                     END
  49.                 END
  50.                 IF brk=1 THEN LEAVE ch
  51.             END
  52.             RedrawBuffer buf2
  53.         END
  54.         ELSE Message '"Can`t add samplebuffer !"'
  55.     END
  56.     ELSE Message '"No sample to operate on !"'
  57.     ActivateSFX
  58. END
  59. ELSE Message '"Can`t open rexxmathlib.library !"'
  60. ActivateSFX
  61. EXIT
  62.