時分割フィールドである 0x00C0 について話している場合、あなたが言及しているのは 192ビート/分ではなく、 192ティック/ビートであり、まったく異なる獣です。BPM は「Set Tempo」イベントを介して間接的に指定され、1 ビートあたりのマイクロ秒単位で指定されます (残念なことにどこにでもある 120 BPM が最初に想定されています)。この形式での時分割のトリッキーな点は、曲のテンポの変化に応じてティックの長さが増減することです。
変換したい時分割がF
1 秒あたりのフレーム数 (24、25、29.97、または 30) でありG
、1 フレームあたりのティック数であるとします (注: 1 分あたりのティック数ではありません!)。さらに、ビートあたりのマイクロ秒単位の現在のテンポが であると仮定しましょうp
。次に、指定された期間を古いティックで新しいティックに変換する式は次のとおりです (単位分析は非常に役立ちます!)。
y = x ticks old * (1/192) ビート/ ticks old * p μsec/beat * (1/10 6 ) sec/μsec * F フレーム/秒 * G ticks new /frame
= ((x * p * F * G)/(192*10 6 ))新しいティック