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

Canary Insider Preview 27744.rs_prerelease.241101-1329 is not compatible (was MIDI ports are not displayed on midi.exe.) #434

Open
sat-okada opened this issue Nov 12, 2024 · 8 comments
Assignees
Labels
bug 🐞 Something isn't working

Comments

@sat-okada
Copy link
Collaborator

Describe the bug
MIDI ports are not displayed on midi.exe.

To Reproduce
1.Update to the following versions of the Windows Insider Program (latest version of Canary channel)
Windows 11 Pro Insider Preview Build 27744.rs_prerelease.241101-1329
2.Reboot the OS
3.Start the monitor with midi.exe

midi endpoint monitor --verbose

4.No endpoints are displayed.
Image

Expected behavior
Endpoints are displayed.

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

Desktop (please complete the following information):
Windows 11 Pro Insider Preview Build 27744.rs_prerelease.241101-1329

@sat-okada sat-okada added the bug 🐞 Something isn't working label Nov 12, 2024
@Psychlist1972
Copy link
Contributor

This is a known issue. I forget that not everyone is on Discord, where I posted a not about this build.

https://discord.com/channels/980245825202552942/980246206779383848/1305589346891731065

That canary build is not compatible with Windows MIDI Services DP releases. It contains an early test deployment of the MIDI Service/API and plugins. Build numbers below that, including those in the dev channel, will work.

I'll leave this issue open in case others run into it. I don't have a date/build # yet for the version that is compatible with the SDK.

@Psychlist1972 Psychlist1972 changed the title [BUG] MIDI ports are not displayed on midi.exe. Canary Insider Preview 27744.rs_prerelease.241101-1329 is not compatible (was MIDI ports are not displayed on midi.exe.) Nov 13, 2024
@sat-okada
Copy link
Collaborator Author

I checked the other versions.
27749.rs_prerelease_241108-1425 is no good as well.
27729.rs_prerelease.241011-1428 is OK.

@MusicMaker
Copy link

MusicMaker commented Nov 14, 2024

For me, everything seems fine on 27749.1000 with DP7 services installed from git release
It was automatic on line update by Insider (not installed from ISO)

midi ep monitor --verbose. Getting UMP packed form UMP device.

Image

@Psychlist1972
Copy link
Contributor

It looks like you will need at least 27751.1000.rs_prerelease.241112-1359

I'm working on instructions to de-register the in-box components and allow the install to complete.

@MusicMaker
Copy link

MusicMaker commented Nov 15, 2024

Image
Not sure where is 27751...

@Psychlist1972
Copy link
Contributor

Psychlist1972 commented Nov 15, 2024

Image Not sure where is 27751...

It's working in your case because somehow the midisrv abstraction/transport registered for the DP, and the service is running. Not sure what order of operations permits that.

A couple things to check

  1. From the command line issue

sc qc midisrv

If the results point to the midisrv.exe in Program Files, you are running the DP version. If it points to one in System32, you are running the older one from the Insider build.

  1. Then open regedit and look here

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows MIDI Services\Transport Plugins

Anything with "Abstraction" in the name came from the Insider build. Anything with "Transport" came from the DP. There are probably duplicates there. The one that wins is the one that was registered last

Right now, mididiag doesn't produce a list of file locations for which COM components are being loaded, which makes it difficult for us to know what someone is running when on an insider build. I'm looking into what I can do there and also in the service.

@Psychlist1972
Copy link
Contributor

The problem:

Recent Canary builds ship with a version of Windows MIDI Services in-box. This version is a month or so behind the developer previews. In this case, we had a breaking change where all the component and interface names that say "Abstraction" had to be changed to "Transport" per the internal API review feedback. There were a few other changes related to that, all of which are implemented in the DP7 bits, but not the early Canary bits.

The steps below can also be used to install DP bits on a version of Windows that ships with Windows MIDI Services (retail, canary, etc.), whenever there's a new developer preview in the future.

To uninstall the existing version of midisrv that ships in-box:

  1. Open up the Services snap-in (search services. It's the app with two gears).
  2. Scroll down and verify "Windows MIDI Service" is listed
  3. Open an Administrator command prompt
  4. Run sc stop midisrv in case it has been started
  5. Run sc delete midisrv
  6. In the services app, go to Action > Refresh and scroll down. Verify Windows MIDI Service is no longer listed

We won't delete/replace the COM registrations for the existing service plugins that are in System32, because the installer will overwrite those registrations and point to the DP versions in Program Files.

There will be some duplicate entries in the midisrv plugin load list at
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows MIDI Services\Transport Plugins

If you have the rights to do so, it's a good idea to remove any entries in there which have "Abstraction" in the name. Just remove the entire key such as Midi2KSAbstraction. If you don't have rights to delete those keys, you can right-click "Windows MIDI Services" in the registry and grant yourself the permissions / take ownership.

Image

Next, take ownership of some key files in System32. At the administrator command prompt, navigate to \Windows\System32 and then

takeown /F wdmaud2.drv

Image

And then it will be able to be replaced by the installer.

Finally, install the DP version. You will likely need to reboot to replace wdmaud2.drv as it is often loaded into other processes using audio.

The above steps will need to be done any time you install a new version of Windows (Canary or other).

TIP: Before updating to a new Insider build, always uninstall Windows MIDI Services first, so as not to leave bits lying around and unable to be cleanly uninstalled.

@sat-okada
Copy link
Collaborator Author

27754.rs_prerelease.241115-1409 is OK.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug 🐞 Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants