API関数のMIDI再生でMIDIファイルをループさせるには?

解決


アラウンド  2002-09-19 02:33:15  No: 104988

API関数のMIDI再生でMIDIファイルをループさせるにはどうすればよいのですか?


YuO  2002-09-19 02:55:23  No: 104989

midiShortOutとかmidiLongOutを使っているのであれば,
ループしたいならしたい場所から再度再生させるだけだと思いますが。
それともMCIを使ったのかな?


たかみちえ  URL  2002-09-19 03:25:31  No: 104990

MIDIの再生にはいくつか方法があります。

  YuOさんの言う、midiShortOutなどのAPIを使って、メッセージをひとつずつ処理していく方法。
デルタタイムの解釈など、難しいですけど、すごく柔軟な処理ができます。

  midiStreamというAPIを使う方法。
上のものよりは簡単で、それなりに柔軟な処理ができるそうです。

  最後に、MCIを使う方法。
簡単ですけど、ほとんど処理に加工を加えたりすることはできません。

  上の二つの場合、YuOさんの言うとおり、ループした居場所から読み込みをしなおせばいいです。
  MCIの場合、再生が終わると、"Status mode"に、Stoppedという文章が入ります。
タイマーで監視しつつ、そのメッセージが着たら、もう一度再生させればいいです。

  MCIは、再生中の曲が終わったときに、それを知らせるようにすることもできますが、
VBの場合、サブクラス化しなければいけなかったり、かえって面倒です。
HSPのサイトですけど、ここを参考にすればいいでしょう。
http://www.bekkoame.ne.jp/i/mr.manri/hsp.html


アラウンド  2002-09-19 20:03:05  No: 104991

みなさんからご意見、ありがとうございます。
初心者らしく(笑)MCIの方を使っています。紛らわしくてすいませんでした。(MCI以外に方法があることを知らなかったので。)
  たかみちえさんの意見を参考にさせていただきます。解決したら報告します。


アラウンド  2002-09-19 23:04:48  No: 104992

ループさせることに成功いたしました。たかみちえさん、YuOさんありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加