Audiokit Ableton Link синхронизировать - PullRequest
0 голосов
/ 14 апреля 2020

Я только что успешно интегрировал ссылку с помощью33, как описано в ABLLinkManager.swift. https://gist.github.com/cemolcay/3c9badfa263888d686e3aa454a5adfb7. Ниже приведен пример использования:

override func viewDidLoad() {
  super.viewDidLoad()

  // Setup Link
  ABLLinkManager.shared.setup(bpm: 120, quantum: ABLLinkManager.QUANTUM_DEFAULT)

  // Subscribe tempo change events
  ABLLinkManager.shared.add(listener: .tempo({ bpm, quantum in
    self.tempo.bpm = bpm
  }))

  // Subscribe activation events
  ABLLinkManager.shared.add(listener: .activation({ isActivated in
    self.updateUI()
  }))

  // Subscribe connection events.
  ABLLinkManager.shared.add(listener: .connection({ isConnected in
    if isConnected {
      ABLLinkManager.shared.start()
    } else {
      ABLLinkManager.shared.stop()
    }

с возможностью запуска / остановись и поменяй темп. но я еще не разобрался, как правильно синхронизировать c приложение и возможность ссылки. когда я читаю из beatTime, число становится все выше и выше (из-за позиции песни в '' '' '')

, чтобы поместить все это в 16-ступенчатый формат, я сделал это вычисление:

let position:Double = ABLLinkManager.shared.beatTime
let bars = Int(floor(position / 4))
let beats = Int(floor(position.truncatingRemainder(dividingBy: 16)))

return beats

но тогда у меня есть, конечно, округленные числа, такие как 0, 1, 2, 3 ... и т. д.

я подумал, может быть, это хорошая идея остановить мой секвенсор и просто используйте секвенсор ссылок для запуска всех функций. есть ли какой-то обратный вызов внутри ссылки, где я могу

двигаться шаг за шагом в моем массиве заметок? разве это не будет более эффективным? как мне все это синхронизировать.

...