From: Robotech_Master robotech@eyrie.org
On Tue Jun 11 2002 - 13:50:43 CDT Johan Gill wrote (as part of a discussion about midi in WINE in which FF7 was mentioned):
Done. TiMidity++-2.12.0beta as alsa sequencer client requires no modification to wine at all, and the OSS emulation of ALSA makes the thing transparent to WINE.
Can you, or someone, please let me know how to set up wine to use this? I'm running Debian Linux; these are the versions of timidity and wine that I have:
ii timidity 2.11.2-1.3 Software-only MIDI sequencer. ii wine 0.0.20021125-1 Windows Emulator (Binary Emulator)
This is something I would not mind knowing myself. It's not too high a priority for me though as I have SoundFonts working on my SBLive now.
For sound, I'm using artsdsp 0.6.1 to emulate esd. I have a Soundblaster live card.
On the FF7 config program, it gives me the choices
Wine OSS midi out (#0) - disabled EMU10K1 midi
This looks like what I would get from the OSS driver - emu10k1. The module name for the ALSA driver is snd-emu10k1. The choices I would expect from ALSA's OSS emulation would be something like: Emu10k1 MIDI 0-0 Emu10k1 Port 0 Emu10k1 Port 1 Emu10k1 Port 2 Emu10k1 Port 3
Under "midi data" it gives me the choises
General midi Soundfont midi (Creative AWE32/AWE64) Yamaha XG midi
I would imagine this should stay on General midi unless you are *sure* it needs to be on another selection.
No matter what I try, in whatever combination, I get "Error opening device" and the wine console says
fixme:winmm:MIDI_StreamOpen *lpuDeviceID=1 fixme:dsound:IDirectSoundImpl_SetCooperativeLevel (0x403ab930,0001003c,3):stub
Can someone help me out--or point me at somewhere else I can find help?
Try running it like this ... wine -debugmsg +winmm,+midi,+msacm program_name.exe ... and send the output.
-- Jeff S
_________________________________________________________________ Add photos to your messages with MSN 8. Get 2 months FREE*. http://join.msn.com/?page=features/featuredemail
Jeff Smith (whydoubt@hotmail.com) wrote in message F206LIby98FfDrVKxJ700013bd1@hotmail.com:
This looks like what I would get from the OSS driver - emu10k1. The module name for the ALSA driver is snd-emu10k1. The choices I would expect from ALSA's OSS emulation would be something like: Emu10k1 MIDI 0-0 Emu10k1 Port 0 Emu10k1 Port 1 Emu10k1 Port 2 Emu10k1 Port 3
Note--I forgot to mention, but I have Emu10K1 sound & midi support compiled into my kernel, not as modules. (I'm running 2.4.20.)
Try running it like this ... wine -debugmsg +winmm,+midi,+msacm program_name.exe ... and send the output.
I tried this with the FF7config program, and it produced 26K of output; I've put the complete dump at
http://www.eyrie.org/~robotech/winemidi.txt
Here's the last few dozen lines, from when I was clicking the "test midi" button and it was telling me it couldn't access the device:
trace:winmm:MMDRV_Message Calling message(dev=0 msg=6 usr=0x4068262c p1=0x00000000 p2=0x00000000 trace:winmm:MMDRV_Message => 0 trace:winmm:midiStreamClose (0x8001)! trace:winmm:midiStreamStop (0x8001)! trace:winmm:midiStreamRestart (0x8001)! trace:winmm:MMSYSTEM_MidiStream_Player Ready to go 2 trace:winmm:MMSYSTEM_MidiStream_MessageHandler STOP trace:winmm:midiOutReset (0x8001) trace:winmm:MMDRV_Message (MidiOut 0 9 0x406828c4 0x00000000 0x00000000 Y)! trace:winmm:MMDRV_Message Calling message(dev=0 msg=9 usr=0x406828c4 p1=0x00000000 p2=0x00000000 trace:midi:OSS_modMessage (0000, 0009, 406828C4, 00000000, 00000000); trace:midi:modReset (0000); trace:winmm:MMDRV_Message => 68 trace:winmm:MMSYSTEM_MidiStream_Player End of thread trace:winmm:DllMain 0x406a0000 0x3 (nil) trace:msacm:DllMain 0x41120000 0x3 (nil) trace:winmm:midiOutClose (0x8001) trace:winmm:MMDRV_Message (MidiOut 0 4 0x406828c4 0x00000000 0x00000000 Y)! trace:winmm:MMDRV_Message Calling message(dev=0 msg=4 usr=0x406828c4 p1=0x00000000 p2=0x00000000 trace:midi:OSS_modMessage (0000, 0004, 406828C4, 00000000, 00000000); trace:midi:modClose (0000); warn:midi:modClose device not opened ! trace:winmm:MMDRV_Message => 1 trace:winmm:MIDI_OutOpen (0x471180, 0, 00000000, 00000000, 00000000); trace:winmm:MMDRV_Open Setting mmdIndex to 0 trace:winmm:MMDRV_Message (MidiOut 0 3 0x406827a8 0x403ad4dc 0x00000000 Y)! trace:winmm:MMDRV_Message Calling message(dev=0 msg=3 usr=0x406827a8 p1=0x403ad4dc p2=0x00000000 trace:midi:OSS_modMessage (0000, 0003, 406827A8, 403AD4DC, 00000000); trace:midi:modOpen (0000, 0x403ad4dc, 00000000); warn:midi:modOpen device disabled ! trace:winmm:MMDRV_Message => 68 trace:winmm:MIDI_OutOpen => 68 hMidi=(nil) trace:winmm:waveOutGetDevCapsA (0 0x406828f0 52)! trace:winmm:MMDRV_Message (WaveOut 0 4 0x00000000 0x406828f0 0x00000034 Y)! trace:winmm:MMDRV_Message Calling message(dev=0 msg=4 usr=0x00000000 p1=0x406828f0 p2=0x00000034 trace:winmm:MMDRV_Message => 0 trace:winmm:waveOutMessage ((nil), 2058, 1080567472, 0) trace:winmm:MMDRV_PhysicalFeatures (0x403a4e54, 080a, 406826b0, 00000000) trace:winmm:MMDRV_Message (WaveOut 0 2058 0x00000000 0x406826b0 0x00000000 Y)! trace:winmm:MMDRV_Message Calling message(dev=0 msg=2058 usr=0x00000000 p1=0x406826b0 p2=0x00000000 trace:winmm:MMDRV_Message => 0 trace:winmm:WAVE_Open (0x403ad9f4, 0, Out, 0x403ad9e0, 40F55F74, 403AD758, 00030080, 32); trace:winmm:WAVE_Open wFormatTag=1, nChannels=2, nSamplesPerSec=22050, nAvgBytesPerSec=44100, nBlockAlign=2, wBitsPerSample=8, cbSize=0 trace:winmm:WAVE_Open cb=40f55f74 trace:winmm:MMDRV_Open Setting mmdIndex to 0 trace:winmm:MMDRV_Message (WaveOut 0 5 0x406825e4 0x40682614 0x00030080 Y)! trace:winmm:MMDRV_Message Calling message(dev=0 msg=5 usr=0x406825e4 p1=0x40682614 p2=0x00030080 trace:winmm:MMDRV_Message => 0 trace:winmm:WAVE_Open => 0 hWave=0x8000 trace:winmm:waveOutSetVolume (0000, ffffffff); trace:winmm:MMDRV_Message (WaveOut 0 17 0x00000000 0xffffffff 0x00000000 Y)! trace:winmm:MMDRV_Message Calling message(dev=0 msg=17 usr=0x00000000 p1=0xffffffff p2=0x00000000 trace:winmm:MMDRV_Message => 0 fixme:dsound:IDirectSoundImpl_SetCooperativeLevel (0x403ad758,00010043,3):stub trace:winmm:MIDI_OutOpen (0x471180, 0, 00000000, 00000000, 00000000); trace:winmm:MMDRV_Open Setting mmdIndex to 0 trace:winmm:MMDRV_Message (MidiOut 0 3 0x406828d4 0x403ad504 0x00000000 Y)! trace:winmm:MMDRV_Message Calling message(dev=0 msg=3 usr=0x406828d4 p1=0x403ad504 p2=0x00000000 trace:midi:OSS_modMessage (0000, 0003, 406828D4, 403AD504, 00000000); trace:midi:modOpen (0000, 0x403ad504, 00000000); warn:midi:modOpen device disabled ! trace:winmm:MMDRV_Message => 68 trace:winmm:MIDI_OutOpen => 68 hMidi=(nil) trace:winmm:MIDI_StreamOpen (0x471184, 0x471194, 1, 0x004064d0, 0x00010043, 0x00030000)! fixme:winmm:MIDI_StreamOpen *lpuDeviceID=0 trace:winmm:MMDRV_Open Setting mmdIndex to 0 trace:winmm:MMDRV_Message (MidiOut 0 3 0x406828c4 0x403ac504 0x00030000 Y)! trace:winmm:MMDRV_Message Calling message(dev=0 msg=3 usr=0x406828c4 p1=0x403ac504 p2=0x00030000 trace:midi:OSS_modMessage (0000, 0003, 406828C4, 403AC504, 00030000); trace:midi:modOpen (0000, 0x403ac504, 00030000); warn:midi:modOpen device disabled ! trace:winmm:MMDRV_Message => 68 trace:msacm:DllMain 0x41120000 0x2 (nil) trace:winmm:DllMain 0x406a0000 0x2 (nil) trace:winmm:MMSYSTEM_MidiStream_Player (0x403ad4e8)! trace:winmm:MMSYSTEM_MidiStream_Player Ready to go 1 trace:winmm:MIDI_StreamOpen => (0/0) hMidi=0x8001 ret=68 lpMidiStrm=0x403ad4e8 trace:winmm:waveOutClose (0x8000) trace:winmm:MMDRV_Message (WaveOut 0 6 0x4068262c 0x00000000 0x00000000 Y)! trace:winmm:MMDRV_Message Calling message(dev=0 msg=6 usr=0x4068262c p1=0x00000000 p2=0x00000000 trace:winmm:MMDRV_Message => 0 trace:winmm:midiStreamClose (0x8001)! trace:winmm:midiStreamStop (0x8001)! trace:winmm:midiStreamRestart (0x8001)! trace:winmm:MMSYSTEM_MidiStream_Player Ready to go 2 trace:winmm:MMSYSTEM_MidiStream_MessageHandler STOP trace:winmm:midiOutReset (0x8001) trace:winmm:MMDRV_Message (MidiOut 0 9 0x406828c4 0x00000000 0x00000000 Y)! trace:winmm:MMDRV_Message Calling message(dev=0 msg=9 usr=0x406828c4 p1=0x00000000 p2=0x00000000 trace:midi:OSS_modMessage (0000, 0009, 406828C4, 00000000, 00000000); trace:midi:modReset (0000); trace:winmm:MMDRV_Message => 68 trace:winmm:MMSYSTEM_MidiStream_Player End of thread trace:winmm:DllMain 0x406a0000 0x3 (nil) trace:msacm:DllMain 0x41120000 0x3 (nil) trace:winmm:midiOutClose (0x8001) trace:winmm:MMDRV_Message (MidiOut 0 4 0x406828c4 0x00000000 0x00000000 Y)! trace:winmm:MMDRV_Message Calling message(dev=0 msg=4 usr=0x406828c4 p1=0x00000000 p2=0x00000000 trace:midi:OSS_modMessage (0000, 0004, 406828C4, 00000000, 00000000); trace:midi:modClose (0000); warn:midi:modClose device not opened ! trace:winmm:MMDRV_Message => 1
I tried this with the FF7config program, and it produced 26K of output; I've put the complete dump at
please try with the little patch (post above) applied and let me know what gives A+
fixme:winmm:MIDI_StreamOpen *lpuDeviceID=1 fixme:dsound:IDirectSoundImpl_SetCooperativeLevel (0x403ab930,0001003c,3):stub
try changing in dlls/winmm/winmm.c lpwm->mld.uDeviceID = *lpuDeviceID = 0; into lpwm->mld.uDeviceID = *lpuDeviceID;
and see what gives
(the second fixme is harmless)
A+