ios - 如何使用 Audiokit 对原始值而不是 midi 音符进行排序

标签 ios swift audio audiokit aksequencer

我是 Audiokit 的新手。我想对一组 Double 原始值进行排序,以用作 eurorack 模块中的衰减器。使用 AKSequencer 似乎是不可能的,因为它们旨在与音轨 (AudioKit.AKMusicTrack) 一起使用,将 MIDI 数据发送到 AKMidi-Insrument 实例。 那么如何对 f.e. 进行排序呢?原始振荡器或表属性值?谢谢!

最佳答案

使用 AKCallbackInstrument 和序列长度数组中的一些值是可能的

let sequenceLength = AKDuration(beats: 8.0)
let sequencerCallbackInst = AKCallbackInstrument()
var seq1Values = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

...

sequencer.setLength(sequenceLength)
let stepSize: Float = 1 //1/8
let numberOfSteps = Int(Float(sequenceLength.beats) / stepSize)

...

let seqPositioncallbackTrack = sequencer.newTrack()
seqPositioncallbackTrack?.setMIDIOutput(sequencerCallbackInst.midiIn)
        sequencerCallbackInst.callback = { status, noteNumber, velocity in
            self.onSequencerStepChange(status: status, noteNumber: noteNumber, velocity: velocity)
        }

...

for i in 0 ..< numberOfSteps {
            seqPositioncallbackTrack?.add(noteNumber: MIDINoteNumber(i), velocity: 100, position: AKDuration(beats: Double(i)), duration: AKDuration(beats: 0.5))

...

    private func onSequencerStepChange(status: AKMIDIStatus, noteNumber: MIDINoteNumber, velocity: MIDIVelocity) {

        guard status == .noteOn
        else { return }

        let stepValue = Int(noteNumber)
        // do something

...

关于ios - 如何使用 Audiokit 对原始值而不是 midi 音符进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49071614/

相关文章:

objective-c - NSURL 在模拟器中为空,但在 iPad 上没问题

ios - NSNotification 被多次调用

ios - 作为@noescape传递给Objective-C的闭包参数已转义

android - 双簧管音频流格式 : will the int16_t format disappear?

ios - 长按手势后 Mapbox 在 map 上找到注释

ios - UITextFieldDelegate textFieldShouldReturn 与 ReactiveCocoa

ios - Swift PDFDocument 为文件和 url 返回 nil

android - 检测或估计 Android 上的蓝牙延迟(音频播放)

ios - 如何在iOS应用程序上播放的吉他音频样本中应用诸如潜水(音高转换)或哇哇音(压缩)之类的吉他效果?

ios - 在相机 View 中显示 UIView