English
HARDWARE ManualSCSPユーザーズマニュアル
戻る進む
SCSPユーザーズマニュアル/4.3 音源部レジスタ

 FM音声合成では、スロット同士の接続(実際は、サウンドスタック →スロットとの接続)が重要となります。図4.28のFM音声構成図でのスロットの演算は、図4.24のように表すことができます。

図4.24 スロットの演算及びサウンドスタックの状態

 スロットの演算は、PG演算処理およびPLFO演算処理(OP1)から始まり、ADP(アドレスポインタ)演算処理およびMD(モジュレーション)データ読み出し(OP2)、波形データ読み出し(OP3)、 補間演算処理およびEG演算処理およびALFO演算処理(OP4)、レベル演算処理(OP5) (OP6)、波形出力値サウンドスタックライト(OP7)のサイクルで実行されます。レベル演算処理は演算処理が長いため、2つのサイクルを必要としています。
 演算処理を一時的に見てみると、例えば「スロット3がPG演算処理およびPLFO演算処理を行なっている時、ADP演算処理およびMD読み出しはスロット2、波形

 データ読み出しはスロット1、補間演算処理およびEG演算処理およびALFO演算処理はスロット0、レベル演算処理はスロット31およびスロット30、サウンドスタックはスロット30がライトされる」という処理を行なっています。
 スロットの演算は、スロット0から始まりスロット31に向かって演算されていくので、スロット0から若い順番サウンドスタックに書かれていきます。ただしスロットの演算が始まってからそのスロットがサウンドスタックに書かれるまでには、 演算実行分の時間差があります。例えばスロット0がサウンドスタックにライトされるまでには、図4.25のように6サイクル分の時間が必要になります。
 図4.24のように、スロットに対して他のスロットを接続する時は、接続される側のスロットがOP2の状態の時にサウンドスタックにすでにデータが書き込まれているスロットでなければ実際に接続できません。
 例えばスロット0に接続可能な他のスロットは、OP2がスロット0の時、サウンドスタックには"27"までのスロットが書かれているので、"27"までの色付きのサウンドデータが当てはまります。このことを公式で表すと次のようになります。


●スロットの接続式

{ 現スロット番号+32−接続したいスロット番号 (サウンドスタック) + A }≧5

 現スロット番号とは、レジスタのスロット番号を表わします。ただしAは、接続したいスロットのサウンドスタックが現在のサイクルの時"32"、過去のサイクルの時"0"を代入してください。
 ここでいう過去とは、1サンプル前のサイクルのデータのことです。

図4.25 スロットがサウンドスタックにライトされるまでの時間差

"MDXSL"・"MDYSL"の算出式

 FM音声合成を構成させるために2つ以上のスロットを接続させますが、この時の"MDXSL"および"MDYSL"(各6ビット)の算出法を説明します。
 2つのスロットを接続させる時、変調をかける側(モジュレータ)のスロットをM、変調をかけられる側(キャリア)のスロットをCとし、M−Cの答えをJとすると、

M − C = J ..... 4.1式

 となります。求めたJの値によって、"MDXSL"および"MDYSL"の最上位ビット(MSB…6ビット目)のとる値が変わってきます。その条件を以下に示します。

●条件1 J≧28の場合

●条件2 J<0(Jが負)の場合

●条件3 Jの値が条件1、条件2のどちらにも当てはまらない場合

 実際にFM音声合成を実現するにあたって、注意事項を記述しておきます。

図4.26 スロットの平均化演算
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃スロットの入出力             変調入力                 ┃ ┃                                          ┃ ┃   X   Y・・・変調入力        X    Y             ┃ ┃   ↓   ↓               ↓    ↓             ┃ ┃ ┌─┴───┴─┐           ┌─┴────┴─┐    X + Y  ┃ ┃ │ スロット  │           │ 平均化演算部 │ = ─────── ┃ ┃ └───┬───┘           └────┬───┘      2    ┃ ┃     ↓                    ↓               ┃ ┃  波形データ出力             ADDRESS             ┃ ┃                       POINTERへ           ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

 スロットに入力するソースは、サウンドスタック("SOUS")中のデータです。従って、あるスロットで変調するということは、変調スロットに対応するサウンドスタックを、被変調スロットにアサインおよび接続を行うことを表します。 実際の機能としては、変調入力YおよびXに対して入力するサウンドスタックを選択する"MDXSL"および"MDYXL"があるので、このレジスタに先に説明した演算法で求めたパラメータを、設定する必要があります。
 また、スロットへの変調入力はXおよびYの2本があります。この2本の入力は、平均化演算によって1/2倍にされてしまうことに注意してください。従ってスロットの入力が1本で接続されている場合は、XおよびYの入力に同じパラメータを設定して、 同じスロットのサウンドスタックデータを入力するようにしてください。片側入力のみの設定にしますと、考えてもいないデータが混入したり、FMの変調度が小さく感じられたりすることがあります。
 次に"MDXSL"および"MDYSL"の算出法を用いて、実際にFM音声合成で使われる4スロット構成のFM音源を例として、各パラメータを求めていきます。
初めに、図4.27に示したFM音声合成のアルゴリズムの読み取り方について説明します。

図4.27 4スロット構成のアルゴリズム

●スロット0
 スロット0は、出力をスロット2の入力に用いていますが、一方でスロット0の出力をスロット0の入力に用いています。これをセルフフィードバックといいます。

●スロット1
 スロット1は、出力をスロット2の入力として用いています。

●スロット2
 スロット2は、スロット0およびスロット1の出力を入力として用いています。その出力をスロット3の入力に用いています。

●スロット3
 スロット3は、スロット2の出力を入力としています。スロット3の出力は何も接続されていませんが、これを音声出力として使用します。

(1)スロット0に設定するパラメータ

図4.28 スロット0のアルゴリズム

 スロット0のようなセルフフィードバック型の構成は、スロット0の出力データが格納されたサウンドスタックを変調入力のXおよびYに接続することが必要です。
サウンドスタックには現在演算中のサンプルに対して、最新サンプルおよび過去サンプルがあるので、変調入力XおよびYには、両方に最新サンプルまたは過去サンプル、あるいは片方に最新サンプルもう片方に過去サンプルを入力するというように、 3通りの入力方法が考えられます。

※注意
 ただし、セルフフィードバックの場合には、同じサンプルを入力すると発振する可能性があるので、片方に最新サンプル、もう片方に過去サンプルを入力するという方法をとるようにしてください。
 MDXSLおよびMDYSLの値は、変調をかけるスロット、変調をかけられるスロットは共に0なので、4.1式に代入すると以下のようになります。


0 − 0 = 0

 これは4.1式の条件3を満たすので、MDXSLおよびMDYSLのMSBは、

最新サンプルの時 MSB=1(100000)B =20H
過去サンプルの時 MSB=0(000000)B =00H

 となります。

(2)スロット2に設定するパラメータ

図4.29 スロット2アルゴリズム

 スロット2は複数スロットの入力であるため、最新サンプル、過去サンプル入力にこだわる必要はありません。
 スロット1を入力(スロット1側)とした"MDXSL"および"MDYSL"の値は、変調をかけるスロットが1、変調をかけられるスロットは2なので、4.1式に代入すると以下のようになります。


1 − 2 = −1

 これは4.1式の条件2を満たすので、"MDXSL"および"MDYSL"のMSBは、


32 + (−1) = 31 = 1FH = (011111)B

最新サンプルの時  MSB=0   (011111)B = 1FH
過去サンプルの時  MSB=1   (111111)B = 3FH

 となります。

図4.30 スロット2アルゴリズム(入力スロット別)

 次に、スロット0を入力(スロット0側)とした"MDXSL"および"MDYSL"の値は、変調をかけるスロットが0、変調をかけられるスロットは2なので、4.1式に代入すると以下のようになります。


0 − 2 = −2

 これは4.1式の条件2を満たすので、"MDXSL"および"MDYSL"のMSBは、


32 + (−2) = 30 = 1EH =  (011111)B

最新サンプルの時  MSB=0   (011110)B=  1EH
過去サンプルの時  MSB=1   (111110)B=  3EH

となります。

※注意
 基本的に、番号の異なるスロットを入力する時は、同じ世代のサンプルを入力してください。従来のFM音源はこの方式をとっていますので、FM音源の音色ライブラリーを移植する場合には、この方法をとってください。

(3)スロット3に設定するパラメータ

図4.31 スロット3アルゴリズム

 スロット3は入力が1つしかないため、スロット2の出力を変調入力XおよびYの両方に入力する必要があります。
 接続されているスロットが異なっていれば発振の可能性はないので、変調入力XおよびY両方に最新サンプルのみ、または過去サンプルのみ、あるいは片方に最新サンプル、もう片方に過去サンプルを入力しても構いません。 従来のFM音源の音色ライブラリーを移植する場合には、どちらか一方のサンプルだけを使用してください。

 スロット2を入力としたMDXSLおよびMDYSLの値は、変調をかけるスロットが2、変調をかけられるスロットは3なので、4.1式に代入すると以下のようになります。


2 − 3 = −1

 これは4.1式の条件2を満たすので、"MDXSL"および"MDYSL"のMSBは、


32 + (−1) = 31 = 1FH>=  (011111)B

最新サンプルの時  MSB=0   (011111)B=  1FH
過去サンプルの時  MSB=1   (111111)B=  3FH

 となります。


戻る進む
HARDWARE ManualSCSPユーザーズマニュアル
Copyright SEGA ENTERPRISES, LTD., 1997