microsoft / MIDI

Windows MIDI Services
MIT License
321 stars 28 forks source link

[BUG] MidiSrv gets stuck by sending MT3. #437

Open sat-okada opened 2 weeks ago

sat-okada commented 2 weeks ago

Describe the bug If I send a 1-byte length System Exclusive Start message (F0 xx) in MT3 format, MIDI Service gets stuck. If this happens, MidiSrv cannot be stopped and restarting OS is required.

To Reproduce 1.Set the Roland UM-ONE mk2 to class-compliant mode and attach it to the UM-ONE to PC. 2.Driver uses UsbMidi2. 3.Start up two consoles, One is a monitor.

midi ep monitor --verbose

Send on the other

midi ep send 0x30110100 0x00000000

4.On the monitor window, press escape to stop monitoring. Monitoring cannot be terminated. And finally, it is necessary to restart OS to recover.

Expected behavior Wait for the next SxsEx Continue message and get the first 1 byte to complete the SysEx Start data.

Installer Name or Version ・Windows.MIDI.Services.In-Box.Service.-.1.0.1-preview.7.24305.1438-x64.exe ・Windows.MIDI.Services.Tools.and.SDKs.1.0.1-preview.7.24305.1438-x64.exe ・USB MIDI 2.0 class driver (USBMIDI2_10.0.1.7.x64.zip)

Desktop (please complete the following information): ・OS: Windows 11 Pro Insider Preview Build 27729.rs_prerelease.241011-1428

Device information, if this is with an external MIDI device: Roland UM-ONE mk2

Application Information midi.exe console app.

Additional context This issue is very similar to #300.

MusicMaker commented 6 days ago

(Replaced the previous comment because realized the device is legacy MIDI) This command is actually not valid UMP . Its a 1 byte SYSEX7 START (status 1)instead of COMPLETE ( status 0) Assume the device is in MIDI legacy mode and in loop-back mode. Can reproduce with a custom hardware device in legacy mode that internally loopbacks the incoming data to the host via USB (no DIN) In my case not only the service but the whole Win 11 crashed and needed to power off the system. (System was used via RDP)