トップ 一覧 検索 ヘルプ RSS ログイン

OPMテーブル定義書式

OPMテーブル(ソフトウェアエンベロープ)定義書式

FM音源では一般的にハードウェアエンベロープを使用しますが、それだけでは表現しきれない複雑なエンベロープを使用したい場合、次の方法によって音量やパンポット、デチューンのテーブル(ソフトウェアエンベロープ)を定義できます。

ただし、これはコンパイラ内で短い音符と各種コマンドを列挙したデータに加工して出力することにより、擬似的に機能を実現しています。そのため、多用しすぎると曲データのサイズが肥大化してしまいますので、ご注意ください。

また、ソフトウェアLFOやグライドは正常に処理されません(具体的には、音量が変わるたびに処理がリセットされます)。これらはテーブル内でデチューンを並べて表現してください。

vコマンド相当の値を使う場合

[書式]

@v<num>={ prm, prm, …, prm }

音量の値は#VOLMAXヘッダ#VOLMINヘッダ#V_STEPヘッダで指定した範囲となります。

Vコマンド相当の値を使う場合

[書式]

@V<num>={ prm, prm, …, prm }

音量の値は0〜127となります。

 値について

最初の@v<num>@V<num>で指定する値はテーブル番号で、範囲は 0〜99です。@vと@Vで共通の番号となります。この番号をOPMトラックで指定するとテーブルを呼び出すことができます。

続く<prm>は実際のパラメータで、音量などの値を記述していきます。値を省略してカンマを並べると、1カウント手前と同じ音量を維持します。内容は次の通りです。

<num>
音量指定。デフォルトでは1カウントずつ処理されます。
#<num>
カウント指定。この指定以降、そのカウントずつ音量が処理されます。
D<num>
デチューン指定。値はDコマンド相当です。相対指定ではありません。
P<num>
パンポット指定。値はPコマンド相当です。0は指定できません。
L
ループ指定。最後までテーブルを処理した後、この位置まで戻ります。

デチューンとパンポットは0カウントで処理されますので、音量指定と併用してください。また、これらの指定はテーブルの処理が終わっても元には戻りませんのでご注意ください。

[例]
@v0 = 8,10,#2,11,12,13,,,#3,11,10
A @v0 c1

;A ( v8c#1 v10c#1 v11c#2 v12c#2 v13c#6 v11c#3 v10c#3 ) c1-#18
;と等価
関連
@vコマンド, @Vコマンド, #VOLMAXヘッダ, #VOLMINヘッダ, #V_STEPヘッダ