ファイル読み込み直後に拍子記号が常に4/4と表示される
シーケンスデータクラスの不具合。
トラック先頭(デルタタイムゼロ)に存在するイベントから拍子記号のメタイベント(0x58)を検索する処理で、 メタイベント(0x58)を検索対象外にしていた。 単純なコーディングミス。
SMSeqData::_GetBeat() //拍子記号を取得 metaEvent.Attach(&event); if (metaEvent.GetType() != 0x58) { metaEvent.GetTimeSignature(pNumerator, pDenominator); break; }
「!= 0x58」は「== 0x58」であるべき。
原因に記載した通り。
判定式の「!= 0x58」を「== 0x58」に変更する。
MIDIファイルを読み込んだ直後、カウンタの拍子記号が常に「4/4」と表示される。 演奏を開始すると正しい拍子記号に切り替わる。 Mac版開発中に発見。