私の目標は、スタンダードMIDIファイルから正確なノートのオン/オフのタイミングを取得することです。ファイルはタイプ1(複数のトラックがあります)で、タイミングモードは四半期ごとのティックです。
私のアプローチ:
すべてのトラックでsetTempo-Eventsを検索し、それらをすべてリストに入れます。また、後続のsetTempo-Events間のティック数をリストに保存します。
次に、各イベントのすべてのdeltaTimeを合計し、各イベントのティックゼロを基準にしたティックの絶対数を取得します。
最後に、ティックの絶対数とテンポを含むリストから時間を秒単位で計算します
これは、MIDIファイルからノートオンセットを取得するための正しい方法ですか、それとも拍子記号も考慮する必要がありますか?-setTempo-eventマイクロ秒/クォーターまたはマイクロ秒/ビートからのデータですか?
別の質問:2つのトラックを持つファイルを取得したと仮定します。トラック2には、ファイルの最後に1つのイベントしかありません。たとえば、deltatime=1000の場合です。トラック1には2つのsetTempo-Eventがあり、1つはdeltatime = 0で、もう1つはdeltatime=500です。
トラック2で1000ティックを待機するために使用されるテンポはどれですか?最初のテンポ、2番目、またはその両方ですか?