DP9 Network MIDI 2.0 (and more) - NAMM Preview 3
Pre-releaseImportant Pre-Installation Steps
If you are on a Canary Insider build of Windows, you MUST follow these steps BEFORE installing the packages below. This is required each time you get a new version of a Windows Insider Canary build.
https://microsoft.github.io/MIDI/developer-how-to/how-to-install-development-builds.html
If you see failures registering components during the install, it may be because of the above steps not being followed.
WinMM Compatibility
If you are testing WinMM port generation, you must also use the enable tool to switch from AudioEndpointBuilder to MidiSrv and also the copy tool to replace wdmaud2.drv
in your System32
directory. Directions have been provided to you in Teams if you are a partner helping with this internal testing before the feature is enabled in Windows Canary builds by default.
Remaining Installation
Install the Packages
Run the three installers as you would with any other release. Do make sure you uninstall any other version you may have installed.
Firewall
If you are testing Network MIDI 2.0, let MidiSrv through the firewall as explained in DP9 NAMM 1 here https://github.com/microsoft/MIDI/releases/tag/dev-preview-9-namm-1
Copy the Default.midiconfig.json
If you are testing Network MIDI 2.0, you will need to modify the configuration file with your own entries. I have included example versions with the release.
To replace the Default.midiconfig.json file, you will need to take ownership of the %allusersprofile%\Microsoft\MIDI
folder as per the same DP9 NAMM-1 instructions above. In some cases, you may also need to right-click the MIDI folder and grant rights to all users. I haven't nailed down the differences yet, but this will be changed after our first post-NAMM preview.
Some have found they could not edit the existing Default.midiconfig.json, but they could overwrite it with the version from the release.
Changes and Fixes
Service
- Service startup time improved by optimizing the WinMM port creation code
Aggregate (MIDI 1.0 Devices) Transport
- Now properly detects newly plugged-in devices and other changes (driver assignment etc.) and re-enumerates the device.
Network MIDI 2.0
This is still a work-in-progress, but is more functional than the previous release. This is not ready for production use, but may be used for demos, development, etc.
- Changed endpoint creation so it no longer directly uses the Product Instance Id. This eliminated several issues
- MIDI Service now sends outbound pings
- MIDI Service now disconnects from remotes if 5 consecutive pings are not returned
One way you can test Network MIDI 2.0 is by using MusiKraken available in the iOS app store. That has preview Network MIDI 2.0 functionality in place.
Note that the Network MIDI 2.0 implementation does still require that the remote host be advertised using mDNS. Direct connection is not yet supported. Also, authenticated connection is not yet supported.
Known issue: If you disconnect from a remote network MIDI host (Windows is the client), Windows MIDI Services will not reconnect to it without restarting the service.
SDK Compatibility
This SDK version is binary compatible with apps built for DP8 or DP9.
USB MIDI 2.0 Driver
There's no new driver for this release, but an updated version is coming in the post-NAMM release in the Windows Insider Canary build. This will work with the 10.0.1.7 driver from DP7. https://github.com/microsoft/MIDI/releases/tag/dev-preview-7
Documentation
While not complete, I've made significant updates to the documentation at https://aka.ms/midi .