OSDN Ticket Archive


Ticket #23968

ファイル読み込み直後に拍子記号が常に4/4と表示される

登録: 2010-12-26 12:58 最終更新: 2010-12-26 14:08

報告者:
yknk
担当者:
yknk
チケットの種類:
バグ
状況:
完了
コンポーネント:
MIDITrail Ver.1.1.x for Windows
マイルストーン:
Version 1.1.2 for Windows (完了済み)
優先度:
3
重要度:
5 - 中
解決法:
なし
ファイル:
なし

詳細

MIDIファイルを読み込んだ直後、カウンタの拍子記号が常に「4/4」と表示される。 演奏を開始すると正しい拍子記号に切り替わる。 Mac版開発中に発見。

チケットの履歴

2010-12-26 12:58 更新者: yknk
  • 新しいチケット "ファイル読み込み直後に拍子記号が常に4/4と表示される" が作成されました
2010-12-26 13:06 更新者: yknk
  • 詳細が更新されました
  • 優先度5 - 中 から 3 に更新されました
2010-12-26 14:07 更新者: yknk
コメント

原因

シーケンスデータクラスの不具合。

トラック先頭(デルタタイムゼロ)に存在するイベントから拍子記号のメタイベント(0x58)を検索する処理で、 メタイベント(0x58)を検索対象外にしていた。 単純なコーディングミス。

SMSeqData::_GetBeat()

//拍子記号を取得
metaEvent.Attach(&event);
if (metaEvent.GetType() != 0x58) {
	metaEvent.GetTimeSignature(pNumerator, pDenominator);
	break;
}

「!= 0x58」は「== 0x58」であるべき。

2010-12-26 14:08 更新者: yknk
  • 状況オープン から 完了 に更新されました
  • チケット完了時刻2010-12-26 14:08 に更新されました
コメント

対策

原因に記載した通り。

SMSeqData::_GetBeat()

判定式の「!= 0x58」を「== 0x58」に変更する。

添付ファイルリスト

添付ファイルはありません