Tips・その他
YellowMusicPlayerで使用するファイル
標準Midiplayer2がMidiを鳴らす仕組み
Midiの演奏は、ファイルの読み書きを通して行っています。
Midiplayer2は、Kernelフォルダにあるsigファイルを監視しています。
Tonyuで $mplayer.play() や $mplayer.stop() でMidiの演奏命令を出す、またはTonyuを終了したとき、
Tonyuはsigファイルを書き込みます。
sigファイルには次のような内容が書き込まれます。
1行目:P, R, S, X (P:Midi演奏(繰り返しなし), R:Midi演奏(繰り返しあり), S:Midi停止, X:Tonyuが終了した)
2行目:演奏するMidiの絶対パス(1行目が PとR のときのみ、パスが書き込まれます)
この内容をMidiplayer2が読み込み、Midiを演奏したり停止したり、Midiplayer2が自分自身を終了したりします。
Midiplayer2はsigファイルを読み込んだ後、sigファイルを削除します。
YellowMusicPlayerがMidiを鳴らす仕組み
YellowMusicPlayerも、Midiplayer2と同じようにMidiの演奏は、ファイルの読み書きを通して行っています。
Midiの演奏にはsigファイルを利用しています。
Midiplayer2と挙動が違う部分もあります。
Midiplayer2は、sigファイルを読み込んだ後はファイルを削除しますが、
YellowMusicPlayerは、sigファイルを読み込んだ後はファイルの内容を空にします。
また、YellowMusicPlayerはMidiにエフェクトをかけることができますが、
このとき、filesフォルダにある「eff_midi.txt」というファイルを利用していますが、
やはりこれもファイルの読み書きを通してエフェクトを設定しています。
eff_midi.txtファイルは、Tonyuが書き込み、YellowMusicPlayerが読み込みをしています。
ちなみに、eff_midi.txtファイルの内容は4行目まで Tonyu Midi Litest と同じです。
つまり、Tonyu Midi Litest を使っていたゲームはそのまま YellowMusicPlayer でも動作します。
YellowMusicPlayerがOggを鳴らす仕組み
Oggの演奏にはfilesフォルダにある「ogg_sig.dat」というファイルを利用しています。
ogg_sig.datファイルは、Tonyuが書き込み、YellowMusicPlayerが読み込みをしています。
エフェクトには、Midi同様に「eff_midi.txt」ファイルを利用しています。
YellowMusicPlayerの状態取得機能の仕組み
情報取得機能には「YMPStatus.dat」ファイルを利用しています。
このファイルは他のファイルとは逆で、YellowMusicPlayerが書き込み、Tonyuが読み込みをして情報を得ます。
YellowMusicPlayerが準備中であることをTonyu側で知る仕組み
これには「YMPPreparation.dat」ファイルを利用しています。
YellowMusicPlayerはTonyuから起動されます。そのときにMusicPlayerがこのファイルを作成します。(ファイルの内容は空)
MusicPlayerがBGMを鳴らせる準備が完了すると、このファイルを削除します。
Tonyu側は、そのファイルが有るか無いかを調べ、それでMusicPlayerが準備完了かどうかを知ることができるのです。
YellowMusicPlayerでDirectMusicのON/OFFを起動時に切り替える仕組み
これには「YMPPreparation.dat」ファイルを利用しています。
TonyuからDirectMusicのON/OFFを切り替える時、Tonyuがこのファイルを作成します。(ファイルの内容には設定値が書かれている)
YellowMusicPlayerはこのファイルの有無を確認し、あった場合ファイルの中身をもとに、DirectMusicのON/OFFの切り替えが必要かを判断します。
切り替えが必要なら、Midiデバイスを初期化します。
初期化には少し時間がかかったり、かなり時間がかかったりします。
初期化が終わると「YMPPreparation.dat」ファイルを消します。
Tonyu側では「YMPPreparation.dat」があれば準備中、なければ準備完了ということがわかります。
つまり、初期化が終わったかどうかもTonyu側でわかるわけです。
戻る