Функция ProcessMIDI() позволяет осуществлять периодические задачи (как правило, относящиеся к синхронизации). Это может быть использовано при работе со сценариями секвенсора, арпеджиатора или другого управляемого темпом MIDI-эффекта. Обычно ProcessMIDI не требуется для приложений, которые не пользуются музыкальной информацией синхронизации хостового приложения. Функция ProcessMIDI вызывается один раз на каждый «process block» («блок обработки»), определяемый хостовыми настройками (частотой дискретизации и буферным размером).
Эта функция часто применяется в комбинации с объектом JavaScript TimingInfo, чтобы использовать информацию синхронизации от хостового приложения. Использование объектов ProcessMIDI и TimingInfo показано в примере. Также см. раздел Использование объекта JavaScript TimingInfo.
Примечание: Для включения функции GetTimingInfo необходимо добавить NeedsTimingInfo = true; на глобальном уровне сценария (вне какой-либо функции).
Пример кода
// Определить NeedsTimingInfo как «истину» глобально для включения GetHostInfo ()
NeedsTimingInfo = true;
function ProcessMIDI() {
var info = GetTimingInfo(); // получить объект TimingInfo от хостового приложения
if (info.playing) { // если запущены транспортные функции
Trace(info.tempo); // выводить значение темпа в консоли плагина
}
}