Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Endpoint does not work if reconnect the device while WinMM app using it. #463

Open
m-komo opened this issue Dec 11, 2024 · 3 comments
Assignees
Labels
area-sdk 🔧 Related to the application SDK area-service-or-api 🖥️ Related to the Windows Service, core API, abstractions, etc. bug 🐞 Something isn't working

Comments

@m-komo
Copy link
Collaborator

m-komo commented Dec 11, 2024

Describe the bug
If the device is disconnected and reconnected while the WinMM app is using it, its endpoint stops working.
To recover from this condition, quitting all WinMM apps as well as all MIDI 2.0 apps and reconnecting the device is necessary.

To Reproduce

  1. Load the attached firmware (UUT_USB_MIDI_ECHO_NO_PRINTF.uf2.zip) to the ProtoZOA. This firmware looped back all received messages.
  2. Make sure the USB MIDI 2.0 driver (UsbMidi2.sys) is loaded.
  3. Open midi.exe and monitor the ProtoZOA.
  4. Open a WinMM app such as the Pocket MIDI and choose ProtoZOA for Input and Output.
    Input: AmeNote ProtoZOA I-1
    Output: AmeNote ProtoZOA O-1
  5. Send any messages from the WinMM app and make sure the monitor shows received (looped back) messages.
  6. Open midi.exe and send any messages to the ProtoZOA and make sure the monitor shows received (looped back) messages.
  7. Disconnect the ProtoZOA from the PC and reconnect it. The monitor notifies disconnection and reconnection of the endpoint.
  8. Re-launch the WinMM app and choose PortoZOA for Input and Output.
  9. Send any messages from the WinMM app.
    No messages are received on the monitor.
  10. Open midi.exe and send any messages to the ProtoZOA.
    No messages are received on the monitor.

Quit all WinMM apps and MIDI 2.0 apps and reconnect the device again, then the endpoint starts working.

Expected behavior
Endpoint continues working after reconnecting the device.

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):

  • OS: Windows 11 24H2 build 26120.2510 (Insider Dev channel)

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

  • ProtoZOA running with the attached firmware.
  • USB MIDI 2.0 class driver (USBMIDI2_10.0.1.7.x64.zip)

Application Information

@m-komo m-komo added the bug 🐞 Something isn't working label Dec 11, 2024
@Psychlist1972
Copy link
Contributor

Related issues/discussions: #360 , #320

@Psychlist1972 Psychlist1972 added area-sdk 🔧 Related to the application SDK area-service-or-api 🖥️ Related to the Windows Service, core API, abstractions, etc. labels Dec 11, 2024
@Psychlist1972
Copy link
Contributor

Psychlist1972 commented Feb 9, 2025

Just a note. I verified this is still the case in Customer Preview 1, and with upcoming wdmaud2.drv changes.

If I monitor the TOUCH_SE, for example, using midi.exe, connect and disconnect are fine

Image

But if PocketMIDI is also monitoring the port, when the device is reconnected, the stream is not restarted

Image

Image

If I quit pocket midi, the stream in the midi console is still not active. But if I stop monitoring in midi console and then restart, I can see the data again.

@Psychlist1972
Copy link
Contributor

Reproduced this with PocketMIDI and also with midi1monitor from the SDK. Created internal work item 56179178

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-sdk 🔧 Related to the application SDK area-service-or-api 🖥️ Related to the Windows Service, core API, abstractions, etc. bug 🐞 Something isn't working
Projects
Status: No status
Development

No branches or pull requests

2 participants