type=divrate_fullkey のとき(PSG分周比)#MB:PITCH_SCALE ps=13 {
type = divrate_fullkey,
master_clock = 1789772.5,
prescale = 16.0,
divrate_mask = 0x0FFF,
divrate_offset = 0,
| //divrate key000...key119
0x0FFE,0x0FFE,0x0FFE,0x0FFE,0x0FFE,0x0FFE,0x0FFE,0x0FFE,0x0FFE,0x0FD8,0x0EF7,0x0E20,
0x0D5D,0x0C9C,0x0BE7,0x0B3C,0x0A9B,0x0A02,0x0973,0x08EB,0x086B,0x07F2,0x0780,0x0714,
0x06AE,0x064E,0x05F4,0x059E,0x054D,0x0501,0x04B9,0x0475,0x0435,0x03F9,0x03C0,0x038A,
0x0357,0x0327,0x02FA,0x02CF,0x02A7,0x0281,0x025D,0x023B,0x021B,0x01FC,0x01E0,0x01C5,
0x01AC,0x0194,0x017D,0x0168,0x0153,0x0140,0x012E,0x011D,0x010D,0x00FE,0x00F0,0x00E2,
0x00D6,0x00CA,0x00BE,0x00B4,0x00AA,0x00A0,0x0097,0x008F,0x0087,0x007F,0x0078,0x0071,
0x006B,0x0065,0x005F,0x005A,0x0055,0x0050,0x004C,0x0047,0x0043,0x0040,0x003C,0x0039,
0x0035,0x0032,0x0030,0x002D,0x002A,0x0028,0x0026,0x0024,0x0022,0x0020,0x001E,0x001C,
0x001B,0x0019,0x0018,0x0016,0x0015,0x0014,0x0013,0x0012,0x0011,0x0010,0x000F,0x000E,
0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002
}
フォーマットは次の通りです。
#MB:PITCH_SCALE ps=定義番号 {
type=divrate_fullkey,
master_clock=[],
prescale=[],
divrate_mask=[],
divrate_offset=[],
|
K000,K001,K002,K003,K004,K005,K006,K007,K008,K009,K010,K011,
K012,K013,K014,K015,K016,K017,K018,K019,K020,K021,K022,K023,
K024,K025,K026,K027,K028,K029,K030,K031,K032,K033,K034,K035,
K036,K037,K038,K039,K040,K041,K042,K043,K044,K045,K046,K047,
K048,K049,K050,K051,K052,K053,K054,K055,K056,K057,K058,K059,
K060,K061,K062,K063,K064,K065,K066,K067,K068,K069,K070,K071,
K072,K073,K074,K075,K076,K077,K078,K079,K080,K081,K082,K083,
K084,K085,K086,K087,K088,K089,K090,K091,K092,K093,K094,K095,
K096,K097,K098,K099,K100,K101,K102,K103,K104,K105,K106,K107,
K108,K109,K110,K111,K112,K113,K114,K115,K116,K117,K118,K119,
}
(K000〜K0119群の直前で、| 記号で区切ること)
master_clock:PSG分周比計算のもとになるマスタークロックを指定します。小数以下の指定も受け付けます。例えば、3993600.0 などになります。
prescale:PSG分周比計算のもとになるプリスケール値を指定します。小数以下の指定も受け付けます。
これはマスタークロックへのプリスケール値になるため、PSGのプリスケーラーそのものではなく、8倍済みの、例えば 32.0 などになります。
divrate_mask:PSG分周比による周波数計算を行う場合に有効なビット幅を決定する、AND演算に使用するマスク値を整数で指定します。10進数でも指定できますが、接頭辞「0x」をつけて16進数で記述することもできます。
PSGでは通常、分周比は12ビットですので、0x0FFF のように指定します。
DCSGでは通常10ビットですので、0x03FF のように指定します。
divrate_offset:PSG分周比に対する加算値(オフセット)を整数で指定します。通常は0を指定します。MSX-SCC など、オフセットが必要な場合などに利用します。
K000〜K120:K000:オクターブ0の c に割り当てるPSG分周比
K001:オクターブ0の c+ に割り当てるPSG分周比
K002:オクターブ0の d に割り当てるPSG分周比
:
K057:オクターブ4の a に割り当てるPSG分周比
:
K119:オクターブ9の b に割り当てるPSG分周比
0x」をつけて16進数で記述することもできます。fTONE = fm/(fp*(Tp+ofs))