MIDI Player for Liberty BASIC 4

October, 2003 -- all LB commands, no API calls!

'Alyce Watson, October, 2003
'
'LB4 features used:
'subs as event handlers
'on error
'global variables
'enable
'disable
'playmidi
'stopmidi
'midipos

if val(Version$)<4 then
    notice "For LB4."
    end
end if

NoMainWin
WindowWidth=300:WindowHeight=200

global file$    'filename of current MIDI
file$=""

global howLong  'length of current MIDI
howLong=0

on error goto [handleError]

button #1.open, "Open",OpenFile,UL,10,10,130,30
button #1.exit, "Exit",QuitProg,UL,150,10,130,30
statictext #1.s, "Playing:",10,50,280,60
statictext #1.t, "Position:",10,120,280,60
Open "MIDI Player" for window as #1
#1 "trapclose Quit"

wait

sub OpenFile handle$
    filedialog "Open MIDI","*.mid",fname$
    file$=fname$
    playmidi file$, howLong
    #1.s "Playing: ";file$
    #1.t "Length is ";howLong;". Position is ";midipos()
    timer 1000, checkPlay
    #handle$ "!disable" 'disable open button
    end sub


sub checkPlay
    #1.t "Length is ";howLong;". Position is ";midipos()
    if howLong = midipos( ) then
        stopmidi
        timer 0
        howLong = 0
        #1.t "MIDI is finished."
        #1.open "!enable"
    end if
    end sub


sub Quit handle$
    close #handle$
    if howLong>0 then stopmidi
    end
    end sub

sub QuitProg handle$
    close #1
    if howLong>0 then stopmidi
    end
    end sub

[handleError]
    notice Err$
    wait


Home

Source Code

Utilities

Internet

Games

Graphics

Media Demos

Snippets

DLL's

API Resources

Freeware

LB 4 Companion

Mastering LB 3

LB Workshop

Game Workshop

Links

Index