Ableton / LinkKit

iOS SDK for Ableton Link, a new technology that synchronizes musical beat, tempo, and phase across multiple applications running on one or more devices.
http://ableton.github.io/linkkit
Other
147 stars 10 forks source link

TEMPO-3: When connected, loading a new document should not change the Link session tempo #28

Closed BlipGit closed 7 years ago

BlipGit commented 7 years ago

I can see the rationale for this, but what's the best way to handle documents (ie. sequences) which have tempo automation? I can think of a couple of options:

  1. The app to disables tempo automation when ABL peers are connected. However, this may not be what the user always desires.

  2. The app uses the ABL current tempo until the sequence reaches its first tempo change event, which it then proposes to ABL.

On a related note, if the tempo automation is a ramp, is there any problem with continuously proposing small tempo changes to ABL on every audio callback while the ramp is in progress?

fgo-ableton commented 7 years ago

The test is meant to make sure that you don't propose a new tempo when opening a set and not playing. When playing back a tempo automation it is ok to update the tempo periodically. Link will limit the amount of updates being sent to the network. There is an edge case though when multiple peers are playing back a tempo automation. In that case the peers will detach while continuously proposing new BPM values. So it might make sense to give the user an option to disable the automation.

BlipGit commented 7 years ago

OK, that makes sense - thanks for the clarification.

So for the simpler situation where the user opens a set with no tempo automation (ie. the sequence has a fixed tempo), do you expect the app to:

A. Propose the new tempo when the user hits play, or B. Follow ABL's current tempo until the user explicitly changes the tempo via the app's UI?

Option A makes most sense to me from a user's perspective (otherwise they'd have to ask others what the tempo is before they can join to avoid affecting the session). I gather then that the app should visually show that the document's tempo is being overridden by ABL via some means (eg. icon/colour change etc.).

fgo-ableton commented 7 years ago

I agree. Option A seems reasonable. Adapt Link's BPM when connecting - and when playing an automation propose changes to the network. Live lets the user know that the document has changed when adapting to a tempo from the network.