' *** MIDIPLAY.LST *** 2nd GFA-Manual, page 12-2 > PROCEDURE midi_play(last.byte%,VAR midi.byte|(),midi.time%()) ' ' *** Play music in array midi.byte|(); time-data in array midi.time%() ' *** Index of last Midi-byte is last.byte% (see Procedure Midi_record) ' LOCAL m$,k,i%,t%,time%,channel m$="Music-record of ± "+STR$(INT(midi.time%(last.byte%)/200))+" seconds| " m$=m$+"| = stop" ALERT 3,m$,1,"Start",k {ADD(XBIOS(14,1),6)}=0 ! clear keyboard-buffer i%=1 t%=TIMER REPEAT time%=SUB(TIMER,t%) IF midi.time%(i%)<=time% OUT 3,midi.byte|(i%) INC i% ENDIF UNTIL i%=last.byte% OR INKEY$=" " ! end of record or FOR channel=0 TO 15 ! everything off OUT 3,&HB0+channel,123,0 OUT 3,&HB0+channel,64,0 OUT 3,&HB0+channel,1,0 OUT 3,&HE0+channel,0,0 NEXT channel RETURN ' ********* '