|
TracktionEngine
|
Manages an Ableton Link session connecting an Edit with a number of networked peers, syncronising their tempos, bar phases and start/stop statuses. More...
#include <tracktion_AbletonLink.h>
Classes | |
| struct | Listener |
| When Link is on, you shouldn't set the tempo directly. More... | |
Public Member Functions | |
| AbletonLink (TransportControl &) | |
| Creates an Ableton Link connection for an Edit. | |
| ~AbletonLink () | |
| Destructor. | |
| void | setEnabled (bool isEnabled) |
| On iOS you need this to instantiate an ABLLinkSettingsViewController. | |
| bool | isEnabled () const |
| Is Link enabled? It may not be connected to any peers even if it is. | |
| bool | isConnected () const |
| Is Link connected to any other peers? | |
| size_t | getNumPeers () const |
| Returns the number of connected peers. | |
| bool | isPlaying () const |
| Returns whether the Link transport is currently playing. | |
| void | enableStartStopSync (bool enable) |
| Sets whether start/stop is syncronsied. | |
| bool | isStartStopSyncEnabled () const |
| Returns whether start/stop is syncronsied. | |
| std::optional< double > | getSessionTempo () const |
| Get the current session tempo. | |
| double | getBeatsUntilNextCycle (double quantum) const |
| Number of beats until the next bar (quantum) - e.g. | |
| void | setCustomOffset (int offsetMs) |
| Use to offset the calculations by some amount (on top of device latency). | |
| void | setTempoConstraint (juce::Range< double > minMaxTempo) |
| Once set, tempos chnages from link are transparently divided or multiplied by 2 to stay within this range (if possible). | |
| double | getBarPhase () const |
| Returns how far though the current bar the Link clock is. | |
| double | getChaseProportion () const |
| Returns how much chasing playback is doing. | |
| void | requestStartStopChange (bool isPlaying) |
| Request the Link session to start or stop playing. | |
| void | requestTempoChange (double newBpm) |
| Request the Link session to change tempo. | |
| void | addListener (Listener *) |
| Adds a listener. | |
| void | removeListener (Listener *) |
| Removes a previously added listener. | |
| void | syncronise (TimePosition) |
Manages an Ableton Link session connecting an Edit with a number of networked peers, syncronising their tempos, bar phases and start/stop statuses.
| engine::AbletonLink::AbletonLink | ( | TransportControl & | ) |
Creates an Ableton Link connection for an Edit.
Don't create one of these manually, get the one contained in the Edit with Edit::getAbletonLink().
| engine::AbletonLink::~AbletonLink | ( | ) |
Destructor.
| void engine::AbletonLink::setEnabled | ( | bool | isEnabled | ) |
On iOS you need this to instantiate an ABLLinkSettingsViewController.
Enable Link. On platforms other than iOS, Link connects automatically once this is set. On iOS the user must additionally switch Link on using the ABLLinkSettingsViewController. Off by default on desktop, on by default on iOS.
| bool engine::AbletonLink::isEnabled | ( | ) | const |
Is Link enabled? It may not be connected to any peers even if it is.
| bool engine::AbletonLink::isConnected | ( | ) | const |
Is Link connected to any other peers?
| size_t engine::AbletonLink::getNumPeers | ( | ) | const |
Returns the number of connected peers.
| bool engine::AbletonLink::isPlaying | ( | ) | const |
Returns whether the Link transport is currently playing.
| void engine::AbletonLink::enableStartStopSync | ( | bool | enable | ) |
Sets whether start/stop is syncronsied.
| bool engine::AbletonLink::isStartStopSyncEnabled | ( | ) | const |
Returns whether start/stop is syncronsied.
If you're not connected, this may not make sense.
| std::optional< double > engine::AbletonLink::getSessionTempo | ( | ) | const |
Get the current session tempo.
If you're not connected, the optional will be invalid.
| double engine::AbletonLink::getBeatsUntilNextCycle | ( | double | quantum | ) | const |
Number of beats until the next bar (quantum) - e.g.
supply 4.0 for 4/4 cycles.
| void engine::AbletonLink::setCustomOffset | ( | int | offsetMs | ) |
Use to offset the calculations by some amount (on top of device latency).
| void engine::AbletonLink::setTempoConstraint | ( | juce::Range< double > | minMaxTempo | ) |
Once set, tempos chnages from link are transparently divided or multiplied by 2 to stay within this range (if possible).
| double engine::AbletonLink::getBarPhase | ( | ) | const |
Returns how far though the current bar the Link clock is.
| double engine::AbletonLink::getChaseProportion | ( | ) | const |
Returns how much chasing playback is doing.
0 means perfectly in sync 1 means playback is speeding up as much as it can -1 means playback is slowing down as much as it can
| void engine::AbletonLink::requestStartStopChange | ( | bool | isPlaying | ) |
Request the Link session to start or stop playing.
This will in turn trigger a callback to linkRequestedStartStopChange which should be used to actually start the transport. [[ message_thread ]]
| void engine::AbletonLink::requestTempoChange | ( | double | newBpm | ) |
Request the Link session to change tempo.
This will in turn trigger a callback to linkRequestedTempoChange which should be used to actually change the tempo. [[ message_thread ]]
| void engine::AbletonLink::addListener | ( | Listener * | ) |
Adds a listener.
| void engine::AbletonLink::removeListener | ( | Listener * | ) |
Removes a previously added listener.
| void engine::AbletonLink::syncronise | ( | TimePosition | ) |