MSX Datapack wiki化計画

3.4 YM2413(OPLL)

 3.4 YM2413(OPLL)

 先に述べたとおり、MSX-MUSICではFM音源としてOPLL(YM2413)を採用しています。この章では、このFM音源LSIのレジスタなど、ソフトウェアを制作する上で必要なことを解説します。ただしFM音源の理論や実際のプログラミングに関する解説ではないので、音の作り方などについては、専用の解説書をご参照下さい。

3.4.1 概要

1.概要
 MSX-MUSICシステムとして採用されたYM2413(OPLL)は、音源としてOPLL(YM2413)というYAMAHA独自のFM音源LSIを採用しています。YM2413は、DAコンバータや水晶発振回路を内蔵しているため従来の音源LSIに比べて、非常に容易にかつローコストで音源システムを組み立てることが可能です。さらにYM2413では、ソフトウェアの簡便さを図るため音色データをROMとして持ち、音色変更にともなうデータ変更を1度の音色選択操作で済ませることができます。また、効果音や独自の音色も発音可能とするために1音色分の音色データレジスタも内蔵しています。

2.特徴
 ■FM音源を採用し、リアルなサウンドを作ることが可能
 ■モード選択により9音同時発生あるいはメロディ音6音+リズム音5音の2つのモードを選択可能(いずれの場合にも異音色可)
 ■音色データ内蔵(メロディ音15音色、リズム音5音色)
 ■DAコンバータ内蔵
 ■水晶発振回路内蔵
 ■ビブラート発振器/振幅変調発振器内蔵
 ■入力TTLコンパチブル
 ■Si-gate NMOS LSI
 ■5V単一音源

3.FM方式の概略
 FM方式とは、Frequency Modulationすなわち周波数変調の意味で、変調によって生じる高調波を楽音の合成に利用したものです。この方式は比較的簡単な回路で、非調和音も含む高い高調波成分を持つ波形を発生させることができ、しかも変調指数と高調波のスペクトル分布の対応が非常に自然であるため、自然楽器の合成音から電子楽器まで、幅広い音作りが可能ということが確認されています。
 FM方式は以下の式のように4つのパラメータで表現されます。


式7.1

ここでは、Aは出力振幅、Iは変調指数、またωc,ωmはそれぞれキャリア、モジュレータの各周波数です。この7.1式は次のように表現することもできます。


式7.2

 ここで、Jn(I)はn次の第1種Bessel関数です。7.2式からわかるように各倍音の振幅は、変調指数のBessel関数で表現されることになり、7.1式によるFM音源は特定の楽音や効果音の合成に非常に有効となることがわかります。ただし、これでは高調波が一様に分布しないためString系の音源には不向きとなります。そこで、考え出されたのが7.3式で表されるfeedbackFMという方式です。


式7.3

 ここでβは帰還率です。このfeedback FMでは、高調波スペクトルが鋸歯状波となりString系の音作りも可能となります。
 以上のような、FM方式を実現するためには、次の3つの機能ブロックが必要です。

  1. ωtを発生させるphase generator (PG)
  2. 振幅Aや変調指数Iを時間関数として得るためのenvelope generator (EG)
  3. sinテーブル (sin)

 以上の3つの構成要素を組み合わせて1つのユニットとして考えると、先のFM方式は図7.23のように表すことができます。したがって、このユニット(オペレータセル:OP)の考え方を用いればFM方式の音作りは、ユニット内の周波数パラメータやEGパラメータの設定、そしてユニット間の組み合せのデータを作ればよいことになります。


図7.23 ユニットセルによるFM方式の表現

3.4.2 機能概要

1.主要機能
 OPLLは9ビットのDAコンバータを内蔵したFM音源LSIであり、メロディ音を9音あるいはメロディ音6音+リズム音5音の2つの発音モードを持ち、両モードとも同時異音色発音が可能です。さらに、この両モードをソフトウェアで選択することも可能です。YM2413の特徴の1つは、音色ROMを内蔵していることです。この音色ROMは、表7.30のようにメロディに対して15音色、リズムに対して5音色用意されています。また、効果音や独自の音創りが可能なように1音色分の音色レジスタがあります。この音色レジスタの各パラメータは7.4式のE、ω1、I、ω2をコントロールすることにより、基本波ω1に対するいろいろな高調波を生成することができます。


式7.4

 OPLLは従来のFM音源と異なって、音色がROMとして内蔵されているため、プロセッサからの発音制御が大幅に簡素化されています。まず最初に、音色選択レジスタに希望の音色を登録します。その後Key-ON、F-Numberレジスタに所定の音程とタイミングでデータを書き込むことにより、発音を開始します。このとき、曲に合わせて適当にサスティンレジスタ、ボリュームレジスタにデータを書き込めば、難なくプロセッサによる自動演奏を楽しむことができます。備え付けの音色以外の独自の音色を楽しむときには、先に述べた音色レジスタにデータをセットした後、音色選択レジスタを「0」にすることにより、オリジナルの音色を出すことができます。また、リズム音を発生したいときには、リズムコントロールレジスタの希望音源のビットをON/OFFすることにより、リズム音を付加することができます。この場合、Key-ON、F-Numberレジスタの7CH、8CH、9CH(アドレス $16、$17、$18、$26、$27、$28)は所定のデータを入力しておかねばなりません。

2.チャンネルとスロット
 OPLLはFM音を9音(9チャンネル)発音することが可能で、1音あたり2オペレータセル持っています。ただし、オペレータセルはシステムで1つ持っているだけなので、FM9音の計算は、このオペレータセルをシリアルに18回通すことによってなされます。このオペレータセルを通す順番(スロット番号)は、レジスタ番号と対応しており、各音の発音コントロールはスロットと対応したレジスタを制御することになります。
 また、F-Numberのようなチャンネルごとのデータは2つのスロットを制御します。この2つのスロット(第1、第2スロット)の関係は、FM変調モードにした場合は、第1スロットが必ず変調波に、そして第2スロットが搬送波になります。また、第1スロットはFeedback FMのモードにも設定できます。このモード設定については「KSL/TOTAL LEVEL/DISTORTION/FEED BACK LEVEL」の項を参照して下さい。
 表7.28はチャンネルとスロットの関係を示します。

表7.28 チャンネルとスロット

123456789101112131415161718スロット番号
123123456456789789チャンネル番号
121212チャンネルごとに見たときのスロット番号
202122202122232425232425262728262728チャンネルごとのデータとレジスタの関係(例 $20〜$28)

3.レジスタマップ

図7.24 OPLLのレジスタマップ

図7.25 リズムモード時のレジスタマップ(Addr=$0E、D5 =「1」のとき)

表7.29 OPLLレジスタの内容

アドレスビット
100、01D7振幅変調のON/OFF
D6ビブラートのON/OFF
D5持続音と減衰音の切り替え(0=減衰音、1=持続音)
D4RATEのキースケール
D0〜D3搬送波と変調波の周波数の制御
202、03D6、D7LEVELのキースケール
302 D0〜D5変調波のトータルレベル。変調指数の制御
403D3〜D4搬送波、変調波の歪波形(半波整流)のON/OFF
D0〜D2Feed back FMの帰還係数
504、05D4〜D7アタック時のエンベロープの変化割合制御
D0〜D3ディケイ時のエンベロープの変化割合制御
606、07D4〜D7ディケイからサスティンへ移るレベルの指示
D0〜D3リリース時のエンベロープの変化割合制御
70ED5リズム音のモード選択(0=メロディモード、1=リズム音モード)
D0〜D4各リズム楽器のON/OFF
810〜18D0〜D7F-Number下位8ビット
920〜28D5サスティンのON/OFF
D4Key ON/OFF
D1〜D3オクターブ指定
D0F-Number MSB
1030〜38D4〜D7音色ナンバー (INST.)
D0〜D3ボリュームデータ

表7.30 音色データ

INST音 色 INST音 色 音 色
0 オリジナル音色8 オルガン BD バスドラム
1 バイオリン 9 ホルン SD スネアドラム
2 ギター A シンセ TOM タム
3 ピアノ B ハープシコード T-CYトップシンバル
4 フルート C ビブラフォン HH ハイハット
5 クラリネット D シンセベース
6 オーボエ E ウッドベース
7 トランペット F エレキベース

3.4.3.動作説明

 OPLLの全機種は、プロセッサからレジスタアレーへデータを書き込むことによって制御されます。この書きこまれたデータによって、楽音のエンベロープの形状や変調度、周波数及び発音モードなどが決定されます。そして、このデータの組み合せが、ピアノやバイオリンなどの音を発生させることになります。しかし、その組合せは非常に多く複雑であるため、OPLLでは、音色レジスタに音色ナンバー(INST)をセットすることで音を発生することができます。

1.レジスタ
 レジスタは図7.24のアドレスマップで与えられる計271ビットのエリアを持っています。ここで言うアドレスとはOPLL内で各レジスタに割り当てられたサブアドレスであり、楽音データはこのサブアドレスを通じてレジスタ内に書き込まれることになります。
 したがって、あるデータをOPLLに格納したい場合は、まず、そのデータをしまうサブアドレスデータを送り、次に楽音データを送ります。ただし、同一サブアドレスを何度もアクセスする場合は、最初にサブアドレスデータを送るだけで、以後はアドレスデータを送ることなしに、楽音データを送って、データを更新することができます。
 なお、全レジスタとも初期設定の時には「0」にセットされます。

AM/VIB/FG-TYP/KSR/MULTIPLE [$00] [$01]

 このレジスタでは、エンベロープの形状やF-Numberで与えられる周波数データを楽音の周波数成分に見合った搬送波($01)、変調波($00)の周波数に変換するための倍率を制御します。

$00、$01D7D6D5D4D3D2D1D0
AMVIBEG-TYPKSRMULTI
23222120

D3〜D0
(MULTIPLE)
表7.31で与えられる倍率によって搬送波、変調波の周波数を制御します。
F-Numberに夜周波数
搬送波のMULTIPLE 1
変調波のMULTIPLE 7

表7.31 搬送波、変調波の周波数を求めるための倍率

MUL倍率MUL倍率MUL倍率MUL倍率
0 ½ 4 4 8 8 C 12
1 1 5 5 9 9 D 12
2 2 6 6 A 10 E 15
3 3 7 7 B 10 F 15

D4(KSR)RATEのキースケールを与えます。自然楽器では、おおむね音程が高くなるにしたがって、音の立ち上がり、立ち下がりは速くなります。この現象をシミュレーションするのがRATEのキースケールであり、表7.32の値が各々の音程に対してスピードのオフセットとして加えられます。したがって、実際のRATEはADSRに対してせっていしたRATEにこのオフセットを加えたものになります。
RATE = 4 × R + RksRはADSRでの設定値
Rksはキースケール オフセット値
ただし R = 0の時はRATE = 0

表7.32 キースケールオフセット

01234567オクターブ
01234567BLOCKデータ
01 01010101010101F-Num・MSB
00 00111122223333D4 = 0キースケールオフセット(Rks)
0123456789121112131415D4 = 1

D5 (EG-TYP)持続音か減衰音かの切り替えをします。
D5 = 0 のとき、減衰音
D5 = 1 のとき、持続音

この発音モードの違いは、RELEASERATEの使用法が異なっているためで、その様子を図7.26に示します。

図7.26 OPLLの減衰音、持続音のエンベロープ

D6 (VIB)ビブラートのON/OFFスイッチです。このビットを「1」にすると、そのスロットにはビブラートがかかります。このとき周波数は6.4Hz(@φM = 3.6MHz)です。
D7 (AM)振幅変調のON/OFFスイッチです。このビットが「1」にセットされたときには、そのスロットには振幅変調がかかります。振幅変調の周波数は3.7Hz(@φM = 3.6MHz)です。
KSL/TOTAL LEVEL/DISTORTION/FEED BACK LEVEL [$02][$03]

 トータルレベルは、エンベロープジェネレータの出力に対して減衰量を加算し、変調度(音色)の制御をするために用いられます。また、レベルキースケール(KSL)はRATEのキースケール同様、自然楽器では音程が上がるにつれて、出力レベルは低下する傾向にあることをシミュレートするものです。

D7D6D5D4D3D2D1D0
$02KSLTotal Level ⓜ
$03DC DM FB



$02
D0〜D5
(Total Level)
最小分解能は0.75dBで、最大47.25dBまで変調度を絞り込むことができます。

表7.33 トータルレベル

D5D4D3D2D1D0
減衰量 24 12 6 3 1.5 0.75 (単位:dB)

D6、D7 (KSL)キースケールを制御するビットです。キースケールのモードは、音程が上がるほどレベルは減衰し、その減衰量は、1.5dB/OCT、3dB/OCT、6dB/OCTおよび減衰無しの4種類です。

表7.34 減衰量

D7D6減衰量
0 0 0
1 1 1.5dB/OCT
0 1 3dB/OCT
1 1 6dB/OCT

表7.35 3dB/OCTの場合の各F-Numberでの減衰量

F-Number01234567
OCT 89101112131415
00.0000.0000.0000.0000.0000.0000.0000.000
0.0000.0000.0000.0000.0000.0000.0000.000
10.0000.0000.0000.0000.0000.0000.0000.000
0.0000.0751.1251.5001.8752.2502.6253.000
20.0000.0000.0000.0000.0001.1251.8752.625
3.0003.7504.1254.5004.8755.2505.6256.000
30.0000.0000.0001.8753.0004.1254.8755.625
6.0006.7507.1257.5007.8758.2508.6259.000
40.0000.0003.0004.8756.0007.1257.8758.625
9.0009.75010.12510.50010.87511.25011.62512.000
50.0003.0006.0007.8759.00010.12510.87511.625
12.00012.75013.12513.50013.87514.25014.62515.000
60.0006.0009.00010.87512.00013.12513.87514.625
15.00015.75016.12516.50016.87517.25017.62518.000
70.0009.00012.00013.87515.00016.12516.87517.625
18.00018.75019.12519.50019.87520.25020.62521.000
単位(dB)

注 意
F-Numberは上位4ビットの値
1.5dB/OCTは上記の1/2倍
6dB/OCTは上記の2倍
$03
D3(DM)変調波を半波整流する。
D4(DC)運送波を半波整流する。
D0〜D2(FEEDBACK)第1スロットのフィードバックFM変調の変調度を与えます。

表7.36 変調度

01234567
変調度0π/16π/8π/4π/2π

ATTACK/DECAY RATE [$04][$05]

 アタックレイトは音の立ち上がり時間の設定をします。また、ディケイレイトは、アタック後の減衰時間を決めます。各RATEの時間設定は表7.37のとおりです。

D7D6D5D4D3D2D1D0
ARDR
$042322212023222120変調波
$052322212023222120搬送波

SUSTAIN LEVEL/RELEASE RATE [$06][$07]

 サスティンレベルは、持続音の場合は、ディケイモードでの減衰がこのレベルに到達するとその後はそのレベルを持続するという変化点を指し、減衰音の場合は、ディケイモードからリリースモードへの変化点を与えます。
 リリースレベルは、持続音の場合はKeyをOFFしたときに、音が消えてゆく様子を定義するレイトであり、減衰音のときはサスティンレベルの前の減衰をディケイレイトで表し、サスティンレベル後の減衰をリリースレイトで表します。

D7D6D5D4D3D2D1D0
SLRR
$0624dB12dB6dB3dB23222120変調波
$0724dB12dB6dB3dB23222120搬送波

注 意リリースレイトの減衰時間は、ディケイレイトの表と同じ。

 下記のレイトは、キースケール後のレイトです。また、レイトの値を上位4ビット(RM)と下位2ビット(RL)に分割してRM-RLと表しています。RATE = RM × 4 + RL

表7.37 各レイトでの立ち上がり、立ち下がり時間

EG DECAY TIMEEG ATTACK TIME
RATE [mS][mS]RATE[mS][mS]
RM-RL0dB-48dB10%-90%RM-RL0dB-48dB10%-90%
1531.270.521500.000.00
1521.270.521500.000.00
1511.270.521500.000.00
1501.270.521500.000.00
1431.470.601430.140.10
1421.710.681420.180.12
1412.050.821410.220.14
1402.551.031400.280.18
1332.941.211330.300.22
1323.421.371320.340.22
1314.101.651310.420.26
1305.112.051300.500.32
1235.872.411230.540.36
1226.842.741220.600.38
1218.213.301210.700.44
12010.224.101200.840.54
11311.754.831130.970.64
11213.685.471121.130.72
11116.416.601111.370.84
11020.448.211101.691.09
10323.499.651031.931.29
10227.3610.941022.251.45
10132.8313.191012.741.69
10040.8716.411003.382.17
9346.9919.31933.862.57
9254.7121.88924.512.90
9165.6526.39915.473.38
9081.7432.83906.764.34
8393.9738.62837.725.15
82109.4243.77829.015.79
81131.3152.788110.946.76
80163.4965.658013.528.96
73187.9577.247315.4510.30
72218.8487.547218.0211.59
71262.61105.567121.8813.52
70326.98131.317027.0317.38
63375.90154.486330.9020.60
62437.69175.076236.0423.17
61525.22211.126143.7727.03
60653.95262.616054.0734.76
53751.79308.965361.7941.19
52875.37350.155272.0946.34
511050.45422.245187.5454.07
501307.91525.2250108.1369.51
431503.58617.9143123.5882.39
421750.75700.3042144.1892.69
412100.89844.4841175.07108.13
402615.821050.4540216.27139.03
333007.161235.8233247.16164.78
323501.491400.6032288.36185.37
314201.791688.9531350.15216.27
305231.642100.8930432.54278.06
236014.322471.6423494.33329.55
227002.982801.1922576.72370.75
218403.583377.9121700.30432.54
2010463.304201.7920865.08556.12
1312028.604943.2813988.66659.11
1214006.005602.39121153.43741.49
1116807.206755.82111400.60865.08
1020926.608403.58101730.151112.24

注 意レイトが「0」の場合は、エンベロープは変化しません。
RHYTHM

 リズムモード選択と各リズム楽器のON/OFFをコントロールします。

$OED5D4D3D2D1D0
RBSTTH
HDDOOH
YMP
T|
HC
MY
D0〜D5 (RHYTHM)D5 = 「1」のとき、OPLLはリズム音モードになり、7〜9チャンネル(「3.4.2 2.チャンネルとスロット」参照)はリズム音のチャンネルとなります。したがって、楽音(メロディ部)は6音に制限されます。D0〜D1は各リズム楽音のON/OFFを制御します。このため$26、$27、$28のKEY ONビットは常に「0」にしておく必要があります。また、13〜18の各スロットはリズム音と表7.38のような対応をしており、F-Numberのデータは各リズム音にマッチした値を入力しなければなりません。

表7.38 リズムスロットと周波数データ

楽音 スロットアドレスデータ
BD 13、16 $16 $20
SD 17 $17 $50
TOM 15 $18 $C0
TOP-CYM18 $26 $05
HH 14 $27 $05
$28 $01
TEST [$0F]

 このアドレスはLSIの内部動作をテストするときに使用しており、「0」以外では正常動作しません。

BLOCK/F-Number/SUS/KEY [$10]〜[$28]

 音程、音階を決めるデータです。F-Numberは$10〜$18のレジスタと$20〜$28のレジスタにまたがっています。

$10〜$18 D7D6D5D4D3D2D1D0
F-Number
2726252423222120



$20〜$28 D7D6D5D4D3D2D1D0
S
U
S
|
ON
/
OFF
K
E
Y
|
ON
/
OFF
BLOCKF
|
N
U
M
B
E
R
22212028

$10$18
D0〜D7 ($10〜$18)、D0($20〜$28) (F-Number)
$10〜$18の8ビットと$20〜$28の下位1ビットの計9ビットでF-Numberを表します。このF-Numberは音階を与えるデータで、後述する方法でその値を決めます。
D1〜D3 (BLOCK)オクターブ情報を与えます。
$20$28
D4 (KEY ON)鍵盤のON/OFFに相当するビットです。このビットを「1」にすると、そのチャンネルがONにとなり、発音します。「0」でKEY OFFです。
D5 (SUS ON/OFF)このビットを「1」にするとKEY OFF時のRRが5になります。

■F-Number/BLOCK
 OPLLでは、必要な周波数はその周波数に応じた位相の増分を与えることにより、得ることができます。そして、この増分はF-NumberとBLOCKおよびMULTIPLE情報によって決められます。
 そこで、まず希望周波数の増分を求めます。これは次式で与えられます。

fmus 希望周波数
fsum サンプリング周波数(50KHz)
fM 入力クロック周波数(3.6MHz)
式7.5 希望周波数の増分

 これで位相の増分は求められますが、この値を管理するのはビット数が多くて大変なため、増分は1オクターブ分のデータのみとし、各オクターブに対してはその増分をシフト(2倍、4倍…)することによって求めます。これにより増分は次のように表現できます。

B オクターブ情報
F' 1オクターブ内に制限した増分
MUL MULTIPLEデータ
式7.6 シフトによる位相の増分

 7.5式、7.6式と増分(F')を9ビットで表すということから、F-NumberとBLOCKは次のように表現されます。

F F-Numberデータ
b BLOCKデータ
式7.7 F-NumberとBLOCK

表7.39 F-Number(その1)

音階周波数
(4oct)
F-Number$20〜$28$10〜$18
D0D7D6D5D4D3D2D1D0
C# 277.2 181 0 1 0 1 1 0 1 0 1
D 293.7 192 0 1 1 0 0 0 0 0 0
D# 311.1 204 0 1 1 0 0 1 1 0 0
E 329.6 216 0 1 1 0 1 1 0 0 0
F 349.2 229 0 1 1 1 0 0 1 0 1
F# 370.0 242 0 1 1 1 1 0 0 1 0
G 392.0 257 1 0 0 0 0 0 0 0 1
G# 415.3 272 1 0 0 0 1 0 0 0 0
A 440.0 288 1 0 0 1 0 0 0 0 0
A# 466.2 305 1 0 0 1 1 0 0 0 1
B 493.9 323 1 0 1 0 0 0 0 1 1
C 523.3 343 1 0 1 0 1 0 1 1 1

表7.40 F-Number(その2)

音階周波数
(4oct)
F-Number$20〜$28$10〜$18
D0D7D6D5D4D3D2D1D0
G 392.0 257 1 0 0 0 0 0 0 0 1
G# 415.3 272 1 0 0 0 1 0 0 0 0
A 440.0 288 1 0 0 1 0 0 0 0 0
A# 466.2 305 1 0 0 1 1 0 0 0 1
B 493.9 323 1 0 1 0 0 0 0 1 1
C 523.3 343 1 0 1 0 1 0 1 1 1
C# 544.4 363 1 0 1 1 0 1 0 1 1
D 587.3 385 1 1 0 0 0 0 0 0 1
D# 622.2 408 1 1 0 0 1 1 0 0 0
E 659.3 432 1 1 0 1 1 0 0 0 0
F 698.5 458 1 1 1 0 0 1 0 1 0
F# 740.0 485 1 1 1 1 0 0 1 0 1

INSTRUMENT/VOLUME $30〜$38

 音色(ROM15音色、オリジナル音色)、音量を決めるデータを設定します。

$30〜$38D7D6D5D4D3D2D1D0
INSTVOL
D4〜D7 (INST)この4ビットで以下の音色が決定されます。

表7.41 INSTの値と音色

INST音色INST音色
0オリジナル音色8オルガン
1バイオリン 9ホルン
2ギター Aシンセ
3ピアノ Bハープシコード
4フルート Cビブラフォン
5クラリネット Dシンセベース
6オーボエ Eウッドベース
7トランペット Fエレキベース

D0〜D3 (VOL)各音色の音量を決めます。最少分解能は3dBで、最大45dBまで音量を絞り込めます。
D3D2D1D0
24dB 12dB 6dB 3dB

 リズムモード(addr = $0E、Ds = 「H」)時は、$36〜$38は、次のように各リズムのボリュームを設定できます。

D7D6D5D4D3D2D1D0
$36BD
$37HHSD
$38TOMT-CYM

2.フェイズジェネレータ(PG)
 フェイズジェネレータは必要な周波数に応じた増分を単位時間ごとにアキュムレートして位相値を得る回路です。この増分はレジスタから送られてくる周波数情報(F-Number、BLOCK、MULTIPLE)から作られます。さらに、ビブラート発信器を内蔵しているため、この発信器の出力と周波数情報とを組み合わせることにより、ビブラート効果を作り出します。

3.エンベロープジェネレータ(EG)
 エンベロープジェネレータ(以下、EG)は、ATTACK、DECAY、RELEASEの各RATE、Sustain Level、Total Levelなどでコントロールされ、音色、音量の経時変化を与えます。そして、そのダイナミックレンジは48dB(分解能0.325dB)あります。EGは対数表示であり、また減衰量で表されます。その一般的な波形は図7.27のとおりです。この波形で特徴的なのは、アタック時は指数関数的に変化し、それ以外では直線的に変化する点です。また、アタックからディケイへの切り替えは、0dBに達したときに起こり、ディケイからサスティンへは、サスティンレベルに到達したときに起こります。そして、リリースへの移行はKeyがOFFされたときに起こります。トータルレベル、レベルキースケール、振幅変調などの効果は、その設定値をEGに加えることによりエンベロープの波形を変化させます。


図7.27 OPLLのエンベロープ波形

3.44 OPLLでの楽音の作り方

 この章ではOPLLのオリジナル音色レジスタに、どのようなDATAを入力すると、ピアノやブラスなどの楽音を作ることができるかを説明します。

1.音作りの考え方
 FM方式での音作りの基本は、まず作りたい楽音の特徴をよく理解することです。例えば、ピアノであれば、鍵盤を押したときに、鋭い音の立ち上がりがあり、その後、押鍵を続けていれば、徐々に音が消えていくエンベロープを持っています。また、倍音の構成も立ち上がり時に多く、時が経るに連れて倍音の数は少なくなり、一定の倍音構成に近づいて行きます。
 以上のような特徴をつかんだ後、FMの式でいかにして実現するかを考えます。エンベロープの特徴から出力振幅を、そして倍音構成から変調指数を決めることができます。また、倍音の構成はオペレータの周波数も関与していますから、周波数比もある程度決めることができます。このように、各楽音の特徴からFMの各パラメータをおおまかに決め、その次に音を聞きながら細部を詰めてゆくようにすれば、望み通りの音色を得ることができます。

2.音作りの基本
 FM音源とは、モジュレータによってキャリアを変調することから生じる効果を利用したものです。したがって、FMの基本式パラメータ(キャリアの出力レベル、モジュレータの出力レベル、モジュレータのフィードバックレベル、キャリアの周波数、モジュレータの周波数)を上手に扱うことにより、各楽音のピッチ、音色、音量のすべてを決めることができます。このFMの各パラメータとOPLLのパラメータとの関係は、表7.42のとおりです。

3.音作りの例

表7.42 OPLLの音作りの基本

項目関与するパラメータMIN←(音の変化)→MAX
キャリアの出力レベル TOTAL LEVEL 音量 小←→音量 大
モジュレータの出力レベル (A,D,S,Rの各データ)丸い音色←→明るい音色
(Key Scale データ)
モジュレータのフィードバックレベルFB 普通の音色←→鋭い音色(Noise)
キャリアの周波数 MULTIPLE ピッチ 低←→ピッチ高
モジュレータの周波数 (BLOCK/F-Number 近い倍音←→離れた倍音

1.エレクトリックピアノ

1.オペレータの周波数の決定
 整数倍音の高調波をすべて出すために、2つのオペレータともにMULTIPLEは「1」を使います。

2.オペレータの出力レベル
 今度はモジュレータの出力を変更して音色を調整します。このとき、オペレータ1のレベルを決めるときには、低音部がまずピアノらしいリッチな高調波を得られるように設定し、それから高音にかけての変化はオペレータ1のレベルスケーリングで調整します。高音部ではほとんどSIN波になる位までレベルスケーリングする必要があります。

3.EGの設定
 ここでは音量と音色のエンベロープを決めます。まず、オペレータ2はアタックを鋭く、しかもある程度長く伸びるエンベロープにします。モジュレータになるオペレータ1では立ち上がりだけ倍音が多く、後は一定にして音色変化はさせません。音量調整としてオペレータ2についてもキースケーリングをかけます。また、高音部にかけて音のシャープさを出すためには、RATEのスケーリングを行うとよいでしょう。

4.データの再調整
 以上で音作りはほぼ終了ですが、EGなどのセッティングにより音色が幾分違ったものになっていきます。この場合、オペレータの出力レベルやフィードバックレベルを再調整して、最終的な音に仕立てます。例えば、金属的な響きが強すぎると思われる場合には、オペレータ1のレベルを下げます。

5.エフェクト付け
 最後にエレクトリックピアノの音をより生かすために、トレモロ効果をLFOによってつけ加えます。これは内蔵の振幅変調の機能を利用してもよいですし、ソフトウェアでTOTAL LEVELの値を2〜6Hzの周期で更新(三角波で可)することも可能です。

2.トランペット

1.オペレータ出力
 モジュレータであるオペレータ1のトータルレベルは$10〜$28程度の抑えめな値にし、フィードバックレベルはブライトな響きを出すために最大の「7」にします。
 オペレータの周波数
 基本的には、両方のオペレータ共に1倍にセットすればよいでしょう。

2.EG
 2つのオペレータとも、ゆっくりとしたアタック音にします。そしてブラスのサウンドではモジュレータのアタックはすべてキャリアよりも遅くします。「ブァン」というブラス特有のアタックを表現するのに必要なことです。

3.キースケーリング
 ゆっくりとした立ち上がりにエンベロープをセットしたため、高音部でハギレが悪くなります。このため、速いパッセージを弾いたときに不自然にならないように、レイトスケーリングを少しかけます。

4.LFO
 ブラスはどんな上手なプレイヤーが吹いても、ロングトーンの場合にはピッチがほんの少し揺れてきます。これを表現するためにビブラート効果を加えます。

3.リズム音について
 リズム音は7、8、9のチャンネルを使って作られます。この3チャンネル6スロットで計5音のリズム音を作るわけですが、バスドラム(BD)のみは2スロットでFM音を作ります。ここでは、残りの4音(ハイハット、トップシンバル、タム、ハイハット)について説明します。
 OPLLには、リズム楽器のためにホワイトノイズジェネレータと数種の周波数を合成して得られるノイズ発振器があります。このノイズ発振器は8チャンネルと9チャンネルの周波数情報(BLOCK、F-Number、MULTIPLE)より作られ、ホワイトノイズと合成することにより各リズム楽器に適した位相出力を発生して、オペレータに渡します。つまり、ここでは2つの周波数情報から4つの楽器の位相を作っていることになります。
 なお、2つの設定周波数は経験的に3:1(f8CH = 3 × f9CH)が良いとされています。これで、各楽器の位相データが得られたことにより、この出力にエンベロープの情報を掛け合わせます。エンベロープは1スロットに1リズム楽器と設定されているため、メロディ楽器同様各リズム楽器の特徴をつかんだ値が音色ROMにセットされています。