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.
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 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."]
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'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:
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 3.8.1.0 before attempting to install and run tidal.
(If you wish to do development work you can also have it install HLS 1.8.0.0, 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 127.0.0.1:6010
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...
[solved!]
I removed the .ghc and .cabal directories, installed using cabal v1-install tidal, done...
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?
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.
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.
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!
[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)