Skip to content

Instantly share code, notes, and snippets.

@Psychlist1972
Created July 21, 2019 01:23
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Psychlist1972/ec5c52c9e4999710191d4bb07e82f98a to your computer and use it in GitHub Desktop.
Save Psychlist1972/ec5c52c9e4999710191d4bb07e82f98a to your computer and use it in GitHub Desktop.
Renames MIDI ports as displayed by the Windows 10 / WinRT MIDI API. Requires your customization to work correctly. Only impacts apps using the WinRT MIDI API, not the Win32 MIDI API.
# This will rename ports for use with the Windows 10 MIDI API (does not impact the Win32 port names)
#
# Created by Pete Brown : Twitter @pete_brown
#
# Unofficial and not supported by Microsoft. This is a workaround, not a proper solution.
#
# This must be run from administrator PowerShell on the target PC
#
# You must re-run this any time devices or drivers change, or they are re-enumerated. At a minimum, this
# tends to be on each reboot or system update. This is basically updating a name cache, not making changes
# to the source of the names.
#
# Note that the IDs can change if you add/remove devices, rebuild your PC, etc.
#
# Before running, change the actual paths in the Set-ItemProperty statements to match the MIDI devices you want to rename
# You can find the appropriate paths by going into the input and output hives in the registry and looking at the current
# FriendlyName property values.
#
# ============================================================================================================
# Back up your registry values before running this. No warranty, and you are 100% at your own risk
# by running this script or any variation or derivation of it.
# ============================================================================================================
# Hives for input and output information
$midiInHive = "HKLM:\SYSTEM\ControlSet001\Control\DeviceClasses\{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\"
$midiOutHive = "HKLM:\SYSTEM\ControlSet001\Control\DeviceClasses\{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\"
# Change Outputs
# I have two MOTU 8 port MIDI Express 128 on my PC, and I prefer they have a nicer name than just "MIDI" for each port.
Set-ItemProperty -path "$midiOutHive##?#SWD#MMDEVAPI#MIDII_A5532C41.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 1 Port 1 - EX-8000"
Set-ItemProperty -path "$midiOutHive##?#SWD#MMDEVAPI#MIDII_A5532C42.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 1 Port 2"
Set-ItemProperty -path "$midiOutHive##?#SWD#MMDEVAPI#MIDII_A5532C43.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 1 Port 3 - D-550"
Set-ItemProperty -path "$midiOutHive##?#SWD#MMDEVAPI#MIDII_A5532C44.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 1 Port 4 - MKS-50"
Set-ItemProperty -path "$midiOutHive##?#SWD#MMDEVAPI#MIDII_A5532C45.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 1 Port 5"
Set-ItemProperty -path "$midiOutHive##?#SWD#MMDEVAPI#MIDII_A5532C46.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 1 Port 6"
Set-ItemProperty -path "$midiOutHive##?#SWD#MMDEVAPI#MIDII_A5532C47.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 1 Port 7 - DW-8P"
Set-ItemProperty -path "$midiOutHive##?#SWD#MMDEVAPI#MIDII_A5532C48.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 1 Port 8"
Set-ItemProperty -path "$midiOutHive##?#SWD#MMDEVAPI#MIDII_AD021E81.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 2 Port 1 - Mono Lancet"
Set-ItemProperty -path "$midiOutHive##?#SWD#MMDEVAPI#MIDII_AD021E82.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 2 Port 2"
Set-ItemProperty -path "$midiOutHive##?#SWD#MMDEVAPI#MIDII_AD021E83.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 2 Port 3"
Set-ItemProperty -path "$midiOutHive##?#SWD#MMDEVAPI#MIDII_AD021E84.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 2 Port 4"
Set-ItemProperty -path "$midiOutHive##?#SWD#MMDEVAPI#MIDII_AD021E85.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 2 Port 5"
Set-ItemProperty -path "$midiOutHive##?#SWD#MMDEVAPI#MIDII_AD021E86.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 2 Port 6"
Set-ItemProperty -path "$midiOutHive##?#SWD#MMDEVAPI#MIDII_AD021E87.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 2 Port 7"
Set-ItemProperty -path "$midiOutHive##?#SWD#MMDEVAPI#MIDII_AD021E88.P_0000#{6dc23320-ab33-4ce4-80d4-bbb3ebbf2814}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 2 Port 8"
# Change Inputs
Set-ItemProperty -path "$midiInHive##?#SWD#MMDEVAPI#MIDII_A5532C41.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 1 Port 1"
Set-ItemProperty -path "$midiInHive##?#SWD#MMDEVAPI#MIDII_A5532C42.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 1 Port 2"
Set-ItemProperty -path "$midiInHive##?#SWD#MMDEVAPI#MIDII_A5532C43.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 1 Port 3"
Set-ItemProperty -path "$midiInHive##?#SWD#MMDEVAPI#MIDII_A5532C44.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 1 Port 4"
Set-ItemProperty -path "$midiInHive##?#SWD#MMDEVAPI#MIDII_A5532C45.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 1 Port 5"
Set-ItemProperty -path "$midiInHive##?#SWD#MMDEVAPI#MIDII_A5532C46.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 1 Port 6"
Set-ItemProperty -path "$midiInHive##?#SWD#MMDEVAPI#MIDII_A5532C47.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 1 Port 7 - DW-8P"
Set-ItemProperty -path "$midiInHive##?#SWD#MMDEVAPI#MIDII_A5532C48.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 1 Port 8"
Set-ItemProperty -path "$midiInHive##?#SWD#MMDEVAPI#MIDII_AD021E81.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 2 Port 1"
Set-ItemProperty -path "$midiInHive##?#SWD#MMDEVAPI#MIDII_AD021E82.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 2 Port 2"
Set-ItemProperty -path "$midiInHive##?#SWD#MMDEVAPI#MIDII_AD021E83.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 2 Port 3"
Set-ItemProperty -path "$midiInHive##?#SWD#MMDEVAPI#MIDII_AD021E84.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 2 Port 4"
Set-ItemProperty -path "$midiInHive##?#SWD#MMDEVAPI#MIDII_AD021E85.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 2 Port 5"
Set-ItemProperty -path "$midiInHive##?#SWD#MMDEVAPI#MIDII_AD021E86.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 2 Port 6"
Set-ItemProperty -path "$midiInHive##?#SWD#MMDEVAPI#MIDII_AD021E87.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 2 Port 7"
Set-ItemProperty -path "$midiInHive##?#SWD#MMDEVAPI#MIDII_AD021E88.P_0003#{504be32c-ccf6-4d2c-b73f-6f8b3747e22b}\#\Device Parameters" -name "FriendlyName" -value "MOTU MIDI 2 Port 8"
@Psychlist1972
Copy link
Author

Keep in mind that if you change port names, some apps may not recognize the port as belonging to the device they are looking for.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment