Open5

Windowsの標準MIDI音源変遷のメモ

okuokuokuoku

せっかく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"

当時のコンパイルが良く活用している:

https://www.nicovideo.jp/watch/sm14908626

効果音はWindowsのPCMで、BGMがWindowsのMIDIドライバを使用してSound Blaster 16(のOPL3)を駆動している。当然、最近のPCにはFM音源がそもそも搭載されていないため使用できないが FM OPL Midi Player は相当な精度のエミュレーションをしている(レジスタ値を実際のドライバから持ってきている)。

他にもエミュレータ類は色々ある。もっとも、いずれも署名されていないので、VSTをvsthostか何かで使うのが楽だと思う:

Microsoft GS Wavetable Synth

DirectMusicと同時に導入され、MIDIドライバとしてはWindows98以降で使用できる(いわゆるDirectXに対応したオーディオドライバが必須 = WDMドライバ)。Rolandからライセンスされた波形を使用しており、MIDIのDLS Level 1?に準拠している。

ファイル名は gm.dls ではあるものの、GS波形を多く収録しているため様々なSFXを使える。また、通常のMIDIでは不可能なトラフィックを処理できる:

https://twitter.com/HueArme/status/1428271008327233541

okuokuokuoku

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自身)にしか対応していない。

okuokuokuoku

Windows 95

Windows95では、SoundBlaster 1.0でもMS製のドライバが使用できるため、全てのバージョンのSound Blasterでそこそこの品質のMIDIが使用できる。ただし、Pro以前のカードはOPL2を1つしか搭載しないので同時発音数が劣る。

また、Win95はWDMに対応しないためDirectMusic由来のドライバをMIDIデバイスとして使用することはできない。DirectMusic自体は使用できる。

okuokuokuoku

Windows 98

このバージョンからWDMに対応し、 Microsoft GS Wavetable Synth が利用できる。ただし、Pro以前のSound Blasterには対応していないように見える ...未検証。

okuokuokuoku

Windows Me (と、Windows2000以降)

Windows MeはSound Blaster 16とWSSにしか対応しない。MS製のMIDI音源は両方使用できるが、通常は Microsoft GS Wavetable Synth が選択される。

... 言い替えると、WDMドライバでもFM音源が使えるわけで、そうなると、どのWindowsが最後にFM音源をサポートしていたのかが微妙に気になるところ。。現状のWindowsでもWDMはサポートしており、問題は64bitドライバが存在するかどうかがポイントになる(Windows11は32bit版が無い)ように思える。