I ask this question since, in the first case, I notice that sometimes when I set the newBpm this makes the position in beat of the transport go back a little bit in time from what I had before setting the newBpm.
However, if I activate the audio metronome it happens that a few clicks feel doubled as I think what happens is that :
the audio engine makes the metronome click stroke heard.
I set a newBpm via the ableton link callback which takes me a few fractions of a beat back
I play the same click stroke again since then the transport is advanced going back to point 1)
In the second case this does not happen but I add too many points to the tempo sequence, which causes the application to crash.
Thanks @dave96 for the quick response but it’s not my case.
In want to implement a system where 2 apps is connected via ableton link.
The App1 is an ableton link master (sends the tempo changes) and the App2 is only an ableton link slave app (receives the tempo changes and set the bpm).
So the App2 never sends it’s bpm via the ableton link but it can only receives from the App1.
That shouldn’t be the case. setBpm will adjust all the clips and automation to the new tempo.
If you look at checkForTempoSequenceChanges you’ll see if the tempo sequence has changed, the playhead position is overriden so that the beat position is the same.
Be careful of calling trasnport->getPosition() twice on the message thread, there could well have been multiple audio callbacks in between them.
Have you tried just changing the bpm outside of using Link? Is that smooth?
I know this isn’t ideal but can I check what TE license you hold?
If this is going to take a lot of time to look in to and try and replicate, it will need to be prioritised alongside paying customers as per our licensing announcement:
Updates : @dave96
I tried to use Waveform 13 by activating Ableton Link and, with linkHut (compilable from the official Ableton repo link link/examples at master · Ableton/link · GitHub) and activating the metronome I noticed that the app crashes.