Apple MusicSequence
( AKSequencer
) , , " " , . , , , , , .
AudioKit 4.2.4 . AKMusicTrack .getMIDINoteData()
AKMIDINoteData
, , . 16- , , - :
let loopStart = 12.0
let loopLength = 4.0
let originalLength = 16.0
let originalContents = track.getMIDINoteData()
let loopSegment = originalContents.filter { loopStart ..< (loopStart + loopLength) ~= $0.position.beats }
let shiftedSegment = loopSegment.map { AKMIDINoteData(noteNumber: $0.noteNumber,
velocity: $0.velocity,
channel: $0.channel,
duration: $0.duration,
position: AKDuration(beats: $0.position.beats - loopStart))
}
track.replaceMIDINoteData(with: shiftedSegment)
seq.setLength(AKDuration(beats: loopLength))
seq.enableLooping()
track.replaceMIDINoteData(with: originalContents)
seq.setLength(AKDuration(beats: originalLength))
seq.enableLooping()
, , shiftedSegment
16 .