Поделиться через


Обработка данных MIDI из двух источников MIDI

Подсистема MIDI может направлять сообщения MIDI из двух источников данных на одно устройство вывода MIDI для параллельного воспроизведения. Например, одним из источников может быть фоновая музыка или басовая линия, которая была предварительно записана и сохранена в файле. Вторым источником могут быть динамические данные из MIDI-инструмента, например клавиатуры или гитары.

Оба источника данных отправляют данные MIDI на одно устройство MIDI, идентифицируемое одним дескриптором. Отправьте один поток данных с помощью функции midiStreamOut и одного или нескольких буферов потока. Этот поток данных обычно содержит предварительно записанные данные, упакованные в буфер.

Асинхронная отправка второго потока данных (обычно из midi-инструмента) с помощью функции midiOutShortMsg . Асинхронные вызовы, выполняемые вторым потоком данных, не повлияют на состояние выполнения буфера потока потока.

Каждое короткое сообщение, отправленное с помощью midiOutShortMsg , должно быть полным MIDI-сообщением с байтом состояния и соответствующим количеством байтов данных. Если байт состояния опущен, midiOutShortMsg возвращает ошибку. (Однако состояние выполнения с выходными данными потока отсутствует.)