Как размножаться
- Я скопировал площадку "Инструмент обратного вызова" (которая работает) в новый проект. установлен AudioKit через pod (версия 4.8)
- Я удалил реализацию обратного вызова и поместил туда только оператор
print()
.
- Откройте рабочее пространство и запустите проект.
import UIKit
import AudioKit
class ViewController: UIViewController {
var sequencer = AKAppleSequencer()
var tempo = 120.0
var division = 1
var callbacker = AKMIDICallbackInstrument { statusByte, note, _ in
print("Callback called")
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let clickTrack = sequencer.newTrack()
for i in 0 ..< division {
clickTrack?.add(noteNumber: 80,
velocity: 100,
position: AKDuration(beats: Double(i) / Double(division)),
duration: AKDuration(beats: Double(0.1 / Double(division))))
clickTrack?.add(noteNumber: 60,
velocity: 100,
position: AKDuration(beats: (Double(i) + 0.5) / Double(division)),
duration: AKDuration(beats: Double(0.1 / Double(division))))
}
clickTrack?.setMIDIOutput(callbacker.midiIn)
clickTrack?.setLoopInfo(AKDuration(beats: 1.0), numberOfLoops: 10)
sequencer.setTempo(tempo)
sequencer.play()
}
}
Что происходит
- Обратный вызов не вызывается (журнал печати не печатается)
- Я слышу звук добавленных нот.
- Этот код работает на примере игровой площадки.