【发布时间】:2019-09-07 01:15:20
【问题描述】:
我正在尝试使用一个采样器录制 MIDI 音轨,但同时。对于每一个新的录音,它都会在音序器上创建新的轨道,使用不同的通道回调乐器。
当轨道不相交时,一切正常。但是,当我为与已录制曲目相交的新曲目添加注释时,仅播放时录制的曲目不会调用声音回调函数,它将是标准的“哔”。
这里是设置跟踪和回调函数的代码:
func startRecord() {
guard let newTrack = sequencer.newTrack() else { return }
recordingTrack = newTrack
recordingChannel = MIDIChannel(sequencer.tracks.count)
let midiInstrument = AKMIDICallbackInstrument()
let channel = recordingChannel
let sampler = currentSampler
midiInstrument.callback = { (status, note, velocity) in
let status = AKMIDIStatus(byte: status)!.type!
switch status {
case .noteOn:
try! sampler.play(noteNumber: note, velocity: velocity, channel: channel!)
case .noteOff:
try! sampler.stop(noteNumber: note, channel: channel!)
default:
break
}
}
newTrack.setMIDIOutput(midiInstrument.midiIn)
sequencer.rewind()
sequencer.preroll()
sequencer.play()
}
【问题讨论】:
标签: ios swift midi audiokit coremidi