現在、MIDIのファイルが再生されているときにmidiファイルを再生しようとしていますが、midiファイルを数ミリ秒前に再生しています。より詳細には、私は、音符を画面の右から左にスライドさせることによって、その音符を視覚化しています。ノートの視覚化を、画面の右側から、ミディファイルからの信号に合わせて作成し、次にそれらを左に翻訳し始めます。音符が実際にその曲で演奏されるのと同時に、画面の中央を通過させたいと思います。C#で時間オフセットのあるMIDIファイルを再生する
私はこのコードを使用してうまくMIDIファイルを再生することができます:
if (counter < _file.Events[track].Count)
{
double s_ms = Microsoft.Xna.Framework.Media.MediaPlayer.PlayPosition.TotalMilliseconds;
double m_ms = _file.Events[track][counter].AbsoluteTime/_pulses_per_millisecond;
if (s_ms + offset > m_ms)
{
counter++;
if (_file.Events[track][counter].CommandCode == NAudio.Midi.MidiCommandCode.NoteOn)
{
Console.Beep(777, 25);
Console.Write("Beep ");
}
}
}
を効果的にオフセットは、MIDIファイルは、ノートのバーストを演奏し、それがオフセットwasn場合になりますトラック位置に戻りますまったく使われていない。
私は困惑しており、本当に助けに感謝します。私はXNA 3.1とNAudioを使用しています。ミディアムは丁度いい曲で時間通りに演奏する。もちろん、私はミディの演奏スピードと同じままにする必要があります。一つだけに、実際の出力のオーディオを使用しているときに、同時に2つのMIDIファイルを再生していないのはなぜ