ads by Amazon

Google+ Badge

2013年4月11日木曜日

8. PSG音源と波形メモリ音源の違い

厳密な言葉の定義がされている訳ではありませんが、一般的に「PSG音源」と「波形メモリ音源」というのは別のものとされています。

(1)PSG音源
General Instrument社が作成したAY-3-8190というチップが、最初に作られPSG音源です。PSGというのは、Programmable Sound Generatorの略で、その名の通り、プログラムにより音の出力を制御することが特徴の音源チップです。
AY-3-8190は、3チャネル(3声)の矩形波と、1チャネルのノイズを発生させることができます。
詳しくは、Wikipediaを参照ください。
https://ja.wikipedia.org/wiki/Programmable_Sound_Generator

(2)波形メモリ音源
このブログで取り扱うのは、PSG音源ではなく、波形メモリ音源です。
波形メモリ音源とは、音の1Hz分の波形情報をメモリにストアしておき、それを発音させる形で音を鳴らします。PSG音源との違いは、原型波形を生成させるための演算が咬まないという点です。それにより、より少ない演算コストで音を発生させることができます。その代り、メモリ消費量がPSGと比べて大きくなる欠点があります。ただし、大きくなるといってもKBオーダーの世界です。
現代では、メモリ(DRAM)はGBオーダーでも数千円程度ですが、昔のメモリは非常に高価だったので、メモリコストよりも演算コストの方が安いと考えらえた(トレードオフされた)ことにより、PSG音源の方が主流でした。
しかし、それでは過去の話しです。
現代のプログラム実行環境では、KBオーダーのメモリコストよりも、演算コストの方が遥かに高いです。そのため、VGSではPSG音源ではなく、波形メモリ音源を採用することにしました。

(3)メモリストア方式
波形メモリ音源にも幾つかの異なる考え方があります。
それは、波形情報のメモリストア方式です。
VGS以外にも波形メモリ音源を扱うプログラムに、開発室Pixelが提供しているPxtone Collageというプログラム(ピスコラ)があります。ピスコラの場合、基本となる1つの音の波形情報(基礎波形データ)をメモリにストアしておき、それをベースにして異なる音階の波形を算出する方式を採っています。私はこれを「単音ストア方式」と呼んでいます。

(4)単音ストア方式
そのメリットは、1つの波形パターン=楽器が必要とするメモリ容量が少ないということです。
それにより、沢山の種類の楽器を持つことが可能です。
単音ストア方式
その一方、音階演算による処理コストが発生するため、処理性能が悪い欠点があります。
「処理性能が悪い」とはいっても、昨今のパソコンであれば全く問題になりません。しかし、スマートフォンなどのモバイル機器は(パソコンと比べて)処理性能が悪いため、これは厄介な問題になると私は考えました。
そこで、私はVGSの波形メモリ音源は、全音ストア方式にすることにしました。

(5)全音ストア方式
これは、全ての音階の1Hz分の波形データをメモリにストアする方式です。
それにより、「周波数変換」の演算回路が不要になり、その分、処理性能が良くなります。
全音ストア方式
ただし、1つの楽器あたりの波形データの量が多くなってしまうので、あまり多くの楽器を持てないという欠点があります。
しかし、私は「ゲーム用の音源」としての波形メモリ音源であれば、単音階ストア方式にするメリット(音色数が豊富であることは)はあまり無いと判断しました。何故なら、ファミコンの場合、使用できる音色は三角波、矩形波、ノコギリ波、ノイズの4種類(VGSと同じ)しか有りませんが、それでもゲーム音楽としては十分な表現能力があると思われたので。という訳で、このブログでは今後、全音ストア方式による波形メモリ音源の実装方法について解説していきます。

0 件のコメント:

コメントを投稿