'=========================================================================== ' Subject: PLAY LARGE .WAV FILES Date: 06-08-96 (17:33) ' Author: Mervyn Baldwin Code: QB, QBasic, PDS ' Origin: comp.lang.basic.misc Packet: SOUND.ABC '=========================================================================== 'Some time ago somebody posted here (or alt.basic) a program which 'played Ding.WAV in QuickBASIC. Didn't work for bigger files than 'DING and didn't work at all in QBasic. Here's a fix. Plays the 'biggest WAV file I have (almost 2MB) in QBasic. '------------------------------------------------------ DECLARE SUB SetVoice (OnOff%) CLS VocFile$ = "g:\audio\admz9515.WAV" ' input-file 'NB a WAV file on CD. Almost 2Mb. VocFile% = FREEFILE delay% = 11 ' value for delay OPEN VocFile$ FOR BINARY AS #VocFile% Bytes& = LOF(VocFile%) ' number of bytes BytesRemaining& = Bytes& ' number of remaining bytes BufferMax% = 19000 ' largest buffer 'The maximum buffer size in QBasic is about 19K. ' in QB45 this can be at least &H7F00 bytes (over 32K). Buffer$ = SPACE$(BufferMax%) ' create buffer SetVoice 1 ' Soundblaster on DO BytesRemaining& = BytesRemaining& - BufferLen% IF BytesRemaining& = 0 THEN EXIT DO ' nothing left over? IF BytesRemaining& > BufferMax% THEN ' how many bytes? BufferLen% = BufferMax% ' ELSE BufferLen% = BytesRemaining& ' remaining (