【解決済み】「midiの初期化」にかかる時間について

沼江蛙

ユーザー
こんにちは。
ツクールXPのBGMで使いたい物があったのでVXAceにエクスポートしたのですが、
midiを使用すると起動時に読み込むので時間がかかると聞きました。
2、3曲でも時間がかかるのでしょうか?それとも少しなら大したことない?
よかったら教えてください…自分のテストプレイだとよく分かりませんでした。
 
ツクールVXAceの段階で、MIDIは非推奨になっていますね。
これは、最近のPCではもはやMIDIがうまく演奏出来ないこともあると思います。

よって、ベストな方法は、MIDIからOGGに変換することでしょうね。
それが無理な場合でも、「最初にMIDIが流されるとき」に
10秒ほどフリーズすることがあります。初期化処理などの関係でしょうか。
環境にも依存するようで、僕のプロジェクトでは遅延はすくなかったです。

よって答えとしては「VXAceではMIDIは非推奨。使う場合、
最初にMIDIが演奏されるときに、10秒ほど止まる場合がある、
よって用心して使ってください。
 

It's

ユーザー
今更ですが、失礼します。
midiデータには、一番最初に音源のリセット命令が入れられているのが普通です。
それは、音源によっては、以前に演奏されたmidiの設定(音量の設定等)が残ってしまい、
次に演奏するmidiデータに影響を与えてしまうため、これを防ぐ目的で、曲の最初に音源を初期化する必要があります。

昔は、このリセット命令をmidi音源が受けた際、音源が一瞬、または、長いと数秒位の間、
初期化処理のためにmidi信号を受け取れない状態になっていたりしました。
その間に次のmidiの演奏設定を受け取ってしまうと、その設定は、midi音源に無視されたりして、
正常に演奏されなかったのです。

それを避けるために、音源のリセット命令後、少し間をおいて、音源の初期化を待ってから
設定データを順次送るように作るというのが、midiの作り方として教えられていたんです。
神無月サスケさんの仰っている10秒ほど止まるというデータは、こうした作り方をされているデータ
なのかもしれません。10秒後に確実に再生される、かつ、必ず10秒掛かる等の状態であれば、
それはVXAceのバグではなく、midiデータ自体がそのように作られている可能性が高いです。確証は、持てませんが。
そういうデータは、無音部分を見越してタイミングを早めに鳴らしておく等で対処出来ます。

ただ、これはかなり昔のmidi音源の事で、自分の場合は、リセット命令後、20ティック後(1拍が480ティックです。)に
全部の設定データを送っていましたが、上手く読み取れなかった事はありません。
恐らく、XPのmidiデータは、リセット命令後にすぐに設定データを送っているために、すぐに再生されるから、
時間が掛かっているのかどうかに気付けないのかもしれません。

また、midiファイルは、非常に軽量(数キロバイト~数十キロバイト位)なので、読み込みが遅くなるという事は、考えにくいです。
ただ、midi非推奨という事は、容量が軽くても別の処理に時間が掛かるという事は、あるのかもしれません。
その使いたい2、3曲が普通に使用できている状態なら、特に問題は無いかもしれませんね。
容量だけはすごく軽いので、oggにしなくても使えているのであれば、midiのままでも良いかもしれません。
 

It's

ユーザー
あ、ちょっと勘違いしてました。神無月サスケさんが「最初にMIDIが演奏される時に」と
仰ってましたね。2回目以降が10秒掛からずに再生されるというのであれば、midiデータではなく、
VXAceのmidiの初期化時間なのかもしれません。
なので、なにかしらバグが起こるようであれば、神無月サスケさんの仰る通り、ogg等に変換する事を
検討するのも良いかもしれません。
 
トップ