Windowsの標準MIDI音源変遷のメモ
せっかくWin3.1とかを整備したのでメモ。というかMac版も書きたいんだけどそもそも安定して動かすことが難しく。。
PC-9801、PC-9821は一旦無視する。
Sound Blaster、WSS
PC互換機における昔のオーディオは基本的にSound BlasterかWSS(Windows Sound System)に収斂している。特にWindowsが標準でサポートしたのはこれらだけで、GUS(Gravis Ultra Sound)のようなPCM系のカードをハードウェアとしてサポートすることは無かった。
初期のSound Blasterには大きく分けて3つの世代があり:
- 無印系: 1.0、1.5、2.0 -- 22kHz 8bit PCM、モノラルFM音源、2.0 で44kHz 8bitのPCMをサポート(ただしモノラル)、全てOPL2 FM音源
- Pro系: Pro、Pro 2.0 -- ステレオFM音源、44kHz8bitモノラルまたは22kHz8bitステレオ、初代はOPL2 x2でステレオ化、2.0でOPL3 FM音源
- 16系: 44kHz 16bits ステレオPCM、OPL3 FM音源
WSSは仕様としてはSound Blaster 16に近い。48kHz ステレオPCM、OPL3 FM音源。
Windows標準のMIDI音源
WindowsのMIDI音源と呼べるものは2つ有る。
"WindowsのFM音源MIDI"
当時のコンパイルが良く活用している:
効果音はWindowsのPCMで、BGMがWindowsのMIDIドライバを使用してSound Blaster 16(のOPL3)を駆動している。当然、最近のPCにはFM音源がそもそも搭載されていないため使用できないが FM OPL Midi Player は相当な精度のエミュレーションをしている(レジスタ値を実際のドライバから持ってきている)。
他にもエミュレータ類は色々ある。もっとも、いずれも署名されていないので、VSTをvsthostか何かで使うのが楽だと思う:
- https://github.com/nukeykt/WinOPL3Driver
- https://github.com/datajake1999/OPL3EMU
- https://github.com/datajake1999/OPL3GM_VSTi
Microsoft GS Wavetable Synth
DirectMusicと同時に導入され、MIDIドライバとしてはWindows98以降で使用できる(いわゆるDirectXに対応したオーディオドライバが必須 = WDMドライバ)。Rolandからライセンスされた波形を使用しており、MIDIのDLS Level 1?に準拠している。
ファイル名は gm.dls
ではあるものの、GS波形を多く収録しているため様々なSFXを使える。また、通常のMIDIでは不可能なトラフィックを処理できる:
Windows 3.1
Windows 3.1(日本語AT互換機版)が標準で対応しているのは:
- AdLib
- SoundBlaster 1.0
- SoundBlaster 1.5
のみのため、MIDI音源部分はAdLib(OPL2)のものが鳴ることになる。 ...がこれの品質はかなりヤバくちょっとどういうシチュエーションで使うものなのかがよくわからない。
CreativeはSoundBlasterProや16向けのWindows 3.1ドライバを出しているものの、これらに搭載されるMIDIドライバもMS程度の品質を提供できていない。
Windows Sound Systemのドライバを導入することで、後のWindowsに標準添付されるものとほぼ同様な品質のMIDIドライバを使用できるが、WSSのドライバはSound Blaster Proまたは16(と、当然WSS自身)にしか対応していない。
Windows 95
Windows95では、SoundBlaster 1.0でもMS製のドライバが使用できるため、全てのバージョンのSound Blasterでそこそこの品質のMIDIが使用できる。ただし、Pro以前のカードはOPL2を1つしか搭載しないので同時発音数が劣る。
また、Win95はWDMに対応しないためDirectMusic由来のドライバをMIDIデバイスとして使用することはできない。DirectMusic自体は使用できる。
Windows 98
このバージョンからWDMに対応し、 Microsoft GS Wavetable Synth が利用できる。ただし、Pro以前のSound Blasterには対応していないように見える ...未検証。
Windows Me (と、Windows2000以降)
Windows MeはSound Blaster 16とWSSにしか対応しない。MS製のMIDI音源は両方使用できるが、通常は Microsoft GS Wavetable Synth が選択される。
... 言い替えると、WDMドライバでもFM音源が使えるわけで、そうなると、どのWindowsが最後にFM音源をサポートしていたのかが微妙に気になるところ。。現状のWindowsでもWDMはサポートしており、問題は64bitドライバが存在するかどうかがポイントになる(Windows11は32bit版が無い)ように思える。