gpt4 book ai didi

audiokit - AKMIDICallbackInstrument - 未调用回调

转载 作者:行者123 更新时间:2023-12-03 06:27:47 24 4
gpt4 key购买 nike

如何重现

  • 我将“Callback Instrument” Playground (有效)复制到一个新项目中。通过 pod 安装 AudioKit(版本 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()
}
}

发生了什么

  • 未调用回调(不打印打印日志)
  • 我可以听到添加音符的声音。
  • 此代码适用于示例 Playground。

最佳答案

如果您听到声音,但尚未将轨道连接到音频生成输出,那么您可能听到的是默认采样器。如果您没有在“后台模式”下启用音频,就会发生这种情况。如果您查看控制台输出,您应该会看到一条消息,指示您确保它已启用 - 这是 MusicSequence/AKAppleSequencer 所必需的。

关于audiokit - AKMIDICallbackInstrument - 未调用回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57954724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com