MIDIループの不具合
すみません、もう1件だけお願いします。コードとにらめっこしたのですが、何がおかしいのかどうにも分からないのです。
CardWirthPy_20130821 + WinXP で確認したバグです。
- MIDI によっては CC111 が入っていても反映されない
- ループに入る際、空白時間が入ってしまう
ループのテスト用シナリオを用意してみました。短い MIDI が2つ入っていますが、片方だけしか CC111 が反映されません。なお RPG ツクール 2000 では、どちらのMIDIも曲の途中からループがかかりますし、空白時間もなくスムーズにループします。
これらを MIDI 編集ソフトで開いて、CC111 の存在を確認したのがこちらになります。
お手数をおかけして申し訳ありません。いつでも構いませんので、見ていただいてもよろしいでしょうか。
Comments (6)
-
repo owner -
reporter おお、こちらも直してくださったんですね! ありがとうございます。空白の違和感もだいぶ軽くなりました。
End of Track
「midi 0x2F End of Track」でググると出てくる記事は、使えないでしょうか。言語は違いますが3番目のサイトにend of track取得コードらしきものが。1番目も参考になるかも。……素人目で見て言ってるので、見当違いだったらすみません。
-
repo owner ありがとうございます。
End of Track自体はそんなに難しい概念でもないので頑張れば位置を知る事はできると思います。
ただ、BASSでその位置を知る方法がわからないのです。あれだけのライブラリなので、方法が無いわけが無いと思うのですが。
-
reporter あわわ…早とちりでした恥ずかしい。「BASSでは」と書いてあるのに。失礼しました。
では今後、方法が見つかったら直していただくということで、お願いします。
-
repo owner すっかり報告が遅れてしまいましたが、2.の空白時間の問題は解決しました(f4828f0)。ループ処理を再生スレッド内で行うようにフラグを指定すればよかったようです。
これで報告いただいた問題は解決という事で、クローズさせていただきます。
-
repo owner - changed status to resolved
- Log in to comment
わざわざサンプルまで用意していただきありがとうございます。
1.についてですが、うっかりトラック#1にあるCC
#111しか取っていませんでした。他のトラックに存在すると無視されてしまいます。修正しました。2.についてですが、軽減はしましたが、完全には直せませんでした。まずMIDIのend of trackを取る方法が探しても見つからなかった。これについては完全な解決の目処がまったくついていません。下手をするとBASSでは無理かもしれません。