Programmable Sound Generator

出典: Wikipedio


Programmable Sound Generator(プログラマブル・サウンド・ジェネレーター、PSG)は、音を作り出す電子回路の一種。狭義には、ゼネラル・インスツルメンツ (GI) のAY-3-8910および相当品。広義には、それらと基本原理が同じ回路の総称。単一の音源チップないし、より多機能なチップの機能の一つとして供給される。

複数の基本波形(AY-3-8910では矩形波×3+ホワイトノイズ)を合成してさまざまな音色を出し、エンベロープ・ジェネレータでADSR(立ち上がりや余韻などのパターン)を変化させる。

1980年代アーケードゲームパソコン、携帯用ゲーム機に採用された。

thumb|AY-3-8910外観 Template:試聴

目次

概要

本来のPSGは、GI社(現在はモトローラが吸収合併)およびGIからスピンオフしたマイクロチップ・テクノロジーのAY-3-8910、およびその後継製品のAY-3-8912 / AY-3-8913相当品を指す。

テキサス・インスツルメンツ (TI) のSN76489も同様に扱われることが多い。しかし仕様は全く異なっており、本来は区別しなければならない。SN76489は厳密にはPSGではなくDigital Complex Sound Generator (DCSG) である。 [jenerator science web sites][1] thumb|SSG YM2149 また、ヤマハの一部のFM音源チップ(YM2203/YM2608など)には、Software-Controlled Sound Generator (SSG) と呼ばれるAY-3-8910互換機能が搭載されている。同社はこのSSG部分の単体チップであるYM2149を製品化しており、これはAY-3-8910相当機能に加え、AY-3-8910のTEST2端子(26番ピン)をSEL#(#はローアクティブを示す)に変更し、この端子をLowレベルにすることによって、発音基準周波数を外部入力周波数の2分周に設定できるように変更したものである。さらに内部的な音量が32段階(AY-3-8910は15段階)になっており、ハードウェアエンベロープが滑らかになっている。

東芝もSSG互換品をPSC(Programmable Sound Controller)という名称で設計しており、ゲートアレイなどの特定用途向けLSIに組み込まれて使用された(MSX-ENGINE、MSX-ENGINE2などがこれにあたり、ハードマクロセル名はSM7766A<ref>東芝データブック「スーパーインテグレーション(S.I.) スーパーマクロセルライブラリ1992(非売品)462D1AA」より</ref>)。ハードウェアエンベロープの周期などが、AY-3-8910とは異なる。

広義では、矩形波の出る安価なチップ音源をまとめて「PSG」と呼ぶことがある。

AY-3-8910の仕様

代表的なPSGチップであるAY-3-8910は次のような仕様である。

  • 矩形波発生装置 3系統(音量16段階、周波数4096段階8オクターブ、デューティー比1:1固定)
  • ノイズ発生装置 1系統(擬似乱数雑音 = 白色雑音
  • エンベロープ発生装置 1系統
  • ミキサー
  • 8bit汎用入出力ポート×2(ジョイスティックタッチパネルなど)
    • ATARI仕様の台形9ピン(D-Sub)インターフェース実装に用いられることが多かった。
    • AY-3-8913では、この入出力ポートが省略されている。
  • 備考
    • チャンネルごとに、出力のモードを「ミュート」「矩形波を出力」「ノイズを出力」「矩形波とノイズをmix出力」から選べる。
      • mix出力モードでは音に濁りが出る。
      • なぜ濁るのかというと、じつは同時に鳴っているのではなく、内部で高速にトーンとノイズが切り替えられているためである。
      • mix出力時、矩形波とノイズの音量は独立制御できない。音量はあくまで3系統であり4系統ではない。

AY-3-8910相当品を搭載した主なコンピュータ

SSGを搭載した主なコンピュータ

FM音源:YM2203(OPN)/YM2608(OPNA)を搭載

SN76489の仕様

SN76489(DCSGとも呼ばれる)のPSGとの大きな違いは、矩形波チャンネル3つ+ノイズ発生チャンネル1の合計4チャンネルで構成されているところである。PSG(SSG)はその構造上ノイズの音量制御が3つのチャンネルのどれかに依存してしまうが、SN76489(やpAPU)にはこの制限はなく、独立したノイズチャンネル単体で自由に音量制御できる。 また、ハードウェアエンベロープも持たない。

SN76489を搭載した主なコンピュータ

ファミコン音源(pAPU)の仕様

thumb|RP2A03 ファミリーコンピュータに搭載されている音源は次のような仕様である。

  • パルス波(矩形波)発生装置 2系統(デューティー比3:1、1:1、1:3、1:7切り替え)
  • 三角波発生装置 1系統 (4bit波形、音量は仕様上固定だが、DPCMと絡んだバグに近い挙動が存在し、これを利用するといじることが出来る。)
  • ノイズ発生装置 1系統(擬似乱数雑音・短周期ノイズ切り替え、周波数変更が可能。ただし、最初期型(コントローラのボタンが四角いゴム)のファミコンでは短周期ノイズは出せない)
  • DPCM 1系統
  • ミキサー

この音源はファミコンのCPU RP2A03(6502カスタム)に組み込まれた機能の一つであり、pAPU(pseudo Audio Processing Unit)と呼ばれている。

pAPUのパルス波発生装置はゲームボーイゲームボーイアドバンスにも搭載され、矩形波だけでなくデューティー比1:7パルス波などの独特な音色も出せる表情の豊かさがPSGの矩形波との大きな違いである。

PSGと誤解されやすいその他の音源

日本電気ホームエレクトロニクスから発売された家庭用ゲーム機PCエンジンではスペック表にPSGとの記載されることがあるが、実際に使われているのは波形メモリ音源(変調機能つき)であり、一般的に言われる本項で説明のPSGとは異なるものである。

また、ナムコの初期アーケード作品で使われている音源も「ナムコPSG」という俗称が広まっているが、これも正しくは波形メモリ音源であるため、PSGではない。

PSGによるPCM再生

PSGによってPCMを再生する技法が存在し、PSGPCMSSGPCM等と呼ぶ。デジタル-アナログ変換回路(DAC)を持たないパソコン向けのソフトウェアで使われることがあった。

ただし、PSGPCMによって得られる出力は線形ではなく指数関数であるため、この技法によるPCM再生で美しい音声出力を実現できたものはほぼ皆無に等しい。

再生音声に激しいノイズが乗るため、「無線による交信を演出する」といった苦肉の策が取られるなどした。

PSGPCMの原理

PSGで発声されるのは矩形波である。これはロー(=0)とハイ(=1)の2値しかとらない。これに音量レジスタ(4bit)の値を掛けたものが1チャンネル分の出力である。

さて、あるチャンネルの発声を停止すると、AY-3-8910相当品では矩形波出力はハイ(=1)で固定される。従って、そのチャンネルの出力は、音量レジスタそのものとなる。(1×音量レジスタ=音量レジスタ)

つまり、発声を停止して、そのチャンネルの音量を操作することで、PSGをDACとして使用できる。

エンベロープ

一般的なPSGチップではエンベロープ機能により、時間的な音量変化をハードウェアレベルで自動的に行える。エンベロープパターンには一般的な減衰波や、周期的な鋸波三角波など、8種類が用意されており、周期も自由に設定できる。しかしながら、エンベロープジェネレータは1系統しか用意されていないため、3チャンネルで楽曲を演奏しようものなら、エンベロープが同期してしまい、まったく聞くに堪えない物になってしまう上、音量の調節も不可能である。そのため、ソフトウェアの側でこまめにPSGの各チャンネルの音量レジスタを変更して、ソフトウェアレベルでエンベロープを再現する技術があった。この手法は「ソフトウェアエンベロープ」と呼ばれることがある。

ハードウェアエンベロープ機能の応用として、周期的なタイプのエンベロープパターンを「音量変化としてではなく楽音の波形として」選択し、エンベロープ速度(周期)をその楽音の音程とみなして設定することで、PSGの通常の発音方法では出せない鋸波や三角波を出すことができる。ただしエンベロープ周期を設定するレジスタ幅は狭く、楽音の音程を表現するには精度が低いため「音痴」になりやすい。また原理上、こうして発音した音の音量制御はできない。この手法はYM2203YM2608のSSG音源部でも使用が可能である。

脚注

Template:脚注ヘルプ<references />ca:AY-3-8910 cs:AY-3-8912 de:AY-3-8910 en:General Instrument AY-3-8910 es:General Instrument AY-3-8910 fi:AY-3-8910 ko:AY-3-8910 nl:AY-3-8910 pl:General Instrument AY-3-8910 pt:AY-3-8910 ru:AY-3-8910 sv:AY-3-8910

個人用ツール