02000.07. 開発の続き~サウンド~
主要スペックを書いていく。
02000.07. サウンド
主要スペックは以下の通り。ただし、PC-9801互換が無いものや、miniに関しては必須機能ではない。
・HuC6280内蔵:波形メモリ6音または波形メモリ4音+ノイズ2音(1周期32アドレス波形メモリ方式、LFO内蔵)と、なんやかんや、特殊な事が出来る音源。パンありらしい。
・OPNA(YM2608)互換:4オペレータのステレオFM音源6ch、モノラルSSG音源3ch、ステレオ(パンありに変更)ADPCM音源1ch、ステレオリズム音源(音色固定)6ch
・PCM音源(サンプラー):ステレオパンあり4ch
HuC6280の音源については説明不要だから省略。
PCM音源に関しては、同時発音数は適当に決めた。メインメロディ、サブメロディ、コーラス、ベース、ドラムセット、パーカッションの組み合わせで4chあれば曲として成立するという考え。
6chでも8chでも構わない。ただ、既に結構同時発音数があるし、個人的に「同時発音数が多いからどうなんだ?」って思ってる。余計な音が増える事が多々あるし。
感覚として、曲として成立するのが6から8位のフレーズで、そこに音を重ねるとただのノイズになると思う。結果、溢れたch数はエコー効果とか、音に厚みを出すとか、小さい音でなるコーラス的な音とかになる。なので、HuC6280とOPNAに更に追加したとしても8ch程度が妥当だと思う。
PC-8801 FA/MAのOPNA(FM6 + PSG3 + ADPCM1)や、X68000のOPM(FM8) + ADPCM、X1 TurboのOPM + PSG3の辺りで丁度良いと思う。
また、HuC6280の能力で上限もあるし。という落としどころで決めた。
パン付きにするんだけど、16段階で十分。‥‥なのに世の中は128段階もある。聞き分けられないよ。この値って、絶対カタログスペックを彩るだけの数字だと思う。
OPNAは拡張して、OPNXと名付ける。別項目で順番に説明。
02000.07.01. OPNXのFM音源部分とついでにPSG
基本性能はOPNAのまま。4オペレータのFM音源6chは左右と中央の切り替え。PSG 3chはモノラル。
そこは同じだけど、FM音源のプリセットを変更。PC-8801FA/MAやサウンドボードⅡのプリセット音色がいくつあったのか解らなくなってるけど、数を増やす。
更に、ユーザーが書き換えられる容量も確保。
128個記憶できるなら、64個を書き換え不可能な音色、64個を書き換え可能な音色にする。音色を1曲中で変更していく曲なら、切り替えの度に音色設定をするのではなく、音色番号を指示すれば良くて、処理が軽くなることを期待。PCM音源に近づけた感じ。
また、書き換え可能な部分に関しては、ヤマハがゲームに使える音を、10個セットとかで別途販売する事も想定。音色にこだわらない会社や、こだわりたいのに作れない会社には助かる仕様だと思う。また、ユーザー視点では「またプリセット音色かよ」、「どの会社のゲームでも同じ音色に聞こえる」っていう残念な感じが減る。
一方音色にこだわっている日本ファルコムや日本テレネットみたいな会社は、それぞれの「その会社らしい音」を音色として設定しておいてもいい。
ちなみにヤマハDX7(6オペレータFM音源)は以下の容量らしい。
・プリセット(ROM)音色:32音色
・ユーザー(RAM)音色:32音色
・外部カートリッジ:64音色(プリセット32+ユーザー32)
従って、1音色=155バイトなので、以下の値となる。
・32音色 → 4,960バイト(約5KB)
・64音色 → 9,920バイト(約10KB)
128音色で約20KB。キリのいい値とすると、16KBでは不足しそうなので、24KBかな。ROMとRAMは当然分けるけど。
蛇足だけど、何故SSGをPSGと書いているのかというと、NECがPSGと言ってたから。
また、僕の最初のパソコンがPC-6001markⅡであり、PSGの音源チップAY-3-8910を使っていたからでもある。
02000.07.02. ADPCM
OPNA(YM2608)は、ビットレートが2kHz~16kHz。再生時に2kHz~55.5kHzの範囲で音程を変えることが可能。
とはいえ、音質は悪いし、音程もきっちりできる訳でも無さそうなので、改良。
16kHzは、AMラジオよりはちょっと良い程度の音質なので、CD音質の48kHzまでアップ。即ち、2kHz~48kHz。ゲームで使うなら、多くの場合、視聴に耐えて容量を節約する物で24kHz程度だろう。ドラムセットやパーカッションでは、もっと低ビットレートで良いはず。
とはいえ、5分の曲を流し続ける事は、元のOPNAではデータ転送速度が遅すぎて実現不可能。なので、転送速度を早くするか、バンク切り替え対応にしてHuC6280か別のDMAで高速転送すれば、対応可能と思う。
可能性だけの話で、現実的ではない。
音程に関しては、正しく音階が出せるように改良。具体策は良く解らない。元のままでも良いかもしれない。
02000.07.03. リズム音源
OPNA(YM2608)は、データはADPCMだけど音色固定だった。その音色もゲームの雰囲気に合う事はまずない。
タムやスネアに関しては、大抵は3種類前後の音色・音程が必要だというのに、1種のみという使えなさ。ADPCMみたいにせめて音程が変化できれば良かったのに。
(使えてたのかもしれないけど、使えてたのなら、テレネットミュージックボックスのタムにPSGの音を重ね合わせて音程があるように見せかける必要は無かったと思う)
ゲームの雰囲気には全く合わない場合が多いし、「どれも同じ音」という残念な状態になっていた。
結果、市販ゲームで使ってる例はほぼ無い。
夢幻戦士ヴァリスⅡ等の日本テレネットのサウンドボードⅡ対応曲は、使ってるような音がするけど、実際は良く解らない。テレネットミュージックボックスじゃなくて、ゲーム中のBGMの方で。
日本テレネットが使ってなかったとしたら、他で使ってそうなゲームは知らない。
市販品ではない有名なゲームというと、東方シリーズかな。
PC-8801FA/MA及びサウンドボードⅡ互換の為に残すしかないけど、そのまま残していても使い道がない無駄な音源になってしまうので、拡張する。
・全て普通のADPCMにする
・元の音色はプリセットとして残す
・可能な範囲で、サンプリングレートは2kHz~48kHzへ
・可能であれば、音階設定可能
・可能であれば、パン付き
こうする事で、PCM音源系のch数は合計11chになる。別体のPCM音源を4chから8chに増やせば、合計15ch。十分じゃないかな。
02000.07.04. PCM音源系のメモリ
OPNA(YM2608)のADPCMが最大256KBという事なので、一旦それで決めた。
しかし、容量が心許なかったのは事実。
漢字ROMが不要と気付いたので、そのまま512KBを追加。合計768KB。
スーパーファミコンの64KBは少なすぎて参考にもならないが、セガサターンとプレイステーションは512KB。ちょっとオーバースペック気味なので、最終的には512KBになるかも。
02000.07.05. フェイズシフティング
独立した音源が3種類あるので、HuC6280の能力も考えると、出来そうな気がするという程度の事。
スティーブ・ライヒを参考に、ゲーム中で演奏可能かもしれない。
不安・不穏・不安定といった表現に使えそう。
ただし、使い方を間違えるとただのノイズになるはず。
個人の感覚としては、最大4パートが視聴限界だと思っている。普通に使うなら3パートかな。5パート以上だと曲として破綻すると思う。
曲の作り方は、思いつくのは以下の2パターン。
①MMLでテンポの違うデータを作って流す
②譜面をレイヤーの様に作って演奏させる
テンポの小数点以下の微調整は、HuC6280の能力で何とかできると予想。
考えたものの、実現方法は良く解らない。
