#audiokit
#audiokit
Вопрос:
Я изучаю фреймворк AudioKit, и было необходимо создать фреймворк из исходных текстов, поскольку двоичные файлы 4.2 несовместимы с компилятором 5.0 в Xcode 10.2. Мне не удалось заставить MIDI-вывод работать ни на физическом устройстве, ни с использованием виртуального порта для другого приложения.
Я не могу заставить работать игровую площадку examples MIDI output playground. Я не получаю ошибок, но и MIDI-вывода тоже нет. Я использую следующее:
import AudioKitPlaygrounds
import AudioKit
let midi = AudioKit.midi
midi.openOutput()
import AudioKitUI
class LiveView: AKLiveViewController, AKKeyboardDelegate {
var keyboard: AKKeyboardView!
override func viewDidLoad() {
addTitle("MIDI Output")
keyboard = AKKeyboardView(width: 440, height: 100)
keyboard.delegate = self
addView(keyboard)
addView(AKButton(title: "Go Polyphonic") { button in
self.keyboard.polyphonicMode = !self.keyboard.polyphonicMode
if self.keyboard.polyphonicMode {
button.title = "Go Monophonic"
} else {
button.title = "Go Polyphonic"
}
})
}
func noteOn(note: MIDINoteNumber) {
midi.sendEvent(AKMIDIEvent(noteOn: note, velocity: 127, channel: 3))
AKLog("sending note (note)")
}
func noteOff(note: MIDINoteNumber) {
midi.sendEvent(AKMIDIEvent(noteOff: note, velocity: 0, channel: 3))
}
}
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
PlaygroundPage.current.liveView = LiveView()
Комментарии:
1. извините за плохое форматирование
Ответ №1:
Я понял это. Оказывается, что AudioKit фактически отправлял на канал 4 вместо канала 3. Похоже, что индекс канала уменьшен на 1.
Согласно разработчику, MIDI-каналы индексируются с 0, а не с 1, так что это ожидаемое поведение