Is Microsoft GS Wavetable Synth supports GM2? I'm trying to play single note with GM2 sound 'Dog' and the sound the same as 'Bird Tweet' (played via Windows Media Player on Win10). I tried to use sysex event to turn GM2 on, but it didn't help.
Regarding GM2, I'm not sure that there is a standard soundset, other than the intention that GM2 will still support the basic GM 128 sound set.
The General MIDI 2 specification in fact defines an extensive standard soundset.
It is organized as a superset of the General MIDI soundset. For each program number, there are typically a number of closely-related patches in distinct banks. The 128 patches of the General MIDI soundset all occupy what is spoken of as "Bank 0" (although its bank number is not 0).
Geoff is correct, and I apologize for any confusion: Roland GS Standard is different from General MIDI Level 2.
In my original reply, I just wanted to point out that although the Microsoft GS Wavetable Synth doesn't support General MIDI Level 2, it does support something other than General MIDI Level 1, namely Roland GS Standard, in case you happened to be interested in playing around with that.
In the Roland GS Standard only controller 0 is used to select a bank.
In General MIDI Level 2, both controller 0 and controller 32 are used to select a bank.
(By the way, controller 7 is for setting the volume of the channel and isn't related to changing the bank and program.)
Each standard is an extension of the General MIDI Level 1 program names, and typically uses the bank select messages to select a "variation" of the base General MIDI Level 1 program name. Looking over the list of program names in each standard (see attachment), I see similar names appearing in the same order, but the different standards use different bank number values.
(Also, in case you missed it, the Microsoft GS Wavetable Synth is in fact kind of lazy in its support for the GM System Exclusive messages, all three of the GM System Exclusive messages I mentioned turn on the Microsoft GS Wavetable Synth's General MIDI Level 1 mode, even the off and GM2 messages!)
Maybe I should let Bavi reply, but I think the problem is that the MS product is GS and NOT GM2, and the two are different. GM2 is substantially based on GS, but expanded, and changed in other ways. GS is mainly a Roland standard, GM2 is supposed to be an industry-wide standard. Clearly there are similarities in approach here, but the final details are different. Maybe the GS product is close enough to allow you to do the bulk of your testing, but you may need a proper GM2 product for the final stages.
Thanks for answer and for MIDI file with different gunshot sounds. It really produces 4 different sounds according to GM2. I've examined the file and I have some questions. For example, let's take a look at bank selection for 'Lasergun' sound.
In your file there are these events:
Control Change (controller = 0, value = 2) Program Change (program = 127) Control Change (controller = 7, value = 100)
But according to GM2 specification controllers 0 and 32 should be used as bank MSB (which should be 0x79 = 121) / LSB, and then program change should go. My code generates following events:
Control Change (controller = 0, value = 121) Control Change (controller = 32, value = 2) Program Change (program = 127)
Can you explain this differences in our approaches? I also place GS Reset event at the start of my file as you said. And my file produces...no sound
Note: Microsoft GS Wavetable Synth (or at least the one I have on my Windows 8.1 computer) does respond to a GS Reset (F0 41 10 42 12 40 00 7F 00 41 F7) to enable some GS banks.
It also interprets any of the following GM messages as "reset back to General MIDI Level 1":
GM1 System On (F0 7E 7F 09 01 F7)
GM System Off (F0 7E 7F 09 02 F7)
GM2 System On (F0 7E 7F 09 03 F7)
In fact, the Microsoft GS Wavetable Synth appears to let you turn on the GS mode with F0 41 xx 42 12 40 00 7F 00 xx F7, and return to the General MIDI mode with F0 7E xx 09 xx F7, where each of the xx bytes can be anything. Of course, it's a good idea to stick with the official GS Reset and GM1 System On messages shown above to ensure compatibility with other devices.
I suggest you look at the web pages for CoolSoft's Virtual Midi Synth - the page(s) give some useful background info about the problems here, and they do have some supporting system which should work re W10 to allow their synth to be linked in although I've not used that. I still use XP, and their system linked in easily with that.
Having got the system working, then it's a matter of finding a Sound Font library that contains the sounds you want. There are links to various options on the VMS page, and you can find others indirectly. I've used the 'Timbres of Heaven' lib which has some very nice sounds, but I don't think it has the ones you want. Note this lib is many times bigger than the lib that comes with the MS default system! Maybe you need to look for something specifically GM2 compatible. TofH may have some compatibility ONLY. It has a main bank re standard GM sounds, and various ancilliary banks which might provide sufficient options to test what you want to test?
Get back if there's any further queries.
There are other virtual synth packages, but as I said, I've used this one.
Later... I've just looked at the sounds list for TofH, and I note that 'Dog' is there, and it's numbered in such a way that the GM2 commands would bring it up. So this may be a help for you.
I use bank select + program change as you said. But there is also universal sysex event 'Turn GM2 on' so I hoped it will help to enable GM2 soundset on Microsoft GS Wavetable Synth. I need to test GM2 playback (I'm writing .NET library), so maybe you can suggest software that will produce different sounds for 'Dog' and 'Bird Tweet'? Yes, this sounds are in the same GM1 group, they differ only in bank LSB preceding program change event.
As far as I know, the windows product you refer to is GM (i.e. GM1) only, and supports the standard 128 GM sounds useful for playing standard midi files. Only!?
I read that the quality of the sounds in the set is VERY low,and there are other performance problems, so this product is highly depracated.
There are MUCH better soundfonts available, however...
Such replacements could be added fairly easily within XP, much less easy within W7, and by W10 so complicated as to be almost impossible (needing 3rd party drivers/support). Check up on this via the internet.
Regarding GM2, I'm not sure that there is a standard soundset, other than the intention that GM2 will still support the basic GM 128 sound set. Within GM2, the structure of the sounds is different, and while the GM1 128 may still be there, many (most ?) of them have optional sounds as alternatives, so there may be a number of multiples of 128 sounds overall. Different manufacturers may not have the same optional extra items, so if you're using the extra Bank Select options to bring in the extra sounds the results might vary between manufacturers and/or devices. I would also suggest that the midi mechanism (using Bank Select MSB/LSB) and Patch Change may be similar between Mfgs, but not always identical.
On checking, some of the last para is relevant to GM2, other parts maybe more relevant to GS, and I might be mixing the two. If devices are specifically GM2, then they OUGHT to support the GM2 soundset.
You may find that some of the modern soundfont files support some facilities relating to GM2, and even options connected with, say Yamaha's XG, but not necessarily all, and not necessarily the specific sound you want. Such as the 'Dog' sound you mention?
Which device have you heard that sound on? Was it listed as a first level sound, or as an alternative to one of the 128 first leven (GM1 compatible) sounds? Doing my own check, 'Dog' is an alternative sound (bank 1) for 'Bird Tweet' (standard sound 124, Bank 0). If a playing device is GM2 compatible, you would select this via LSB/Bank setting, NOT via SYSEX.