Developer Preview 4 (Official NAMM Readiness Preview)
Pre-releaseHi All
Here's the official Developer Preview 4, just in time for NAMM! This is the release I'll be using when presenting on stage.
This includes everything from the previous dailies:
- https://github.com/microsoft/MIDI/releases/tag/dev-preview-4-daily3
- https://github.com/microsoft/MIDI/releases/tag/dev-preview-4-daily2
- https://github.com/microsoft/MIDI/releases/tag/dev-preview-4-daily1
In addition to what was listed in the DP4 daily releases, we have the following:
Changes
This includes support for app-to-app MIDI, as long as the device is configured in the midiconfig file in advance. Later, we'll add in the plumbing to enable this at runtime. This is an unstable feature, however, so use at your own risk at the moment. The related PR shows the syntax of the config file entry. #232
- When the service starts, the config file is read and the device-side endpoint is created. This is the endpoint the app acting as a device should open. This endpoint is not visible in a normal enumeration call as it has a purpose of
MidiEndpointDevicePurpose::VirtualDeviceResponder
which is normally excluded from enumeration. - Once the app opens that endpoint connection, the service will enumerate a client-visible endpoint that is routed to the device endpoint. This is the normal multi-client endpoint that all apps should use.
- When the device app closes, the client-visible endpoint is torn down
This has basic support for reporting function blocks and endpoint metadata. Protocol negotiation is buggy for it, so that has been turned off for this release just for this type of endpoint. For now, you can use midi endpoint request endpoint-metadata --all
to request endpoint info and then midi endpoint request function-blocks --all
to get the function blocks.
In addition, there's a new sample app. It's a C# WinUI app that is a 4x4 pad controller demonstrating app-to-app MIDI and how to configure function blocks and endpoint metadata.
Fixes and Workarounds
#224 Fix: Console send-message should allow hitting escape. This is fixed in this preview.
#233 Work around: Slow send-message-file command has been worked around. For now, only failed messages are displayed on the console. There's a summary at the end telling you how many messages have been sent. This will later be changed to a better display, but I wanted to deal with the performance issue. If there are MANY failed messages (thousands), it'll be slow again.
Screen shot from the test vm. The messages sent in just a few seconds.
USB Driver
We don't yet have a new version of the USB driver, so please continue to use the one from December. Download and install instructions here: https://github.com/microsoft/MIDI/releases/tag/dev-preview-2
A reminder that the MIDI Association Developer Day is this Friday. I'm kicking it off at 10:30am with a presentation on Windows MIDI Services.
Thanks again to everyone for testing. See you at NAMM this week!