What happened to MIDI Mapper on Windows 8 (and later)?

The number of help requests I'm getting from Windows 8 users trying to use MIDI programs is growing day by day.
I've done some research and tests on the arguments, but the available documentation is really "poor" (confirming my feeling about Microsoft intention to drop it out).
This is what I've find out.

Let's get back to Windows XP era, where MIDI was "exposed" to the public and it had its own place into "Sound and Multimedia" control panel application.
Users were able to configure their preferred MIDI out device, and this settings was used by MIDIMapper, a special MIDI out device bundled with XP.
This device was not a real device, but a sort of "pipe": it receives a MIDI stream on its input and drive it to an user configured (real) MIDI out device.
MIDIMapper, as said, was bundled with Windows, installed as MIDI device #0 and preconfigured to use the first available "real" device (see below).

Another MIDI device was bundled, the well known Microsoft GS Wavetable Synth (MGWS from now on).
MGWS is a (low quality) software wave synth, installed as MIDI out device #1.
So on Windows XP, programmers had 2 well known devices: #0 (MIDIMapper) and #1 (MGWS), the former preconfigured to use the latter.

When a MIDI software (i.e. your MIDI player) starts playing, it should select a MIDI out device otherwise #0 is used.
There are a lot of softwares around without this setting available (think about game emulators and Active Movie based players, like Windows Media Player and MediaPlayer classic): they all use #0 by default.
Device #0 is MIDIMapper --> MIDIMapper is configured to use MGWS --> MGWS will play your MIDI.
This chain worked well: default users had a working MIDI synthesis out of the box.

It all worked up to Windows 7, but getting worst version by version:

  • Windows XP: device #0 is MIDIMapper, #1 is MGWS and so on
  • Windows Vista / 7: same as above, but MIDIMapper configuration disappeared from control panel (registry settings were still available, so some third part tools were released as workaround)
  • Windows 8/10: no more MIDIMapper... go further reading!

On Windows 8 the MIDIMapper device has been completely removed so MIDI softwares are now REQUIRED to select a specific device (no selection still means #0).
I wrote "REQUIRED" because, worst of all, MGWS is now installed with some sort of "dynamic" ID: #0 out of the box, but it becomes #1 if you install another one (like VirtualMIDISynth or an USB MIDI device). I suppose device numbering is now done alphabetically, but I can't confirm it.

Anyway #0 won't lead to a well known situation like in pre-Windows 8 era; #0 could be MGWS or any other one.
The only way to select a specific device is use a MIDI software with a configuration option to select a device.
If you don't have it (and your software will use #0), you're out of luck: your software will use the first in the devices list...

That's why next VirtualMIDISynth versions will have MIDIMapper setting disabled on Windows 8.
Starting from 1.8 a new setting will be added to allow the selection of Active Movie based players MIDI out device.

I tried to explain my findings in a non technical way; feel free to post your comments.

UPDATE

An althernative to the missing MIDIMapper could be the new CoolSoft MIDIMapper, an althernative MIDIMapper for Windows 8 and newer.
It can be used alone (with its own configurator) or together with the new VirtualMIDISynth 2.
Check it out here.

Category: 

Commenti

Pagine

Seems like I found the solution to the Windows 8 Problem.
And it is so easy that I cannot believe all the computer freaks and experienced programmers have found it.

Obviously MidiMapper is still existing in Windows 8. You see in the applications that let you chose the midi driver that you can select also MidiMapper as output device.
Unfortunately the MidiMapper seems to be hard wired the the MGWS and there is no frontend to change that.
Therefore I browsed the registry (using regedit) for a possibility to change the MidiMapper settings.

This was unsuccessful but during my search I found a key that seems to guide most of the programs to the standard midi driver: the MidiMapper.
The key is: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\midimapper

I simply changed the value from "midimap.dll" to "VirtualMIDISynth\VirtualMIDISynth.dll". And ... it works. Even when I play a simple midi file using the Windows Media Player it works and it sounds great. Because I did that some time ago and I tried several changes in the registry I am not 100% sure that this is the right and only key that need to be changed. Please try and post a feedback.

@Frank: your solution seems to work, but it's a little "hacky" to be officially included.

Also please consider that VirtualMIDISynth.dll and midimap.dll do not expose the same functions to callers.
If you analyse them with a tool like Dependency Walker (http://www.dependencywalker.com/), you'll see that midimap.dll exports an additional modmCallback() function.

Since this function is undocumented, I suppose it's used internally by the OS.

http://www.codeproject.com/Articles/36315/MIDI-out-setter

"MIDI out setter" seems the only Midi Mapper so far, that really works with Windows 8!
 
Tested on a fresh installed Windows 8 32-bit Professional (in VMware).
"MIDI out setter" needs .Net Framework 3.5 (contains .Net 2.0 & .Net 3.0) to run.
 
as MIDI Player:
(Note: You have to restart your player to apply MIDI Mapper changes)
* Windows Media Player 12 (Win8 build-in)
* Media Player Classic 6.4.9.1
* Media Player Classic Home Cinema 1.6.7.7114
 
as MIDI Output Device:
* Microsoft GS Wavetable (Win8 build-in)
* MUNT MT-32 Emulator (v1.20)
* CoolSoft Virtual MIDISynth (v1.81)
 
Works fine!

Another MIDI Mapper that worked on my test system.

Vista MIDI Tool (aka Vista MIDI Fix)
http://www.benryves.com/products/vistamidi  

All of these tools manage the same registry key as VirtualMIDISynth configurator, "Windows Media Player default device" setting.

Thanks for the links.

Correct, they only changed the "Windows Media Player default device" setting, too bad.
It was only working for me, because MPC used it.

For a Windows MIDI Mapper replacement, Windows 8 seems to need a kind of virtual MIDI driver as Windows MIDI out device 0, which routes the MIDI data to another MIDI out device. 
Maybe "virtualMIDI" from http://www.tobias-erichsen.de/software.html could help?

 

 

It could, but the big bad news in Windows 8 is that DeviceID #0 is not reserved anymore to a well known device (MIDIMapper), so if a program doesn't explicitly choose a device will use #0, which could be everything.

Thank you for informing me! I'm using Windows 8.1 Update 1 x86, but I failed to change with PLWMidiMapper the default midi to VSC32 which is XP software, but with your help Vista midi tool, I changed default midi and listening VSC3.2 demo songs with windows media player!

Coolsoft note: I cleaned up some "anrgy words" from your post. I already had issues with microsoft for this post (see the first #468 claim)...

I bet in Windows 9,  they'll install code in the OS core that treats MIDI as a virus and deletes all soundfonts and regards any attempt to install MIDI drivers a virus attack!

More and more Microsoft OSs are turning into what I call *** --- they forcefully steer the user to only use what they want used, when they want it used, and remove anything else from the OS!

By Windows 10 it'll be a completely unconfigurable OS that'll probably lock all users out of even viewing OS files or directories at all, or to see what's running.
They'll call it a new wonderous revolution of usability that protects the user from even feeling like they're using an operating system, like it's just.... there!  *puuke*

Okay, I got that out of my system. Boy did that sound bitter. lol

So I guess this means I should steer clear of Windows 8 if I'm going to be playing any old DOSbox games, unless I want to get completely confused about how to get things to work?

I agree. When your vision becomes true you can also buy an Apple system. They already hide all files and directories. Unfortunately they are successful with  that.

If Microsoft will consider MIDI as a virus, I will have to consider microsoft products  not for me.

What do you think that I prefer to put un the trash, a PC or a Yamaha C7?

It seems to me that whatever technology Microsoft decides to take over and implement in their OS will inevitably be discontinued sooner rather than later, possibly making it unattractive before that happens to make it seem like this was the reason why it was removed.

DirectMusic was supposed to be how musical instruments are to be controlled. midiOut was obsolete, which is an often heard word in consumer technology. They made the awful Microsoft Synthesizer the only apparent option, and it was of utterly poor quality. Now they are phasing out both.

Same happened with DirectShow, which again is obsolete. DirectSound was crippled. People can't play DVDs and stuff becaume Microsoft has decided in patronizing manner that this should not happen. I am truly scared by the prevalence of Universal Audio Architecture soundcards today. The only sensible way is to steer clear of Microsoft formats and interfaces. To that end, there are music players with extensive configuarion options (wich were sanitized in Media Player a long time before Eigth came about), and VST / ASIO technology, which exist outside of the Microsoft realm.

Early adopters must be rejoicing in the greatness of NT 6.3 regarldess...

Please append my post if you can. To the list of alternatives I would like to add the Yamaha XG "S-YXG50" synthesizer from this download location. A drive and the actual synth are offered there.

http://www.vgmusic.com/phpBB3/viewtopic.php?f=16&t=14162

It works almost as good as a hardware device, and can be used on any Windows OS down to Win98 by applications supporting the VST API.

I am unaware of any plain players, but it can be used with Reaper. Yamaha has the "MidRadio" player though, but I don't think one can plug in arbitrary VSTs into it. Apart from having an own synth the player has poor functionality.

Out of regular midiOut players these excel:
- "VanBasco's Karaoke Player"
- "Winamp" with the appropriate plugin.

I was a long time user of S-YXG50.

Pros:
+ lightweight
+ easy setup

Cons:
- not working on x64 OS, no way
- soundfount is bundled, can't change it
- no mixer or any other advanced control

Have you tried Coolsoft VirtualMIDISynth ;) ?

The mixer in VirtualMIDISynth, while not essential, looks like a useful option to have when dealing with files that have unneeded parts or to quickly re-balance voices for a particular soundfont.

The VST version is just one DLL file with a sound bank (no driver), and it should load in x64 versions of Windows like other 32-bit software can. People have reported success with it (using the driver I linked written for x64), but I don't have an x64 system to test. The Yamaha player will load and run even under Win98 (except that it's in Japanese/unicode), and can take either of the two Yamaha VSTs with different sample banks and speed. I have found that the S-YXG2006 bank is not so good for General Midi, because it has too much bass.

The synth is a complete system with effects that have been carefully balanced, and can reproduce MIDI programs that other people have created... It can be used together with other VSTs if one wishes to work on a song and switch samples.

Loading VSTs is so much easier. Microsoft appears to be phasing out DirectShow for their next complicated project. If that happens, all the codecs and DX effects, which in theory did cost money, would become unusable. Go Microsoft.

> The VST version is just one DLL file with a sound bank (no driver),
> and it should load in x64 versions of Windows like other 32-bit software can.

If the VST DLL is a 32bit DLL then it can be loaded only by 32bit host (.exe), like 64bit DLLs can be loaded only by 64bit EXEs; bitness can't be mixed.
That's why VirtualMIDISynth has 2 driver DLLs, one for x86 and another for x64.

Latest versions of modern DAW softwares are all going to x64...

I want to know how to change the MIDI Mapper device in Windows 8.

Because I have some programs that cannot select MIDI devices.

Those programs will use VirtualMIDISynth when VirtualMIDISynth is installed,cannot change the device using the WMP default device setthing.

And those programs will use Microsoft GS Wavetable Synthesizer when VirtualMIDISynth is Uninstalled.

I guess those programs use MIDI Mapper.

Now I am trying to let those programs use other MIDI Synthesizers,how to?

Sadly you simply can't.

MIDI Mapper is no longer present in Win8, so if a software won't explicitly select a MIDI device it will use the first "real" one (other than Microsoft GS Wavetable Synthesizer) if installed.

AFAIK there's no way to get MIDI MApper features back to Win8, even with an external software.

Not even with software like ASIO4All or VirtualAudio Cable?

Im getting ready to ugprade to window 8 but have an axiom 25 keystation I use with Reason 5 and this is gonna be a bummer if I can't upgrade.

I don't have any experience about those 2 softwares, but I suppose they both work on the "analog" audio side, not on MIDI...

 First, I failed to change default midi mapper in windows 8.1 update 1 with PLWMidiMapper, but in here, in the comment I found Vista midi tool above and succeeded, I'm now listening with Win media player default with VSC3.2, I think actually PLW way is dead, but midi mapper itself isn't dead so, in some other way that changes base is possible.

Consider the following scenario: In a jam session you plug several MIDI USB devices into one computer. Let's say they are numbered #1, #2, #3. Then, the owner of #1 has to leave. He collects his device. Then #2 becomes #1 and #3 becomes #2. That means: The device IDs change during the session. This worked in the pre USB era without virtual devices, where you could add or remove MIDI ports only after switching the computer off. But nowadays the API must provide reliable IDs even when there are changes in the list of available MIDI ports. At least until the next reboot. But this is not possible with the current MIDI API, as it is hard linked to the number of currently available devices. MicroSoft should provide a new stable and easy to use MIDI API. Currently, Windows has at least 3 API, two of them are outdated (MIDI API, DirectMusic, both suffer from the problem above) and one is complicated to use (Kernel streaming).

I don't think Windows was ever geared to be a Midi station, and most serious composers don't rely on Microsoft's methods to do serious work.  Instead they use much more capable software, than the feeble bit MS had, and MIDI was one facet of the OS they decided to slim down to try to reduce bloat on Win 7 and 8, as they do have surprisingly minimal system requirements considering their generation, and vs. VISTA...  And hopefully people don't get so desperate and deprived to resort to Mac's, especially when there are many varieties of solid Linux and the Like distributions available, better than ever!   Not a lot you can't do on Linux that you can't do on a PC/Win box or Mac these days.

I'm in WIN8 and am no tekkie to understand all this technology.
Is it safe to download some standalone MIDIplayer to do the job?

Any suggestions?
I'd hate to lose access to my MIDI collection.

Thanks,
Fred Rother

Don't worry, you won't loose your MIDI collection.

This is only a "programmers nightmare" because what was easy before now is much more hard, but not for the final user.
Most of the time programmers will remove these quirks with an additional software layer.

Got any suggestion for a MIDI player out there?

Thanks,

Fred...

Mi preferred one is still (the aged) VanBasco, that still works perfectly on Win8.

Beware to run setup explicitly as administrator because it's not automatically recognized as such (right click setup exe file and choose "Run as administrator").

I tried the popular vavBasco player and after going through all setup options, it does not work on my windows 8.1 Asus laptop. vanBasco seems to also have given up, with proof that they haven't updated their software since 2004

Frustrated 

VanBasco setup does not mark itself (and is not recognized) as a setup.
You need to run it explicitly with Right click + Run as administrator to install it properly.

vanBasco still does not work with my windows 8.1

Tried installing as administartor and after loading  a midi, I still receive the message "There are no midi devices configured on your system"

Don't know what else to do 

That's really strange, VanBasco shows these devices on my Win-8.1-x64 test machine:

Have you tried the last one? It really worths a try ;)
Have no other ideas, sorry.

OK Thnaks

Now just need help with...The link to install soundfonts in CoolSoft Virtual Midi Synth leads to an unavaialble page (content not found)

Almost there :)

Was a temporary failure, now it should work:
coolsoft.altervista.org/virtualmidisynth#soundfonts

Well I just gave up...installing soundfonts into Virtual Synth is just too confusing with .sf2 files compressed, not compressed, and trying to install them into Virtual Synth from desktop is just too frustrating.

All I wanted was to be able to to play simple midi file songs through vanBasco with windows 8 and since I can't figure out how to find and install .sf2 files into VirtualSynth I'll need to try something else

For what it's worth it would have been a lot easier if Virtual Synth came preloaded with some .sf2 files to at least get started. I do appreciate the effort, I tried and tried...just too confusing.

Soundfont links point to pages outside CoolSoft, out of my supervision except for linking them.
Each of that pages authors is free to build his/her site up as he/she likes, making soundfont download easier/harder and free/paid.

That said, a VMS download with a bundled SF2 will lead to a huge increase of my bandwidth, which is an expensive resource.
VMS is downloaded about 1000-1500 times a day, and it's less than 1 MB.
If I bundle a SF2 (supposing that people likes my selected one and most of them will not just trash it), will raise download size up to (at least) 25MB and my monthly bandwidth will increase by more than 20 times.
Since VMS is offered for free I'm not going to pay for it.

Finally, try to download this soundfont: http://www.un4seen.com/download.php?extra/WeedsGM3
It's the easier download of the list: just click the link above, download the ZIP file, extract the contained SF2 file to a location of your choice and configure VMS to use it.

Thanks ...understood. 

OK...And I hate being the problem child, but  I can't agree to the soundfont license agreement, because (I assume)  the checkmark to agree is at the bottom and there is no way to scroll down 

https://plus.google.com/photos/100513639550310849426/albums/608317519881...

Well after a few months, I thought I would give it another go.

After manipulating the window size of theWeed GMG soundfont agreement, and then accepting and installing the Weed GMG soundfonts, CoolSoft Virtual Midi Synth / Weed GMG 3 soundfonts / and vanBasco Player are all playing nice on my windows 8.1 

Thanks for all the help and patience. 

I've heard of only one decent "standalone" player. MIDI traditionally has required a sound card and later a system driver, which players communicate with.

Yamaha MidRadio is a decent player. MIDI synthesis takes place in the included VST effect.

If I recall correctly, XMPlayer also had its own "synthesizer", but its quality wasn't so good.

XMPlayer's synthesizer is the exact same one that powers CoolSoft's VirtualMidiSynth and is called BASSMIDI. It doesn't come with any sounds of its own and is compatible with Creative standard SF2 soundbanks.

I am going to use http://www.hermannseib.com/english/savihost.htm as standalone and LMMS(http://lmms.sourceforge.net/home.php) as real host.

I use minimogeVA that has SAVIhost as support and it works without problem. I use the device settings to correct this missing part in W8.

I have created a MIDI player program using VB 6 that uses the MMC(Multimedia Control).  I have used the MIDI-Out-Setter program with Windows 8.1 and can see my USB to MIDI cable as two devices.  However, when I select one or the other of these devices, the MIDI file plays in the PC speakers and does not go out the USB to MIDI cable to my keyboard.  For Vista and Windows 7, I used the Putzlowitschs Vista-MidiMapper and it worked great to send the MIDI out to the keyboard.  Is there any hope in getting this VB6 program to work in Windows 8.1  What I see as hardware for the USB to MIDI cable is:

Device Funtions:

NAME                                 Type

USB Composite Device       Universal Se....

USB2.0-MIDI                       Sound, video ....

USB2.0-MIDI [0] (Out)         Software de...

UDB2.0-MIDI [1] (Out)         Software de...

USB2.0-MIDI [2] (In)            Software de...

Hello Dave

What happend if the microphone wants also to use the same speaker?

I have developed a MIDI player in VB6 using the multimedia control.  Since there is not a MIDI mapper in Windows 8, is it possible to use the API commands to select my USB to MIDI cable using the mciSendCommand?  If so, please show me the necessary VB6 code.  I do have code that will show me what MIDI devices are on the PC already.  Just need to know how to use the mciSendCommand.  Thanks 

Sorry, I don't have any experience with MCI interface.

Hi, everybody!

Without having done anything that I know of, my MIDIs are playing again on Win8 with Windows Media Player ;-)

Thanks for your comments

Best Regards,

Fred...

There is not only windows mapper that disappeared in W8, the internal windows mixer (which allowed plugging multi instrument on the same output) also disappear. Then if I plug a guitar tuner on a speaker (the tuner is just pass through, from microphone input to Speaker output), I can no more plug anything else on the same speaker.

If on W8 it is more complicate to have device working than on Linux, I will migrate to Linux with better forum community support.

hello

i have the same problem with windows 8...none reaper and zynewave podium are working...i've tried installing bassmidi, virtualmidisynth, and other 2 programs to change midi device...now i have installed 4 different midi devices, but the programs just dont give any sound...why????? someone can help me?

thanx!

I use midi files that sound like a horrible kiddie piano.  These files are the melody of Irish session songs, simple melody, only 1 general midi instrumment probably #1.  I use these with output going to my PC speakers.  I accompany them with a guitar, while I read the sheet music to strum the correct chord.  It would be great to change the general midi number either in the file or translate it to a better instrument.  After reading all the horrible results people are having with win 8.1, I'm hesitant to mess with 3rd party software and/or registry keys.  I think my midi problem is simple but there seems to be no obvious solution within 8.1, so much for that. 

Maybe it's time to see what little raspberry pi LINUX micro computer can do.

Anybody have any thoughts?

Pagine

Aggiungi un commento

warning

Warning, JavaScript is disabled!

JavaScript is not available, maybe because you disabled it globally into your browser settings or you are using an addon like NoScript.

We do not have any dangerous JavaScript running here.
Please enable JavaScript; if you're using NoScript this image will help you adding CoolSoft to your whitelist.

Thanks for your comprehension and enjoy CoolSoft.