MMLリファレンス/N106音源波形定義詳細

Last-modified: 2010-02-10 (水) 03:24:03

サンプル数、波形データ数、バッファ番号の関係

1つのサンプルの値は$0(0)~$F(15)で、波形データを登録するバッファは全チャンネル共通の全体で128サンプル分だけ有り、この中に収まる様に波形データを登録します。
1つの波形データのサンプル数は可変で、但し4の倍数個のサンプル数でなくてはなりません。
波形データ毎にサンプル数は変わっても構いません、その場合、バッファ番号の計算が複雑になります。

{の中、最初の数字がバッファ番号です、注目して下さい。

全部の波形データが同じサンプル数の場合

全部の波形データが同じサンプル数の場合、バッファ番号は先頭0からの連続した番号となる。

サンプル数32個の場合、波形データ数は最大4

@N00={ 0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N01={ 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N02={ 2 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N03={ 3 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}

サンプル数28個の場合、波形データ数は最大4

@N04={ 0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N05={ 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N06={ 2 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N07={ 3 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
余り…… 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

サンプル数24個の場合、波形データ数は最大5

@N08={ 0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N09={ 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N10={ 2 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N11={ 3 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N12={ 4 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
余り…… 0,0,0,0,0,0,0,0

サンプル数20個の場合、波形データ数は最大6

@N13={ 0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N14={ 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N15={ 2 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N16={ 3 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N17={ 4 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N18={ 5 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
余り…… 0,0,0,0,0,0,0,0

サンプル数16個の場合、波形データ数は最大8

@N19={ 0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N20={ 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N21={ 2 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N22={ 3 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N23={ 4 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N24={ 5 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N25={ 6 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N26={ 7 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}

サンプル数12個の場合、波形データ数は最大10

@N27={ 0 0,0,0,0,0,0,0,0,0,0,0,0}
@N28={ 1 0,0,0,0,0,0,0,0,0,0,0,0}
@N29={ 2 0,0,0,0,0,0,0,0,0,0,0,0}
@N30={ 3 0,0,0,0,0,0,0,0,0,0,0,0}
@N31={ 4 0,0,0,0,0,0,0,0,0,0,0,0}
@N32={ 5 0,0,0,0,0,0,0,0,0,0,0,0}
@N33={ 6 0,0,0,0,0,0,0,0,0,0,0,0}
@N34={ 7 0,0,0,0,0,0,0,0,0,0,0,0}
@N35={ 8 0,0,0,0,0,0,0,0,0,0,0,0}
@N36={ 9 0,0,0,0,0,0,0,0,0,0,0,0}
余り…… 0,0,0,0,0,0,0,0

サンプル数8個の場合、波形データ数は最大16

@N37={ 0 0,0,0,0,0,0,0,0}
@N38={ 1 0,0,0,0,0,0,0,0}
@N39={ 2 0,0,0,0,0,0,0,0}
@N40={ 3 0,0,0,0,0,0,0,0}
@N41={ 4 0,0,0,0,0,0,0,0}
@N42={ 5 0,0,0,0,0,0,0,0}
@N43={ 6 0,0,0,0,0,0,0,0}
@N44={ 7 0,0,0,0,0,0,0,0}
@N45={ 8 0,0,0,0,0,0,0,0}
@N46={ 9 0,0,0,0,0,0,0,0}
@N47={10 0,0,0,0,0,0,0,0}
@N48={11 0,0,0,0,0,0,0,0}
@N49={12 0,0,0,0,0,0,0,0}
@N50={13 0,0,0,0,0,0,0,0}
@N51={14 0,0,0,0,0,0,0,0}
@N52={15 0,0,0,0,0,0,0,0}

サンプル数4個の場合、波形データ数は最大32

@N53={ 0 0,0,0,0}
@N54={ 1 0,0,0,0}
@N55={ 2 0,0,0,0}
@N56={ 3 0,0,0,0}
@N57={ 4 0,0,0,0}
@N58={ 5 0,0,0,0}
@N59={ 6 0,0,0,0}
@N60={ 7 0,0,0,0}
@N61={ 8 0,0,0,0}
@N62={ 9 0,0,0,0}
@N63={10 0,0,0,0}
@N64={11 0,0,0,0}
@N65={12 0,0,0,0}
@N66={13 0,0,0,0}
@N67={14 0,0,0,0}
@N68={15 0,0,0,0}
@N69={16 0,0,0,0}
@N70={17 0,0,0,0}
@N71={18 0,0,0,0}
@N72={19 0,0,0,0}
@N73={20 0,0,0,0}
@N74={21 0,0,0,0}
@N75={22 0,0,0,0}
@N76={23 0,0,0,0}
@N77={24 0,0,0,0}
@N78={25 0,0,0,0}
@N79={26 0,0,0,0}
@N80={27 0,0,0,0}
@N81={28 0,0,0,0}
@N82={29 0,0,0,0}
@N83={30 0,0,0,0}
@N84={31 0,0,0,0}

サンプル数の違う波形データが混在する場合

サンプル数の違う波形データが混在する場合は、波形データのサンプル数と位置によってバッファ番号は変わってくる。

バッファ番号 = バッファ先頭からのサンプル位置 ÷ この波形データのサンプル数

※バッファ番号を間違えると、他の波形データを上書きしてしまったりバッファオーバーし、正しい音色で鳴りません、注意して下さい。

サンプル数32個の波形データ1、16個の波形データ2、32個の波形データ1、16個の波形データ2

@N115={ 0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N116={ 2 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N117={ 3 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N118={ 2 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N119={ 6 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N120={ 7 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}

解説

  • @N115の場合バッファ先頭からのサンプル位置が 0 この波形データのサンプル数 32 なので
    バッファ番号は 0 / 32 = 0 となる。
  • @N116の場合バッファ先頭からのサンプル位置が 32 この波形データのサンプル数 16 なので
    バッファ番号は 32 / 16 = 2 となる。
  • @N117の場合バッファ先頭からのサンプル位置が 48 この波形データのサンプル数 16 なので
    バッファ番号は 48 / 16 = 3 となる。
  • @N118の場合バッファ先頭からのサンプル位置が 64 この波形データのサンプル数 32 なので
    バッファ番号は 64 / 32 = 2 となる。
  • @N119の場合バッファ先頭からのサンプル位置が 96 この波形データのサンプル数 16 なので
    バッファ番号は 96 / 16 = 6 となる。
  • @N120の場合バッファ先頭からのサンプル位置が112 この波形データのサンプル数 16 なので
    バッファ番号は112 / 16 = 7 となる。

サンプル数32個の波形データ1、16個の波形データ2、32個の波形データ1、16個の波形データ2

@N121={ 0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N122={ 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N123={ 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N124={ 4 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N125={ 5 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N126={ 3 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}

サンプル数32個の波形データ1、16個の波形データ2、8個の波形データ4、4個の波形データ8

@N85={ 0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N86={ 2 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N87={ 3 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N88={ 8 0,0,0,0,0,0,0,0}
@N89={ 9 0,0,0,0,0,0,0,0}
@N90={10 0,0,0,0,0,0,0,0}
@N91={11 0,0,0,0,0,0,0,0}
@N92={24 0,0,0,0}
@N93={25 0,0,0,0}
@N94={26 0,0,0,0}
@N95={27 0,0,0,0}
@N96={28 0,0,0,0}
@N97={29 0,0,0,0}
@N98={30 0,0,0,0}
@N99={31 0,0,0,0}

サンプル数4個の波形データ8、8個の波形データ4、16個の波形データ2、32個の波形データ1

@N100={ 0 0,0,0,0}
@N101={ 1 0,0,0,0}
@N102={ 2 0,0,0,0}
@N103={ 3 0,0,0,0}
@N104={ 4 0,0,0,0}
@N105={ 5 0,0,0,0}
@N106={ 6 0,0,0,0}
@N107={ 7 0,0,0,0}
@N108={ 4 0,0,0,0,0,0,0,0}
@N109={ 5 0,0,0,0,0,0,0,0}
@N110={ 6 0,0,0,0,0,0,0,0}
@N111={ 7 0,0,0,0,0,0,0,0}
@N112={ 4 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N113={ 5 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
@N114={ 3 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}

波形データ使用方法、及び注意

@N<Num>で定義した波形データは@@<Num>コマンドによりバッファに書き込まれ、発音時の音色となります。
そのため、波形データ定義にて、同じバッファ番号の波形データを複数定義し、曲の進行と共に@@<Num>コマンドで音色を切り替える事により、同じバッファ位置の波形データを上書きすることができます。

これによりバッファは全体で128サンプルですが、波形データ定義はバッファサイズに依存せず、たくさん登録できます。(@N0~127まで)

このとき注意しなければならないのは、複数のチャンネルで同じ波形データ(@@<Num>コマンド)を使用した場合、そのうちの1つのチャンネルが、波形データを上書きしてしまうと、他のチャンネルもその影響を受け、上書きした波形データの音色となってしまうのです。

この様に複数のチャンネルで共通のバッファを使用するN106では、同じ音色の波形データだからといって複数のチャンネルで共用すると、互いに干渉してしまう事に注意が必要です。

曲の途中で音色を切り替える曲では、同じ音色であっても、チャンネル毎にバッファ番号をずらした波形データを作成する方が無難です。

バッファ番号は計画的に!

 

周波数とレジスタの関係も読んでおいた方がいいかも知れません。