Как отправить информацию о темпе или времени в AVAudioUnitMIDIInstrument в Ma c OS Swift с помощью AVFoundation - PullRequest
0 голосов
/ 04 августа 2020

У меня есть настольное приложение Ma c OS, в котором размещаются плагины виртуальных инструментов как AVAudioUnitMIDIInstrument. Мое приложение - это в основном музыкальный c секвенсор. Я хотел бы запускать инструменты, в которых используются барабанные петли и / или арпеджиаторы. Это требует отправки какой-то информации о синхронизации в AVAudioUnitMIDIInstrument. Как мне это сделать? Я предполагаю, что мне нужно отправить либо MidiMetaEvent, либо, возможно, обычную информацию MidiTimestamp. Как мне это сделать? Я не вижу в AVAudioUnitMidiInstrument никаких методов, которые бы это сделали. Вот методы, которые я вижу:

func sendController(UInt8, withValue: UInt8, onChannel: UInt8)
Send a MIDI controller event to the instrument.

func sendMIDIEvent(UInt8, data1: UInt8)
Sends a MIDI event which contains one data byte to the instrument.

func sendMIDIEvent(UInt8, data1: UInt8, data2: UInt8)
Sends a MIDI event which contains two data bytes to the instrument.

func sendMIDISysExEvent(Data)
Sends a MIDI System Exclusive event to the instrument.

func sendPitchBend(UInt16, onChannel: UInt8)
Sends a MIDI Pitch Bend event to the instrument.

func sendPressure(UInt8, onChannel: UInt8)
Sends a MIDI channel pressure event to the instrument.

func sendPressure(forKey: UInt8, withValue: UInt8, onChannel: UInt8)
Sends a MIDI Polyphonic key pressure event to the instrument.

func sendProgramChange(UInt8, bankMSB: UInt8, bankLSB: UInt8, onChannel: UInt8)
Sends MIDI Program Change and Bank Select events to the instrument.

func sendProgramChange(UInt8, onChannel: UInt8)
Sends MIDI Program Change and Bank Select events to the instrument.

func startNote(UInt8, withVelocity: UInt8, onChannel: UInt8)
Sends a MIDI Note On event to the instrument.

func stopNote(UInt8, onChannel: UInt8)
Sends a MIDI Note Off event to the instrument
...