Carabiner and request_beat_at_time

Hi there!

Again for my jamming sessions I figured out looking into Ableton Link could be a good idea, so I set up Carabiner according to the instructions and bingo - I can set and share the BPM. Thanks for your work!

However, I'm now trying to use request_beat_at_time but it seems Tidal does not care. Should it, or is this just not implemented?

I'm sending the Carabiner requests from LinkToPy (which reference I got from Carabiner).

Has anyone tried request_beat_at_time or force_beat_at_time?

Same here.

@domeav Did you ever get Tidal and Ableton in sync?

If you were going to sync them you'd need to sync on the bar, as Tidal doesn't really have a concept of a 'beat'. It's not clear to me what request_beat_at_time should do in TIdal.

Tidal itself may not have a concept of beat but the carabiner function has the bpc parameter which I read as beats per cycle so the handler should be able to act accordingly. But I guess, synchronising to the bar makes more sense.

Either way, it seems that in Carabiner.hs only the status message is implemented. So it's no surprise that Tidal does not synchronise its patterns with Abletons bars. Did I read that correctly? In that case, how would you go about syncing Tidal and Ableton?

Bar in Ableton and cycle in Ableton are the same thing really. It's not quite the same, as Ableton uses BPM as a measure, whereas Tidal uses cycles per second, so if you have time signature changes you'll have to think about what that means.

I think we are talking about different problems. Sorry for not being so clear.

My problem is (and I think OPs as well) the following:

Consider you have "synced" Tidal and Ableton via Carabiner by running Carabiner in the background, enabling tempo sharing in Ableton and running the following commands in Tidal

sock <- carabiner tidal 4 (-0.14)
sendMsg sock "bpm 140"

When you turn on the metronome In Ableton and in Tidal you play something like

d1 $ s "bd cp!3"

you would expect that the metronome clicks in Ableton and the beats in Tidal occur at the same time, but they don't. The events happen in the same tempo but with an offset that is different each time you change the tempo. Neither changing the tempo in Ableton nor in Tidal causes the metronome and the beats to line up.

My question is, how would you get the beats in Tidal to happen at the same time as the metronome clicks in Ableton?

I can't remember the details, but I've had tidal and link syncing to each other well, with tempo changing from an external source. Usually if you don't stay in phase when the tempo changes, it means you are aligned with the wrong beat.

There are surely some things missing from the tidal implementation, and carabiner is in any case a hacky approach.

It would be better to have direct integration with the Link library for much more solid syncing and there are some moves towards that: Make a usable interface for the link protocol via hylia · Issue #1 · yaxu/hylia-haskell · GitHub

You would need to sync on the cycle, and your quantum would be whatever the time signature is in Ableton.

The problem you're running into is that Ableton thinks in beats, on a metrical structure, whereas Tidal thinks in a cyclical structure where there can be any number of beats in a 'bar'. Those two things will only sync up at the beginning of each bar/cycle - but to translate from Tidal (cycles per second) to Ableton (beats per minute NOT bars per minute), you'll have to tell Ableton to synch with the time signature.

Thank you both for your comments. We'll try again tomorrow at our next session to sync up with the time signature. If it doesn't work, I guess we'll have to wait till the scheduler in Tidal has been rewritten.

Is there any further documentation on how to use Carabiner with Tidal apart from this: (Multi-User Tidal | Tidal Cycles)? The link in the toplab forum seems to be broken :frowning:

Here's the link page on the new documentation site:

Hi @yaxu, I'm using Carabiner to link with Ableton link a lot at the moment and it works fine for me. Indeed, if you change tempo's, it goes out of beat, but if you change the latency correction on the end of the line a bit up and down, it aligns very well again with Ableton link (feels a bit like with dj-ing, you shuffle the pitch of the second record player a bit forward and backward to align the beat with the record playing). I used that procedure in this performance ,a couple of times, two weeks ago : AI & Music S+T+ARTS Festival - Bot Bop - Integers & Strings - YouTube
The stringquartet gets there score generated on the spot, linked to Ableton Link, so it's very important for his project that Tidal is in sync with the rest of the band, and the beat is correct, and it works out pretty well, with a little workaround...Would be better of course, if we didn't have to do that . .