Bug #50
(V5.92)演奏状態でシークした際、曲が残っているのに演奏を停止してしまう場合がある
ステータス: | 終了 | 開始日: | 2011/06/26 | |
---|---|---|---|---|
優先度: | 通常 | 期日: | 2011/07/05 | |
担当者: | - | 進捗 %: | 100% | |
カテゴリ: | - | 作業時間の記録: | - | |
対象バージョン: | - |
説明
状況(2011.07.05)¶
V6.00にて対処済み。
(原因)
左右矢印キーやシークボタンなどでスライドバーを移動させた際、
つまみがシークバーの右端座標に達したかどうかを曲尾到達の判定に利用していた。
そのため、MARK文前半に対して後半の演奏時間が極端に短い場合、
後半の演奏が残されているにもかかわらず曲尾に到達したと判断された。
これは、MARK文前後の演奏時間の差があまりに大きいため、
後半のシークバーのドット数幅が1以下(実質ゼロ)になってしまうためである。
(対処)
曲尾到達の判定にシークバーの位置を利用することを止め、
内部的に処理している演奏時間を参考に判断することにした。
概要(2011.06.26)¶
Ver. 5.92 で気になる挙動に遭遇しました。
マクロの繰返し後に *MARK を置いたデータを再生中にその *MARK へジャンプすると再生が停止する。
{mr}733 *MARK"M" d
を再生し、途中で左右三角ボタンや Ctrl+→・← を押すと *MARK"M" の表示が行われて再生が停止する
( d が発音されず、再生を再開すると発音される)。
{mr} を $a{mr} や $a{mr}0 ${a} としたり、音符を休符にして同じ操作をしても同様の現象が生じる。
上の例では繰返し回数が 732 以下であれば現象は生じませんが、
その限界値はマクロ定義内と *MARK 以後の音符/休符の個数に依存し、
マクロ定義内は多い方が、*MARK 以後は少ないほうが限界値が小さくなるようです。
関連するチケット