コードにMIDI入力ポートを設定し、受信したMIDIデータを読み取るためのコールバックを添付しました。それはすべて正常に機能しています。私はMidiTimecodeを読んでいて、コールバックでそれを解析しています。私が気付いたのは、アプリケーションをいつ開始するかによっては、MTCを送信しているデバイスから1秒も遅れることがあるということです。時々それは後ろのフレームです。とにかく、それは一貫性がなく、イライラします。readProcでブロッキングやObj-C呼び出しを行っていません。アプリケーションを実行した後、USB MIDIデバイスを切断して、奇妙なIOKitが発生していないかどうかを確認するという問題に直面しました。私は本当にいくつかの助けを使うことができました、野生の目の理論でさえ?Midi TimeStampは、比較するための客観的な参照がないため、役に立たないように感じます。
1 に答える
0
ここで何をしているのかを知っていて、2つの同期方法の中でより一般的なMIDIクロックではなく、実際のMIDIタイムコードを意味していると仮定します。とにかく、MIDIは低速であり、それに応じて反応できるように、クライアントにオフセット(おそらくミリ秒単位)を提供する必要があります。たとえば、AbletonLiveがどのように機能するかを見てみましょう。
上記のスクリーンショットはMIDIクロック用ですが、MTCにも同じことが当てはまるはずです。ご存知のように、レイテンシは実行時の条件に応じて変化するため、オフセットを決定するために何らかのタイプのUIを提供する必要がある場合があります。
于 2012-07-03T03:16:16.370 に答える