Согласно документам Apple, в нем говорится:
Поскольку ваш обратный вызов MIDIReadProc вызывается из отдельного потока, помните о проблемах синхронизации при использовании данных, предоставляемых этим обратным вызовом.
Означает ли это, что для обеспечения безопасности используйте @synchronize?
Или это буквально означает, что могут возникнуть проблемы с синхронизацией?
В настоящее время я пытаюсь прочитать файл midi и использую MIDIReadProc для включения / выключения примечания программного синтезатора на основе событий midi. Мне нужно, чтобы это было очень надежно и точно в срок. Прямо сейчас я замечаю, что когда я использую эти события midi и записываю звук в буфер (все это делается из MIDIReadProc), синхронизация очень неаккуратна и звучит совсем неправильно. Итак, я хотел бы знать, каков «правильный» способ получения миди-событий из MIDIReadProc?
Кроме того, является ли MIDIReadProc единственным вариантом для получения событий midi из файла midi?
Есть ли другой вариант настройки виртуальной конечной точки, которая могла бы использоваться моим синтезатором напрямую? Если да, то как именно это работает?