Так что я застрял, пытаясь получить MIDI-информацию для отправки на мой компьютер из приложения iOS, которое я создаю для своего iPad.Я настраиваю клиента и выходной порт, а также получаю конечную контрольную точку.MIDI Monitor на моем Mac читает сообщение о выполнении системы MIDI, когда я запускаю свой iPad, но больше ничего не происходит.У меня есть очень общее сообщение MIDISend, пытающееся отправить заметку на сообщение, но это не очень успешно.Мой iPad подключен через IDAM MIDI Host через Audio MIDI Setup, но я не могу получить что-либо для передачи.
Я уже пробовал использовать различные опции Core MIDI, такие как получить источник, получить объект источника, получить пункт назначения, почтивсе возвращают один и тот же тип свойства IDAM MIDI Host.В моем коде везде есть операторы print, пытающиеся выяснить, где моя проблема, но я застрял сейчас, так как не могу понять, что не так.
Вот некоторые функции, которые я сделал в классе для созданияклиент, создайте выходной порт и отправьте MIDI-информацию:
Некоторые объявления переменных вне этих функций:
func openClient(){
MIDIClientCreate("Gregs iPad" as CFString, nil, nil, &midiClient)
}
func createPort(){
MIDIOutputPortCreate(midiClient, "Output" as CFString, &outputPort)
}
func receiveSource () {
// determine how many devices are connected
midiDevice = MIDIGetDevice(2) // this is IDAM MIDI Host
let entcount = MIDIDeviceGetNumberOfEntities(midiDevice) // number of entities
ent = MIDIDeviceGetEntity(midiDevice, 0) // obtain the entity reference
// obtain the end point ref from this entity
midiSource = MIDIEntityGetDestination(ent, 0)
midiSource2 = MIDIEntityGetSource(ent, 0)
// Trying to send some MIDI within this function
let pack = UnsafeMutablePointer<MIDIPacket>.allocate(capacity: 1)
let packLst = UnsafeMutablePointer<MIDIPacketList>.allocate(capacity: 1)
//let midiDataToSend:[UInt8] = [UInt8(0xB0), UInt8(0x0A), UInt8(20)];
let midiDataToSend:[UInt8] = [UInt8(0x90), UInt8(60), UInt8(100)];
MIDIPacketListInit(packLst);
MIDIPacketListAdd(packLst, 1024, pack, 0, 3, midiDataToSend);
MIDISend(outputPort, midiSource, packLst)
MIDIReceived(midiSource, packLst)
print(packLst)
}
Iтакже попытался использовать MIDIReceived, чтобы посмотреть, будет ли что-нибудь отправлено, но безуспешно.Я ожидаю увидеть некоторую информацию, отправленную моему DAW по этому конкретному статусу и объявлению байтов данных, но, похоже, ничего не работает успешно.Любая помощь будет принята с благодарностью!