@Latch , found it

.The remaining issue(-god-bless-you-microsofts-easy-to-understand-not-documentation-if-it-exists) is that
a.need to set the input on the file.
0 for the currently selected playback device
1 for the second sound device
2 and last the microsoft mapper
b.when you set the input , you hear nothing , but you can see the
signal
c.if you dont set the input you can hear the sound but mci returns error 322 which translatest to "device in use"
set display mode 800,600,32
dak as dword
dk$ as string
Ptr as DWORD
Ctr as DWORD
bi as byte
Ptr=Make Memory(256)
remstart
*Ptr=42
PRINT *Ptr
remend
load dll "winmm.dll",1
rem load file to sount memory
d=call dll(1,"mciSendStringA","open waveAudio!c:\test.wav alias sounter","",0,0)
print "open ->";d
d=call dll(1,"mciSendStringA","play sounter","",0,0)
d=call dll(1,"mciSendStringA","set sounter input 0","",0,0)
d=call dll(1,"mciSendStringA","set sounter output 0","",0,0)
ic=0
print "play ->";d
wait 500
do
cls
print "Playing"
d=call dll(1,"mciSendStringA","status sounter level",Ptr,255)
print "errors ";d
vio=*Ptr
Ctr=Ptr
resul$=""
for a=1 to 255
bi=*Ctr
if bi<>0
print bi
endif
resul$=resul$+chr$(bi)
Ctr=Ctr+1
next a
print resul$
if spacekey()=1
exit
endif
loop
d=call dll(1,"mciSendStringA","close sounter","",0,0)
print "Stopped"
wait key
forgot this

couldnt find any info either.
many people have been tortured by mci "complexity"
Another issue . I think mci was up to winXP .They've replaced it
if im not misinformed.