type=f_number のとき(F-Number)#MB:PITCH_SCALE ps=10 {
type = f_number,
master_clock = 3993600.0,
prescale = 72.0,
start_key = 0,
| //f_number key00...key11
0x026A,
0x028F,
0x02B6,
0x02DF,
0x030B,
0x0339,
0x036A,
0x039E,
0x03D5,
0x0410,
0x044E,
0x048F
}
フォーマットは次の通りです。
#MB:PITCH_SCALE ps=定義番号 {
type=f_number,
master_clock=[],
prescale=[],
start_key=[],
|
KEY00, KEY01, KEY02, KEY03, KEY04, KEY05,
KEY06, KEY07, KEY08, KEY09, KEY10, KEY11,
}
(KEY00〜KEY11群の直前で、| 記号で区切ること)
master_clock:F-Number 計算のもとになるマスタークロックを指定します。小数以下の指定も受け付けます。例えば、3993600.0 などになります。
prescale:F-Number 計算のもとになるプリスケール値を指定します。小数以下の指定も受け付けます。
これはサンプリング周波数を得るためのプリスケール値になるため、OPNのプリスケーラーそのものではなく、12倍済みの、例えば 72.0 などになります。
start_key:KEY00〜KEY11にて指定する F-Number値 は、Block(オクターブ)が0である前提です。その上で KEY00 に割り当てる音程番号を、-24 〜 24 で指定します。
0 の時、KEY00 は オクターブ0の c と見なされます。
1増えるごとに半音上がり、1下がるごとに半音下がります。通常 0 を利用します。
KEY00〜KEY11:KEY00: start_key + 0半音 のF-Number
KEY01: start_key + 1半音 のF-Number
KEY02: start_key + 2半音 のF-Number
KEY03: start_key + 3半音 のF-Number
KEY04: start_key + 4半音 のF-Number
KEY05: start_key + 5半音 のF-Number
KEY06: start_key + 6半音 のF-Number
KEY07: start_key + 7半音 のF-Number
KEY08: start_key + 8半音 のF-Number
KEY09: start_key + 9半音 のF-Number
KEY10: start_key + 10半音 のF-Number
KEY11: start_key + 11半音 のF-Number
KEY00〜KEY11の各F-Numberは整数11ビットで指定します。ただし、0は使用できません。KEY00 から順に、数値は大きくなるように設定する必要があります。0x」をつけて16進数で記述することもできます。fMUS = (F-Number*(2^(b-1))*fSAM)/(2^20)