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]Older MIDI 1.0 class drivers will drop some SysEx from USB-MIDI 1.0 devices #372

Closed
masahirokakishita opened this issue Jul 23, 2024 · 11 comments
Assignees
Labels
area-service-or-api 🖥️ Related to the Windows Service, core API, abstractions, etc. bug 🐞 Something isn't working dp7-fixed 🥳 Fixed in developer preview 7

Comments

@masahirokakishita
Copy link
Collaborator

Describe the bug
Older MIDI 1.0 class drivers will drop some SysEx from USB-MIDI 1.0 devices

To Reproduce

  1. Install the enclosed SevenColor4,uf2. This is a USB-MIDI 1.0 device. This is a USB-MIDI 1.0 device.

SevenColor4.uf2.zip

  1. Open a console
  2. Monitor UMP message

midi endpoint monitor -verbose

  1. Touch the touchpad "1" of ProtoZoA. ProtoZoA send following messages.

04 f0 0b 0c
04 0d 0e 0f
04 10 11 12
07 13 14 f7

  1. One MT3 message is displayed by the console.

30160B0C 0D0E0F10

Expected behavior

Two MT3 message is needed. Because there are ten bytes SysEx.

30260B0C 0D0E0F10
30341112 13140000

Screenshots
image

Installer Name or Version
dev-preview-6/Windows.MIDI.Services.App.SDK.Runtime.-.Developer.Preview.6.1.0.24194.2233-arm64.exe
dev-preview-6/Windows.MIDI.Services.Console.-.Developer.Preview.6.1.0.24194.2233-arm64.exe
dev-preview-6/Windows.MIDI.Services.In-Box.Service.-.Developer.Preview.6.1.0.24194.2233-arm64.exe
240713-USBMidi2-Arm64-TESTSIGNED

Desktop (please complete the following information):
Snapdragon 3GHz Windows 11 Pro
Build 26100.ge_release.240331-1435

@masahirokakishita masahirokakishita added the bug 🐞 Something isn't working label Jul 23, 2024
@Psychlist1972
Copy link
Contributor

@masahirokakishita If you have the ability and desire to test this, can you tell me if you see the same dropping of messages if you send the equivalent byte data through the older WinMM or WinRT MIDI 1.0 APIs, not using Windows MIDI Services? Maybe looking at it through a tool like MIDI-OX?

I'm keen to understand if this is a problem with our old driver, or a problem with Windows MIDI Services.

@Psychlist1972 Psychlist1972 added the needs-investigation 🔍 Needs to be investigated before considering or solving. label Jul 23, 2024
@MusicMaker
Copy link

Also recommend look at Mountain MIDI tools, it seems to handle sysex a bit better but not perfect. Al of them including Pocket MIDI and OX have issues with sysex in some situations (i.e realtime, see the other bug posted today).

@masahirokakishita
Copy link
Collaborator Author

I used Pocket MIDI. And It’s no problem.

image

@masahirokakishita
Copy link
Collaborator Author

I have a mistake, the expected behavior is as below.

30160B0C 0D0E0F10
30341112 13140000

@m-komo
Copy link
Collaborator

m-komo commented Jul 30, 2024

* updated the driver information. (Thank you, Pete)

I was able to reproduce this issue with the UM-ONE (Class Compliant Mode).

Received following messages from the UM-ONE's MIDI INPUT:
image

midi.exe ep monitor shows:
image

Monitor with the PocketMIDI:
image

  • Service: Windows.MIDI.Services.In-Box.Service.-.Developer.Preview.6.1.0.24194.2233-x64.exe
  • Driver: OS in-box USB MIDI 1.0 driver (USBAUDIO.sys)
  • OS: Windows 11 24H2 (OS Build 26100.1150)

@Psychlist1972
Copy link
Contributor

I was able to reproduce this issue with the UM-ONE (Class Compliant Mode).

Received following messages from the UM-ONE's MIDI INPUT: image

midi.exe ep monitor shows: image

Monitor with the PocketMIDI: image

  • Service: Windows.MIDI.Services.In-Box.Service.-.Developer.Preview.6.1.0.24194.2233-x64.exe
  • Driver: [interim preview build] 240719-USBMidi2-x86-TESTSIGNED.zip (DriverVer = 07/19/2024,23.22.46.475)
  • OS: Windows 11 24H2 (OS Build 26100.1150)

(Note for others viewing: this isn't using the MIDI 2 / UMP interim driver. It's using the older usbaudio.sys)

@Psychlist1972
Copy link
Contributor

This is likely related to the bug I just logged for libmidi2

midi2-dev/AM_MIDI2.0Lib#23

@Psychlist1972
Copy link
Contributor

Andrew is working on updates to libmidi2 which should address this.

@Psychlist1972 Psychlist1972 added area-service-or-api 🖥️ Related to the Windows Service, core API, abstractions, etc. and removed needs-investigation 🔍 Needs to be investigated before considering or solving. labels Jul 31, 2024
@MusicMaker
Copy link

I used Pocket MIDI. And It’s no problem.

image

Sorry. What I meant was also inserting F8 , FA, FB, FC into the sysex either UMP to legacy.

@Psychlist1972 Psychlist1972 added the dp7-fixed 🥳 Fixed in developer preview 7 label Aug 19, 2024
@Psychlist1972
Copy link
Contributor

Andrew has updated his libmidi2 code so this will be resolved in the next preview

@Psychlist1972
Copy link
Contributor

Closed with release of DP7

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

No branches or pull requests

4 participants