V3MMLmanual

2.14.4 type=f_number_t のとき(F-Number)

← 目次

【記述例】

#MB:PITCH_SCALE ps=10 {
   type = f_number_t,
   master_clock = 4000000.0,
   prescale = 72.0,
   start_key = 0,
|  //f_number key00...key11,key12(limit)
   0x0269,
   0x028E,
   0x02B4,
   0x02DE,
   0x0309,
   0x0337,
   0x0368,
   0x039C,
   0x03D3,
   0x040E,
   0x044B,
   0x048D,
   0x04D1
}

【解説】

フォーマットは次の通りです。

#MB:PITCH_SCALE ps=定義番号 {
   type=f_number_t,
   master_clock=[],
   prescale=[],
   start_key=[],
|
   KEY00, KEY01, KEY02, KEY03, KEY04, KEY05,
   KEY06, KEY07, KEY08, KEY09, KEY10, KEY11, KEY12,
}

KEY00〜KEY12群の直前で、| 記号で区切ること)

【備考】「type=f_number」との違い

type=f_number_t では、変化の大きいピッチLFOを掛けた場合に、内部のF-Number値へのピッチ加算結果が、KEY00〜KEY12の値の範囲で円環状になることです(繰り上がり・繰り下がりでオクターブ変化)。
このことにより、オクターブを超える変化でも破綻せずに使用できます。
ただし、最低音程 o0c を下回るピッチ加算は最低音程に制限され、最高音程(およそo8c)を上回るピッチ加算は最高音程に制限されます。


master_clock

F-Number 計算のもとになるマスタークロックを指定します。小数以下の指定も受け付けます。例えば、4000000.0 などになります。


prescale

F-Number 計算のもとになるプリスケール値を指定します。小数以下の指定も受け付けます。
これはサンプリング周波数を得るためのプリスケール値になるため、OPNのプリスケーラーそのものではなく、12倍済みの、例えば 72.0 などになります。


start_key

KEY00〜KEY12にて指定する F-Number値 は、Block(オクターブ)が0である前提です。その上で KEY00 に割り当てる音程番号を、-24 〜 24 で指定します。
0 の時、KEY00 は オクターブ0の c と見なされます。
1増えるごとに半音上がり、1下がるごとに半音下がります。通常 0 を利用します。


KEY00〜KEY12

KEY00start_key + 0半音 のF-Number
KEY01start_key + 1半音 のF-Number
KEY02start_key + 2半音 のF-Number
KEY03start_key + 3半音 のF-Number
KEY04start_key + 4半音 のF-Number
KEY05start_key + 5半音 のF-Number
KEY06start_key + 6半音 のF-Number
KEY07start_key + 7半音 のF-Number
KEY08start_key + 8半音 のF-Number
KEY09start_key + 9半音 のF-Number
KEY10start_key + 10半音 のF-Number
KEY11start_key + 11半音 のF-Number
KEY12start_key + 12半音 のF-Number


【備考】周波数計算は次の要領で行われます。

fMUS = (F-Number*(2^(b-1))*fSAM)/(2^20)