Install Tidal on Debian Stretch

Posted on May 14, 2018 by Matthew Tift
Tags: Tidal

Toggle Dark Theme

TidalCycles (or just “Tidal”) is a programming language used for live coding. I’ll leave further details about Tidal for another post, but essentially Tidal facilitates creating music with code. While the Tidal community hopes to make installing Tidal on GNU/Linux easier, I struggled to get Tidal working on Debian stable.

This post is partly “install guide,” partly “moderately-tested brain dump” of what I’ve learned. The information here might prove helpful for someone struggling to get Tidal working on Debian stretch – potentially me if I break something. While some of what I’m including here comes from the Tidal install guide, I contradict the instructions on a few key points. Once I got everything working on one laptop, I repeated the steps below on another laptop – both running Debian stretch. I apologize for any errors.

More importantly, I welcome feedback! I’d like to either contribute back to the Tidal documentation, create an install script that works for Debian (similar to in the Tidal repo), or figure out some way to package (or help package) Tidal for Debian.

But in the meantime, I suggest installing Tidal like this:

Step 1: Install JACK

The install guide does not mention the JACK Audio Connection Kit, but I found JACK necessary to get Tidal working on Debian. JACK, PulseAudio, and ALSA can function in a wide variety of configurations, but I prefer running JACK alongside PulseAudio (which I learned to do, in part, from some old Fedora docs).

sudo apt install qjackctl pulseaudio-module-jack
sudo gedit /etc/pulse/
load-module module-jack-sink
load-module module-jack-source

These instructions work for me, but occasionally I still have to manually kill PulseAudio (pulseaudio -k) when JACK is running. Also, in some scenarios when JACK is running, I can only control the volume in my headphones using alsamixer, which feels clunky.

Step 2: Install Git

If you don’t already have git installed, install it with:

sudo apt install git

Step 3: Install Haskell Cabal

Tidal’s installation directions for GNU/Linux say that Haskell Stack is a requirement and suggest to use the haskell-stack included with your distribution. However, I have Tidal working without Haskell Stack. The haskell-stack package from stretch does not include support for upgrading with stack upgrade --binary. Further, running stack upgrade or stack install tidal (the suggested method to install Tidal) both result in this error:

AesonException "Error in $.packages.cassava.constraints.flags:failed to parse field packages: failed to parse field constraints: failed to parse field flags: Invalid flag name: \"bytestring--lt-0_10_4\""

The Haskell Stack documentation regarding Debian suggests running their install script (curl -sSL | sh), and I can confirm that it works. But we use Debian stable, so we don’t like to install software that way.

The solution to this problem that I prefer is to use Cabal. You can install it with this command:

sudo apt install cabal-install

Step 4: Install Tidal

Rather than use stack to install Tidal, as the Tidal install directions suggest, install Tidal with Cabal:

cabal update; cabal install tidal

Step 5: Install SuperCollider and the plugins

sudo apt install supercollider sc3-plugins

Step 6: Install SuperDirt (once)

SuperDirt Start
SuperDirt Start

Step 7: (Optional) Install Atom

Once again I am going to contradict the install directions, which state “You need to have four pieces of software, Haskell Stack, Atom, SuperCollider and Git.” Atom, like Haskell Stack, is not required, and further down the page it says, “If you prefer using another editor (rather installing Atom as described above), you can” use Sublime Text, Emacs, or Vim. It seems that a lot of people using Tidal run it in Atom, and that works well. If you’d rather run Tidal in another text editor, skip to the next step. If you would like to install Atom, follow these directions.

wget --output-document=/tmp/atom.deb
sudo dpkg -i /tmp/atom.deb
Install Tidal in Atom
Install Tidal in Atom

Step 8: (Optional) Install an alternative text editor

If you did not install Atom, then this step is a requirement. Follow the directions for your preferred text editor. I did not test all of the options, but I can confirm that the vim plugin works great and that it is highly configurable.

Step 7: Use Tidal

Now that you have everything installed, here are the steps for using Tidal.

First, start JACK in QjackCtl

Second, start SuperCollider

Third, start your text editor

In case of trouble

I hope you enjoy Tidal!