Windows MIDI Services, including, MIDI 2.0 is currently available in the Windows Insider Canary builds. More technical customers have been trying it out on both Arm64 and x64 Windows.
At the NAMM show, I’ve demonstrated prototype versions of Cubase 13 and 14 on x64 and Arm64 using the new MIDI 2.0 SDK and sending/receiving high-resolution MIDI 2.0 messages.
The MIDI 2.0 support in Windows MIDI Services has been solid for quite a while now. We’re behind schedule on getting everything out because we rewired the old MIDI APIs to use the new service, and we are squashing all the MIDI 1.0 compatibility bugs before we release officially. (Including naming, which has been a chore because we’ve had to re-create WinMM port naming bugs so that existing apps will not break, all while providing users the option to use more meaningful generated names, or provide their own custom name).
Existing apps, with no changes, will have MIDI 1.0-level access to MIDI 2.0 devices (we do the translation in-service), as well as new features like multi-client MIDI, loopback support, etc. Apps using the new API/SDK directly will have full MIDI 2.0 access as well as timestamp scheduled messages.
Bragging a little: we were also the only OS with a demonstration of Network MIDI 2.0 at the NAMM show this past January, a standard which was passed only this past fall. I’m quite proud of that implementation.
BLE and rtpMIDI will be coming as well, but are after the first full in-box release.
There’s also a proper settings app that goes along with all this, which makes it easy to customize your MIDI configuration, and even move it between PCs (with some caveats about devices without serial numbers)
There’s also a full command-line app that comes with the SDK Runtime & Tools download
Listing all the endpoints
MIDI 2.0 device monitoring
And for the more technically-minded, there’s a set of PowerShell cmdlets that come with the same download, which make it easy to automate MIDI in script for anything you may want to use it for. This sample shows how to use it to send messages, for example.
Work-in-progress documentation is available here.
Pete
Microsoft






