@Robert
In case you didn't know, 3d sounds work best when the source file is mono
As far as midi, that seems odd that it won't work with enhanced. Here, I put together a small function that is a bare bones midi player using the windows api. See if it will run on your enhanced dbc. If it doesn't (and it should unless you don't have an audio card that supports midi), then something's definately weird because it wouldn't be using dbc built in midi commands, it would be using winmm.dll directly.
Just change the file name to a midi file and path on your system. I could only get it to work by including the chr$(34) (quotation marks) on the outside of the filename.
rem use winapi to load and play midi
rem by latch
rem august 2007
winmm=1
filename$=chr$(34)+"C:\Program Files\Dark Basic Software\Dark Basic\media\music\Action\Opponent.mid"+chr$(34)
open_midi(winmm,filename$)
end
function open_midi(dllnum,filename$)
if dll exist(dllnum)=0
load dll "winmm.dll",dllnum
endif
if dll call exist(dllnum,"mciSendStringA")=0
break "dllnum may exist - or call not exist"
endif
rem open device command
lpszCommand$="open "+filename$+" type sequencer alias m1"
result=call dll(dllnum,"mciSendStringA",lpszCommand$,0,0,0)
call dll dllnum,"mciGetErrorStringA",result,error$,200
print error$
`lpszCommand$="close sequencer"
`result=call dll(dllnum,"mciSendStringA",lpszCommand$,0,0,0)
`call dll dllnum,"mciGetErrorStringA",result,error$,200
`print error$
rem load file into sequencer
result=call dll(dllnum,"mciSendStringA","play m1 from 0",0,0,0)
call dll dllnum,"mciGetErrorStringA",result,error$,200
print error$
endfunction
Enjoy your day.