home *** CD-ROM | disk | FTP | other *** search
- '**** CHANGE - sends program changes via MIDI
-
- 'Assumes exec.bmap and midi.bmap in current directory
- LIBRARY "exec.library"
- LIBRARY "midi.library"
-
- DECLARE FUNCTION AllocMem&() LIBRARY
- memf.public& = 1
- memf.clear& = 65536&
-
- DECLARE FUNCTION CreateMSource&() LIBRARY
- DECLARE FUNCTION MRouteSource&() LIBRARY
- DestName$="MidiOut"+CHR$(0)
-
- RouteInfo&=AllocMem&(14&,memf.public&+memf.clear&)
- POKEW RouteInfo& ,-1
- POKEW RouteInfo&+2,-1
-
- Main:
- INPUT "Program to change to? ",Program%
- IF Program%<1 THEN CloseDown
- buf$=CHR$(&HC0)+CHR$(Program%-1)
-
- Source&=CreateMSource&(0&,0&)
- IF Source&=0 THEN PRINT"Can't create Source":GOTO CloseDown
-
- Route&=MRouteSource&(Source&,SADD(DestName$),RouteInfo&)
- IF Route&=0 THEN PRINT"Can't create Route":GOTO CloseDown
-
- CALL PutMidiMsg(Source&,SADD(buf$))
-
- CloseDown:
- IF Route&<>0 THEN CALL DeleteMRoute(Route&)
- IF Source&<>0 THEN CALL DeleteMSource(Source&)
- CALL FreeMem(RouteInfo&,14&)
- LIBRARY CLOSE
-
- PRINT"Program changed to preset # "Program%"!"
-
-
-