,{t},{BSIZE:1 0|SIZE:100%} ,{BSIZE:0}← [[3.3 FM BIOS]] ,{BSIZE:0|RIGHT} [[4.1 ハードウェア|4.1 MSX-AUDIO ハードウェア]] → ,{c H},{BGCOLOR:dddddd|BOLD|CENTER} ,{c C},{CENTER} ,{c L},{LEFT} ,{c N},{BGNOCOL|NORMAL|CENTER} ,{c O},{BGNOCOL|NORMAL|LEFT} ,{c B0},{BSIZE 0} ,{c B1},{BSIZE 1} !!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つのパラメータで表現されます。 {{chart \mathrm F = A\sin(\omega ct + I\sin \omega mt) }} // F=Asin(ωct+Isin ωmt) '''式7.1''' ここでは、Aは出力振幅、Iは変調指数、またωc,ωmはそれぞれキャリア、モジュレータの各周波数です。この7.1式は次のように表現することもできます。 {{chart \mathrm F = A[J0(I)sin\omega ct + J1(I)\{sin(\om c+\om m)t-\sin(\om c-\om m)t \} \\ \hspace{141em} +J2(I) \{ \sin(\om c+ 2\om m)t+\sin (\om c-2\om m)t+ ...... ] }} // F=A[Jo(I)sinωct + J1(I) {sin(ωc+ωm)t-sin(ωc-ωm)t} // + J2(I) {sin(ωc+2ωm)t+sin(ωc-2ωm)t+......] '''式7.2'''  ここで、Jn(I)はn次の第1種Bessel関数です。7.2式からわかるように各倍音の振幅は、変調指数のBessel関数で表現されることになり、7.1式によるFM音源は特定の楽音や効果音の合成に非常に有効となることがわかります。ただし、これでは高調波が一様に分布しないためString系の音源には不向きとなります。そこで、考え出されたのが7.3式で表されるfeedbackFMという方式です。 {{chart \mathrm F = A\sin(\omega ct + \beta F) }} // F=Asin(ωct+βF) '''式7.3'''  ここでβは帰還率です。このfeedback FMでは、高調波スペクトルが鋸歯状波となりString系の音作りも可能となります。  以上のような、FM方式を実現するためには、次の3つの機能ブロックが必要です。 +ωtを発生させるphase generator (PG) +振幅Aや変調指数Iを時間関数として得るためのenvelope generator (EG) +sinテーブル (sin)  以上の3つの構成要素を組み合わせて1つのユニットとして考えると、先のFM方式は図7.23のように表すことができます。したがって、このユニット(オペレータセル:OP)の考え方を用いればFM方式の音作りは、ユニット内の周波数パラメータやEGパラメータの設定、そしてユニット間の組み合せのデータを作ればよいことになります。 {{svg 図7.23.svg,,size:680x260}} '''図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に対するいろいろな高調波を生成することができます。 {{chart \mathrm FM = E\sin(\omega 1t + I\sin \omega 2t) }} // FM=Esin(ω1t+Isinω2t) '''式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 チャンネルとスロット''' ,{c N},{CENTER|SIZE:20} ,{t},{BSIZE:0} ,{c},{N},{N},{N},{N},{N},{N},{N},{N},{N},{N},{N},{N},{N},{N},{N},{N},{N},{N},{O} , 1, 2{N}, 3{N},4{N},5{N},6{N},7{N},8{N},9{N},10{N},11{N},12{N},13{N},14{N},15{N},16{N},17{N},18{N},スロット番号{BSIZE:0} , 1, 2, 3,1,2,3,4,5,6, 4, 5, 6, 7, 8, 9, 7, 8, 9,チャンネル番号{BSIZE:0} ,1{C|COLS 3},,,2{C|COLS 3},,,1{C|COLS 3},,,2{C|COLS 3},,,1{C|COLS 3},,,2{C|COLS 3},,,チャンネルごとに見たときのスロット番号{BSIZE:0} ,20,21,22,20,21,22,23,24,25,23,24,25,26,27,28,26,27,28,チャンネルごとのデータとレジスタの関係(例 $20〜$28){BSIZE:0} '''3.レジスタマップ''' {{svg 図7.24.svg,,size:650x630}} '''図7.24 OPLLのレジスタマップ''' {{svg 図7.25.svg,,size:650x130}} '''図7.25 リズムモード時のレジスタマップ(Addr=$0E、D5 =「1」のとき)''' '''表7.29 OPLLレジスタの内容''' ,{c X},{BSIZE:0 0 1 0} ,{t},{BSIZE:2 0} ,{c},{X|N},{B1|N},{B1|N},{X|N} ,{SIZE 50},アドレス,ビット, ,{c},{X|CENTER|TOP},{B1|TOP|SIZE:80},{B1|SIZE:80},{X|SIZE:600} ,{ROWS:5}1,{ROWS 5}00、01,D{{sub 7}} ,振幅変調のON/OFF , , ,D{{sub 6}} ,ビブラートのON/OFF , , ,D{{sub 5}} ,持続音と減衰音の切り替え(0=減衰音、1=持続音) , , ,D{{sub 4}} ,RATEのキースケール , , ,D{{sub 0}}〜D{{sub 3}},搬送波と変調波の周波数の制御 , 2,02、03,D{{sub 6}}、D{{sub 7}},LEVELのキースケール , 3,02 ,D{{sub 0}}〜D{{sub 5}},変調波のトータルレベル。変調指数の制御 , 4{ROWS 2},03{ROWS 2},D{{sub 3}}〜D{{sub 4}},搬送波、変調波の歪波形(半波整流)のON/OFF , , ,D{{sub 0}}〜D{{sub 2}},Feed back FMの帰還係数 , 5{ROWS 2},04、05{ROWS 2},D{{sub 4}}〜D{{sub 7}},アタック時のエンベロープの変化割合制御 , , ,D{{sub 0}}〜D{{sub 3}},ディケイ時のエンベロープの変化割合制御 , 6{ROWS 2},06、07{ROWS 2},D{{sub 4}}〜D{{sub 7}},ディケイからサスティンへ移るレベルの指示 , , ,D{{sub 0}}〜D{{sub 3}},リリース時のエンベロープの変化割合制御 , 7{ROWS 2},0E{ROWS 2},D{{sub 5}} ,リズム音のモード選択(0=メロディモード、1=リズム音モード) , , ,D{{sub 0}}〜D{{sub 4}},各リズム楽器のON/OFF , 8,10〜18,D{{sub 0}}〜D{{sub 7}},F-Number下位8ビット , 9{ROWS 4},20〜28{ROWS 4},D{{sub 5}} ,サスティンのON/OFF , , ,D{{sub 4}} ,Key ON/OFF , , ,D{{sub 1}}〜D{{sub 3}},オクターブ指定 , , ,D{{sub 0}} ,F-Number MSB ,10{ROWS 2},30〜38{ROWS 2},D{{sub 4}}〜D{{sub 7}},音色ナンバー (INST.) , , ,D{{sub 0}}〜D{{sub 3}},ボリュームデータ '''表7.30 音色データ''' ,{c X},{BSIZE:2 0 1 0|BGNOCOL|NORMAL} ,{c Y},{BSIZE:0} ,{c Z},{BSIZE:0 1 0 0} ,{c W},{BSIZE:0 2 0 0} ,{t},{BSIZE:0} ,{c},{CENTER|BSIZE:2 1 1 0|SIZE:80},{BSIZE:2 2 1 0|SIZE:150},{CENTER|BSIZE:2 1 1 0|SIZE:80},{BSIZE:2 0 1 0|SIZE:150},{BSIZE:0|SIZE:60},{BSIZE:2 1 1 0|SIZE:80},{BSIZE:2 0 1 0|SIZE:150} ,INST,音 色 ,INST,音 色 , , ,音 色 ,{c},{CENTER|BSIZE:0 1 0 0},{BSIZE:0 2 0 0},{CENTER|BSIZE:0 1 0 0},{BSIZE:0 0 0 0}, ,{CENTER|BSIZE:0 1 0 0},{BSIZE:0 0 0 0} ,0 ,オリジナル音色,8 ,オルガン , ,BD ,バスドラム ,1 ,バイオリン ,9 ,ホルン , ,SD ,スネアドラム ,2 ,ギター ,A ,シンセ , ,TOM ,タム ,3 ,ピアノ ,B ,ハープシコード , ,T-CY,トップシンバル ,4 ,フルート ,C ,ビブラフォン , ,HH ,ハイハット ,5 ,クラリネット ,D ,シンセベース , , , ,6 ,オーボエ ,E ,ウッドベース , , , ,{c},{CENTER|BSIZE:0 1 2 0},{BSIZE:0 2 2 0},{CENTER|BSIZE:0 1 2 0},{BSIZE:0 0 2 0}, ,{CENTER|BSIZE:0 1 2 0},{BSIZE:0 0 2 0} ,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)の周波数に変換するための倍率を制御します。 ,{c W},{SIZE:50} ,{c X},{CENTER|ROWS:2|SIZE:100} ,{c Y},{CENTER|BSIZE:0} ,{c Z},{SIZE:120|BSIZE:0|BGNOCOL|NORMAL} ,{t},{BSIZE:0} ,{c},{Z} ,{C|N} ,{C|N} ,{C|N} ,{C|N} ,{W|N|BSIZE:1 0 1 0},{W|N|BSIZE:1 0 1 0},{W|N|BSIZE:1 0 1 0},{W|N|BSIZE:1 1 1 0} ,$00、$01,D{{sub 7}},D{{sub 6}},D{{sub 5}},D{{sub 4}},D{{sub 3}},D{{sub 2}},D{{sub 1}},D{{sub 0}} , ,AM{X},VIB{X},EG-TYP{X},KSR{X},MULTI{C|COLS:4|BSIZE:0 1 0 0},,, ,{c}, ,{X} ,{X} ,{X} ,{X},{C|BSIZE:0 0 1 0},{C|BSIZE:0 0 1 0},{C|BSIZE:0 0 1 0},{C|BSIZE:0 1 1 0} , , , , , ,2{{sup 3}},2{{sup 2}},2{{sup 1}},2{{sup 0}} ,{t},{BSIZE:0|NOHEADER} ,{c NC},{N|BSIZE:0} ,D{{sub 3}}〜D{{sub 0}}{{br}}(MULTIPLE){NC|SIZE:120},表7.31で与えられる倍率によって搬送波、変調波の周波数を制御します。{NC} ,例{CENTER|SIZE:80} ,{t},{BSIZE:0} ,{c},{BSIZE:0|SIZE:100},{BSIZE:0} ,,{{chart \mathrm F(t) = E\sin(\omega ft + I\sin (7\omega ft)) }} ,{t},{BSIZE:0} ,{c},{BSIZE:0|SIZE:120},{BSIZE:0|SIZE:160},{BSIZE:0} ,, F-Numberに夜周波数 ,{{chart \mathrm \omega f}} ,, 搬送波のMULTIPLE ,1 ,, 変調波のMULTIPLE ,7 '''表7.31 搬送波、変調波の周波数を求めるための倍率''' ,{t},{BSIZE:2 0} ,{c S8},{SIZE:80} ,{c S12},{SIZE:120} ,{c UD},{BSIZE:1 0} ,{c NO},{BSIZE:0} ,{c},{UD|S8},{UD|S12},{UD|S8},{UD|S12},{UD|S8},{UD|S12},{UD|S8},{UD|S12} ,MUL,倍率,MUL,倍率,MUL,倍率,MUL,倍率 ,{c},{NO|S8},{NO|S12},{NO|S8},{NO|S12},{NO|S8},{NO|S12},{NO|S8},{NO|S12} ,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 ,{t},{BSIZE:0|NOHEADER} ,{c},{BSIZE:0|SIZE:120|TOP},{BSIZE:0},{BSIZE:0} ,D{{sub 4}}(KSR),RATEのキースケールを与えます。自然楽器では、おおむね音程が高くなるにしたがって、音の立ち上がり、立ち下がりは速くなります。この現象をシミュレーションするのがRATEのキースケールであり、表7.32の値が各々の音程に対してスピードのオフセットとして加えられます。したがって、実際のRATEはADSRに対してせっていしたRATEにこのオフセットを加えたものになります。{COLS:2}, ,{r SIZE:40}, , , , ,RATE = 4 × R + Rks,RはADSRでの設定値 , , ,Rksはキースケール オフセット値 , , ,ただし R = 0の時はRATE = 0 '''表7.32 キースケールオフセット''' ,{t},{BSIZE:0|NOHEADER} ,{c D},{COLS:2|SIZE:50|CENTER|NORMAL|BGNOCOL} ,{c E},{BSIZE:0} ,{c L},{LEFT:20} ,{c},{D},,{D},,{D},,{D},,{D},,{D},,{D},,{D},,{E} ,0, ,1,  ,2, ,3, ,4, ,5, ,6, ,7,,オクターブ{L|COLS:2}, ,0, ,1,  ,2, ,3, ,4, ,5, ,6, ,7,,BLOCKデータ{L|COLS:2}, ,{c},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{C},{E} ,0,1 ,0,1,0,1,0,1,0,1,0,1,0,1,0,1,F-Num・MSB{L|COLS:2}, ,0,0 ,0,0,1,1,1,1,2,2,2,2,3,3,3,3,D{{sub 4}} = 0{L|SIZE:70},キースケールオフセット(Rks){L|E|ROWS:2} ,0,1,2,3,4,5,6,7,8,9,12,11,12,13,14,15,D{{sub 4}} = 1{L}, ,{t},{BSIZE:0|NOHEADER} ,{c},{BSIZE:0|SIZE:120|TOP},{BSIZE:0},{BSIZE:0} ,D{{sub 5}} (EG-TYP),持続音か減衰音かの切り替えをします。 , ,D{{sub 5}} = 0 のとき、減衰音 , ,D{{sub 5}} = 1 のとき、持続音 この発音モードの違いは、RELEASERATEの使用法が異なっているためで、その様子を図7.26に示します。 {{svg 図7.26.svg,,size:650x340}} '''図7.26 OPLLの減衰音、持続音のエンベロープ''' ,{t},{BSIZE:0|NOHEADER} ,{c},{BSIZE:0|SIZE:120|TOP},{BSIZE:0},{BSIZE:0} ,D{{sub 6}} (VIB),ビブラートのON/OFFスイッチです。このビットを「1」にすると、そのスロットにはビブラートがかかります。このとき周波数は6.4Hz(@φM = 3.6MHz)です。 ,{t},{BSIZE:0|NOHEADER} ,{c},{BSIZE:0|SIZE:120|TOP},{BSIZE:0},{BSIZE:0} ,D{{sub 7}} (AM),振幅変調のON/OFFスイッチです。このビットが「1」にセットされたときには、そのスロットには振幅変調がかかります。振幅変調の周波数は3.7Hz(@φM = 3.6MHz)です。 ::KSL/TOTAL LEVEL/DISTORTION/FEED BACK LEVEL [$02][$03]  トータルレベルは、エンベロープジェネレータの出力に対して減衰量を加算し、変調度(音色)の制御をするために用いられます。また、レベルキースケール(KSL)はRATEのキースケール同様、自然楽器では音程が上がるにつれて、出力レベルは低下する傾向にあることをシミュレートするものです。 ,{c W},{SIZE:50|CENTER|BGNOCOL|NORMAL} ,{c Y},{CENTER|BSIZE:0} ,{c Z},{SIZE:80|BSIZE:0|BGNOCOL|NORMAL} ,{t},{BSIZE:0} ,{c},{Z|C},{W} ,{W} ,{W} ,{W} ,{W} ,{W} ,{W} ,{W} , ,D{{sub 7}} ,D{{sub 6}},D{{sub 5}},D{{sub 4}},D{{sub 3}},D{{sub 2}},D{{sub 1}},D{{sub 0}} ,$02,KSL{ROWS:2|COLS:2},{ROWS:2} ,Total Level ⓜ{COLS:6},, , , , ,$03, , , ,DC ,DM ,FB{COLS:3}, , {{br}} ,$02{BGNOCOL|NORMAL} ,{t},{BSIZE:0|NOHEADER} ,{c},{BSIZE:0|SIZE:120|TOP},{BSIZE:0},{BSIZE:0} ,D{{sub 0}}〜D{{sub 5}} {{br}}(Total Level),最小分解能は0.75dBで、最大47.25dBまで変調度を絞り込むことができます。 '''表7.33 トータルレベル''' ,{c UD},{N|SIZE:80|CENTER|BSIZE:2 0 1 0} ,{c DD},{N|SIZE:80|CENTER|BSIZE:0 0 2 0} ,{t},{BSIZE:0|NOHEADER} ,{c},{UD},{UD} ,{UD} ,{UD} ,{UD} ,{UD} ,{UD} ,{UD} , ,D{{sub 5}},D{{sub 4}},D{{sub 3}},D{{sub 2}},D{{sub 1}},D{{sub 0}}, ,{c},{DD},{DD} ,{DD} ,{DD} ,{DD} ,{DD} ,{DD} ,{DD} ,減衰量 ,24 ,12 ,6 ,3 ,1.5 ,0.75 ,(単位:dB) ,{t},{BSIZE:0|NOHEADER} ,{c},{BSIZE:0|SIZE:120|TOP},{BSIZE:0},{BSIZE:0} ,D{{sub 6}}、D{{sub 7}} (KSL),キースケールを制御するビットです。キースケールのモードは、音程が上がるほどレベルは減衰し、その減衰量は、1.5dB/OCT、3dB/OCT、6dB/OCTおよび減衰無しの4種類です。 '''表7.34 減衰量''' ,{t},{BSIZE:0|NOHEADER} ,{c UD},{N|SIZE:80|CENTER|BSIZE:2 0 1 0} ,{c NO},{N|SIZE:80|CENTER|BSIZE:0} ,{c DD},{N|SIZE:80|CENTER|BSIZE:0 0 2 0} ,{c},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD} ,D{{sub 7}},D{{sub 6}},減衰量 ,{c},{NO},{NO},{NO},{NO},{NO},{NO},{NO},{NO} ,0 ,0 ,0 ,1 ,1 ,1.5dB/OCT ,0 ,1 ,3dB/OCT ,{c},{DD},{DD},{DD},{DD},{DD},{DD},{DD},{DD} ,1 ,1 ,6dB/OCT '''表7.35 3dB/OCTの場合の各F-Numberでの減衰量''' ,{c UD},{N|SIZE:80|CENTER|BSIZE:2 0 1 0} ,{c NO},{N|SIZE:80|CENTER|BSIZE:0} ,{c DC},{N|SIZE:80|CENTER|BSIZE:0 0 1 0} ,{t},{BSIZE:2 0 0 0} ,{c},{BSIZE:0 1 0 0|NO} ,{NO} ,{NO} ,{NO} ,{NO} ,{NO} ,{NO} ,{NO} ,{NO} ,F-Number,0,1, 2, 3, 4, 5, 6, 7 ,{c},{BSIZE:0 1 1 0|DC},{DC},{DC},{DC},{DC},{DC},{DC},{DC},{DC} ,OCT ,8,9,10,11,12,13,14,15 ,{c},{TOP|BSIZE:0 1 0 0|NO} ,{NO} ,{NO} ,{NO} ,{NO} ,{NO} ,{NO} ,{NO} ,{NO} ,0{ROWS:2}, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 , , 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 ,1{ROWS:2}, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 , , 0.000, 0.075, 1.125, 1.500, 1.875, 2.250, 2.625, 3.000 ,2{ROWS:2}, 0.000, 0.000, 0.000, 0.000, 0.000, 1.125, 1.875, 2.625 , , 3.000, 3.750, 4.125, 4.500, 4.875, 5.250, 5.625, 6.000 ,3{ROWS:2}, 0.000, 0.000, 0.000, 1.875, 3.000, 4.125, 4.875, 5.625 , , 6.000, 6.750, 7.125, 7.500, 7.875, 8.250, 8.625, 9.000 ,4{ROWS:2}, 0.000, 0.000, 3.000, 4.875, 6.000, 7.125, 7.875, 8.625 , , 9.000, 9.750,10.125,10.500,10.875,11.250,11.625,12.000 ,5{ROWS:2}, 0.000, 3.000, 6.000, 7.875, 9.000,10.125,10.875,11.625 , ,12.000,12.750,13.125,13.500,13.875,14.250,14.625,15.000 ,6{ROWS:2}, 0.000, 6.000, 9.000,10.875,12.000,13.125,13.875,14.625 , ,15.000,15.750,16.125,16.500,16.875,17.250,17.625,18.000 ,7{ROWS:2}, 0.000, 9.000,12.000,13.875,15.000,16.125,16.875,17.625 , ,18.000,18.750,19.125,19.500,19.875,20.250,20.625,21.000 ,{c},{BSIZE:2 0 0 0},{BSIZE:2 0 0 0},{BSIZE:2 0 0 0},{BSIZE:2 0 0 0},{BSIZE:2 0 0 0},{BSIZE:2 0 0 0},{BSIZE:2 0 0 0},{BSIZE:2 0 0 0},{BSIZE:2 0 0 0} ,単位(dB){COLS:9|RIGHT} ,{t},{BSIZE:0} ,注 意{BSIZE:1|SIZE:80|CENTER} ,{t},{BSIZE:0} ,{c},{SIZE:60|BSIZE:0},{BSIZE:0} , ,F-Numberは上位4ビットの値 , ,1.5dB/OCTは上記の1/2倍 , ,6dB/OCTは上記の2倍 ,$03{BGNOCOL|NORMAL} ,{c Z},{SIZE:60|BSIZE:0|BGNOCOL|NORMAL} ,{c X},{BSIZE:0|BGNOCOL|NORMAL} ,{t},{BSIZE:0} ,{c},{Z} ,{SIZE:100|X},{X} , D{{sub 3}} ,(DM),変調波を半波整流する。 , D{{sub 4}} ,(DC),運送波を半波整流する。 , D{{sub 0}}〜D{{sub 2}},(FEEDBACK),第1スロットのフィードバックFM変調の変調度を与えます。 '''表7.36 変調度''' ,{t},{BSIZE:2 0|NOHEADER} ,{c UD},{N|SIZE:80|CENTER|BSIZE:0 0 1 0} ,{c},{BSIZE:0 1 1 0|UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD},{UD} , ,0,1,2,3,4,5,6,7 ,変調度,0,π/16,π/8,π/4,π/2,π,2π,4π ::ATTACK/DECAY RATE [$04][$05]  アタックレイトは音の立ち上がり時間の設定をします。また、ディケイレイトは、アタック後の減衰時間を決めます。各RATEの時間設定は表7.37のとおりです。 ,{c UD},{N|SIZE:60|CENTER} ,{c NO},{N|SIZE:60|CENTER|BSIZE:0} ,{t},{BSIZE:0|NOHEADER} ,{c},{NO},{UD|BSIZE:1 0 1 1},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 1 1 0},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 1 1 0} , ,D{{sub 7}},D{{sub 6}},D{{sub 5}},D{{sub 4}},D{{sub 3}},D{{sub 2}},D{{sub 1}},D{{sub 0}} , ,AR{COLS:4|CENTER|BSIZE:0 1 0 1},,,,DR{COLS:4|CENTER|BSIZE:0 1 0 0},,, ,{c},{NO},{UD|BSIZE:0 0 0 1},{NO},{NO},{UD|BSIZE:0 1 0 0},{NO},{NO},{NO},{UD|BSIZE:0 1 0 0},{NO} ,$04,2{{sup 3}},2{{sup 2}},2{{sup 1}},2{{sup 0}},2{{sup 3}},2{{sup 2}},2{{sup 1}},2{{sup 0}},変調波 ,{c},{NO},{UD|BSIZE:0 0 1 1},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 1 1 0},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 1 1 0} ,$05,2{{sup 3}},2{{sup 2}},2{{sup 1}},2{{sup 0}},2{{sup 3}},2{{sup 2}},2{{sup 1}},2{{sup 0}},搬送波 ::SUSTAIN LEVEL/RELEASE RATE [$06][$07]  サスティンレベルは、持続音の場合は、ディケイモードでの減衰がこのレベルに到達するとその後はそのレベルを持続するという変化点を指し、減衰音の場合は、ディケイモードからリリースモードへの変化点を与えます。  リリースレベルは、持続音の場合はKeyをOFFしたときに、音が消えてゆく様子を定義するレイトであり、減衰音のときはサスティンレベルの前の減衰をディケイレイトで表し、サスティンレベル後の減衰をリリースレイトで表します。 ,{c UD},{N|SIZE:60|CENTER} ,{c NO},{N|SIZE:60|CENTER|BSIZE:0} ,{t},{BSIZE:0|NOHEADER} ,{c},{NO},{UD|BSIZE:1 0 1 1},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 1 1 0},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 1 1 0} , ,D{{sub 7}},D{{sub 6}},D{{sub 5}},D{{sub 4}},D{{sub 3}},D{{sub 2}},D{{sub 1}},D{{sub 0}} , ,SL{COLS:4|CENTER|BSIZE:0 1 0 1},,,,RR{COLS:4|CENTER|BSIZE:0 1 0 0},,, ,{c},{NO},{UD|BSIZE:0 0 0 1},{NO},{NO},{UD|BSIZE:0 1 0 0},{NO},{NO},{NO},{UD|BSIZE:0 1 0 0},{NO} ,$06,24dB,12dB,6dB,3dB,2{{sup 3}},2{{sup 2}},2{{sup 1}},2{{sup 0}},変調波 ,{c},{NO},{UD|BSIZE:0 0 1 1},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 1 1 0},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 1 1 0} ,$07,24dB,12dB,6dB,3dB,2{{sup 3}},2{{sup 2}},2{{sup 1}},2{{sup 0}},搬送波 ,{t},{BSIZE:0} ,注 意{BSIZE:1|SIZE:80|CENTER},{BSIZE:0}リリースレイトの減衰時間は、ディケイレイトの表と同じ。  下記のレイトは、キースケール後のレイトです。また、レイトの値を上位4ビット(RM)と下位2ビット(RL)に分割してRM-RLと表しています。RATE = RM × 4 + RL '''表7.37 各レイトでの立ち上がり、立ち下がり時間''' ,{c NO},{BSIZE:0} ,{c BD},{BSIZE:0 0 1 0} ,{t},{BSIZE:2 0 2 0|NOHEADER} ,{c},{NO},{NO},{NO},{NO},{NO},{NO},{NO},{NO},{NO},{NO},{NO} ,EG DECAY TIME{COLS:4},,,,EG ATTACK TIME{COLS:4},,, ,RATE {COLS:2},,[mS],[mS],RATE{COLS:2},,[mS],[mS] ,{c},{BD},{BD},{BD},{BD},{BD},{BD},{BD},{BD},{BD},{BD},{BD} ,RM-RL{COLS:2},,0dB-48dB,10%-90%,RM-RL{COLS:2},,0dB-48dB,10%-90% ,{c},{NO|SIZE:30},{NO|SIZE:50},{NO|SIZE:100},{NO|SIZE:130},{NO|SIZE:30},{NO|SIZE:50},{NO|SIZE:100},{NO|SIZE:130} ,15,3, 1.27, 0.52,15,0, 0.00, 0.00 ,15,2, 1.27, 0.52,15,0, 0.00, 0.00 ,15,1, 1.27, 0.52,15,0, 0.00, 0.00 ,15,0, 1.27, 0.52,15,0, 0.00, 0.00 ,14,3, 1.47, 0.60,14,3, 0.14, 0.10 ,14,2, 1.71, 0.68,14,2, 0.18, 0.12 ,14,1, 2.05, 0.82,14,1, 0.22, 0.14 ,14,0, 2.55, 1.03,14,0, 0.28, 0.18 ,13,3, 2.94, 1.21,13,3, 0.30, 0.22 ,13,2, 3.42, 1.37,13,2, 0.34, 0.22 ,13,1, 4.10, 1.65,13,1, 0.42, 0.26 ,13,0, 5.11, 2.05,13,0, 0.50, 0.32 ,12,3, 5.87, 2.41,12,3, 0.54, 0.36 ,12,2, 6.84, 2.74,12,2, 0.60, 0.38 ,12,1, 8.21, 3.30,12,1, 0.70, 0.44 ,12,0, 10.22, 4.10,12,0, 0.84, 0.54 ,11,3, 11.75, 4.83,11,3, 0.97, 0.64 ,11,2, 13.68, 5.47,11,2, 1.13, 0.72 ,11,1, 16.41, 6.60,11,1, 1.37, 0.84 ,11,0, 20.44, 8.21,11,0, 1.69, 1.09 ,10,3, 23.49, 9.65,10,3, 1.93, 1.29 ,10,2, 27.36, 10.94,10,2, 2.25, 1.45 ,10,1, 32.83, 13.19,10,1, 2.74, 1.69 ,10,0, 40.87, 16.41,10,0, 3.38, 2.17 , 9,3, 46.99, 19.31, 9,3, 3.86, 2.57 , 9,2, 54.71, 21.88, 9,2, 4.51, 2.90 , 9,1, 65.65, 26.39, 9,1, 5.47, 3.38 , 9,0, 81.74, 32.83, 9,0, 6.76, 4.34 , 8,3, 93.97, 38.62, 8,3, 7.72, 5.15 , 8,2, 109.42, 43.77, 8,2, 9.01, 5.79 , 8,1, 131.31, 52.78, 8,1, 10.94, 6.76 , 8,0, 163.49, 65.65, 8,0, 13.52, 8.96 , 7,3, 187.95, 77.24, 7,3, 15.45, 10.30 , 7,2, 218.84, 87.54, 7,2, 18.02, 11.59 , 7,1, 262.61, 105.56, 7,1, 21.88, 13.52 , 7,0, 326.98, 131.31, 7,0, 27.03, 17.38 , 6,3, 375.90, 154.48, 6,3, 30.90, 20.60 , 6,2, 437.69, 175.07, 6,2, 36.04, 23.17 , 6,1, 525.22, 211.12, 6,1, 43.77, 27.03 , 6,0, 653.95, 262.61, 6,0, 54.07, 34.76 , 5,3, 751.79, 308.96, 5,3, 61.79, 41.19 , 5,2, 875.37, 350.15, 5,2, 72.09, 46.34 , 5,1, 1050.45, 422.24, 5,1, 87.54, 54.07 , 5,0, 1307.91, 525.22, 5,0, 108.13, 69.51 , 4,3, 1503.58, 617.91, 4,3, 123.58, 82.39 , 4,2, 1750.75, 700.30, 4,2, 144.18, 92.69 , 4,1, 2100.89, 844.48, 4,1, 175.07, 108.13 , 4,0, 2615.82,1050.45, 4,0, 216.27, 139.03 , 3,3, 3007.16,1235.82, 3,3, 247.16, 164.78 , 3,2, 3501.49,1400.60, 3,2, 288.36, 185.37 , 3,1, 4201.79,1688.95, 3,1, 350.15, 216.27 , 3,0, 5231.64,2100.89, 3,0, 432.54, 278.06 , 2,3, 6014.32,2471.64, 2,3, 494.33, 329.55 , 2,2, 7002.98,2801.19, 2,2, 576.72, 370.75 , 2,1, 8403.58,3377.91, 2,1, 700.30, 432.54 , 2,0,10463.30,4201.79, 2,0, 865.08, 556.12 , 1,3,12028.60,4943.28, 1,3, 988.66, 659.11 , 1,2,14006.00,5602.39, 1,2,1153.43, 741.49 , 1,1,16807.20,6755.82, 1,1,1400.60, 865.08 , 1,0,20926.60,8403.58, 1,0,1730.15,1112.24 ,{t},{BSIZE:0} ,注 意{BSIZE:1|SIZE:80|CENTER},{BSIZE:0}レイトが「0」の場合は、エンベロープは変化しません。 ::RHYTHM  リズムモード選択と各リズム楽器のON/OFFをコントロールします。 ,{c UD},{N|SIZE:60|CENTER} ,{c NO},{N|SIZE:60|CENTER|BSIZE:0} ,{c ZZ},{UD|BISZE:1 0|CENTER} ,{t},{BSIZE:0} ,{c},{NO},{BSIZE:1 1 1 1|UD},{BSIZE:1 0|ZZ},{BSIZE:1 0|ZZ},{BSIZE:1 0|ZZ},{BSIZE:1 0|ZZ},{UD|BSIZE:1 1 1 0} ,$OE,D{{sub 5}},D{{sub 4}},D{{sub 3}},D{{sub 2}},D{{sub 1}},D{{sub 0}} ,{c},{NO},{BSIZE:0 1 0 1|NO},{NO},{NO},{NO},{NO},{BSIZE:0 1 0 0|NO} , ,R,B,S,T,T,H , ,H,D,D,O,O,H , ,Y, , ,M,P, , ,T, , , ,|, , ,H, , , ,C, ,{c},{NO},{BSIZE:0 1 1 1|NO},{BSIZE:0 0 1 0|NO},{BSIZE:0 0 1 0|NO},{BSIZE:0 0 1 0|NO},{BSIZE:0 0 1 0|NO},{BSIZE:0 1 1 0|NO} , ,M, , , ,Y, ,{t},{BSIZE:0} ,{c},{SIZE:100|BSIZE:0},{BSIZE:0} ,D{{sub 0}}〜D{{sub 5}} (RHYTHM),D{{sub 5}} = 「1」のとき、OPLLはリズム音モードになり、7〜9チャンネル(「3.4.2 2.チャンネルとスロット」参照)はリズム音のチャンネルとなります。したがって、楽音(メロディ部)は6音に制限されます。D{{sub 0}}〜D{{sub 1}}は各リズム楽音のON/OFFを制御します。このため$26、$27、$28のKEY ONビットは常に「0」にしておく必要があります。また、13〜18の各スロットはリズム音と表7.38のような対応をしており、F-Numberのデータは各リズム音にマッチした値を入力しなければなりません。 '''表7.38 リズムスロットと周波数データ''' ,{t},{BSIZE:0} ,{c},{SIZE:80|BSIZE:2 0 1 0},{SIZE:80|BSIZE:2 0 1 0},{SIZE:180|BSIZE:0},{SIZE:80|BSIZE:2 0 1 0},{SIZE:80|BSIZE:2 0 1 0} ,楽音 ,スロット,,アドレス,データ ,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0} ,BD ,13、16 ,,$16 ,$20 ,SD ,17 ,,$17 ,$50 ,TOM ,15 ,,$18 ,$C0 ,TOP-CYM,18 ,,$26 ,$05 ,HH ,14 ,,$27 ,$05 ,{c},{BSIZE:0 0 2 0},{BSIZE:0 0 2 0},{BSIZE:0},{BSIZE:0 0 2 0},{BSIZE:0 0 2 0} , , ,,$28 ,$01 ::TEST [$0F]  このアドレスはLSIの内部動作をテストするときに使用しており、「0」以外では正常動作しません。 ::BLOCK/F-Number/SUS/KEY [$10]〜[$28]  音程、音階を決めるデータです。F-Numberは$10〜$18のレジスタと$20〜$28のレジスタにまたがっています。 ,{c NO},{SIZE:80|BSIZE:0} ,{t},{BSIZE:0|NOHEADER} ,{c},{NO},{UD|BSIZE:1 0 1 1},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 1 1 0} ,$10〜$18 ,D{{sub 7}},D{{sub 6}},D{{sub 5}},D{{sub 4}},D{{sub 3}},D{{sub 2}},D{{sub 1}},D{{sub 0}} , ,F-Number{COLS:8|CENTER|BSIZE:0 1 0 1},,,,,, ,{c},{NO},{UD|BSIZE:0 0 1 1},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 1 1 0} , ,2{{sup 7}},2{{sup 6}},2{{sup 5}},2{{sup 4}},2{{sup 3}},2{{sup 2}},2{{sup 1}},2{{sup 0}} {{br}} ,{c NO},{SIZE:80|BSIZE:0} ,{t},{BSIZE:0|NOHEADER} ,{c},{NO},{UD|BSIZE:1 0 1 1},{UD|BSIZE:1 1 1 0},{UD|BSIZE:1 1 1 0},{UD|BSIZE:1 1 1 0},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 0 1 0},{UD|BSIZE:1 1 1 1} ,$20〜$28 ,D{{sub 7}},D{{sub 6}},D{{sub 5}},D{{sub 4}},D{{sub 3}},D{{sub 2}},D{{sub 1}},D{{sub 0}} ,{c},{NO},{UD|BSIZE:0 0 0 1},{UD|BSIZE:1 1 0 0},{UD|BSIZE:1 1 0 0},{UD|BSIZE:1 1 0 0},{UD|BSIZE:1 0 0 0},{UD|BSIZE:1 0 0 0},{UD|BSIZE:1 0 0 0},{UD|BSIZE:1 1 0 1} , , , ,S{{br}}U{{br}}S{{br}}|{{br}}ON{{br}}/{{br}}OFF,K{{br}}E{{br}}Y{{br}}|{{br}}ON{{br}}/{{br}}OFF,BLOCK{COLS:3},,,F{{br}}|{{br}}N{{br}}U{{br}}M{{br}}B{{br}}E{{br}}R ,{c},{NO},{UD|BSIZE:0 0 1 1},{UD|BSIZE:0 1 1 0},{UD|BSIZE:0 1 1 0},{UD|BSIZE:0 1 1 0},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 0 1 0},{UD|BSIZE:0 1 1 1} , , , , , ,2{{sup 2}},2{{sup 1}},2{{sup 0}},2{{sup 8}} ,{t},{BSIZE:0} ,$10,〜{BSIZE:0},$18 ,{t},{BSIZE:0} ,{c},{SIZE:160|BSIZE:0},{BSIZE:0} ,D{{sub 0}}〜D{{sub 7}} ($10〜$18)、D{{sub 0}}($20〜$28) (F-Number){COLS:2}, , ,$10〜$18の8ビットと$20〜$28の下位1ビットの計9ビットでF-Numberを表します。このF-Numberは音階を与えるデータで、後述する方法でその値を決めます。 ,D{{sub 1}}〜D{{sub 3}} (BLOCK),オクターブ情報を与えます。 ,{t},{BSIZE:0} ,$20,〜{BSIZE:0},$28 ,{t},{BSIZE:0} ,{c},{SIZE:160|BSIZE:0},{BSIZE:0} ,D{{sub 4}} (KEY ON),鍵盤のON/OFFに相当するビットです。このビットを「1」にすると、そのチャンネルがONにとなり、発音します。「0」でKEY OFFです。 ,D{{sub 5}} (SUS ON/OFF),このビットを「1」にするとKEY OFF時のRRが5になります。 ■F-Number/BLOCK  OPLLでは、必要な周波数はその周波数に応じた位相の増分を与えることにより、得ることができます。そして、この増分はF-NumberとBLOCKおよびMULTIPLE情報によって決められます。  そこで、まず希望周波数の増分を求めます。これは次式で与えられます。 ,{t},{BSIZE:0} ,{c},{BSIZE:0|SIZE:120},{BSIZE:0|SIZE:80},{BSIZE:0} , ,{{chart \mathrm \Delta P = fmus \times 2^{18} / fsam }}{COLS:2}, , , ,{{chart \mathrm fsam = fM /72}} , ,fmus ,希望周波数 , ,fsum ,サンプリング周波数(50KHz) , ,fM ,入力クロック周波数(3.6MHz) , ,'''式7.5 希望周波数の増分'''{COLS:2},  これで位相の増分は求められますが、この値を管理するのはビット数が多くて大変なため、増分は1オクターブ分のデータのみとし、各オクターブに対してはその増分をシフト(2倍、4倍…)することによって求めます。これにより増分は次のように表現できます。 ,{t},{BSIZE:0} ,{c},{BSIZE:0|SIZE:120},{BSIZE:0|SIZE:80},{BSIZE:0} , ,{{chart \mathrm \Delta P = 2B \times F' \times MUL }}{COLS:2}, , ,B ,オクターブ情報 , ,F' ,1オクターブ内に制限した増分 , ,MUL ,MULTIPLEデータ , ,'''式7.6 シフトによる位相の増分'''{COLS:2},  7.5式、7.6式と増分(F')を9ビットで表すということから、F-NumberとBLOCKは次のように表現されます。 ,{t},{BSIZE:0} ,{c},{BSIZE:0|SIZE:120},{BSIZE:0|SIZE:80},{BSIZE:0|SIZE:200},{BSIZE:0} , ,{{chart \mathrm F =( fmus \times 218 / fsam) /2b-1}}{COLS:2},,{{chart \mathrm (@MUL=1)}} , ,F ,F-Numberデータ, , ,b ,BLOCKデータ, , ,'''式7.7 F-NumberとBLOCK'''{COLS:2}, '''表7.39 F-Number(その1)''' ,{t},{BSIZE:2 0} ,{c},{BSIZE:0 1 1 0|SIZE:80},{BSIZE:0 1 1 0|SIZE:80},{BSIZE:0 1 1 0|SIZE:100},{BSIZE:0 1 1 0|SIZE:100},{BSIZE:0 0 1 0|SIZE:50},{BSIZE:0 0 1 0|SIZE:50},{BSIZE:0 0 1 0|SIZE:50},{BSIZE:0 0 1 0|SIZE:50},{BSIZE:0 0 1 0|SIZE:50},{BSIZE:0 0 1 0|SIZE:50},{BSIZE:0 0 1 0|SIZE:50},{BSIZE:0 0 1 0|SIZE:50} ,音階{ROWS:2|CENTER},周波数{{br}}(4oct){ROWS:2|CENTER},F-Number{ROWS:2|CENTER},$20〜$28{CENTER},$10〜$18{COLS:8|CENTER},,,,,,, , , , ,D{{sub 0}},D{{sub 7}},D{{sub 6}},D{{sub 5}},D{{sub 4}},D{{sub 3}},D{{sub 2}},D{{sub 1}},D{{sub 0}} ,{c},{BSIZE:0 1 0 0},{BSIZE:0 1 0 0},{BSIZE:0 1 0 0},{BSIZE:0 1 0 0},{BSIZE:0 0 0 0},{BSIZE:0 0 0 0},{BSIZE:0 0 0 0},{BSIZE:0 0 0 0},{BSIZE:0 0 0 0},{BSIZE:0 0 0 0},{BSIZE:0 0 0 0},{BSIZE:0 0 0 0} ,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)''' ,{t},{BSIZE:2 0} ,{c},{BSIZE:0 1 1 0|SIZE:80},{BSIZE:0 1 1 0|SIZE:80},{BSIZE:0 1 1 0|SIZE:100},{BSIZE:0 1 1 0|SIZE:100},{BSIZE:0 0 1 0|SIZE:50},{BSIZE:0 0 1 0|SIZE:50},{BSIZE:0 0 1 0|SIZE:50},{BSIZE:0 0 1 0|SIZE:50},{BSIZE:0 0 1 0|SIZE:50},{BSIZE:0 0 1 0|SIZE:50},{BSIZE:0 0 1 0|SIZE:50},{BSIZE:0 0 1 0|SIZE:50} ,音階{ROWS:2|CENTER},周波数{{br}}(4oct){ROWS:2|CENTER},F-Number{ROWS:2|CENTER},$20〜$28{CENTER},$10〜$18{COLS:8|CENTER},,,,,,, , ,(4oct), ,D{{sub 0}} ,D{{sub 7}},D{{sub 6}},D{{sub 5}},D{{sub 4}},D{{sub 3}},D{{sub 2}},D{{sub 1}},D{{sub 0}} ,{c},{BSIZE:0 1 0 0},{BSIZE:0 1 0 0},{BSIZE:0 1 0 0},{BSIZE:0 1 0 0},{BSIZE:0 0 0 0},{BSIZE:0 0 0 0},{BSIZE:0 0 0 0},{BSIZE:0 0 0 0},{BSIZE:0 0 0 0},{BSIZE:0 0 0 0},{BSIZE:0 0 0 0},{BSIZE:0 0 0 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 ,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音色、オリジナル音色)、音量を決めるデータを設定します。 ,{c NO},{SIZE:80|BSIZE:0} ,{t},{BSIZE:0} ,{c},{NO},{SIZE:50|CENTER|BSIZE:1 0 1 1},{SIZE:50|CENTER|BSIZE:1 0 1 0},{SIZE:50|CENTER|BSIZE:1 0 1 0},{SIZE:50|CENTER|BSIZE:1 1 1 0},{SIZE:50|CENTER|BSIZE:1 0 1 1},{SIZE:50|CENTER|BSIZE:1 0 1 0},{SIZE:50|CENTER|BSIZE:1 0 1 0},{SIZE:50|CENTER|BSIZE:1 1 1 0} ,$30〜$38,D{{sub 7}},D{{sub 6}},D{{sub 5}},D{{sub 4}},D{{sub 3}},D{{sub 2}},D{{sub 1}},D{{sub 0}} ,,INST{COLS:4},,,,VOL{COLS:4|BSIZE:1 1 1 1},,, ,{t},{BSIZE:0} ,{c},{SIZE:120|BSIZE:0},{BSIZE:0} ,D{{sub 4}}〜D{{sub 7}} (INST),この4ビットで以下の音色が決定されます。 '''表7.41 INSTの値と音色''' ,{t},{BSIZE:2 0} ,{c},{BSIZE:0 1 1 0|SIZE:60},{BSIZE:0 2 1 0|SIZE:150},{BSIZE:0 1 1 0|SIZE:60},{BSIZE:0 0 1 0|SIZE:150} ,INST,音色,INST,音色 ,{c},{BSIZE:0 1 0 0},{BSIZE:0 2 0 0},{BSIZE:0 1 0 0},{BSIZE:0 0 0 0} ,0,オリジナル音色,8,オルガン ,1,バイオリン ,9,ホルン ,2,ギター ,A,シンセ ,3,ピアノ ,B,ハープシコード ,4,フルート ,C,ビブラフォン ,5,クラリネット ,D,シンセベース ,6,オーボエ ,E,ウッドベース ,7,トランペット ,F,エレキベース ,{t},{BSIZE:0} ,{c},{SIZE:120|BSIZE:0},{BSIZE:0} ,D{{sub 0}}〜D{{sub 3}} (VOL),各音色の音量を決めます。最少分解能は3dBで、最大45dBまで音量を絞り込めます。 ,{t},{BSIZE:0} ,{c},{BSIZE:0|SIZE:120},{BSIZE:1 0 1 1|SIZE:50|CENTER},{BSIZE:1 0 1 0|SIZE:50|CENTER},{BSIZE:1 0 1 0|SIZE:50|CENTER},{BSIZE:1 1 1 0|SIZE:50|CENTER} ,,D{{sub 3}},D{{sub 2}},D{{sub 1}},D{{sub 0}} ,{c},,{BSIZE:1 0 1 1|CENTER},{BSIZE:1 0 1 0|CENTER},{BSIZE:1 0 1 0|CENTER},{BSIZE:1 1 1 0|CENTER} ,,24dB ,12dB ,6dB ,3dB  リズムモード(addr = $0E、Ds = 「H」)時は、$36〜$38は、次のように各リズムのボリュームを設定できます。 ,{t},{BSIZE:0} ,{c},{BSIZE:0|SIZE:120},{BSIZE:1 0 1 1|SIZE:50|CENTER},{BSIZE:1 0 1 0|SIZE:50|CENTER},{BSIZE:1 0 1 0|SIZE:50|CENTER},{BSIZE:1 1 1 0|SIZE:50|CENTER},{BSIZE:1 0 1 1|SIZE:50|CENTER},{BSIZE:1 0 1 0|SIZE:50|CENTER},{BSIZE:1 0 1 0|SIZE:50|CENTER},{BSIZE:1 1 1 0|SIZE:50|CENTER} ,,D{{sub 7}},D{{sub 6}},D{{sub 5}},D{{sub 4}},D{{sub 3}},D{{sub 2}},D{{sub 1}},D{{sub 0}} ,{c},{BSIZE:0|RIGHT},{BSIZE:0 1 0 1|CENTER},,,,{BSIZE:0 1 0 1|CENTER},,, ,$36,―{COLS:4},,,,BD{COLS:4},,, ,$37,HH{COLS:4},,,,SD{COLS:4},,, ,{c},{BSIZE:0|RIGHT},{BSIZE:0 1 1 1|CENTER},,,,{BSIZE:0 1 1 1|CENTER},,, ,$38,TOM{COLS:4},,,,T-CYM{COLS:4},,, '''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に加えることによりエンベロープの波形を変化させます。 {{svg 図7.27.svg,,size:420x230}} '''図7.27 OPLLのエンベロープ波形''' !3.44 OPLLでの楽音の作り方  この章ではOPLLのオリジナル音色レジスタに、どのようなDATAを入力すると、ピアノやブラスなどの楽音を作ることができるかを説明します。 '''1.音作りの考え方'''  FM方式での音作りの基本は、まず作りたい楽音の特徴をよく理解することです。例えば、ピアノであれば、鍵盤を押したときに、鋭い音の立ち上がりがあり、その後、押鍵を続けていれば、徐々に音が消えていくエンベロープを持っています。また、倍音の構成も立ち上がり時に多く、時が経るに連れて倍音の数は少なくなり、一定の倍音構成に近づいて行きます。  以上のような特徴をつかんだ後、FMの式でいかにして実現するかを考えます。エンベロープの特徴から出力振幅を、そして倍音構成から変調指数を決めることができます。また、倍音の構成はオペレータの周波数も関与していますから、周波数比もある程度決めることができます。このように、各楽音の特徴からFMの各パラメータをおおまかに決め、その次に音を聞きながら細部を詰めてゆくようにすれば、望み通りの音色を得ることができます。 '''2.音作りの基本'''  FM音源とは、モジュレータによってキャリアを変調することから生じる効果を利用したものです。したがって、FMの基本式パラメータ(キャリアの出力レベル、モジュレータの出力レベル、モジュレータのフィードバックレベル、キャリアの周波数、モジュレータの周波数)を上手に扱うことにより、各楽音のピッチ、音色、音量のすべてを決めることができます。このFMの各パラメータとOPLLのパラメータとの関係は、表7.42のとおりです。 '''3.音作りの例''' '''表7.42 OPLLの音作りの基本''' ,{t},{BSIZE:2 0} ,{c},{BSIZE:0 0 1 0|SIZE:250},{BSIZE:0 0 1 0|SIZE:250},{BSIZE:0 0 1 0|SIZE:250} ,項目,関与するパラメータ,MIN←(音の変化)→MAX ,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0} ,キャリアの出力レベル ,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にセットされています。 ,{t},{BSIZE:1 0|SIZE:100%} ,{BSIZE:0}← [[3.3 FM BIOS]] ,{BSIZE:0|RIGHT} [[4.1 ハードウェア|4.1 MSX-AUDIO ハードウェア]] →