TidalCycles version 1.9.0

Tidal 1.9.0 is out with new ableton link support from @Zalastax!! This makes synched collaboration with other software/other tidal users a lot easier (it just works - it does not require any ableton software installed).

Install / upgrade now for FREE support in the #installation category here (or just post on this thread if you prefer), or #installation-help channel on the discord chat.

(ok help is always free but you'll get extra attention right now as we iron things out)

Windows users please note - you'll need at least version 9.4.2 of ghc to install tidal-1.9.0.

All the changes in 1.9.0: Release Siteswap · tidalcycles/Tidal · GitHub
Info on the link synchronisation: Multi-User Tidal | Tidal Cycles

Big thanks to all the contributors!


By the way it'd be really helpful if you could share your experience installing it in this thread, whether it went smoothly or not!

Here's an anonymous poll for installing/upgrading tidal 1.9.0:

  • Windows: Installed/upgraded smoothly!
  • Windows: Some problems, but went OK
  • Windows: Didn't manage it by myself
  • Mac: Installed/upgraded smoothly!
  • Mac: Some problems, but went OK
  • Mac: Didn't manage it by myself
  • Linux: Installed/upgraded smoothly!
  • Linux: Some problems, but went OK
  • Linux: Didn't manage it by myself

0 voters

Feel free to add more details/ask questions below..


1 Like

Thanks for the shout out @yaxu!

It has been fun but very challenging to integrate Link with Tidal. I was unfortunate to run into a showstopping bug in GHC, relating to using C++ libraries from Haskell on Windows. The GHC community was quick to respond but we probably added 6 months of lead time.

Integrating Link required a fairly large rewrite of the Tidal scheduler. I am pleased to say that it was a good experience where I could work through the rewrite methodically and with confidence. I attribute the success to a good code base and to the Haskell type system.

The Tidal community has been very supportive along the way! I look forward to hearing your feedback, booth good and things to improve.


The automated ansible installer for linux is installing cleanly -

The only issue encountered was a missing dependency for the tidal-link component of the build:

sudo apt-get install g++

The error this resolved looked like (adding for search engines):

"Starting     tidal-link-1.0 (lib)", "Installing   hsc2hs-0.68.8 (exe:hsc2hs)", "Completed    hsc2hs-0.68.8 (exe:hsc2hs)", "", "Failed to build tidal-link-1.0. The failure occurred during the configure", "step.", "Build log (", "/home/vagrant/.cabal/logs/ghc-8.8.4/tidal-link-1.0-3430d61ae80c210d6f127e842746a6b649d284c7a302019d4ce7f82eee35e7c3.log", "):", "Configuring library for tidal-link-1.0..", "cabal: Missing dependency on a foreign library:", "* Missing (or bad) C library: stdc++", "This problem can usually be solved by installing the system package that", "provides this library (you may need the \"-dev\" version). If the library is", "already installed but in a non-standard location then you can use the flags", "--extra-include-dirs= and --extra-lib-dirs= to specify where it is.If the", "library file does exist, it may contain errors that are caught by the C", "compiler at the preprocessing stage. In this case you can re-run configure", "with the verbosity flag -v3 to see the error messages."]

Thanks! @Zalastax @yaxu

Hi @cleary, we had an issue with tidal-link where the published package was outdated and didn't use system-cxx-std-lib even on GHC 9.4 where it's supported. It would be interesting to know if separate install of g++ is still needed after we fixed that.

I think my llvm is all messed up, not sure how to fix it. I do have llvm@13 installed.

: error:
Warning: Couldn't figure out LLVM version!
Make sure you have installed LLVM between [9 and 13)

On an M1 Mac Monterey 12.4

It says: [9 and 13), so you need LLVM between 9 and 12, as the upper bound is not included. Maybe they should use a more clear syntax :smiley:

1 Like

I'm on an M1 Mac, and I had some problems. I made the, probably not great, decision to reinstall Haskell, using the script at haskell.org. This failed, with messages like

[ ghc-configure ] checking whether the C compiler works... no

Maybe there's a problem with the M1. A hint from Reddit seems to help, adding arch -x86_64 /bin/bashto the install command. Like so:

curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | arch -x86_64 /bin/bash

Then, cabal update and cabal v1-install tidal, succeeds with "Completed", and it seems to work perfectly well!

It would be interesting to know whether it's really necessary to use the x86 Haskell version.

1 Like

As of tidal 1.9.x, you can either force arch as you have, and run an x86 build, or you can shift to a full-ARM toolchain but will need to do that completely from scratch via an ARM (re-)install of GHCUp. Once you've cleared out the old bits and installed an ARM GHCUp, use ghcup to install (as of right now) GHC 9.4.2 and cabal before attempting to install and run tidal.

(If you wish to do development work you can also have it install HLS, and in fact a fully-ARM toolchain now seems to be pretty much a requirement on these machines for current tidal development (older versions were happier with an x86 toolchain.))

[Disclaimer: I'm building and running from tidal source, though what I've written above should safely cover normal installation and use, since the development requirements are even steeper than the usage requirements.]

[solved it - solution below]
I have some issue using tidal after the upgrade. It seems to install fine:

~$ cabal v1-install --reinstall  tidal
Resolving dependencies...
In order, the following will be installed:
tidal-1.9.2 (reinstall)
Warning: Note that reinstalls are always dangerous. Continuing anyway...
Starting     tidal-1.9.2
Building     tidal-1.9.2
Completed    tidal-1.9.2

Also the superdirt part upgraded fine, and I see no errors in SC when running.

In emacs however, after updating the MELPA list and after updating It says this in the list

  tidal              20220808.1553 installed             Interact with TidalCycles for live coding patterns

is this the latest and greatest? When I start tidal in emacs, I get:

Loaded package environment from /home/kaos/.ghc/x86_64-linux-9.0.2/environments/default
GHCi, version 9.0.2: https://www.haskell.org/ghc/  :? for help
ghci> [TidalCycles version 1.8.0]
Installed in /home/kaos/.cabal/store/ghc-9.0.2/tidal-1.8.0-2a47c0c6527dc3c143d5f91321af2258c1bfe7043c9a3703a946b154a5ecac25/share
Listening for external controls on
tidal> Waiting for SuperDirt (v.1.7.2 or higher)..

It seems like it is pointing to the wrong directory, but when list /home/kaos/.cabal/store/ghc-9.0.2 tidal 1.9.2 sure enough is not there...

I removed the .ghc and .cabal directories, installed using cabal v1-install tidal, done...

Glad you solved it, unfortunately cabal breaks easily and clearing out these folders and reinstalling is often the best way..

hi. i was really excited to hear that the new tidal version had integrated the ableton link feature. i am less interested in changing tempos dynamically or jamming with other people -- i simply want a way to snap a tidal event to the ableton grid for some light post-performance editing. even with link enabled in ableton, my tidal events are still falling slightly to either side of the grid making it impossible to snap/quantize my compositions after recording them. can anyone help?

1 Like

Yes, i would also like to know if there is a way to offset the tidal link clock, like before with carabiner.

I am experiencing some timing issues as well when trying to forward osc messages to max/msp,
everything is fine when the tempo is at 100bpm but at other bpm the timing shift randomly almost in a swing fashion, and i get tons of skip messages when using a lot of continuous signals.

Any ideas on what's going on?

1 Like

Hi @kit-christopher, adjusting the oLatency configuration parameter should let you make the event fall earlier or later on the timeline as needed. This can be done in the boot file The Boot File | Tidal Cycles. I'll make note of that I should update the documentation to reflect that.

Trigger a pattern from the start | Tidal Cycles can also be used to play with this on the fly.

Hi @vlachaizle, I don't know what could be the problem. We can help you troubleshoot on Discord or in a Github issue if you want?


Just updated from Tidal 1.8 to 1.9 on MacOS Monterey. For some reason (might be unrelated), XCode wasn't really happy and the compiling part failed but everything went fine after reinstalling XCode Command Line Tools. Everything is working like a charm now, just like before!

@Zalastax thank you, i will give this a shot.

[update]: i was able to adjust the oLatency down by just a few hundredths or something really small and was able to get the events mostly lined up. it's still not perfect. just out of curiosity, why wouldn't it just automatically snap to the grid if it's "linked"?

That's a great question @kit-christopher! I hope I can make it clear below.

Ableton Link is not aware of the latencies of different signal paths. It has a concept of a shared timeline where timings are relative to when the sound will hit the speakers. But how far ahead should the sound be produced to hit the speakers at the right time? We don't know. Different software will have different latency and we thus need to adjust for latency. How to adjust sync when using Link says "Sometimes playback might be slightly offset, this is usually due to different playback latency of devices." For me, 50 ms ahead of time was suitable and what I put in Tidal/BootTidal.hs at main · tidalcycles/Tidal (github.com)