Миди-вход Audiokit 4.9 больше не работает IOS - PullRequest
2 голосов
/ 17 октября 2019

Что-то изменилось с последней версией 4.9 относительно ввода MIDI? Казалось, хорошо работает с 4.7, но теперь работает только MIDI-выход. Протестировано с использованием IOS 12 и 13.

При запуске я вызываю midi.openInput () и затем midi.addListener (self), а затем использую функции делегата для получения сообщений.

Ответы [ 2 ]

3 голосов
/ 18 октября 2019

@ Дядя Кенни,

Я не верю, что проблема с MIDI-входом связана с AudioKit;Изменения, похоже, связаны с тем, как Xcode 11, iOS 13 и macOS Catalina теперь обрабатывают (или не обрабатывают) MIDI. AudioKit 4.9 - это версия, которая компилируется с Xcode 11.1. Его библиотека MIDI должна быть такой же, но это может быть проблемой;Apple, возможно, изменила это без предупреждения.

Можете ли вы заставить свой MIDI-контроллер управлять любым другим MIDI-приложением на iOS 13, например, Animoog, GarageBand или? Я не могу запустить ни один из синтезаторов Korg или GarageBand через мой контроллер KMI QuNexus, и он работал без сбоев до iOS 13. Поэтому я не верю, что проблемы с MIDI ограничиваются AudioKit. Но я могу ошибаться.

Как вы, возможно, знаете, многие компании, занимающиеся музыкальным оборудованием и программным обеспечением, советуют музыкантам , а не обновить до MacOS Catalina или iOS 13, если они хотят сохранить свои существующиерабочий процесс или продолжить выполнение с внешними MIDI-устройствами:

ДругойСтранно, симуляторы iOS 13 в Xcode 11.1 не содержат необходимых драйверов MIDI для успешного запуска приложений с поддержкой MIDI. Вот обходной путь:

https://github.com/AudioKit/AudioKit/issues/1872#issuecomment-536223521

Я рекомендую вам сообщить об ошибке об этом. Мы все должны, потому что это серьезная проблема, которая, похоже, нарушает работу MIDI на iOS и macOS. Если появятся новые изменения MIDI, Apple должна быть громкой и ясной о том, что это такое.

https://developer.apple.com/bug-reporting/

Надеюсь, это поможет.

1 голос
/ 06 ноября 2019

Убедитесь, что вы правильно внедряете протокол AKMIDIListener. В последнее время произошли некоторые изменения в добавлении portID для MIDI-входа и смещения для обеспечения точной выборки обработки MIDIПодписи вашего метода для протокола должны включать эти новые элементы, такие как:

func receivedMIDINoteOn(noteNumber: MIDINoteNumber,
                        velocity: MIDIVelocity,
                        channel: MIDIChannel,
                        portID: MIDIUniqueID? = nil,
                        offset: MIDITimeStamp = 0) {

, если у вас все еще есть:

func receivedMIDINoteOn(noteNumber: MIDINoteNumber,
                        velocity: MIDIVelocity,
                        channel: MIDIChannel) {

, которые больше не будут вызываться, вам нужны два новыхпараметры. НТН

...