Repository navigation
In-box Preview 11 (API surface lock)
Pre-releaseIn-box Preview 11
This is open to all customers who would like to try out the features and functionality. Installing these components will not break your existing Windows MIDI Services OS-delivered components install.
Key items
- New app: Windows MIDI Sequencer. Arrange, record and play MIDI 2.0 music on a timeline, with a clip launcher for playing live. It's a very early preview.
- Windows MIDI Patchbay was rebuilt. A library of your patches, a window for each patch, and new steps for logic, MIDI-CI, MIDI clock, MIDI Time Code and LFOs.
- Windows MIDI Glass layouts and themes can be shared as packs, signed by their publisher, and say who made them.
- The Windows MIDI Services API is locked. The only addition since Preview 10 is
MidiApi.IsSystemProvided(). - Network MIDI Setup can let the MIDI service through Windows Firewall for you.
Packages and Installation Instructions
If you are running any of the older rc4 or similar SDK Runtime and Tools, or any of the older preview transports, fully uninstall them from Settings > Apps > Installed Apps before installing anything here.
Install the Tools package to have access to all the in-box tools required to configure endpoints, customize, route MIDI endpoints, create controller surfaces, and much more. Everyone will want this package. The tools are documented on the tools page.
Install the Transports package to have access to preview versions of
- General MIDI Synth
- Basic MIDI 1.0 Loopback Transport
- RTP-MIDI Transport
- Network MIDI 2.0 Transport
- Bluetooth LE MIDI Transport
You can turn the individual transports on or off on the Transports page of MIDI Troubleshooting and Repair, which is in the Tools package.
If you installed the separate Preview 9 or Preview 10 transport installers, you don't need to remove them first. The Transports package removes them when it installs. Uninstalling them first won't cause any harm. The uninstall instructions above are to cover everyone, regardless of what they have installed. When in doubt, uninstall the old stuff.
Details for Developers and Technical Customers
The metadata for the Windows.Devices.Midi2 API is now locked, and breaking changes are no longer permitted.
Developer permitted use
We want to ensure customers have the best experience going forward. Because of this, we want to ensure that these app-local binaries are not normally present on customer systems which have the binaries in System32.
Distributing these API binaries is a choice you make. Although we will try to keep compatibility, Microsoft makes no guarantee that the in-box API binaries or service transports will be compatible with this Preview release. If that is not acceptable, please wait to distribute your app until the transports and API ship in Windows.
Developer Go-live agreement
This is the second Windows MIDI Services API release with a "go live" license for Windows.Devices.Midi2.dll, .winmd, and .pri and it carries the same agreement as Preview 10.
This is still a preview, and we want to ensure that customers have a great experience going forward, so if you do go live with this, you need to agree to the following:
By distributing the API binaries with my app, I (the developer of the app) agree:
- I have a mechanism to update the app to remove the API binaries once they are in-box in Windows, and to keep up to date with any additional previews.
- I will make all possible efforts to keep up with any additional preview releases, and update my app to include those, ensuring customers have the latest fixes and features at least up through the point where we announce that the API surface area / metadata is locked
- I will let my customers know that I am using preview Windows MIDI Services APIs, until the point when the preview API is removed from my product.
- I will not ship the
Windows.Devices.Midi2API to versions of Windows below Windows 11 25h2 (Windows 11 24h2 is unsupported, and will not get the required fixes, so we recommend customers move to a supported version of Windows 11, or switch to Legacy API Mode) - I will file bugs on GitHub for any issues I encounter, and make an effort to assist in the debugging of the reported problems.
- When the 1.0 version of the Windows MIDI Services WinRT API is in Windows, and I have a new release of the app built against it, I will make an effort to contact my customers to inform them of the new version and encourage them to update to it, if that process is not automatic.
Failed WinRT component activation is typically projected as an exception in your applications, so keeping up to date with the latest updates is important. Microsoft will endeavor to lock the API well before the expected release date so this isn't a last-minute surprise, but there's always the possibility that the .winmd has to differ in some way in the in-box version.
Note: The .pri file contains resources and must be installed with the dll. In the distribution acquired here, the resources are en-US only. The version that ships in Windows will be translated.
Remainder
This set of release notes only covers the delta from Preview 10. Please refer to Preview 10 and earlier for everything before that.
Installers
Each platform still has two installers, Tools and Transports, the same as in Preview 10.
- Windows MIDI Services Tools (
0.99.92-preview.11) adds the new Windows MIDI Sequencer. Its shortcut, MIDI Sequencer, is in the Windows MIDI (Preview) folder on the Start menu with the other apps. - Double-click a
.midisequencefile to open it in Windows MIDI Sequencer. It's also offered under Open with for.mid,.midiand.midi2files, and imports them into a new sequence. - File Explorer now calls
.midilayoutand.midipatchfiles Windows MIDI Glass layout and Windows MIDI Patchbay patch. - Windows MIDI Services Transports (
1.0.41-preview.9) has the same five transports as Preview 10.
API Changes
NuGet package version for this release is 0.99.92-preview.11.
As noted above, this release locks the interfaces and their contracts. Since Preview 10, the API gained one method, and one class now reads MIDI-CI resource lists the way the specifications say to. Nothing else in the API changed.
Which copy of the API your app is using
MidiApi.IsSystemProvided() is new. It returns true when your app is using the copy of the API that comes with Windows, in the Windows system folder. It returns false when your app is using its own copy, such as the one the Windows.Devices.Midi2 NuGet package puts next to it.
- When Windows has its own copy, that's the one your app gets, even if your app ships one too. Your copy is only used on PCs where Windows doesn't have it.
- One use is telling your customers when your app is running on the preview copy of the API it brought with it.
- It's on a new interface,
IMidiApiStatics2, so the interfaceMidiApialready had didn't change. It never throws. If it can't tell which copy it is, it returns false.
Capability Inquiry
MidiResourceListEntry now uses each resource's own defaults. A Property Exchange resource list entry can leave out any property that has its default value, and some resources have defaults of their own. For example, a ProgramList is paged and needs a resource id, even when its entry doesn't say so.
FromJson, and the constructor that takes a resource name, start from that resource's own defaults. That coversProgramList,ChCtrlList,CtrlMapList,State,CurrentMode,BasicChannelRx,BasicChannelTx,LocalOnandExternalSync. Any other resource, including a manufacturer's own, starts from the general defaults, as before.GetJsonleaves out whatever matches those defaults. Anything an entry says outright still wins.- Before, every entry started from the general defaults, so a device's minimal
{"resource":"ProgramList"}entry read as a list that can't be paged and doesn't need a resource id.
Samples
- New:
app-manifestis an example application manifest for an unpackaged desktop app that ships its own copy ofWindows.Devices.Midi2.dll. It tells Windows where each class is, so the app's copy can be used from any language. Apps built with C++/WinRT, C#/WinRT or the Rustwindowscrate already find the DLL in the app's folder, so they don't need it. On a PC where Windows has its own copy, Windows uses that one. - Updated:
detect-midi-services(C++/WinRT) shows the three checks an app should make at startup to decide between Windows MIDI Services and the older MIDI APIs: whether this version of Windows supports the API (Windows 11 25H2 or later), whether the API is there, and whether it's usable on this PC. It shows each check two ways, through the NuGet package and with no build-time reference at all, and usesIsSystemProvided()to say which copy of the API it got. - All other sample projects reference the new NuGet package version.
Transports
Transport package version for this release is 1.0.41-preview.9. It has the same five transports as Preview 10.
General MIDI Synth
Sound
These fixes came from a customer report, #1260.
- Held notes now settle to the sustain level the sound set asks for. Before, that level was read wrong, so a held note either stayed at full volume or faded away completely. Overall loudness still matches the Microsoft GS Wavetable Synth.
- Drums are spread across the stereo field the way the sound set places them, so the toms move from one side to the other. Before, each drum was either in the middle or all the way to one side.
- The reverb is smoother and fuller, and a sound panned to one side now gets reverb on both sides.
MIDI-CI
- Process Inquiry. The synth now supports MIDI Message Report. An app that connects after a song has started can ask where each channel's pitch bend, controllers, pitch bend sensitivity and program are, without having sent them itself.
- Controller list. A new
ChCtrlListresource lists the 13 controllers every channel responds to, with their default values. Each channel list entry links to it. - Channel list entries have a title, "Melodic" or "Percussion". The title follows the drum channel if it moves.
- Text a person reads in its Property Exchange replies, such as the channel titles, link titles, controller names and device information, can now be translated. Patch names and category names aren't translated.
- The resource list leaves out any setting that's already the default for that resource.
Bluetooth MIDI
- A device that was reset, or switched off and on again quickly, could show as connected but send and receive nothing until you disconnected it and connected it again. That happened when it came back before Windows noticed it was gone. Now, whenever the link comes back, the transport turns the device's MIDI messages back on. If that fails, it tries again, and then connects the device again from the start.
Network MIDI 2.0 and RTP-MIDI
- Devices with more than one address. A device can announce an IPv4 address and several IPv6 addresses, and nothing says which one to use. A client on this PC now tries them in the order Windows uses for every other app, moves on to the next address when one doesn't answer, and remembers the one that worked. Before, a client used only one address, usually IPv4 when the device had one. A device you connect to by host name gets the same treatment, with every address that name has. See How Network MIDI 2.0 works in Windows.
- Network MIDI 2.0 advertising. A Network MIDI 2.0 host now registers its advertisement with Windows the same way an RTP-MIDI host does. If other devices have listed a host on this PC with the wrong details, as in #1249, please try again with this release and tell us what you see.
- Renamed hosts. When a host's name is already taken on the network, Windows gives it a slightly different one. Stopping or removing a host that had been renamed left its advertisement on the network until Windows restarted, and could remove another advertisement on this PC that had the original name. Fixed for both transports.
In-box service and transports
These parts ship in Windows. The fixes below reach customers through a Windows update, not through the preview packages.
- MIDI 1.0 input from some devices (#1146, #1263). With some devices, apps that use the older MIDI 1.0 APIs, such as WinMM, got nothing, or lost some short messages, while apps that use the Windows MIDI Services API got everything. Fixed.
- WinMM apps that pass MIDI through. An app could stop responding if it closed a MIDI input while that input's callback was calling another WinMM MIDI function, such as sending what it just received on to an output. Fixed. Opening a MIDI port also no longer holds up every other WinMM MIDI call in the same app until the open finishes.
- A USB device dropping during a large SysEx send (#1267). If a USB MIDI device dropped off while a WinMM app was sending it a large SysEx message, that app could get errors from the device's ports for 10 to 20 seconds after the device came back, even on ports it had just opened again. Fixed.
- App-to-app MIDI. The MIDI service could stop responding when an app closed its virtual device at the same moment another virtual device connection was being opened. MIDI then stopped for every app until the service restarted. Fixed.
- MIDI 2.0 loopbacks. An app could open a loopback endpoint after the loopback was removed. The open worked, but nothing the app sent went anywhere. Now the open fails, so the app knows the endpoint is gone.
- Clearing a MIDI 1.0 port name in MIDI Settings now puts the port's default name back right away. Before, the old name stayed until the MIDI service restarted. MIDI Settings has the rest of the fix for #1269.
Applications
Tools package version for this release is 0.99.92-preview.11.
Windows MIDI Sequencer Preview
A brand new app. Windows MIDI Sequencer puts MIDI on a timeline, so you can build a song and play it back to your devices. Each track plays to one device, and a clip launcher plays clips and scenes live, the way a groove box does. It's made for MIDI 2.0: notes keep their full detail, such as 16-bit velocity, and devices that only speak MIDI 1.0 still play everything they can. It doesn't record or play audio. It plays the General MIDI Synth built into Windows, a hardware instrument, or a software instrument in another app.
This is a very early preview. Parts of it are still being built, and things will change. Save often, and keep a copy of any sequence you care about.
- Tracks. Each track plays to one device, on one group and channel, set in Track setup. M, S and R mute, solo and arm a track. Folders hold tracks, and Pin to the top keeps a track above everything that scrolls. A new sequence starts with one track that plays the General MIDI Synth.
- Three kinds of clips. Notes clips hold notes you draw, type, record or import, and open in a piano roll. Pattern clips are step sequences: each lane has its own number of steps, a step can have a chance or play only on some passes, and Swing pushes every second step later. Generator clips make their notes as they play, with a Euclidean rhythm or a Chance melody.
- The timeline. A clip can loop, and one clip can be placed in many spots, so a change to it changes every copy. Drag along the ruler to set the loop, and Snap sets the grid.
- Recording. Arm tracks and select Record. Capture makes a clip from what you just played on the armed tracks, even if you weren't recording. Record from MIDI Keyboard opens Windows MIDI Keyboard, set up to play into the track.
- Automation and tempo. Automation lanes change a controller, pitch bend, pressure or program over time. The Tempo and meter track holds the tempo map, where a tempo can jump or ramp to the next one, and tags that mark the parts of a song.
- Lyrics. Type the words under File > Lyrics..., with hyphens between syllables. They show on the timeline and in a box that follows along while the sequence plays, and the track that sings sends them to a MIDI 2.0 device as lyric messages.
- Clip launcher. Select a clip to play it on its track, or a scene to start every clip in its column. Launch sets when a launched clip starts: right away, or at the next sixteenth note, beat, bar or more. Back to timeline goes back.
- Clock and sync. Follow another device's MIDI clock, or send MIDI clock, song position and MIDI Time Code to other devices. When a device has a timing offset set in MIDI Settings, the sequence sends to it a little early or late to line it up.
- Remote control. Remote control and MIDI Glass... makes a MIDI endpoint called MIDI Sequencer. A controller, another app or a Windows MIDI Glass layout can send to it to play, stop, launch clips and scenes, and mute, solo or arm tracks. The sequencer sends back what's playing, so a control surface can light up. The same dialog can make a Windows MIDI Glass layout for the sequence.
- Import and export. Import Standard MIDI Files (
.mid, and karaoke.karfiles with their lyrics), MIDI 2.0 clip files (.midi2), DAWproject files (.dawproject), which many DAWs can save, and captures from Windows MIDI Monitor or themidiconsole (.csv). Messages copied in Windows MIDI Monitor paste as a clip. Export writes a Standard MIDI File, a MIDI 2.0 clip file for each track, a DAWproject file, or the lyrics with their times (LRC). - About this sequence... says who made the sequence and how, with the same info Windows MIDI Glass and Windows MIDI Patchbay save with what you make, and lists where every clip came from. Copyright notice in exported files goes into the files you export.
- Sequences are
.midisequencefiles in Documents > MIDI Sequences. A sequence that's been saved once saves itself again as you work. Undo and Redo cover your changes, and File > Open the sample sequence gives you something to look around in.
Not there yet: the arpeggiator generator plays nothing yet. Automation lanes inside a clip play, but you can't draw them. Pattern steps can only play notes. Lyrics don't have ruby text or two languages at once, and lyrics in an imported MIDI 2.0 clip file play but don't show in the Lyrics row. DAWproject export leaves out per-note expressions and polyphonic pressure.
To get started, see Windows MIDI Sequencer.
Windows MIDI Patchbay
Windows MIDI Patchbay was rebuilt for this release. Filters, changes and sending speeds used to be settings on a connection. Now each one is a step you put on the canvas, and there are many new kinds of steps. Windows MIDI Patchbay covers all of it.
Your patches
- The main window is now a library of your patches. Each tile shows a map of the patch and whether its devices are here, such as 4 devices ready or 1 device missing. A routing patch has a green edge and shows how many messages go through it each second. Turn on a tile's switch to start it.
- All, Routing, Not routing and Needs attention show only some of your patches, and the search box finds a patch by its name, its description or its devices. Sort by name or by when a patch last changed, and show tiles or a list. The status bar shows how many patches are routing and how many messages go through each second.
- Each patch opens in a window of its own, and keeps routing after you close that window. New quick patch connects one device to another in two steps.
- Patches are now kept in Documents > MIDI Patches. The first time it starts, Windows MIDI Patchbay moves your patches there from Documents > MIDI Patchbay.
- The patch file format changed. When you open a patch from an earlier version, its filters, changes and sending speeds become steps, and it routes the same way. Earlier versions can't open the new files, so the original is kept in Documents > MIDI Patches > Earlier versions, and Show the original finds it.
- A patch made by a newer version opens and routes, without the steps this version doesn't know. It's never saved, so nothing in it is lost, and its tile says From a newer version.
- A new patch says who made it, from the same info Windows MIDI Glass uses (Your info for sharing...), and a copy says which patch it's based on.
Building a patch
- Undo and Redo cover every change. Select several endpoints and steps with Ctrl or Shift, or drag a box around them, then move, Cut, Copy, Paste or Duplicate them, in the same patch or another one. The connections between them come along.
- The Steps and Endpoints tabs on the left list everything you can add, and each endpoint shows the picture set for it in MIDI Settings. Drag the bars beside the canvas to give the canvas or the panels more room.
- Select a step to read what it does, in a sentence, under Behavior. Short settings are right in the details panel and take effect as you change them. Longer ones open with Edit settings... and wait for Apply. You can give any step its own name, and Bypass lets everything through it unchanged.
- Annotation, on the Steps tab, puts a note on the canvas, in the font, size, style and color you pick.
New steps
- Filters. New Group filter, Note filter, Control change filter, Velocity filter, (N)RPN filter and Message mask filter. The note and control change filters can Learn from the notes and controls you play on your device, and two note filters split a keyboard across two instruments.
- Transforms. New Group mapper, Clock divider and (N)RPN transform. The transforms Preview 10 had, such as transpose and control change values, are steps now too.
- Message throttler is the sending speed that used to be on a connection. Put it right before the device. Everything connected into one throttler shares its speed, and a patch from an earlier version gets one throttler for each connection that had a speed.
- Note distributor plays several one-note synths as one bigger synth. Each new note goes to one of them, and its note off follows it there.
- Logic steps. Branch and Switch send a message one way or another by a test on something in it, such as its channel, note or a controller's value, or on a tag or a memory. Set tag gives a message a value to carry through the rest of the patch, Set memory remembers a value for the messages that come after, and Put value writes one into a message. Gate lets messages through only between one message and another, such as Start and Stop. That's how a footswitch can pick which synth a keyboard plays. A note off always goes the way its note on went, so nothing is left sounding.
- MIDI-CI steps. MIDI-CI responder answers MIDI-CI for a MIDI 1.0 device that can't, with the identity you give it, so an app that looks for MIDI-CI devices finds it. A MIDI-CI file in the patch folder adds the device's profiles and properties, such as its program list, and an AI assistant can write one from the device's manual. With Answer MIDI message reports on, it also tells an app which notes are playing and where each channel's controllers are. MIDI-CI filter keeps MIDI-CI away from a device, or lets only MIDI-CI through.
- Generators. MIDI clock, with swing and optional Start and Stop, MIDI Time Code at 24, 25, 29.97 drop frame or 30 frames per second, and an LFO that sweeps a control change, pitch bend, pressure, or an RPN or NRPN. They run while their patch routes. An LFO follows a clock connected to its In, so one clock can keep a whole setup in time.
Testing a patch
- Show live routing, under Test, lights up each connection and step as messages go through it.
- Trace messages..., under Test, shows where a list of messages you make goes through the patch, one step at a time, without sending anything to a device. It works on a patch that isn't routing, and with devices unplugged.
Not there yet: Windows MIDI Patchbay doesn't show who made a patch. Logic steps compare and copy values, but don't do math. A MIDI-CI responder only answers: it can't change the device, and it doesn't answer MIDI 2.0 endpoint discovery.
Windows MIDI Glass
- Pack for sharing..., on a layout card's ... menu, makes one
.midilayoutpackfile with the layout, every picture and video it uses, and its theme if the theme is one of yours. Right-click one of your themes in the theme gallery to pack it as a.midithemepack. This replaces Package for another PC..., and the.zippackages it made still import. - Import a pack..., on the library's ... (More options) menu, shows what's in a pack, who made it and whether it's signed, before it writes anything. A pack lists every file in it with a fingerprint, so a pack that's damaged, or changed after it was made, isn't imported.
- Who made it. A layout or theme can say who made it: a name, a company or group, a website, a license, a version, and whether AI was used. Set yours once with Your info for sharing... on the library's ... menu, and it goes into everything you make from then on. Windows MIDI Patchbay and Windows MIDI Sequencer use the same info.
- About this layout... and About this theme... show who made a layout or theme. A name that no signature backs shows (unverified) after it. In the editor, the Name and description page is now About this layout, where you can change it, and Save as theme... asks who made a new theme.
- Signed packs. A publisher, such as an instrument maker, can sign a pack with a code-signing certificate, under Sign it when packing. A signed pack shows Signed by and the name on the certificate when you import it, and so does the layout's card for as long as its files are exactly what was signed. A pack whose signature doesn't match, or whose certificate was withdrawn, isn't imported. A signature shows who published a pack. It doesn't mean the pack is safe or that it works.
- Edit on a layout from a signed pack offers to make your own copy, so the signed one stays as it was published. The copy says which layout it's based on.
- Group themes by, above the theme gallery, groups the themes by who made them or by who signed them, and each theme shows who made it under its name.
- A layout or theme made by a newer version of Windows MIDI Glass opens and runs, but can't be saved, so the parts this version doesn't know aren't lost. A control or message this version doesn't know is kept as it is, and never sent.
MIDI Settings
- Fixed: when you named a MIDI 1.0 port, and later named another port on the same device, the first name was lost the next time the MIDI service or the PC restarted (#1269). This started in Preview 9. If it happened to you, name those ports again.
- Each dialog now saves everything the endpoint has, including what that dialog doesn't show, so saving one no longer resets what another one set, such as a device's latency or its Port naming choice.
- After you save port names, MIDI Settings says that apps see them after you unplug the device and plug it in again, or restart the MIDI service.
Network MIDI Setup
- Firewall, a new page at the bottom of the list, shows whether Windows Firewall lets the MIDI service in on the network you're connected to now, and if it doesn't, why (#1257). Allow through Windows Firewall adds one rule for the MIDI service, for private networks, public networks or both, after Windows asks for administrator permission. Using it again changes that same rule, and rules you made yourself are left alone.
- The page also explains why other devices can see this PC's hosts but not connect to them, how to allow the MIDI service yourself, and what to do if your PC uses a firewall from another company.
- The Customize dialog no longer cuts off its settings at larger display scales, and Create host shows the sending speed without scrolling.
- Wherever you pick a sending speed for an RTP-MIDI device, a note explains that Windows can't slow down by itself for RTP-MIDI devices, because they don't tell this PC when they miss data.
MIDI Clock
- Show the running time code, a new setting, shows the time each time code clock has reached on its tile, ten times a second, while you can see the window. It's off by default, because redrawing the time uses some CPU. With it off, a time code tile shows no time. Before, the tile showed a time that never moved.
MIDI Loopback Setup
- At larger display scales, the buttons at the top of a page could squeeze the text beside them down to a few letters, and leave no room for the list of loopbacks (#1259). The buttons now have a row of their own under the text, and the diagram shrinks to fit.
MIDI Monitor
- Fixed: a time signature showed its bottom number the way it's sent, as a power of two, so 4/4 read as 4/2.
MIDI Troubleshooting and Repair
- The report viewer shows the new Network discovery (mDNS) and Network history sections from mididiag.
mididiag
- The network part of the report lists each network adapter, with its kind, whether it's connected, and which kinds of addresses it has, with most of each address left out. It also shows whether the firewall blocks all incoming connections, and what it does with them by default. Its answer to whether Windows Firewall lets the MIDI service in now takes both into account.
- A new network discovery (mDNS) section shows the Windows service that answers multicast DNS, its settings, the firewall rules for it, and which programs use its network port. Network MIDI uses multicast DNS so devices can find each other by name.
- A new network history section shows when networks connected and disconnected, and when the PC slept, woke and restarted, over the last three days.
- For each Network MIDI 2.0 and RTP-MIDI host that's running, the report asks Windows for the host's advertisement, and says whether it answered and whether the answer matches the host. New findings say when a host isn't advertised, when multicast DNS is turned off or blocked by the firewall, and when the DNS Client service restarted after the MIDI service, which takes away what the MIDI service had advertised.
midi1monitor
- It could stop responding when you exited while system exclusive messages were arriving. It now stops cleanly, and says so when it didn't receive anything.
All apps
- An app's first window now opens at the size it was meant to be at any display scale. Before, above 100% scale, it opened too small.
- MIDI Monitor, MIDI Scratch Pad and MIDI SysEx Tool have a link in their settings to the new A primer for UMP data format article, which explains how to read the UMP messages they show. Windows MIDI Glass and Windows MIDI Patchbay link to it from their settings and from the fields where you type UMP words.
- MIDI Glass and MIDI Patchbay are now called Windows MIDI Glass and Windows MIDI Patchbay in their own windows, in MIDI Settings, and in File Explorer.
- MIDI Keyboard, MIDI File Player, Notifications, Bluetooth MIDI Setup, the MIDI Console and the PowerShell module have no changes in this release.
Documentation
- New knowledge base article: A primer for UMP data format. It's for anyone who can read MIDI 1.0 bytes by sight and wants to make sense of the UMP messages that MIDI Monitor and the other apps show. It puts common messages side by side in both forms, explains how System Exclusive changed, and describes what Windows translates for you.
- New tools page for Windows MIDI Sequencer.
- The Windows MIDI Patchbay page was rewritten for the patch library, patch windows, every step, logic, MIDI-CI, generators, annotations and tracing. Windows MIDI Patchbay patch files, a guide for AI agents covers the new file format, every step and the MIDI-CI file, and its checking script was updated to match.
- Windows MIDI Glass has a new section on sharing layouts and themes: packs, signing, and who made it. How Windows MIDI Glass themes work covers the same for themes. The guides for AI agents now ask the assistant to say who made a file, and that an AI made it.
- Porting a MIDI Library or Framework to Windows MIDI Services has new sections on deciding at startup whether to use Windows MIDI Services, in three steps, and on handling WinMM SysEx input buffers safely, including how to stop an input whose callback gives buffers back. Minimum System Requirements, Moving from WinMM to Windows MIDI Services and Integrating MIDI 1.0 and MIDI 2.0 APIs now say the API needs Windows 11 25H2 or later, and point to the
detect-midi-servicessample. - Understanding Data Translation for MIDI Messages explains what happens to a note on with zero velocity in each direction between MIDI 1.0 and MIDI 2.0.
- How the built-in General MIDI synthesizer works covers Process Inquiry, the new controller list, channel titles, and which text can be translated.
- How Network MIDI 2.0 works in Windows explains how a device with more than one address is tried. Adding Network MIDI 2 to your firewall so other devices can connect and the Windows MIDI Network Setup page cover the new Firewall page.
- The MIDI Diagnostics Report page covers the new network sections, and has a new section on what to check when other computers can't see your PC. The Windows MIDI Clock page covers Show the running time code.
- The
MidiApireference page coversIsSystemProvided(), and theMidiResourceListEntrypage covers the new defaults. The Network MIDI 2.0 and RTP-MIDI overview pages explain how a client picks an address. - Bluetooth Low Energy MIDI Transport Architecture explains how the transport turns a device's messages back on after the link comes back.
- Pages and articles use the apps' new names, Windows MIDI Glass and Windows MIDI Patchbay, and llms.txt now also points AI assistants to the Windows MIDI Glass, Windows MIDI Patchbay and Windows MIDI Sequencer pages.