Link support preview

Hi all, new link support is here, please help test it!

Update: Instructions now here: https://tidalcycles.org/index.php/Link_synchronisation

Please post to let me know whether it works or not, and what operating system you’re using, thanks!

7 Likes

Testing it now, very interested in such update. Thanks Alex !

edit: works as expected with Live 10.1 most recent beta, fantastic ! :smiley:

@nilhartman That’s good news - what o/s and what latency adjustment did you make?

Note that to avoid named conflicts, start is now renamed carabiner.

Instructions are now here: https://tidalcycles.org/index.php/Link_synchronisation

OSX 10.14.4. I haven’t tried changing the latency yet as everything sounded good, nor changing the BPM from Tidal. Changing tempo from Live works though.

Will test further ASAP.

I must say directly tested Link the way I’ll use it (because I definitely will ;)), syncing both Live and Tidal clocks and transport, and once again it works flawlessly.

Thanks again anyway, proper workflow enhancer here :wink:

Hm, I’d be surprised if transport works, if you mean starting and stopping the clock… Let me know!

My bad, you’re right indeed :slight_smile:

Worked well for me, also on OSX 10.14.4, with Ableton 9.7.7. Adjusting latency to -0.24 got it spot on.

1 Like

By typing below, I tried to connect tidalcyles to carabiner.

 sock <- carabiner tidal 4 (-0.14)

But I got error like this.
Does anyone know how to fix this?

:34:9: Variable  not  in scope: carabiner :: t0 -> Integer -> Double -> IO a0:34:19: error: tidal> Variable not in scope: tidal

You’ll need to upgrade tidal too, from the commandline:

cabal update
cabal install tidal

and updating your editor plugin/tidal boot script as well.

Genuine, newb question : can these lines of code be added to our custom BootTidal.hs file ? And if so, how ? I’ve tried but it didn’t work. Thanks !

Yes just adding this bit after the startTidal line should be fine.

sock <- carabiner tidal 4 (-0.14)
1 Like

Er, accidentally ‘withdrew’ my above post… so…

Since I have found it impossible to remember sock <- carabiner tidal 4 (-0.1) , I created this shortcut:

link = do
  sock <- carabiner tidal 4 (-0.1)
  putStrLn "Starting Link synchronisation..."

Then you just do link to get going.

UX detail: since you only want to run this once, but tweaking the latency might be required to get it right, it’s easier to forget about the latency parameter and use nudgeAll or something instead.

I don’t know how missed this, but so great that it works.
Totally loving it.

Bug report :confused:
OSX Mojave 10.14.6, most recent TC build & Atom : evaluating Carabiner’s command line in Atom interrupts MIDI streaming from SuperDirt to Live 10.1.1. And it does it everytime here. I have to restart SC3 to get MIDI to work again.
I’ll add that none of it happened prior to 10.14.6. (or Live 10.1.1 ? … though I can’t really say as Live updated silently).
Cheers!

Any tips for this on Windows? I have carabiner running, tidal appears to connect (clients in carabiner goes to 1 or even more if I keep running that link snippet) but Bitwig doesn’t pick it up and sync. Usually Bitwig is really good at syncing with link.

Link should ‘just work’, maybe windows is blocking carabiner’s network connections?

I think it was my VPN - looks like thr routing got all weird with it running. Now it works great!

Could it simplify linking / make it more reliable ?

For some reasons I haven’t identified, I can’t make Carabiner work both ways the way it used to (for instance, when changing BPM, Live will change Tidal’s… but the opposite doesn’t work any longer).

I think no – if Tidal’s clock is controlling pattern timing, then Tidal has to implement Link.

It would be different if Tidal were constructing sclang patterns that run on SC’s scheduler but I’m pretty sure that’s not how it works.

hjh