microsoft / MIDI

Windows MIDI Services
MIT License
319 stars 28 forks source link

[BUG] MME MIDI app cannot receive SysEx messages through a MidiSrv enumerated port. #433

Open m-komo opened 2 weeks ago

m-komo commented 2 weeks ago

Describe the bug A legacy MIDI app which uses MME MIDI API cannot receive System Exclusive messages through a MidiSrv enumerated port.

To Reproduce

  1. Load the attached firmware to the ProtoZOA.
  2. Make sure the USB MIDI 2.0 driver (UsbMidi2.sys) is loaded.
  3. Open midi.exe and monitor the ProtoZOA.
  4. Open the Pocket MIDI 64bit(MME MIDI app) and choose MidiSrv enumerated ports for Input and Output. Input: AmeNote ProtoZOA I-1 Output: AmeNote ProtoZOA O-1
  5. Open the MIDI In Monitor and the MIDI Out Monitor windows.
  6. From the "Views" menu, open "System Exclusive" window.
  7. In the System Exclusive window, type "F0 01 F7" as a message to be sent. Image
  8. Click "Transmit" to send messages.

In the MIDI Out Monitor of the Pocket MIDI shows the sent message as below: Image

The midi.exe monitor shows the received message as below: Image

However, no message is received by the Pocket MIDI. Image

Expected behavior MME MIDI apps can receive SysEx messages through MidiSrv enumerated ports.

Screenshots Image

Installer Name or Version Windows.MIDI.Services.In-Box.Service.-.1.0.1-preview.7.24305.1438-x64.exe

Desktop (please complete the following information):

Device information, if this is with an external MIDI device:

Application Information

sat-okada commented 2 weeks ago

A similar problem occurred.

1.Install UUT_USB_MIDI_ECHO_NO_PRINTF.uf2 on ProtoZoA 2.Driver uses UsbMidi2. 3.Start up two consoles, One is a monitor.

midi endpoint monitor --verbose

Send on the other

midi endpoint send-message 0x40901122 0x33445566 -i --count 10 --delay 1

4.Check the monitor. 5.Start up pocketMIDI. Select protoZoA in Input port. 6.Once more on the sending side.

midi endpoint send-message 0x40901122 0x33445566 -i --count 10 --delay 1

7.Check monitor on pocketMIDI. So far, so good.

8.Sending SysEx from the sender.

midi endpoint send-message-file -p 0 sysex1.txt

9.midi.exe monitor is receiving. But, nothing is displayed on the pocketMIDI monitors.

10.Send NoteOn from the sender again.

midi endpoint send-message 0x40901122 0x33445566 -i --count 10 --delay 1

11.As before, midi.exe monitor is receiving. But, nothing is displayed on the pocketMIDI monitors. 12.Quit pocketMIDI and start up again, NoteOn accepts as before.

The PC is in the following condition. ・OS: Windows 11 Pro Insider Preview Build 27729.rs_prerelease.241011-1428 ・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)