home *** CD-ROM | disk | FTP | other *** search
-
- ' [MIDIMATE.BAS]
- ' This source document is apart of the ENhanCed Hisoft ApplicatioN toolkiT (ENCHANT)
- ' Developed by Matthew Bacon & Paul Jones, © 1997-1998 Matthew Bacon & Paul Jones
-
- DEFINT a-z
- REM $include midimate.bh ' Declare *.BH file created from resource file
- REM $include toolbx_a.bas ' Request the file TOOLBX_A.BAS (i.e. GEM Toolkit)
- REM $include error.bas ' Request the file ERROR.BAS
- REM $include midi.bas ' Request the file MIDI.BAS
- REM $include st-guide.bas ' Request the file ST-GUIDE.BAS
-
- CALL StartProgram (CURDIR$+"\MIDIMATE.RSC",FORM_MENU,MENU_QUIT,FORM_ICONIFY)
- junk=xdialog (FORM_ABOUT,0,0,1,0) ' Display dialog
- CALL initFORM_MAIN
- main_handle=OpenFormWindow(MyProgram$,FORM_MAIN,0,0,VARPTRS(closeFORM_MAIN))
- CALL xENCHANTloop ' Call program loop
- CALL StopProgram
-
-
- FUNCTION HandleUserClose(BYVAL WindowHandle)
- SHARED main_handle
-
- SELECT CASE WindowHandle
- CASE main_handle : Finished_Flag=-1
- END SELECT
- END FUNCTION
-
- SUB HandleUserMessages
- END SUB
-
- SUB HandleUserKeys (ASCII$,key_pressed,kstate)
- END SUB
-
- SUB HandleUserClicks (clicks,kstate,mx,my)
- END SUB
-
-
- SUB TextWindLoop (BYVAL key_pressed) ' These sub-routines are not used, but are required
- END SUB ' as they are declared within the GEM Toolkit
-
- SUB TextWindArrowed(BYVAL WindowHandle,BYVAL which)
- END SUB
-
-
- SUB HandleUserMenu (WindowHandle,item,title)
- SHARED MyProgram$,main_handle
-
- SELECT CASE item
- CASE MENU_ABOUT : junk=xdialog (FORM_ABOUT,0,0,1,0)
- CASE MENU_OPEN
- main_handle=OpenFormWindow(MyProgram$,FORM_MAIN,0,0,VARPTRS(closeFORM_MAIN))
- CASE MENU_STG_TITLE : junk=STGuide (CURDIR$+"\MIDIMATE.HYP","Title")
- CASE MENU_STG_CONTENT : junk=STGuide (CURDIR$+"\MIDIMATE.HYP","Contents")
- CASE MENU_STG_INDEX : junk=STGuide (CURDIR$+"\MIDIMATE.HYP","Index")
- END SELECT
- END SUB
-
-
- SUB closeFORM_MAIN
- SHARED octave_popup,channel_popup
- STATIC channel,octave,velocity,instrument,note,dummy
-
- SelectTree FORM_MAIN
- octave=VAL(RIGHT$(getobj_text$(MAIN_OCTAVE),2)) ' Extract values from strings
- channel=VAL(RIGHT$(getobj_text$(MAIN_CHANNEL),2))
- velocity=VAL(getobj_text$(MAIN_VELOCITY))
- instrument=VAL(getobj_text$(MAIN_INSTR))
-
- SELECT CASE CommonObj
- CASE MAIN_C : note=0
- CASE MAIN_C_SHARP : note=1
- CASE MAIN_D : note=2
- CASE MAIN_E_FLAT : note=3
- CASE MAIN_E : note=4
- CASE MAIN_F : note=5
- CASE MAIN_F_SHARP : note=6
- CASE MAIN_G : note=7
- CASE MAIN_A_FLAT : note=8
- CASE MAIN_A : note=9
- CASE MAIN_B_FLAT : note=10
- CASE MAIN_B : note=11
- CASE MAIN_OCTAVE
- octave_popup=popup(0,MAIN_OCTAVE,FORM_POPUPS,POP_OCTAVE,octave_popup)
- IF octave_popup THEN
- setobj_poptext MAIN_OCTAVE," "+getobj_poptext$(FORM_POPUPS,octave_popup)
- redraw_object MAIN_OCTAVE : octave=VAL(RIGHT$(getobj_text$(MAIN_OCTAVE),2))
- END IF
- CASE MAIN_OCTAVE1
- radio_poptext MAIN_OCTAVE,FORM_POPUPS,POP_OCTAVE,octave_popup
- redraw_object MAIN_OCTAVE : octave=VAL(RIGHT$(getobj_text$(MAIN_OCTAVE),2))
- CASE MAIN_CHANNEL
- channel_popup=popup(0,MAIN_CHANNEL,FORM_POPUPS,POP_CHANNEL,channel_popup)
- IF channel_popup THEN
- setobj_poptext MAIN_CHANNEL," "+getobj_poptext$(FORM_POPUPS,channel_popup)
- redraw_object MAIN_CHANNEL : channel=VAL(RIGHT$(getobj_text$(MAIN_CHANNEL),2))
- END IF
- CASE MAIN_CHANNEL1
- radio_poptext MAIN_CHANNEL,FORM_POPUPS,POP_CHANNEL,channel_popup
- redraw_object MAIN_CHANNEL : channel=VAL(RIGHT$(getobj_text$(MAIN_CHANNEL),2))
- CASE MAIN_VUP
- dummy=VAL(getobj_text$(MAIN_VELOCITY))
- INCR dummy : IF dummy>127 THEN dummy=127
- setobj_text MAIN_VELOCITY,LTRIM$(STR$(dummy))
- redraw_object MAIN_VELOCITY
- velocity=VAL(getobj_text$(MAIN_VELOCITY)) : CALL cntrl_volume (channel,velocity)
- CASE MAIN_VDOWN
- dummy=VAL(getobj_text$(MAIN_VELOCITY))
- DECR dummy : IF dummy<0 THEN dummy=0
- setobj_text MAIN_VELOCITY,LTRIM$(STR$(dummy))
- redraw_object MAIN_VELOCITY
- velocity=VAL(getobj_text$(MAIN_VELOCITY)) : CALL cntrl_volume (channel,velocity)
- CASE MAIN_INSTRUP
- dummy=VAL(getobj_text$(MAIN_INSTR))
- INCR dummy : IF dummy>127 THEN dummy=127
- setobj_text MAIN_INSTR,LTRIM$(STR$(dummy))
- redraw_object MAIN_INSTR
- instrument=VAL(getobj_text$(MAIN_INSTR)) : CALL program_change (channel,instrument)
- CASE MAIN_INSTRDOWN
- dummy=VAL(getobj_text$(MAIN_INSTR))
- DECR dummy : IF dummy<0 THEN dummy=0
- setobj_text MAIN_INSTR,LTRIM$(STR$(dummy))
- redraw_object MAIN_INSTR
- instrument=VAL(getobj_text$(MAIN_INSTR)) : CALL program_change (channel,instrument)
- CASE MAIN_ALLNOTESOFF : CALL all_notes_off
- END SELECT
-
- SELECT CASE CommonObj
- CASE MAIN_C TO MAIN_B_FLAT
- note_on channel,36+(12*(octave-1))+note,velocity ' Play note
- DO ' Wait for mouse button to be released
- LOOP UNTIL MOUSE(2)=0
- note_off channel,36+(12*(octave-1))+note,0 ' Turn note off
- END SELECT
- END SUB
-
-
- SUB initFORM_MAIN ' set-up initial values in dialog
- SHARED octave_popup,channel_popup
- STATIC oldtree&
-
- oldtree&=tree& : SelectTree FORM_POPUPS
- octave_popup=POP_O1
- channel_popup=POP_C1
-
- include_state octave_popup,mask_checked+mask_selected
- include_state channel_popup,mask_checked+mask_selected
-
- SelectTree FORM_MAIN
- setobj_poptext MAIN_OCTAVE," "+getobj_poptext$(FORM_POPUPS,octave_popup)
- setobj_poptext MAIN_CHANNEL," "+getobj_poptext$(FORM_POPUPS,channel_popup)
-
- setobj_text MAIN_VELOCITY,"64"
- setobj_text MAIN_INSTR,"0"
- tree&=oldtree&
- END SUB
-
- '[*END OF FILE*]
-