Как упорядочить необработанные значения вместо миди-нот с помощью Audiokit

Я новичок в Audiokit. Я хочу упорядочить набор значений Double raw, которые будут использоваться как аттенюаторы в модулях eurorack. Использование AKSequencer, по-видимому, невозможно, поскольку они предназначены для использования с дорожками (AudioKit.AKMusicTrack), посылая MIDI-данные в экземпляры AKMidi-Insrument. Как тогда можно упорядочить значения необработанных значений осциллятора или таблицы? Thnx!

1 ответ

Решение

Используя 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

...
Другие вопросы по тегам