今、黄金のマスクが甦る
X68kの宣伝にはツタンカーメンが使用されていました。宣伝コピーは「今、黄金のマスクが甦る」です。他社がアイドルタレントなどを使って宣伝しているのに、なぜこういうキャラクターを持ってくるか話題になったりもしました。
真相は闇の中ですが、私は「5年は古くならない」という永遠性を感じさせようとしているのかな、と思っていました。しかし、どうも単純に「こんなにきれいな色が出るんだよ」と自慢していただけかも知れません。前回お伝えしたように、X68kのグラフィックは当時最高水準でしたから。
そういえば、テレビコマーシャルではオーケストラも登場させて、音源が優れていることをアピールしていました。それを考えると、いよいよただ自慢していただけかもしれませんね。
今回は、そのオーケストラにも比較された音源の話です。
目次
X68kの音源
X68kの音源は、ただ豪華だというだけで画面回りのような複雑さはありません。
FM音源8声+ADPCM1声。ただこれだけです。とはいっても、これは画面回りと同じく 、当時の業務用ゲーム機に非常に近い性能を持っていました。
FM音源にはYM2151(OPM)が使用されています。これは当時他機種で使われていたOPNの上位チップで、4オペレータのFM音源を8声持ち、各チャンネルを左右のどちらのスピーカーから出力するか選択する事が出来ました。(両方、という選択も可能)
4オペレーターというのは、1つのチャンネルに波形を作る発生機が4つのあるということです。 FM音源は波形を組み合わせることで音を作るのですが、この4つのオペレーターをどのように接続するかを「アルゴリズム」と呼び、音作りではかなり重要な概念です。 左図はOPMのアルゴリズムのブロック図。1〜4の数字が書かれた箱がそれぞれオペレーター(発声機)を意味し、そのつなぎ方を矢印で表わしている。OPMには8つのアルゴリズムがある。 直列に接続した場合は波形は畳み込まれ、高周波成分の多い、複雑で明るい音となる。並列につないだ場合は波形は重ねあわされ、和音となる。(普通は人間の耳が和音として認識できないほど周波数が近いため、落ち着いた厚みのある音になる) なお、オペレーター1は自分の出力を自身に返しているが、このフィードバックの強さは変更が可能である。 |
アルゴリズムの中には「全部の音を重ねるだけ」というものもあります。この場合、音は加工されないために4重の和音が出ることになります。うまく使えば32音を同時に出すことも可能です(個々の音はつまらないものになりますが)。
このFM音源は、デジタルシンセサイザーの「元祖」である、DX-7 (1983年発売)と同時発売の廉価機種、DX-9 に使用されたものと同じ LSI を使用しています。
当時のパソコンで一般的に使われたのは、「ホビー用」としてさらに廉価に提供できるように改良されたものです。廉価ではあるものの、同時発音数が減るなどの制限もありました。
X68k では、廉価機種用とはいえシンセサイザー用の LSI をそのまま使用し、多彩な音表現を可能としていたのです。
しかし、FM音源でいろいろな音が作れるとはいっても、苦手な音も存在します。その筆頭がドラムの様な「ノイズ音」でした。
ADPCM
ここで、ADPCMが搭載されていることの意味が出てきます。
本来、このADPCMはX68kを「しゃべらせる」ために付加されたそうで、音楽用に使うなんて事はとても想定されていませんでした。そのため、音はそれほどきれいではありませんし、音程/音量を変えることも出来ません。
そもそも、ADPCMというのは「容量の大きいPCMを圧縮する」ための技術で、不可逆圧縮です。音がきれいなはずがありません。旧ファミコンで使用されていたDeltaPCMに毛が生えた程度のものだと思って間違いありません(ADPCMというのも、Adaptive Delta PCMの 略です)。
X68k用のものも、もとは留守番電話用に開発されたチップだったそうです。
PCM、ΔPCM、ADPCMの違い(模式図) |
一番上がPCMで、時間軸・振幅をともに離散化(デジタル化)して波形を記録する。記録範囲は、白い部分全部。 これに対して中央のΔPCMは、直前の時間軸の振幅との差だけを記録する。Δとは、「差分」の意味。(微分記号dxのdと同じ意味) 図では、正方向の差を赤、負方向を青で表わしているが、記録範囲は青と赤の色がついているところで、明らかにPCMより減っている。 最後に一番下のADPCMだが、差を取るための基準は直前の時間軸の振幅ではなく、「現在の時間軸の予想振幅」である。図では、予想値を緑の線で示している。 記録範囲はやはり赤と青の部分だが、予想が見事に当たるとこの範囲は0となるため、大幅に減っている。 (ΔPCMもADPCMも、記録する場合は最大値にあわせて一定ビットにするのが普通なので、値が0だからといって情報がなくなるわけではないが) この図では予想方法を直前2つの時間軸の振幅差を線形に伸ばしたものにしているが、実際のX68kに使われたチップの予想方法は音の周波数特性を巧みに利用したものとなっていて、通常のPCMにして12bit分の振幅を4bitに圧縮している。 |
最初にADPCMを音楽に使用したのは、電波新聞社から発売された「ボスコニアン」というゲームでした。このゲームでADPCMをドラムとして使い、あまりの音の良さにみんなが 驚き、その音を聞きたいがためにこのゲームは大ヒットとなったのです。
X68kで音楽を作っているユーザーの多くが、この音源を自分の曲でも使いたいと思ったのも無理はありません。そしてそれに呼応するように、Oh!X誌に音楽と同期をとりながらボスコニアンドラムをならすためのプログラムが発表されました。
もっとPCMを!
さて、ADPCMが音楽演奏に利用可能だ、とわかると、これがたった1声しか搭載されて いないのが恨めしくなってきます。
しかし、必要は発明の母です。しばらくたって恐るべきフリーウェアが開発されました。
それは、「PCM4」という名前のドライバで、BIOSを拡張し、ソフトウェアでADPCMを同 時に4声まで発音可能にするものでした。
しかも、このADPCMには音量までつけられるようになっています。
最初は実験的な試みだったPCM4は、後にAPIを整備し、パワーアップしてPCM8として広く発表されます。当時さまざまなOPMドライバを作っている人々がいましたが、ほとんど のドライバがすぐにPCM8に対応しました。
PCM8は、割り込みを使用して発声リクエストのあったADPCMをPCMに展開し、音量変化が指定されている場合は適切にデータを変化させ、PCMを8声分足しあわせた後に、再びPCMからADPCMに変換してハードウェアに引き渡します。
仕組は簡単ですが、だれもこれがソフトウェアで出来るとは思っていませんでした。ADPCMとPCMの変換作業は、非常に複雑な数式からなっており、常識で考えてリアルタイムで行うことは不可能だったのです。
しかし、PCM8の作者の江藤 啓氏は、この変換式のほとんどを膨大なテーブル(64K超 )に置き変えることで実現してしまったのです。
それでもドライバが非常に重いことはたしかでした。重いといっても音楽を演奏させることは十分可能ですが、それ以外のことはなにも出来なくなってしまうのです。
そのため、PCM8を動作させるためだけに、専用のボードが開発されています。Polyphonというこのボードは、本体よりも高速な16Mhz(後に24Mhz版も開発された)で68000を動 かし、その上でPCM8を動かすというものでした。(PCM8以外のソフトも動かせるけど。最終的にはOS上で動くソフトはほとんど動く、アクセラレータのようなものになったらしい)
PCM8作者の江藤氏は、この後、不慮の事故で亡くなっています。まだPCM8の興奮覚めやらぬ間の事故で、貴重な才能が失われたことに多くの人が衝撃を受けました。
しかし、氏は生前Oh!X誌にPCM8で使用されているテクニックの解説記事を寄稿していたこともあり、複雑なアルゴリズムを持つプログラムであるにもかかわらず、この後も有志の手でPCM8は改良され続けました。(最終的にはPCM16などというのも出来ていたと聞きます)
私も氏の技術解説を読んでPCM加工に利用したりしましたので、当時ニュースを聞いたときには驚いたものです。
もう、かなり以前の話となってしまいましたが、この記事は氏の冥福を祈って締めくくらせていただきます。