|
|
|
|
|
|
SOUND channel+flags, envelope, FNfreqout(frequency), duration
|
|
FOR freq = 500 TO 1000 SOUND 1, -15, FNfreqout(freq), 1 NEXT END DEF FNfreqout(f) LOCAL I% : PRIVATE ftab%, indx& IF ftab% = 0 THEN LOCAL base% SYS "GetModuleHandle", 0 TO base% FOR I% = base% TO base% + 65534 STEP 2 IF !I% = &03550354 IF I%!4 = &06060606 EXIT FOR NEXT IF I% > base% + 65534 ERROR 100, "Cannot locate frequency table" ftab% = I% + 8 SYS "VirtualProtect", ftab% AND -&1000, &2000, &40, ^I% TO I% IF I% = 0 ERROR 100, "Cannot make memory image writable" ENDIF indx& += 1 : IF indx& = 0 indx& = 1 I% = 2 * indx& ftab%!I% = ftab%!I% AND &FFFF0000 OR INT(f * &10000 / 22050 + 0.5) = indx&
|
|
|