Windows MIDI Services comes with a lot of tools, and most jobs can be done more than one way. This page starts from the job instead of the tool. Each answer is short, and points you to the tool page that has the details. Select a question to see its answer.
The apps on this page will be released to consumers in 2027. For developers and technical customers, you may download the latest preview releases from GitHub. Everyone else should wait until the software is delivered with Windows 11. Bluetooth MIDI, Network MIDI 2.0, RTP-MIDI, and the General MIDI synthesizer are previews too, and they’re installed separately.
On this page:
Open Windows MIDI Settings. It lists every MIDI device on the PC, which Windows calls an endpoint, and keeps the list up to date as you plug things in and take them out. Select one to see its details, including the MIDI 1.0 ports that older apps see.
From a command prompt, midi enumerate endpoints in the MIDI Console lists the same devices. In PowerShell, use Get-MidiEndpointDeviceInfo from the MIDI PowerShell cmdlets.
Open it in both apps. There’s nothing to set up. Windows MIDI Services lets more than one app use a device at once, so a DAW and Windows MIDI Monitor, or two DAWs, can listen to the same keyboard and send to the same synth.
This is one of the things you give up in Legacy API mode, where a device belongs to one app at a time, the way it did before Windows MIDI Services. See How to change the API mode.
In Windows MIDI Settings, select the device, then Customize. The name, description, and picture you choose show up in apps that use Windows MIDI Services, and they come back each time you plug the device in.
Older apps see a device’s MIDI 1.0 ports instead, so name those with Edit port names in the same dialog. New port names take effect when the MIDI service restarts. To do this from a script, use midi endpoint customize in the MIDI Console.
Use the General MIDI synthesizer that comes with Windows MIDI Services. It plays through your PC’s default audio device, and apps list it as General MIDI Synth. Windows MIDI Keyboard, Windows MIDI Player, and Windows MIDI Sequencer can all play it.
Turn it on or off, and change how it sounds, under Global MIDI Settings in Windows MIDI Settings, or with midi synth in the MIDI Console. How the built-in General MIDI synthesizer works has the details.
Windows MIDI Keyboard is the quickest way. You can play several keys at once with your fingers, and where you strike a key sets how hard the note plays: softer near the top, harder near the bottom. Sliding a finger up a key you’re holding can send aftertouch, the mod wheel, or a MIDI 2.0 per-note controller.
For a playing surface of your own, build a layout in Windows MIDI Glass. Note pads and hex pads take a finger on each pad, so you can play chords, and they can stay in one key and scale. Put faders, knobs, and buttons on the same page, and run it full screen.
To play an app on the same tablet, send to Default App Loopback (A) and set the app to listen to Default App Loopback (B). To play another computer, connect the two first. See Connect two Windows PCs. To control gear that’s plugged into the other computer, see Control gear plugged into my main PC from Windows MIDI Glass on a tablet.
In Windows MIDI Glass, select New layout and pick the DJ deck template. You get two decks with filters, three band EQ, cue pads, and a crossfader. Most DJ apps have a MIDI learn feature, so turn that on in the DJ app and move each control in the layout to map it. Run the layout full screen on a touch screen or a tablet.
If the DJ app is on the same PC, send the layout to Default App Loopback (A) and have the DJ app listen to Default App Loopback (B). If it’s on another PC, connect the two computers first, and send the layout to that connection.
Want just a few buttons over the DJ app? Make a floating toolbar. An Xbox controller or a joystick can be a remote too, with the game controller steps in Windows MIDI Patchbay.
Windows MIDI Glass can act as a Mackie Control surface, which most DAWs support. Its faders move when the DAW moves them, and its buttons light up for mute, solo, and record. Start a new layout from the Mackie Control template, then follow How to control your DAW with Mackie Control in Windows MIDI Glass. Pro Tools uses HUI instead, which Windows MIDI Glass doesn’t support yet.
For a few buttons that float over the DAW, see How to make a floating toolbar or palette in Windows MIDI Glass.
Windows MIDI Patchbay has game controller steps for Xbox controllers, including the Xbox Adaptive Controller, and for joysticks, flight sticks, wheels, and gamepads. A button can play a note, hold the sustain pedal, or step through programs. A stick or trigger can bend the pitch or move a controller. Add a step for each control, connect it to your instrument, and turn on routing.
The steps keep working while another app, such as a game or your DAW, is in front, so you’ll want to turn this off when using your controllers for an actual game :).
Open Windows MIDI Keyboard, pick the synth on the top row, and click or tap the keys. Turn on Arp and Latch for a steady pattern you don’t have to keep playing, so your hands are free for the synth’s knobs.
From a command prompt, midi endpoint play-notes 60 64 67 in the MIDI Console plays three notes. To send an exact message from the synth’s manual, use Windows MIDI Scratch Pad.
Select Panic next to the device in Windows MIDI Settings. It sends All Sound Off, Reset All Controllers, and All Notes Off on every channel of the device. Windows MIDI Keyboard and a running Windows MIDI Glass layout have a Panic button too. In Windows MIDI Glass, Ctrl+Shift+P does the same thing.
Open it in Windows MIDI Player, or drag it onto the window, and choose an instrument under Play to. It plays to any MIDI device, a loopback, or the General MIDI synth, and shows the notes as they play. It’s also in the Open with menu for MIDI files in File Explorer.
To play a file from a script, use Start-MidiFilePlayback from the MIDI PowerShell cmdlets. To change the music, import the file into Windows MIDI Sequencer.
Windows MIDI Sequencer puts MIDI on a timeline. Draw notes in a piano roll, set steps in a pattern, let a generator make a part, or record what you play. Its clip launcher plays clips and scenes live, the way a groove box does. Each track plays to one device: a hardware synth, an app on a loopback, or the General MIDI synth.
It works with MIDI only, not audio. It’s also a very early preview, so save often.
Use a loopback, which works like a MIDI cable between apps. Windows MIDI Services comes with one: what one app sends to Default App Loopback (A) comes out of Default App Loopback (B) in the other app, and the other way around. To make more, with names that say what they’re for, use Windows MIDI Loopback Setup.
Loopbacks belong to the PC, not to an app, and saved ones come back after a restart. To keep the two DAWs in time, have one send MIDI clock to its side of the loopback, and set the other to follow the clock on the other side.
Both DAWs can also use your MIDI hardware at the same time, so there’s no need to pass a keyboard through one DAW to reach the other.
Windows MIDI Loopback Setup can make a loopback to match each port of the other tool, with the same name, so your apps find them the way they did before. On the MIDI 1.0 Basic Loopbacks page, select Import from another provider…, and tick the ports to bring over.
When it’s done, remove the old ports or uninstall the other tool. Until you do, there are two ports with each name, and your apps can’t tell them apart.
Open Windows MIDI Bluetooth Setup, wait a few seconds for the device to show up, and select Connect. It then works in your apps like any other MIDI device, and reconnects on its own when you switch it on again. You can close the app. Most devices don’t need pairing, and the app tells you when one does.
If a device doesn’t show up, it may be asleep, or still connected to a phone or tablet. See Common reasons a device may not connect. From a script, use midi bluetooth connect in the MIDI Console.
On the This PC page of Windows MIDI Bluetooth Setup, select Publish, and leave Protocol on Bluetooth LE MIDI 1.0. Then connect to this PC from the other device’s Bluetooth MIDI settings, or from a music app on it. When it connects, select Allow once or Always allow, and it shows up as a MIDI device on this PC.
From a command prompt, use midi bluetooth peripheral start in the MIDI Console.
Open Windows MIDI Network Setup. Devices that announce themselves on your network show up on their own. Select Connect on the one you want. For one that doesn’t, use Connect to a device by address. Once it’s connected, it works in your apps like any other MIDI device, and it reconnects on its own.
If a connection sits at Connecting, look at the other device. It may be waiting for you to allow the connection. When a device offers both Network MIDI 2.0 and RTP-MIDI, use Network MIDI 2.0.
Use Network MIDI 2.0, which macOS now supports too. It carries both MIDI 2.0 and MIDI 1.0. On the Mac, it’s the MIDI 2.0 option in MIDI Network Setup, in the Audio MIDI Setup app. On this PC, open Windows MIDI Network Setup. To connect to a host on the Mac, find it on the Network devices page and select Connect. To have the Mac connect to this PC, select Create host on the This PC page, then connect to it from the Mac. Either way, the connection shows up as a MIDI device in apps on both computers.
RTP-MIDI is the second choice. It’s older and carries only MIDI 1.0, but Macs, iPhones, and iPads have had it for years. On the Mac, it’s in the same MIDI Network Setup window. On this PC, it’s on the RTP-MIDI pages of Windows MIDI Network Setup, which appear once the RTP-MIDI transport is installed. They work the same way as the Network MIDI 2.0 pages.
No network? A MIDI interface on each computer, with MIDI cables between them, works too.
Use Network MIDI 2.0. On one PC, open Windows MIDI Network Setup and select Create host on the This PC page. On the other PC, the host shows up on the Network devices page. Select Connect. Each PC then has a MIDI device for the other, which any app can use. If you set the host to Ask me first, allow the connection on that PC. See Get notified when a remote network MIDI device wants to connect.
RTP-MIDI works between two PCs too, on the RTP-MIDI pages of the same app. Use it when the other PC only has RTP-MIDI.
Two PCs near each other can use Bluetooth instead. Publish one PC on the This PC page of Windows MIDI Bluetooth Setup, and connect to it from the other.
If the PCs can’t find each other, see Let other computers connect to my PC over the network.
When a Network MIDI 2.0 host on this PC is set to Ask me first, a device that asks to connect waits until you allow it. The MIDI Notifications app tells you when one is waiting. Select the notification, and Windows MIDI Network Setup opens on that device, so you can allow or block it.
To turn it on, select Notifications in Windows MIDI Settings, and turn on Show MIDI notifications and Network MIDI 2.0 connection requests. Start the notifications app when I sign in keeps it running. It doesn’t carry any MIDI, so nothing stops working when it’s closed.
It only watches Network MIDI 2.0 hosts. For an RTP-MIDI host, open Windows MIDI Network Setup to see who’s waiting. See MIDI Notifications.
First connect the two computers over the network. Network MIDI 2.0 is the first choice, for another PC or a Mac, and RTP-MIDI works with both too. See Connect two Windows PCs and Communicate between a PC and Mac over MIDI.
Then send the keyboard to that connection. In Windows MIDI Patchbay, select New quick patch, pick the keyboard, and then pick the connection. Windows MIDI Patchbay routes only while it’s running, so turn on Run in notification area. On the other computer, set the synth app to listen to the connection from this PC.
For a quick test, midi forward in the MIDI Console passes everything from one device to another until you press Esc.
First, connect the two with Network MIDI 2.0. Create a host on the main PC, and connect to it from the tablet, as in Connect two Windows PCs. Each PC then has a MIDI device for the other. Next, give each piece of gear its own MIDI channel. In this example, a USB looper pedal on the main PC uses channel 1, and a synth uses channel 4.
On the tablet, add the main PC’s device to your layout in Windows MIDI Glass. Then, on each control’s Sends tab, pick it under To, with channel 1 for the looper’s controls and channel 4 for the synth’s.
On the main PC, split the channels up with Windows MIDI Patchbay. Connect the tablet’s Out to two Channel filter steps, as in Send each MIDI channel to a different device or app. Let only channel 1 through the first one, and connect it to the looper. Let only channel 4 through the second, and connect it to the synth. To reach an app on the main PC, send its channels to a loopback, so the app doesn’t lose them while the tablet is away. See Keep a device in my DAW while it’s switched off.
A USB controller plugged into the tablet can go the same way. On the tablet, send it to the main PC’s device with Windows MIDI Patchbay, like a keyboard. Put it on a channel that nothing else uses, so the main PC can tell it apart. Change the channel in the controller’s own settings, or with a Channel mapper step. Then, on the main PC, route that channel like the others.
Windows MIDI Patchbay routes only while it’s running, so turn on Run in notification area and Start with Windows on both PCs.
You can also give each piece of gear a connection of its own, instead of a channel. Create a host on the main PC for each one, named after the gear, and connect the tablet to every host. On the tablet, each control then sends to the host for its gear, on whatever channel the gear listens on. On the main PC, each connection is a device of its own, so connect each one’s Out straight to its gear, with no filters. The main PC names all of those devices after the tablet at first, so rename each one in Windows MIDI Settings to tell them apart.
Many DAWs drop a device from their setup if its ports are missing when the DAW starts. For Bluetooth and RTP-MIDI devices, set Keep endpoint when offline to Always, in Windows MIDI Bluetooth Setup or Windows MIDI Network Setup. The ports stay, and the device works again as soon as it comes back. Anything sent to it while it’s off is lost.
Network MIDI 2.0 devices don’t have this setting, so put a loopback between the device and the DAW. Have the DAW listen to Default App Loopback (B). Then, in Windows MIDI Patchbay, connect the device’s Out to Default App Loopback (A). The loopback is always there, even while the device is away, and Windows MIDI Patchbay starts passing messages to it again as soon as the device comes back.
Most of these answers use Windows MIDI Patchbay, where you connect devices and apps by drawing lines between them. It routes only while it’s running, so turn on Run in notification area, and Start with Windows if you want your patches every time. See Routing only runs while Windows MIDI Patchbay is running.
In Windows MIDI Patchbay, connect the keyboard to two Note filter steps: one that lets through the notes below the split, and one for the notes above it. Connect each filter to a loopback of its own, and set each synth app to listen to its loopback. Create loopback, in the patch window, makes them for you.
If both synth apps can listen to one loopback on different channels, put a Channel mapper after each filter, and connect both to that one loopback. See Filter steps.
In Windows MIDI Patchbay, connect the sending device’s Out to one Channel filter step for each place the messages should go. Set each filter to let through only the channels that belong there, and connect it to that place. For example, send channel 16 to a looper pedal, and channels 1 to 15 to Default App Loopback (A), for an app that listens to Default App Loopback (B).
Messages that don’t have a channel, such as clock and SysEx, get through every channel filter. To keep them away from a device, put a Message type filter in front of it. If a device listens on a different channel than the one you send on, put a Channel mapper after its filter. See Filter steps.
In Windows MIDI Patchbay, connect the keyboard’s Out to the In of both synths, and each synth gets its own copy of every message. Put steps on either path to change one synth and not the other, such as a Transpose an octave down on the bass.
It works the other way too. Connect two keyboards’ Out to one synth’s In, and their messages are merged. See Steps.
Use the Note distributor step in Windows MIDI Patchbay. Connect your keyboard to its In, and connect its Out to each monosynth, one connection for each voice. Each new note goes to one synth, and its note off follows it there. Four modes, such as Take turns and First free voice, decide which synth plays each note and what happens when they’re all playing. Controllers and pitch bend can go to every synth, or only to the one that played the latest note.
If the synths share one MIDI port on different channels, put a Channel mapper on each voice’s connection to move its notes to that synth’s channel. See Distribution steps.
Put a transform step from Windows MIDI Patchbay between the device and where it’s going:
See Transform steps.
Put a Message type filter from Windows MIDI Patchbay right before the synth, and use System messages to keep out timing clock and active sensing. Active sensing is a “still here” message that many keyboards send at least three times a second whenever nothing else is being sent, so it adds up to a lot of traffic. A synth that never receives it works normally.
If the messages come from an app, such as a DAW, have the app send to a loopback, and connect the loopback through the filter to the synth. Check the app’s settings first, though. Many DAWs can turn off clock for each port.
To see whether a device sends either one, turn them on in Windows MIDI Monitor. It hides both at first.
USB and network connections are much faster than the 5-pin MIDI cable that older gear was built for, and some devices lose messages when a lot arrives at once. How you slow things down depends on how the messages get there:
midi sysex send-file in the MIDI Console has --message-transfer-count and --pause for the same job.midi endpoint send-message-file waits between messages for the number of milliseconds you give with --pause.Use Windows MIDI Clock. Add a clock for each device, set the tempo, and select Start all. Clocks started together begin on the same instant. Each one can run at half or double speed, add swing, or start a few milliseconds early for a device that runs late. With Send Start and Stop messages on, sequencers and drum machines start and stop along with it.
Windows MIDI Patchbay can do it too: connect a MIDI clock step to every device, with a Clock divider in front of any device that should run at half speed. From a command prompt, midi endpoint send-beat-clock in the MIDI Console sends clock until you press Esc.
In Windows MIDI Clock, set What this clock sends to MIDI Time Code, then pick a frame rate and where it starts. A MIDI Time Code step in Windows MIDI Patchbay, and midi endpoint send-time-code in the MIDI Console, send it too. Windows MIDI Sequencer can send time code that follows the song as it plays.
Have the DAW send MIDI clock to a loopback, or connect the device that sends it. Then:
Windows MIDI Clock is a clock source. It sends clock, but it doesn’t follow one.
System exclusive messages, usually called SysEx, are how most devices load sounds, back up their settings, and take firmware updates. What’s inside them is different for every device, so these tools move the bytes accurately and leave the meaning to the device.
Read the maker’s instructions first. Many devices have to be put in an update mode before they accept firmware, and some makers have an updater app of their own that you should use instead.
To send a .syx firmware file yourself, use Windows MIDI SysEx Utility. Pick the device, select Send a file, choose the file, and select Send. Close other apps that might send to the device while it updates. If the update fails, lower Messages per transfer, raise Delay between transfers, and try again.
From a command prompt, midi sysex send-file in the MIDI Console does the same job.
In Windows MIDI SysEx Utility, pick the synth, select Receive, then Start receiving. Start the dump from the synth’s own panel. When it’s finished, select Stop receiving, then Save. The .syx file holds exactly what arrived, so you can send it back to the synth later.
From a command prompt, midi sysex receive-file dump.syx in the MIDI Console waits for the dump and saves it. In PowerShell, use Receive-MidiSystemExclusive.
In Windows MIDI SysEx Utility, pick the synth, select Send a file, choose the .syx file, and select Send. Many synths ignore SysEx until you put them in a receive mode, so do that first. To copy a bank from one synth to another, run two copies of the utility, one receiving and one sending.
To send a whole folder of .syx files from a script, pipe them to Send-MidiSystemExclusive from the MIDI PowerShell cmdlets.
Open Windows MIDI Monitor, pick the keyboard, and select Start listening. Each message shows up as it arrives, with what it means in plain words, such as the note and how hard it was played. Clock and active sensing are hidden at first, because many devices send them all the time. Monitor, next to a device in Windows MIDI Settings, opens it already watching that device.
Your DAW can keep using the keyboard while you watch. From a command prompt, use midi endpoint monitor in the MIDI Console.
Type it into Windows MIDI Scratch Pad as hexadecimal bytes, the way the manual prints it, such as B0 07 64, and select Send all. It checks what you type as you go, and Insert builds common messages for you.
From a command prompt, midi endpoint send-message in the MIDI Console sends a message written as UMP words. A primer for UMP data format explains how to write one.
Windows MIDI Sequencer records into the tracks you arm with R, and exports Standard MIDI Files. For a quick capture, Windows MIDI Monitor can save what it caught as a .mid file.
From a command prompt, midi endpoint monitor --capture-to-file take1.mid --capture-format smf does the same. In PowerShell, use Receive-MidiMessage -Path take1.mid.
Pick whichever fits the way you work:
.syx files with midi sysex send-file, and text files of messages with midi endpoint send-message-file. Run the batch file before the show.Send-MidiMessage and Send-MidiSystemExclusive can set up a whole room of gear in one go.The MIDI PowerShell cmdlets and the MIDI Console cover most setup jobs:
New-MidiLoopback -SaveToConfiguration, or midi loopback create --save-to-config.Connect-MidiNetworkHost and Connect-MidiRtpHost, with -SaveToConfiguration so the connection comes back after a restart.midi bluetooth connect.midi endpoint customize.Set-MidiSynth, or midi synth configure.Use these, or the setup apps, rather than editing the Windows MIDI Services configuration file yourself. The file’s format can change in any update, and the tools keep it correct.
Much of it already does. Loopbacks you saved, and the Bluetooth and network devices you connected, come back on their own after a restart, with no app running. For the rest:
midiclock.exe --start starts every saved clock, from a shortcut or a script.midiglass.exe --run "<layout file>" opens a layout, ready to play. So does double-clicking the layout file.Your device names, port names, loopbacks, network and Bluetooth connections, and transport settings are kept in your Windows MIDI Services configuration. Windows MIDI Settings looks after it, in its Configurations window. A configuration is shared by everyone who uses the PC, so changing one needs administrator rights, and the app offers to reopen itself with them.
In Windows MIDI Settings, select Configurations on the toolbar, and then Back up now next to the configuration in use. Every backup is on the Backups page, with the configuration, its pictures, and the port names setting for older apps. Windows MIDI Settings also makes one by itself before every import, restore, and delete.
To go back to a backup, select it on the Backups page, select Restore, and then restart the MIDI service. What’s there now is backed up first, so you can change your mind. Windows MIDI Services also backs up a configuration before the first change to it each day, and those backups are in the same list, marked Configuration only.
To keep a copy somewhere else too, such as a USB drive, save a package from the Share page.
Your patches, layouts, and sequences are ordinary files in your Documents folder, in MIDI Patches, MIDI Layouts, and MIDI Sequences, and your SysEx files are in SysEx Library. Back them up along with your other files. Windows MIDI Glass can also back up a single layout with Back up now, on the layout’s … menu.
Windows MIDI Settings can keep more than one configuration, and uses one at a time. Select Configurations on the toolbar, then New configuration. Choose Empty to start from nothing, or the copy of the configuration you have now. Name it Stage, and select Create. Then select Use this one next to Stage, and restart the MIDI service when it asks. Now set up the loopbacks, connections, and device names the stage needs. An empty configuration doesn’t have the default loopbacks, so make those again with the Create default loopback buttons in Windows MIDI Loopback Setup.
To switch, select Use this one next to the configuration you want, and restart the MIDI service. Restarting disconnects every app using MIDI, so close them first.
Windows MIDI Patchbay patches and Windows MIDI Glass layouts aren’t part of a configuration, so make a patch or a layout for each setup, and open the one you need.
Patches, layouts, and sequences move easily, because they’re files:
.midipatch files from Documents › MIDI Patches, and use Import patch… on the other PC..midisequence files from Documents › MIDI Sequences.To move the configuration, with your device and port names, pictures, loopbacks, and network connections, use Windows MIDI Settings. On this PC, select Configurations on the toolbar, go to Share, and select Save package…. Save it where the other PC can reach it, such as a USB drive. On the other PC, double-click the package, or open it from the Import page. It shows what each part will do before anything changes. Select Import, and restart the MIDI service. Whatever that PC already had is kept, and backed up first, so you can get it back from Backups. Use these pages rather than copying configuration files yourself, because where they’re kept and what’s in them can change in any update.
A device that reports a serial number gets its name and picture back as soon as it’s plugged in. Other devices are matched by the port they’re plugged into, so on a new PC their settings may not find them. Windows MIDI Settings then shows Some saved settings have no matching device. Select Review them to move the settings onto the right device.
Start with Windows MIDI Troubleshooting and Repair. Its Transports page shows whether each kind of connection, such as USB, Bluetooth, or the network, is running. On its Diagnostics page, the midiksinfo report says why a USB device is missing, or has the wrong number of ports or the wrong names.
For a Bluetooth device, see Common reasons a device may not connect. For a network device, see When something doesn’t connect.
The Active sessions page of Windows MIDI Troubleshooting and Repair lists every app connected to the MIDI service, and what each one has open. midi enumerate active-sessions in the MIDI Console, and Get-MidiSession in PowerShell, list the same thing.
Apps can share a device, so one app using it doesn’t stop another from using it too.
Run the DPC latency check in Windows MIDI Troubleshooting and Repair while you play your project in your audio app. It names the drivers that actually held up audio and MIDI, such as a Wi-Fi, graphics or USB driver, and says what to try for each one. It isn’t a benchmark: run it when you already hear glitches at a buffer size that should be big enough for your project.
Find what makes audio late on your PC (DPC latency) explains what it measures and how to read the results.
In Windows MIDI Troubleshooting and Repair, run mididiag on the Diagnostics page, and select Save as zip. Attach the zip file to your GitHub issue or email. If you’re asked for a trace, use Capture repro log: start the capture, make the problem happen, then stop and save.
From a command prompt, mididiag > mididiag.txt saves the same report. See MIDI Diagnostics Report.
The MIDI service starts when the first app asks for it, which adds a few seconds to that app’s startup. If you use MIDI often, have the service start with Windows instead. Select Start with Windows on the MIDI service page of Windows MIDI Troubleshooting and Repair.
Change the API mode to Legacy MIDI on the API mode page of Windows MIDI Troubleshooting and Repair, then restart the PC. In that mode, you give up sharing a device between apps, the built-in loopbacks, Network MIDI 2.0, Bluetooth LE MIDI, and USB MIDI 2.0 devices. Read How to change the API mode before you switch.
It may have muted itself. Windows MIDI Services mutes a loopback when MIDI feeds back into it, such as when an app sends what it receives straight back to the same loopback. Left alone, that would go around forever. Windows MIDI Loopback Setup shows which loopback was muted and when. Turn off the MIDI thru or echo setting that caused it, then select Unmute. See Why a loopback mutes itself.
Windows Firewall is the usual reason they can’t. The Firewall page of Windows MIDI Network Setup lets the MIDI service through. Devices find each other only on the same network, so check that too. If they still can’t see each other, the MIDI Diagnostics Report checks the rest. See also Adding Network MIDI 2 to your firewall.
Apps that use the older Windows MIDI APIs see a device as MIDI 1.0 ports, and many remember a port by its name. To choose how those ports are named, use Edit port names in the Customize dialog of Windows MIDI Settings, or set the default for every device in Global MIDI Settings. Compatible with older Windows keeps the names those apps have always seen.
New names take effect when the MIDI service restarts. Apps that remember ports by name may then need to be pointed at them again.
A device that reports a serial number, or another identifier of its own, is recognized in any USB port. One that doesn’t is recognized by the port it’s plugged into, so moving it can lose the name and picture you gave it. Plug it back into the same port and they come back. The device’s details in Windows MIDI Settings say which kind yours is. See When saved endpoint settings do not match a device.
Windows has two drivers for class-compliant USB MIDI devices: the new one that handles both MIDI 1.0 and MIDI 2.0, and the older USB Audio driver. If a device doesn’t work well on one, try the other. The Drivers page of Windows MIDI Troubleshooting and Repair shows which one each device uses, and switches it for you. Only switch a device you know is a MIDI device. See How to switch between MIDI class drivers.