microsoft / microsoft/MIDI

[Feature]Add at least Windows XP style Midi Mapper functionality to be able to define default Midi Out port

Open
#916 22 comments 15 reactions 1 assignee View on GitHub

@Psychlist1972 is already working on this.

Since Mar 6, 2026.

feature request :bulb:
Dominant language
C++
Stars
679
Forks
72
Avg merge
4h 51m
Merged PRs (30d)
59

Description

Is your feature request related to a problem? Please describe.
The default Midi Out port cannot be changed on modern Windows. All Midi players/apps that use the MIDIMAPPER (-1) virtual device id can only use the MS GS Soft Synth without 3rd party apps.

Describe the solution you'd like
The story of the WinMM Midi Mapper is a rather interesting one. Actually it became worse with every new Windows version. The peak of its feature set was in the Windows 3.1/Windows 95 era :). In this early stage you could assign different ports/instruments to different Midi channels, you could remap Midi channels etc. On Windows XP the advanced channel remapping features were gone, but you could still assign your desired Midi Out port to Midi mapper as default output port. On Windows Vista/7 the GUI was removed but you could still change the default port through the registry (HKCU\Software\Microsoft\Windows\CurrentVersion\Multimedia\MIDIMap).
And from Windows 8 all of the Midi Mapper features are gone.

Since with this new Midi 2.0 stack now we have a dedicated GUI in the form of the Midi Settings App it would be very useful to add the option to change the default Midi Out port for Midi players/apps (e.g. Microsoft's Windows Media Player) that can only use the default Midi Out through the MIDIMAPPER (-1) virtual device..

Describe alternatives you've considered
I do not think there are many...

Do you wish to contribute a solution?
Yes

Additional context
We should have at least the equivalent to this one:

Image

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.