Windows: MIDI 2.0 has arrived
The February updates for Windows 11 include support for MIDI 2.0. Activation is being rolled out gradually.
(Image: heise medien)
The update preview from late January for Windows 11 24H2 and 25H2 already brought support for MIDI 2.0. It has also made it into the final Windows updates for the February Patchday from Microsoft.
However, Microsoft is only gradually enabling the MIDI 2.0 features, but intends to complete the process by the end of February. Those who are impatient, however, can – at their own risk and without warranty! – manually enable it and force activation with "ViVeTool". The current ViVeTool releases can be found on GitHub. Running vivetool /enable /id:58988972 enables the features of the February patch that have been held back so far, including MIDI 2.0 support; a computer restart is necessary afterwards.
(Image:Â heise medien)
In the developer project from Microsoft on MIDI 2.0 for Windows on GitHub, the programmers provide the tool "midicheckservice.exe" for both Intel and AMD x64 processors and for Qualcomm/Arm 64-bit processors, with which the activation status of MIDI 2.0 support can be checked.
MIDI 2.0 generally available
In a blog post, Microsoft announces the general availability of Windows MIDI Services with support for MIDI 2.0 and MIDI 1.0 on Windows 11. Officially, support is exclusively for Windows 11 24H2 and 25H2; however, the version of Windows 11 26H1, which is specialized for newer Qualcomm Arm processors, is likely to be equipped with it as well.
The MIDI 1.0 specification originally dates back to 1983, while the MIDI 2.0 specification started in 2020, with significant updates to the specs made in 2022 and 2023, Microsoft explains. The authors further write: "MIDI 2.0 natively offers bidirectional communication, automatic device discovery and protocol setup, unlimited speeds, high-resolution controllers (no restriction to values of 0-127 or multi-message workarounds for larger values), per-note articulation, self-describing devices, and a decoupling of the protocol from the transport path, making it easier to introduce new transport paths like Network MIDI 2.0 as they become available."
Simultaneous access with multiple apps
"We have been working on MIDI for the past few years, completely rewriting decades-old MIDI 1.0 code to support MIDI 2.0 and make MIDI 1.0 'more exciting'. This combined MIDI stack is called 'Windows MIDI Services'," the authors explain. They particularly highlight that MIDI devices in Windows can be used by multiple apps simultaneously; the feature is called "Multi-client". Each MIDI 1.0 port and MIDI 2.0 endpoint can be used independently of the driver or API used. In most cases, manufacturer-specific MIDI drivers are neither necessary nor recommended, Microsoft adds.
MIDI endpoints can also be customized further. Compatibility with the status quo is maintained by the classic naming convention in the API, which allows saved names in DAWs (Digital Audio Workstations) and music files to be used without reconfiguring ports. Now, names according to new schemes are also possible, where users can configure MIDI ports in devices or via software accordingly. As a third option, there are fully custom names for MIDI 1.0 ports and MIDI 2.0 endpoints. The latter can also use additional metadata, such as images and descriptions. Apps that use the WinRT MIDI 1.0 API introduced with Windows 10 receive device names back via the API that reflect names for the classic "WinMM" or "MME" MIDI API. This has also been a frequently requested feature since the introduction of this API.
App-to-app connections
Windows MIDI Services also bring so-called loopback support. This allows apps to communicate with each other – regardless of which API or SDK they are based on. "Even WebMIDI pages in the browser can work with the loopback endpoints without additional drivers or software installation," Microsoft writes. During the first run of the "MIDI and Musician Settings" app, users are prompted to complete their MIDI setup and can optionally add a set of default loopback endpoints. Microsoft also intends to have expanded this so that an app can represent a complete MIDI 2.0 device. With the upcoming Windows MIDI Services tool, interested parties will also be able to create their own loopback endpoints in the MIDI settings application.
Automatic translation should make every device usable with every app, regardless of whether they natively speak MIDI 1.0 or 2.0. Apps that use the newer SDK can, of course, then use the higher-resolution data, new message types, incoming and outgoing timestamps, and other MIDI 2.0 features. MIDI 1.0-based apps see the downscaled values. All of this is completely transparent to users. Timestamps now allow microsecond resolution – Lag and jitter have so far been a problem for many musicians, especially when they exceed single-digit milliseconds. Outgoing messages can also be pre-planned with timestamps and sent at timed intervals. The developers intend to continue working on this.
Videos by heise
New USB class driver
The existing "usbaudio.sys" driver remains. However, the developers have fixed some minor bugs in it. Additionally, Microsoft now ships the USB MIDI 2.0 class driver "usbmidi2.sys", developed by AmeNote and provided by AMEI (Association of Musical Electronics Industry). Microsoft has supported its development. It supports power-saving modes, provides a fast communication channel to the new MIDI services, and supports both MIDI 1.0 and MIDI 2.0 devices equally. By default, most MIDI 1.0 devices continue to use the older driver for compatibility, but can be manually assigned the new driver.
In the coming months, the developers plan to release updated MIDI app SDK runtime libraries and tool packages. These include, for example, the MIDI console, the MIDI settings app, or PowerShell integration for scripting MIDI. This allows, for example, easy creation of loopback endpoints or customization of MIDI endpoint and port names. "Brave" users can already install the preview version via winget. Running winget install Microsoft.WindowsMIDIServicesSDK installs the current state of the additional software.
The developers have further exciting features on their roadmap. For example, a low-latency USB audio driver with ASIO support is expected to be released at least as a preview version this year – and be fully open-source. They also announce new transport paths for MIDI 1.0 and 2.0 such as MIDI over Bluetooth (BLE MIDI 1.0 and 2.0) or Network MIDI 2.0, as well as a virtual patch panel for advanced MIDI routing.
(dmk)