如何正确倒带音序器?

时间:2019-10-28 10:48:37

标签: swift audiokit

我正在为基本的耳朵训练构建一个小键盘。一切都很好,但是如果我点击得太快,那么音序器将在经过几次点击后才会播放新的声音,直到经过一段时间。这是我当前设置AudioKit的方式(我也使用声音字体作为钢琴声音):

    //setup
    let chosenNoteSequencer = AKAppleSequencer()
    _ = chosenNoteSequencer.newTrack()
    chosenNoteSequencer.setLength(AKDuration(beats: 1))
    chosenNoteSequencer.setTempo(150)
    chosenNoteSequencer.disableLooping()

    @objc func pressResponse(sender: UIButton) {
         if chosenNoteSequencer.isPlaying {
            chosenNoteSequencer.stop()
         }
         chosenNoteSequencer.rewind()
         chosenNoteSequencer.tracks[0].clear()
         chosenNoteSequencer.tracks[0].add(noteNumber: MIDINoteNumber(sender.noteNumber), velocity: 100, position: AKDuration(beats: 0), duration: AKDuration(beats: 1))
         chosenNoteSequencer.play()
    }

在我看来,如果声音数据具有一定的持续时间,则每次反复敲击都不会成功倒带音序器。如果我使用声音字体中较短的声音,则效果很好。我为此使用音序器的唯一原因是因为我可能仍想添加回调,并且因为我过去使用过它们;为了快速一致地演奏单个音符,可能有更好的方法来解决我目前不知道的问题。因此,我的问题是:有没有一种方法可以改善此设置,以便快速点击不会导致其“过热”,或者还有其他方法值得我研究?

0 个答案:

没有答案