Mac OS Core MIDI回调使用空白C,并在内部的多个线程上调用。RtMidi填充在C++中,并将这个多线程调用转发给一个单独的(主)线程。因为我需要一个Cocoa函数来通知其他类一个新的MIDI时间码已经到达(大约每隔7-9ms发生一次),所以我实现了一个单例,所有必要的类都可以观察它。因此,函数被调用的顺序是:
Core MIDI callback -> RtMidi function -> user callback -> Notification ( via Singleton如果我发布来自MIDI