I look at BCX-basic as a modernized qbasic. This simple code creates a Windows GUI program that plays a midi instrumental music file. To keep it simple, the file it looks for is "TheRose.mid" file. If you don't have this file, you have the option of editing the code, or simply to rename a midi file you have and stick it in the working folder.

' uses the mci-library to play a midi file (.mid)
' the mci-libary winmm.lib is in PellesC\lib\win
' needs BCX basic, download the free package from:
' http://www.rjpcomputing.com/programming/bcx/devsuite.html

$LIBRARY <winmm.lib>

' this generates WinMain() and sets the Classname
GUI "MIDI3"

CONST ID_Button1 = 101

DIM Form1 AS HWND
DIM Butt1 AS CONTROL
DIM MciCommand$

' required to create the form and it's components
SUB FORMLOAD
  Form1 = BCX_FORM("Play a Midi ...",30,20,140,40 )
  Butt1 = BCX_BUTTON("Play",Form1,ID_Button1,10,10,30,12)
  DECLARE FUNCTION MCI_Execute LIB "winmm.dll" ALIAS "mciExecute" (A$)
  Show(Form1)
END SUB

' code between BEGIN EVENTS/END EVENTS takes care of the event messages
BEGIN EVENTS
SELECT CASE CBMSG
  CASE WM_CREATE
    EXIT FUNCTION
  CASE WM_COMMAND
    IF CBCTL = ID_Button1 THEN
      '
      ' this plays TheRose.mid or change to whatever you have ...
      '
      MciCommand$ = "play TheRose.mid"
      MCI_Execute (MciCommand$)
      EXIT FUNCTION
    END IF
  ' clean up and exit properly
  CASE WM_CLOSE
    mciSendString ("close all",0,0,0)
    DestroyWindow (Form1)
    EXIT FUNCTION
END SELECT
END EVENTS

The article starter has earned a lot of community kudos, and such articles offer a bounty for quality replies.