[Wine] WINE ALSA MIDI

Holly Bostick motub at planet.nl
Fri Sep 9 06:35:39 CDT 2005


Christian Costa schreef:
> Hi,
> 
> Powertab works well for me. I've just downloaded Lose Your Marbles
> and music works fine (apart that it starts with a delay in some
> cases).
> 
> Could you both enable midi channel (WINEDEBUG=+midi wine .....) and
> send the log?
> 
Hi Christian, sorry it took so long to get back to you, and thanks for
your help.

I played the entire first round of lose your marbles and the music never
came up (eliminating the 'delay in it starting' possibility).

Looking at the log, I can see why (there's a fair bit more but the
obvious problem is right at the beginning:

WINEDEBUG=+midi wine marbles.exe
trace:midi:OSS_MidiInit Initializing the MIDI variables.
===>warn:midi:midiOpenSeq Can't open MIDI device '/dev/sequencer' ! (No
===>such device). If your program needs this (probably not): load MIDI
===>sequencer kernel driver !
trace:midi:OSS_midMessage (0000, 0064, 00000000, 00000000, 00000000);
trace:midi:OSS_midMessage (0000, 0035, 00000000, 00000000, 00000000);
trace:midi:OSS_modMessage (0000, 0064, 00000000, 00000000, 00000000);
trace:midi:OSS_modMessage (0000, 0001, 00000000, 00000000, 00000000);
fixme:ddraw:Main_DirectDraw_SetCooperativeLevel
(0x40366458)->(00010022,00000011)
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Cannot change screen BPP from
32 to 8
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Cannot change screen BPP from
32 to 8
fixme:x11drv:X11DRV_DDHAL_CreatePalette stub
fixme:ddraw:DIB_DirectDrawSurface_Blt dwFlags DDBLT_WAIT and/or
DDBLT_ASYNC: can't handle right now.
fixme:x11drv:X11DRV_DDHAL_CreatePalette stub
fixme:x11drv:X11DRV_DDHAL_CreatePalette stub
fixme:x11drv:X11DRV_DDHAL_CreatePalette stub
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
477, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixOne underrun on sound buffer 0x403f6d10
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
fixme:x11drv:X11DRV_DDHAL_CreatePalette stub
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
1291, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
555, block size = 2
err:dsound:DSOUND_MixInBuffer Mixpos (10328) past buflen (10326), capping...
err:dsound:DSOUND_MixInBuffer Mixpos (10328) past buflen (10326), capping...
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
685, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
4481, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
539, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
537, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
1061, block size = 2
err:dsound:DSOUND_MixInBuffer Mixpos (6630) past buflen (6628), capping...
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
521, block size = 2
err:dsound:DSOUND_MixOne underrun on sound buffer 0x403aff10
err:dsound:DSOUND_MixOne underrun on sound buffer 0x403aff10
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
2601, block size = 2
err:dsound:DSOUND_MixOne underrun on sound buffer 0x403ff0e0

I don't think the repeated dsound 'errors' are relevant, as the sound
effects play (which I assume is what dsound is dealing with), and dsound
under wine, is not (as far as I understand) perfect anyway.

OK, so wine is claiming that I don't have /dev/sequencer. But of course
I do:

 la /dev/sequencer
lrwxrwxrwx  1 root root 15 sep  6 20:40 /dev/sequencer -> sound/sequencer

And as you see, it's available to everybody, so I have no idea why wine
is reporting 'device not found'.

OK, I just realized that the above was using OSS for sound. So I made a
per-app default that marbles.exe should use ALSA sound, and here is the
result from that (perceived results: midi does not play, sound effects
are 'loopy', so sound is perceptibly 'worse' under ALSA than OSS, which
is why I generally use OSS):

WINEDEBUG=+midi wine marbles.exe
ALSA lib pcm_dmix.c:746:(snd_pcm_dmix_open) The dmix plugin supports
only playback stream
trace:midi:ALSA_MidiInit Initializing the MIDI variables.
trace:midi:ALSA_AddMidiPort OUT (0:System:kernel:0:Timer:0)
trace:midi:ALSA_AddMidiPort IN  (0:System:kernel:1:Announce:0)
trace:midi:ALSA_AddMidiPort OUT (128:TiMidity:user:0:TiMidity port 0:2)
trace:midi:ALSA_AddMidiPort MidiOut[0]	name='L"TiMidity"' techn=1
voices=16 notes=16 chnMsk=ffff support=3
	ALSA info: midi dev-type=2, capa=0
trace:midi:ALSA_AddMidiPort OUT (128:TiMidity:user:1:TiMidity port 1:2)
trace:midi:ALSA_AddMidiPort MidiOut[1]	name='L"TiMidity"' techn=1
voices=16 notes=16 chnMsk=ffff support=3
	ALSA info: midi dev-type=2, capa=0
trace:midi:ALSA_AddMidiPort OUT (128:TiMidity:user:2:TiMidity port 2:2)
trace:midi:ALSA_AddMidiPort MidiOut[2]	name='L"TiMidity"' techn=1
voices=16 notes=16 chnMsk=ffff support=3
	ALSA info: midi dev-type=2, capa=0
trace:midi:ALSA_AddMidiPort OUT (128:TiMidity:user:3:TiMidity port 3:2)
trace:midi:ALSA_AddMidiPort MidiOut[3]	name='L"TiMidity"' techn=1
voices=16 notes=16 chnMsk=ffff support=3
	ALSA info: midi dev-type=2, capa=0
trace:midi:ALSA_MidiInit End
trace:midi:ALSA_midMessage (0000, 0064, 00000000, 00000000, 00000000);
trace:midi:ALSA_midMessage (0000, 0035, 00000000, 00000000, 00000000);
trace:midi:ALSA_modMessage (0000, 0064, 00000000, 00000000, 00000000);
trace:midi:ALSA_modMessage (0000, 0001, 00000000, 00000000, 00000000);
trace:midi:ALSA_modMessage (0000, 0002, 00000000, 4057F4B4, 00000054);
trace:midi:modGetDevCaps (0000, 0x4057f4b4, 00000054);
trace:midi:ALSA_modMessage (0001, 0002, 00000000, 4057F4B4, 00000054);
trace:midi:modGetDevCaps (0001, 0x4057f4b4, 00000054);
trace:midi:ALSA_modMessage (0002, 0002, 00000000, 4057F4B4, 00000054);
trace:midi:modGetDevCaps (0002, 0x4057f4b4, 00000054);
trace:midi:ALSA_modMessage (0003, 0002, 00000000, 4057F4B4, 00000054);
trace:midi:modGetDevCaps (0003, 0x4057f4b4, 00000054);
fixme:ddraw:Main_DirectDraw_SetCooperativeLevel
(0x4036a518)->(00010022,00000011)
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Cannot change screen BPP from
32 to 8
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Cannot change screen BPP from
32 to 8
fixme:x11drv:X11DRV_DDHAL_CreatePalette stub
fixme:ddraw:DIB_DirectDrawSurface_Blt dwFlags DDBLT_WAIT and/or
DDBLT_ASYNC: can't handle right now.
fixme:x11drv:X11DRV_DDHAL_CreatePalette stub
fixme:x11drv:X11DRV_DDHAL_CreatePalette stub
trace:midi:ALSA_modMessage (0000, 0002, 00000000, 4057FD88, 00000054);
trace:midi:modGetDevCaps (0000, 0x4057fd88, 00000054);
trace:midi:ALSA_modMessage (0001, 0002, 00000000, 4057FD88, 00000054);
trace:midi:modGetDevCaps (0001, 0x4057fd88, 00000054);
trace:midi:ALSA_modMessage (0002, 0002, 00000000, 4057FD88, 00000054);
trace:midi:modGetDevCaps (0002, 0x4057fd88, 00000054);
trace:midi:ALSA_modMessage (0003, 0002, 00000000, 4057FD88, 00000054);
trace:midi:modGetDevCaps (0003, 0x4057fd88, 00000054);
trace:midi:ALSA_modMessage (0000, 0002, 00000000, 4057FD88, 00000054);
trace:midi:modGetDevCaps (0000, 0x4057fd88, 00000054);
trace:midi:ALSA_modMessage (0001, 0002, 00000000, 4057FD88, 00000054);
trace:midi:modGetDevCaps (0001, 0x4057fd88, 00000054);
trace:midi:ALSA_modMessage (0002, 0002, 00000000, 4057FD88, 00000054);
trace:midi:modGetDevCaps (0002, 0x4057fd88, 00000054);
trace:midi:ALSA_modMessage (0003, 0002, 00000000, 4057FD88, 00000054);
trace:midi:modGetDevCaps (0003, 0x4057fd88, 00000054);
trace:midi:ALSA_modMessage (0000, 0002, 00000000, 4057FD88, 00000054);
trace:midi:modGetDevCaps (0000, 0x4057fd88, 00000054);
trace:midi:ALSA_modMessage (0001, 0002, 00000000, 4057FD88, 00000054);
trace:midi:modGetDevCaps (0001, 0x4057fd88, 00000054);
trace:midi:ALSA_modMessage (0002, 0002, 00000000, 4057FD88, 00000054);
trace:midi:modGetDevCaps (0002, 0x4057fd88, 00000054);
trace:midi:ALSA_modMessage (0003, 0002, 00000000, 4057FD88, 00000054);
trace:midi:modGetDevCaps (0003, 0x4057fd88, 00000054);
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
615, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
495, block size = 2
fixme:x11drv:X11DRV_DDHAL_CreatePalette stub
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
2931, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
771, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
771, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
771, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
507, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
505, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
505, block size = 2
===>fixme:mci:MCI_LoadMciDriver Couldn't load driver for type L"SEQUENCER".
===>If you don't have a windows installation accessible from Wine,
===>you perhaps forgot to create a [mci] section in system.ini
===>fixme:mci:MCI_LoadMciDriver Couldn't load driver for type L"SEQUENCER".
===>If you don't have a windows installation accessible from Wine,
===>you perhaps forgot to create a [mci] section in system.ini
fixme:dsound:DSOUND_MixOne problem with underrun detection (mixlen=3976
< primary_done=4266)
fixme:dsound:DSOUND_MixOne problem with underrun detection (mixlen=3976
< primary_done=4266)
fixme:dsound:DSOUND_MixOne problem with underrun detection (mixlen=3976
< primary_done=4266)
fixme:dsound:DSOUND_MixOne problem with underrun detection (mixlen=3976
< primary_done=4266)
fixme:dsound:DSOUND_MixOne problem with underrun detection (mixlen=3976
< primary_done=4266)
fixme:dsound:DSOUND_MixOne problem with underrun detection (mixlen=3976
< primary_done=4266)
fixme:dsound:DSOUND_MixOne problem with underrun detection (mixlen=3976
< primary_done=4266)
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
781, block size = 2
err:dsound:DSOUND_MixInBuffer length not a multiple of block size, len =
781, block size = 2
err:dsound:DSOUND_MixOne underrun on sound buffer 0x403a3358
err:dsound:DSOUND_MixOne underrun on sound buffer 0x403a3358

Here we see that now Timidity is found and loaded, but the (very
annoying) sequencer driver still won't load.

I'm using Wine 20050830, so of course I don't have an "[mci] section in
system.ini" (since I don't have a system.ini in ~/.wine), but of course
this is set (correctly?) in the registry:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI
Extensions]
"aifc"="MPEGVideo"
"asf"="MPEGVideo"
"asx"="MPEGVideo"
"au"="MPEGVideo"
"avi"="AVIVideo"
"cda"="CDAudio"
"lsf"="MPEGVideo"
"lsx"="MPEGVideo"
"m1v"="MPEGVideo"
"m3u"="MPEGVideo"
"mid"="Sequencer"
"midi"="Sequencer"
"mp2"="MPEGVideo"
"mp2v"="MPEGVideo"
"mp3"="MPEGVideo"
"mpa"="MPEGVideo"
"mpe"="MPEGVideo"
"mpeg"="MPEGVideo"
"mpg"="MPEGVideo"
"mpv"="MPEGVideo"
"mpv2"="MPEGVideo"
"rmi"="Sequencer"
"snd"="MPEGVideo"
"wav"="WaveAudio"
"wax"="MPEGVideo"
"wm"="MPEGVideo"
"wma"="MPEGVideo"
"wmp"="MPEGVideo"
"wmv"="MPEGVideo"
"wmx"="MPEGVideo"
"wvx"="MPEGVideo"

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MCI32]
"AVIVideo"="mciavi.drv"
"CDAudio"="mcicda.drv"
"Sequencer"="mciseq.drv"
"WaveAudio"="mciwave.drv"

(btw, what's up with regedit? I asked it to export the single MCI32 key,
but it seems to have exported the whole file, not to mention that it
didn't know what file type to save (nothing at all in the filetype
dropdown, not even 'Registry file'? That's even less functional than
regedit was last month).

But anyway, afaik, those are the correct settings (or the only ones
available to me, since I can't reconfigure this in winecfg), and it
presumably should be working, but isn't.

Does this help you know why?

Holly



More information about the wine-users mailing list