Skip to content

DP9 Network MIDI 2.0 (and more) - NAMM Preview 3

Pre-release
Pre-release
Compare
Choose a tag to compare
@Psychlist1972 Psychlist1972 released this 20 Jan 02:58
e0fdbbd

Important 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 .