主にMSX関係のコンテンツが置いてあります。

定義 - マッピング

@wm

使用場所
定義
書式
@wm定義名=[オクターブ音階 q1PCM定義名,q2PCM定義名 … ]
@wm"map"=[
o4b "pcm1"
o4g 100,"pcm2"
o4e "pcm3",200]
解説

PCMをマッピングします。PCMはq1、q2を割り当てられq2は省略可能です。

マッピングした音階から下の音階をPCMは発声します。一応2オクターブ下まで発声でき、それ以下だと再生音が壊れます。

マッピングしていない音階(例だとo4bより上の音階)を発声しようとするとマッピングエラーになります。

@adm

使用場所
定義
書式
@adm定義名=[オクターブ音階(範囲) オクターブ音階(割り当て) ADPCM波形定義名 オクターブ音階(サンプリング) … ]
@adm"map"=[
o4b o3b "adpcm1" o6b
o8b o7c "adpcm2" o7c]
解説

ADPCMをマッピングします。@wmとは少し書式が違うので注意が必要です。

パラメータの意味は、

  • オクターブ音階(範囲)…この音階以下にマッピングが適用される。
  • オクターブ音階(割り当て)…ADPCMをこの音階に貼り付ける。
  • オクターブ音階(サンプリング)…ADPCMはこの音階の周波数でサンプリングされているものとする。

となります。

例の場合、"adpcm1"はo4b以下に適用され、サンプリング周波数はo6b=12429Hz(音階表参照)。それが、o3bに割り当てられます。

MMLで演奏時、o3bでサンプリング周波数そのままの音で再生され、o4bではo7b=24858Hzで再生します。ハードウエアの機能ですので、難無くサンプリング周波数を上げて再生できます。

このオクターブ音階(サンプリング)がo8bだった場合、o4bではo9b相当となり、発音できる範囲から外れますので、音階の範囲外エラーとなります。また、マッピング未設定の音階を鳴らそうとした場合マッピングエラーとなります。

o5cを鳴らすと、"adpcm2"が適用され、サンプリング周波数o5c=3291.6Hzで再生されます。少し分かり難いですが、再生するサンプリング周波数がある程度自由になる為、このような形になりました。

@sm

使用場所
定義
書式
@sm定義名=[オクターブ音階 発音オクターブ音階 SCC音色指定(@s|@se) ピッチエンベロープ(@p|@us) ボリュームエンベロープ(@v) … ]
@sm"map"=[
o4b o5b @s"sin"
o4a o3d @se"ne1","ne2" @p"env1"
o4e o5e @se"ne3" @v"env1","env2"
o4c o7b @s"squ50" @p"env3","env4"]
解説

SCCマッピングを定義します。オクターブ音階はマッピングする音階、発音オクターブ音階は実際に発音する音階、SCC音色指定は@sか@seのどちらかを指定できます。

ピッチエンベロープとボリュームエンベロープはどちらも省略可能です。ただし、順番を変えることはできません。

@sm"test"=[o4a o5a…]の定義では、MMLでo4aを記述するとo5aの発音をします。基本的な処理は@wmと同じです。

マッピングは音階に割り当てた音色とエンベロープのセットとなっています。エンベロープを指定しない場合、そのマッピングは”エンベロープオフ”となり、@voffや@poffを実行した状態となります。

@usとパラメータに入れることにより、エンベロープだけは指定もoffも行わない事が可能になります。@usの後は他のパラメータは記述できません。

例:
@sm"map"=[
o4c o4c @s"tes1" @us
o4d o4d @s"tes2" @us
o4e o4e @s"tes3" @us]

@fm

使用場所
定義
書式
@fm定義名=[オクターブ音階 発音オクターブ音階 OPLL音色指定(@f|@fe) ピッチエンベロープ(@p|@fp|@us) ボリュームエンベロープ(@v|@fv) … ]
@fm"map"=[
o4b o5b @f"@0"
o4a o3d @fe"ne1","ne2" @p"env1"
o4e o5e @fe"ne3" @v"env1","env2"
o4c o7b @f"@2" @fp"env3","env4"]
解説

OPLLマッピングを定義します。基本的な部分は@smコマンドと同様です。

OPLL音色指定には@f、@feコマンドが使用でき、ピッチエンベロープには@pか@fpが、ボリュームエンベロープには@vか@fvが使用できます。

マッピングは音階に割り当てた音色とエンベロープのセットとなっています。エンベロープを指定しない場合、そのマッピングは”エンベロープオフ”となり、@voffや@poffを実行した状態となります。

@usとパラメータに入れることにより、エンベロープだけは指定もoffも行わない事が可能になります。@usの後は他のパラメータは記述できません。

例: @fm"map"=[
o4c o4c @f"tes1" @us
o4d o4d @f"tes2" @us
o4e o4e @f"tes3" @us]

@ym

使用場所
定義
書式
@ym定義名=[オクターブ音階 発音オクターブ音階 Y8950音色指定(@y|@ye) ピッチエンベロープ(@p|@us) ボリュームエンベロープ1(@vc|@yv) ボリュームエンベロープ2(@vm) … ]
@ym"map"=[
o4b o5b @y"@0"
o4a o3d @ye"ne1","ne2" @p"env1"
o4e o5e @ye"ne3" @vc"env1","env2"
o4c o7b @y"@2" @p"env3","env4" @vm"env1"]
解説

Y8950マッピングを定義します。基本的な部分は@smコマンドと同様です。

Y8950音色指定には@y、@yeコマンドが使用でき、ピッチエンベロープには@pが、ボリュームエンベロープ1には@vcか@yvが使用可能で、ボリュームエンベロープ2には@vmが使用できます。

マッピングは音階に割り当てた音色とエンベロープのセットとなっています。エンベロープを指定しない場合、そのマッピングは”エンベロープオフ”となり、@vcoffや@poffを実行した状態となります。

@usとパラメータに入れることにより、エンベロープだけは指定もoffも行わない事が可能になります。@usの後は他のパラメータは記述できません。

例:
@ym"map"=[
o4c o4c @y"tes1" @us
o4d o4d @y"tes2" @us
o4e o4e @y"tes3" @us]

@zm

使用場所
定義
書式
@zm定義名=[オクターブ音階 デチューン値 … ]
@zm"map"=[
o4b 10
o4a 12
o4e 14
o4c 16]
解説

デチューンマッピングを定義します。オクターブ音階はマッピングする音階、デチューン値はzコマンドと同様、-32768〜32767で、指定したオクターブ音階から低い音全体がそのデチューン値になります。

上記の例ではo1c〜o4cがz16、o4c+〜o4eがz14、o4f〜o4aがz12、o4a+〜o4bがz10となり、マッピングしていないo5cから上の音は鳴らそうとするとマッピングエラーとなり、コンパイルできません。

マッピング使用時に鳴る音階は、すべてマッピング定義している必要があります。