2012-06-28 90 views
1

我已經在我的代碼中設置了一個midi輸入端口,並附加了一個用於讀取收到的midi數據的回調函數。這一切工作正常。我正在閱讀Midi Timecode並在回電時解析它。我注意到,取決於何時開始我的應用程序,我可能會晚於傳輸MTC的設備1秒鐘。有時候它是背後的框架。無論如何,這是不一致的和令人沮喪的。我沒有在我的readProc中執行任何阻塞或Obj-C調用。我甚至在運行我的應用程序後斷開我的USB MIDI設備的連接以查看是否有任何奇怪的IOKit事件正在進行。我真的可以用一些幫助,甚至是野蠻的理論?我覺得Midi TimeStamps是無用的,因爲沒有客觀的參考來比較它們。CoreMidi midi時間碼

回答

0

我打算假設你知道你在做什麼,並且表示實際的MIDI時間碼,而不是MIDI時鐘,這是兩種同步方法中最常見的。無論如何,MIDI速度很慢,您需要向客戶端提供偏移量(可能以毫秒爲單位),以便它可以做出相應的反應。例如,看看Ableton現場是怎麼做的:

enter image description here

我認識到,上面的截圖是MIDI時鐘,但同樣應該適用於MTC爲好。您可能需要提供某種類型的UI以確定偏移量,因爲如您所發現的那樣,延遲會根據運行時條件而發生變化。

+1

謝謝。我發現,使用一個好的MIDI接口很重要。我正在使用一個MIDI總線2x2,總線供電的設備。不知何故這種設備間歇性地落後。一旦我連接了一臺MOTU midi時計,一切都按計劃開始工作。我會採取建議下的延遲。 – kernelK