PSGで遊ぼう!

当サイトで公開しているソフトウェアPSG音源(PSGエミュレータ)の「PSG for Web」のポータルページです。

作例

後述の「PSG Pad」を使った作例動画です。

PSGとは

オリジナルの「PSG」についてのWikipediaの記事です。

PSG for Webとは

当サイトで提供している「PSG for Web」の説明です。

PSG Pad

PSG Padは、PSG for Webの機能を簡単に使うためのツールです。レジスタ操作による発音と、MSX BASICのPLAY文互換のMMLによる音楽演奏ができます。上の作例はこのPSG Padを使用しています。

画面右下の大きな入力欄にカンマで区切った3チャンネル分のMMLを入力して演奏ボタンをクリック・タップすると演奏されます。

PSG Padを使う際は、最初に画面上の赤いボタンを一回クリック・タップしてください。「Web Audio API OK」という表示が出たら演奏を開始できます。

MMLの文法

MSX BASICのPLAY文で使用するMMLの文法はこちらの記事を参照してください。

拡張MMLについて

PSG for Webバージョン1.3.0で、「究極のPSGシステム」の拡張MMLに対応しました。

「究極のPSGシステム」とは、雑誌「MSXマガジン」(アスキー刊)1987年3月号・4月号に掲載されたBGMコンパイラで、MSX BASICのPLAY文のMMLを読み込んでコンパイルし、BGMを演奏するマシン語バイナリを生成するものです。

このソフトでは、MSX BASICのPLAY文ではできない、周波数の微調整(によるデチューン)や、ノイズの制御を行うために、拡張MMLとして「I」と「Z」、音階「O9C」が追加されていました。

当時の資料を元にこの拡張MMLに対応しました。

I <数値>

ノイズの周波数を<数値>で指定します。<数値>の範囲は0〜32までです。

<数値>動作
0当該チャンネルのノイズを有効にする。
ノイズ周波数は変更しない。
1〜31当該チャンネルのノイズを有効にする。
ノイズ周波数を変更する。(<数値>の値をPSGのR6に書き込む)
32当該チャンネルのノイズを無効にする。
ノイズ周波数は変更しない。

O9C

MSX BASICのMMLでは音階はO1CからO8Bまでですが、上記のIコマンドでノイズだけを発声させるために、無音の音階として「O9C」が追加されています。

注意事項

MML上は各チャンネルごとにノイズを指定できますが、PSGにはノイズ発生器は1系統しかないため、複数のチャンネルで異なる周波数のノイズを同時に出すことはできません。

Z<数値>

当該チャンネルの音の高さ(周波数)を、<数値>/128オクターブ下げます。<数値>に128を指定すると1オクターブ下がることになります。この指定は、次にZ<数値>を指定するまで有効です。また、各チャンネルに個別に指定できます。

同じ音階の音を2つ同時に鳴らし、片方にZ<数値>を指定することで、デチューンの効果を得ることができます。元の音の高さにもよりますが、あまり大きな値を指定すると、単に音のずれた和音になるだけなので、1〜2程度の数値を指定することでPSG独特のデチューンをすることができます。

PSGのレジスタの説明

[広告]