Yggdrasil Seeds : Software Works : DualMusik : DUMファイルフォーマット
PV[205528]

暗黙のお約束

基本構造

DUMファイルは以下のセクションに分かれ、順に格納されます。
セクションサイズ
データタイプ16byte
ヘッダ16byte
トラックポインタテーブル8byte*トラック数
拡張情報4byte単位可変長(V0.45以降)
(旧版では存在しない)
トラックデータ2byte単位可変長

データタイプ

識別用の冗長領域です。
オフセットサイズ内容
&00008"UGNSDUM:"
&00082メジャーヴァージョン
&000a2マイナーヴァージョン
&000c4エクテンション(現在は0固定)

ヘッダ

DUM全体に関する情報です。
オフセットサイズ内容
&00002含まれるトラック数(0~256)
&000221分音符の最大分解能
&00044タイトル文字列の格納位置
&00084著作権情報文字列の格納位置
&000c4拡張情報サイズ(V0.45以降)
(旧版では0固定)

トラックポインタテーブル

トラックデータの格納位置やサイズを示しています。
オフセットサイズ内容
&00004トラックデータ格納位置
&00044トラックデータサイズ

拡張情報

V0.45以降で追加される各種情報です。
ヴァージョン毎にサイズが変わることがありますが、位置は決まっています。
足りないぶんは全て0で埋め、多いぶんは無視されます。
オフセットサイズ内容
&00004言語コード文字列の格納位置(V0.45以降)
&00044文字セット文字列の格納位置(V0.45以降)

トラックデータ

演奏コマンドを並べたものです。1ワード(2バイト)単位ですが、1つのコマンドが1ワード長とは限らず、後続の何ワードかを追加のパラメータとして扱うものがあります。
また、いくつかのパラメータはワード単位で省略できるもの([ ]で括ってある)があります。省略判定については、各コマンドの説明を参照。
&0000~&1fff: ウェイト
1514131211109876543210
000longウェイト数(low)
[ウェイト数(high)]
longが0のときはウェイト数(low)のみが有効で、ウェイト数(high)のあるワードは省略される。4095までしか表現できないが、1ワードで表現できる。
longが1のときは2ワード長で、ウェイト数(high)×4096+ウェイト数(low)が実際に使われる値となり、268435455まで表現できる。

関連MML: R

&2000~&3fff: 拡張コントロール設定(整数レジスタ)
1514131211109876543210
001レジスタ#コントロール#(符号付)
設定値

関連MML: M

&4000~&7fff: コントロールチェンジ(絶対指定)
1514131211109876543210
01コントロール#設定値

関連MML: PVXY

&8000~&bfff: ピッチベンド(絶対指定)
1514131211109876543210
10設定値+8192

関連MML: K

&c000~&c1ff: ノートオン
1514131211109876543210
1100000lfwfMIDIキー#
[音長]
lfが1のときは音長を指定、0のときは音長のあるワードが省略され、トラックでの前回値と同じ値となる。
wfが1のときは音長と同じ値がウェイトに加算される。
音長は1~2ワードの非固定長で、ウェイトと同じ表現が使われる。

関連MML: ABCDEFG

&c200~&c2ff: カレントMIDIチャネル
1514131211109876543210
11000010ディヴァイス#チャネル#

関連MML: :

&c300~&c37f: プログラムチェンジ
1514131211109876543210
110000110設定値

関連MML: @

&c380~&c3ff: チャネルプレッシャ(絶対指定)
1514131211109876543210
110000111設定値

関連MML: Z

&c400~&c4ff: キープレッシャ(絶対指定)
1514131211109876543210
11000100kf設定値
[未使用][MIDIキー#]
kfが1のときはMIDIキーを指定、0のときはMIDIキーのあるワードが省略され、トラックでの前回値と同じ値となる。

関連MML: Z

&c500~&c53f: コントロールチェンジ(補間指定)
1514131211109876543210
1100010100bfwflfafarvr
未使用コントロール#目標値(符号付)
[未使用][中間値(符号付)]
[補間長]
vrが0のときは目標値が絶対指定,1のときはMIDIチャネルでの前回値からの相対指定となる。
arが0のときは中間値が絶対指定,1のときはMIDIチャネルでの前回値からの相対指定となる。
afが1のときは中間値を指定したスプライン補間で、0のときは中間値のあるワードが省略されリニア補間となる。
lfが1のときは補間長を指定、0のときは補間長のあるワードが省略され、トラックでの前回値と同じ値となる。
wfが1のときは補間長と同じ値がウェイトに加算される。
bfは予約領域で、0固定。
補間長は1~2ワードの非固定長で、ウェイトと同じ表現が使われる。

関連MML: PVXY

&c540~&c57f: ピッチベンド(補間指定)
1514131211109876543210
1100010101bfwflfafarvr
目標値(符号付)
[中間値(符号付)]
[補間長]
vrが0のときは目標値が絶対指定,1のときはMIDIチャネルでの前回値からの相対指定となる。
arが0のときは中間値が絶対指定,1のときはMIDIチャネルでの前回値からの相対指定となる。
afが1のときは中間値を指定したスプライン補間で、0のときは中間値のあるワードが省略されリニア補間となる。
lfが1のときは補間長を指定、0のときは補間長のあるワードが省略され、トラックでの前回値と同じ値となる。
wfが1のときは補間長と同じ値がウェイトに加算される。
bfは予約領域で、0固定。
補間長は1~2ワードの非固定長で、ウェイトと同じ表現が使われる。

関連MML: K

&c580~&c5bf: キープレッシャ(補間指定)
1514131211109876543210
1100010110bfwflfafarvr
未使用MIDIキー#目標値(符号付)
[未使用][中間値(符号付)]
[補間長]
vrが0のときは目標値が絶対指定,1のときはMIDIチャネルでの前回値からの相対指定となる。
arが0のときは中間値が絶対指定,1のときはMIDIチャネルでの前回値からの相対指定となる。
afが1のときは中間値を指定したスプライン補間で、0のときは中間値のあるワードが省略されリニア補間となる。
lfが1のときは補間長を指定、0のときは補間長のあるワードが省略され、トラックでの前回値と同じ値となる。
wfが1のときは補間長と同じ値がウェイトに加算される。
bfは予約領域で、0固定。
補間長は1~2ワードの非固定長で、ウェイトと同じ表現が使われる。

関連MML: Z

&c5c0~&c5ff: キープレッシャ(補間指定)
1514131211109876543210
1100010111bfwflfafarvr
中間値(符号付)目標値(符号付)
[補間長]
vrが0のときは目標値が絶対指定,1のときはMIDIチャネルでの前回値からの相対指定となる。
arが0のときは中間値が絶対指定,1のときはMIDIチャネルでの前回値からの相対指定となる。
afが1のときは中間値を指定したスプライン補間で、0のときは中間値を無視しリニア補間となる。
lfが1のときは補間長を指定、0のときは補間長のあるワードが省略され、トラックでの前回値と同じ値となる。
wfが1のときは補間長と同じ値がウェイトに加算される。
bfは予約領域で、0固定。
補間長は1~2ワードの非固定長で、ウェイトと同じ表現が使われる。

関連MML: Z

&c600~&c6ff: トラック処理再開
1514131211109876543210
11000110トラック#
トラック#はMMLで指定した値ではなく、管理用に変換したものが格納される。

関連MML: W

&c700~&c7ff: MIDI送信
1514131211109876543210
11000111送信サイズ(byte)
送信データ
送信データは可変長で、ワード数は送信サイズ÷2(端数切り上げ)となる。

関連MML: $

&c800~&c87f: コントロールチェンジ絶対指定値更新
1514131211109876543210
110010000コントロール#

関連MML: PVXY

&c880~&c8ff: コントロールチェンジ相対変化値リセット
1514131211109876543210
110010001コントロール#

関連MML: PVXY

&c900~&c97f: キープレッシャ絶対指定値更新
1514131211109876543210
110010010MIDIキー#

関連MML: Z

&c980~&c9ff: キープレッシャ相対変化値リセット
1514131211109876543210
110010011MIDIキー#

関連MML: Z

&ca00~&caff: ノートオンヴェロシティ(相対指定)
1514131211109876543210
11001010変化値(符号付き)

関連MML: U~_

&cb00~&cb7f: ノートオンヴェロシティ(絶対指定)

関連MML: U

1514131211109876543210
110010110指定値
&cb80~&cbff: ノートオフヴェロシティ(絶対指定)
1514131211109876543210
110010111指定値

関連MML: U

&cc00~&ccff: リピート始点
1514131211109876543210
11001100リピート回数

関連MML: [

&cd00~&cdff: テンポ(絶対指定)
1514131211109876543210
11001101設定値(high)
設定値(low)
設定値(high)×65536+設定値(low)が実際に使われる値で、1ステップあたりにかけるウェイト数に相当する。
MMLで1分間あたりの4分音符数をしていても、この表現に変換される。

関連MML: T

&ce00~&ceff: テンポ(リニア補間)
1514131211109876543210
11001110設定値(high)
設定値(low)
補間長
設定値(high)×65536+設定値(low)が実際に使われる値で、1ステップあたりにかけるウェイト数に相当する。
MMLで1分間あたりの4分音符数をしていても、この表現に変換される。
補間長は1~2ワードの非固定長で、ウェイトと同じ表現が使われる。

関連MML: T

&cf00~&cfff: テンポ(スプライン補間)
1514131211109876543210
11001111設定値(high)
設定値(low)
未使用中間値(high)
中間値(low)
補間長
設定値(high)×65536+設定値(low),中間値(high)×65536+中間値(low)が実際に使われる値で、1ステップあたりにかけるウェイト数に相当する。
MMLで1分間あたりの4分音符数をしていても、この表現に変換される。
補間長は1~2ワードの非固定長で、ウェイトと同じ表現が使われる。

関連MML: T

&d000~&dfff: プリセットSysEx
1514131211109876543210
1101引数サイズ(byte)プリセットコード
引数データ
引数は可変長で、ワード数は引数サイズ÷2(端数切り上げ)となる。

関連MML: $

&e000~&efff: コメント
1514131211109876543210
1110文字列サイズ(byte)
文字列(zero terminated)
文字列は可変長で、ワード数は(文字列サイズ+1)÷2(端数切り上げ)となる。
文字列の最後に0を付加するため、実際のデータは1バイト長くなる。

関連MML: ;

&f000~&f0ff: 演奏環境設定
1514131211109876543210
11110000レジスタ#
設定値

関連MML: =

&f100~&f1ff: ノートオフヴェロシティ(相対指定)
1514131211109876543210
11110001変化値(符号付き)

関連MML: U~_

&f200~&f2ff: トラック処理再開(逆指定)(V0.21以降)
1514131211109876543210
11110010除外対象トラック数
[除外対象トラック]
除外対象トラックは可変長で、ワード数は除外対象トラック数÷2(端数切り上げ)となる。
トラック#はMMLで指定した値ではなく、管理用に変換したものが格納される。

関連MML: W

&f300~&ffd7: 未定義
1514131211109876543210

&ffd8: ノートオフヴェロシティ絶対指定値更新(V0.21以降)
1514131211109876543210
1111111111011000

関連MML: U

&ffd9: ノートオフヴェロシティ相対変化値リセット
1514131211109876543210
1111111111011001

関連MML: U

&ffda: ゲートタイム(ステップ,絶対指定)
1514131211109876543210
1111111111011010
設定値(符号付き)

関連MML: Q

&ffdb: ゲートタイム(ステップ,相対指定)
1514131211109876543210
1111111111011011
変化値(符号付き)

関連MML: Q

&ffdc: ゲートタイム(ステップ,絶対指定値更新)
1514131211109876543210
1111111111011100

関連MML: Q

&ffdd: ゲートタイム(ステップ,相対変化値リセット)
1514131211109876543210
1111111111011101

関連MML: Q

&ffde: スラー,ポルタメント変化値リセット
1514131211109876543210
1111111111011110

関連MML: ()

&ffdf: スラー
1514131211109876543210
1111111111011111
設定値(符号付き)

関連MML: ABCDEFG

&ffe0~&ffe7: ポルタメント
1514131211109876543210
1111111111100afwflf
目標値(符号付き)
[中間値(符号付き)]
[補間長]
afが1のときは中間値を指定したスプライン補間で、0のときは中間値のあるワードが省略されリニア補間となる。
lfが1のときは補間長を指定、0のときは補間長のあるワードが省略され、トラックでの前回値と同じ値となる。
wfが1のときは補間長と同じ値がウェイトに加算される。
補間長は1~2ワードの非固定長で、ウェイトと同じ表現が使われる。

関連MML: ()

&ffe8: コントロールチェンジ(相対指定)
1514131211109876543210
1111111111101000
未使用コントロール#変化値(符号付き)

関連MML: PVXY

&ffe9: ピッチベンド(相対指定)
1514131211109876543210
1111111111101001
変化値(符号付き)

関連MML: K

&ffea: キープレッシャ(相対指定)
1514131211109876543210
1111111111101010
未使用MIDIキー#変化値(符号付き)

関連MML: Z

&ffeb: チャネルプレッシャ(相対指定)
1514131211109876543210
1111111111101011
未使用変化値(符号付き)

関連MML: Z

&ffec: 和音用パラメータ保存
1514131211109876543210
1111111111101100
現在のヴェロシティ,ゲートタイム関連変数の内容を保存する。

関連MML: '

&ffed: 和音用パラメータ復元
1514131211109876543210
1111111111101101
保存したヴェロシティ,ゲートタイム関連変数を復元する。

関連MML: '

&ffee: ゲートタイム(レート,絶対指定)
1514131211109876543210
1111111111101110
設定値

関連MML: Q

&ffef: ゲートタイム(レート,相対指定)
1514131211109876543210
1111111111101111
変化値

関連MML: Q

&fff0: ゲートタイム(レート,絶対指定値更新)
1514131211109876543210
1111111111110000

関連MML: Q

&fff1: ゲートタイム(レート,相対変化値リセット)
1514131211109876543210
1111111111110001

関連MML: Q

&fff2: ノートオンヴェロシティ絶対指定値更新
1514131211109876543210
1111111111110010

関連MML: U

&fff3: ノートオンヴェロシティ相対変化値リセット
1514131211109876543210
1111111111110011

関連MML: U

&fff4: ピッチベンド絶対指定値更新
1514131211109876543210
1111111111110100

関連MML: K

&fff5: ピッチベンド相対変化値リセット
1514131211109876543210
1111111111110101

関連MML: K

&fff6: チャネルプレッシャ絶対指定値更新
1514131211109876543210
1111111111110110

関連MML: Z

&fff7: チャネルプレッシャ相対変化値リセット
1514131211109876543210
1111111111110111

関連MML: Z

&fff8: 拡張コマンド
1514131211109876543210
1111111111111000
コマンド#データサイズ(byte)
データ
データは可変長で、ワード数は(データサイズ+1)÷2(端数切り上げ)となる。
データの最後に0を付加するため、実際のデータは1バイト長くなる。

関連MML: ?

&fff9: 1分音符分解能
1514131211109876543210
1111111111111001
設定値

関連MML: %

&fffa: オールノートオフ
1514131211109876543210
1111111111111010

関連MML: '

&fffb: 拡張コントロール設定(フラグレジスタ)
1514131211109876543210
1111111111111011
00cfレジスタ#コントロール#(符号付)
cfは、0がリセット(-),1がセット(+)を表す。

関連MML: J

&fffc: リピート終点
1514131211109876543210
1111111111111100

関連MML: ]

&fffd: リピート脱出
1514131211109876543210
1111111111111101

関連MML: |

&fffe: トラック処理一時停止
1514131211109876543210
1111111111111110

関連MML: H

&ffff: トラック終了
1514131211109876543210
1111111111111111


[表紙] [前] [次]