AudioKit: Как мне избежать попадания в большой процессор, которое я получаю с помощью midi 'through' и одновременных нот? - PullRequest
0 голосов
/ 24 февраля 2019

Реализация миди-сквозных виртуальных портов для секвенсора на iOS.

Это прекрасно работает для мелодий

midi.createVirtualPorts(98536, name: "MyMagicMIDI")

midi.addListener(self)

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

    midi.sendNoteOnMessage(noteNumber: noteNumber, velocity: velocity)

}

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

    midi.sendNoteOffMessage(noteNumber: noteNumber, velocity: velocity)

}

Но играйте идеально одновременный аккорд с приложением chorder или из другогосеквенсор и я получим звуковой удар процессора iPad 2017 года.Использование процессора с одиночными нотами (даже супер-быстрыми арпеджио) составляет 1% или менее, но я заметил цифры 44% и 77% в XCode вместе с разбитым звуком и пропущенными событиями миди (отключение нот и последующие заметки), когда ониодновременные заметки попали.Удаление sendNoteOnMessage и просто печать noteNumbers на консоль работает без особых усилий (как мы могли бы представить с большим количеством великолепных «последовательных» приложений AudioKit с полифоническим генератором).Протестировано с использованием AudioKit 4.5.5 и 4.6.1.

...