Ticket #22709

マルチパケットシステムエクスクルーシブでF7を送信してしまう

Open Date: 2010-08-03 23:35 Last Update: 2010-08-05 23:54

Reporter:
Owner:
Type:
Status:
Closed
Priority:
5 - Medium
Severity:
7
Resolution:
Fixed
File:
None

Details

MIDIデータファイルにマルチパケットシステムエクスクルーシブが含まれていた場合、本来送ってはならない"F7"をMIDI音源に送信してしまう。

マルチパケットシステムエクスクルーシブの例

SMFデータ
(1) F0 02 11 22       → 先頭パケット:F0 11 22 を送信する
(2) 64                → デルタタイム
(3) F7 03 33 44 55    → 後続パケット:33 44 55 を送信する(先頭のF7を送信しない)
(4) 64                → デルタタイム
(5) F7 04 66 77 88 F7 → 後続パケット:66 77 88 F7 を送信する(先頭のF7を送信しない)

マルチパケットシステムエクスクルーシブは上記のように処理するべきであるが、 現状は(3)(5)において、先頭にF7を追加してMIDI音源に送信してしまう。

Ticket History (3/5 Histories)

2010-08-03 23:35 Updated by: yknk
  • New Ticket "マルチパケットシステムエクスクルーシブでF7を送信してしまう" created
2010-08-04 01:19 Updated by: yknk
Comment

原因

処理漏れ。SMF仕様の理解不足。

2010-08-04 01:20 Updated by: yknk
Comment

対策

システムエクスクルーシブのイベントデータ登録処理において、 ステータスがF7である場合は、登録する送信データの先頭にF7を含めないようにする。

  • SMEvent::SetSysExData
2010-08-04 01:23 Updated by: yknk
Comment

備考

本不具合はSMF仕様を読んでいたら気づいたもの。 実際にマルチパケットシステムエクスクルーシブを含むSMFは見かけたことがない。

2010-08-05 23:54 Updated by: yknk
  • Resolution Update from None to Fixed
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2010-08-05 23:54

Attachment File List

No attachments

Edit

Please login to add comment to this ticket » Login