domino/不具合報告/14

Last-modified: 2007-12-31 (月) 18:41:45

ひとつのトラックに複数のチャンネル情報が混在するMidiFileを読み込むと内容が変化してしまう。

  • ページ: domino/不具合報告
  • 投稿者: anonymous?
  • 優先順位: 低
  • 状態: 完了
  • 投稿日: 2007-01-26 (金) 14:35:06

メッセージ

SMF(Format 1)では1トラックに複数のチャンネルを入れる事は禁止されていますが
そのようなデータを製作する事が可能なシーケンサは存在します。データも見かけます。

Tr 1 Ch 1 Ch 2
Tr 2
Tr 3 Ch 3 Ch 4
Tr 4
Tr 5 Ch 5 Ch 6
Tr 6
Tr 7 Ch 7 Ch 8
Tr 8
Tr 9 Ch 9 Ch10
Tr10
Tr11 Ch11 Ch12
Tr12
Tr13 Ch13 Ch14
Tr14
Tr15 Ch15 Ch16
Tr16

一般的な1トラック=1チャンネル型シーケンサで
上のようなファイルを読み込むと下のように処理されると思います。

Tr 1 Ch 1
Tr 2 Ch 2
Tr 3 Ch 3
Tr 4 Ch 4
Tr 5 Ch 5
Tr 6 Ch 6
Tr 7 Ch 7
Tr 8 Ch 8
Tr 9 Ch 9
Tr10 Ch10
Tr11 Ch11
Tr12 Ch12
Tr13 Ch13
Tr14 Ch14
Tr15 Ch15
Tr16 Ch16

Dominoで読み込むと、このようになります。

Tr 1 Ch 1 Ch 1
Tr 2
Tr 3 Ch 3 Ch 3
Tr 4
Tr 5 Ch 5 Ch 5
Tr 6
Tr 7 Ch 7 Ch 7
Tr 8
Tr 9 Ch 9 Ch 9
Tr10
Tr11 Ch11 Ch11
Tr12
Tr13 Ch13 Ch13
Tr14
Tr15 Ch15 Ch15
Tr16

ここから不具合

以下の混在ファイルを実際に作ってDominoに読み込ませてみました。
一小節一拍目の位置に6個、トラックひとつおきにイベントが存在する内容です。

Dominoに読み込ませてみるとノートデータのゲートが変化してしまうという状態になりました。

その状態でSMF書き出しで保存後、再度Dominoで開くとさらにゲートの値が変化してしまいました。

わかり難くてすいません
添付ファイルを見てみてください。

混在データ.mid       : 1トラックに複数のチャンネルが入ったもの
正しく処理されたデータ.mid : 混在データを一般的なシーケンサで開いてSMF保存したもの
不具合データ.mid      : 混在データをDominoで開いてSMF書き出ししたもの

Domino Ver.1.00 beta002


  • http://ehoba.mydns.jp/loada/src/txup0321.zip -- [[pass[Domino]]] 2007-01-26 (金) 15:16:45
  • わざわざデータまでアップしていただいてありがとうございます!おかげさまでスムーズに検証を行うことができました (^^) たしかに、midi形式としては、そうした違反も可能だと思っていましたが、実際に存在するという事は想定外でした^^;;; 問題は、データがおかしな状態で読まれてしまう、という事だと思いますので、まずはそうした不正なデータを読めないようにしてみました(不正ファイルを読める必要性は無いとは思うのですが・・・)。 -- たかぼー? 2007-01-26 (金) 23:41:13
  • 混在ファイルは主に最大トラック数が16の時代のものなので、その対応のほうが賢明かもしれませんね。 -- anonymous? 2007-01-27 (土) 04:14:31