Как упорядочить необработанные значения вместо миди-нот с помощью 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
...