Another Tidal Docker container
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


A complete Tidal musical live coding and audio streaming environment inside Docker

Getting started

Branches for each TidalCycles version

Currently, there's a branch for:

TidalCycles 0.6 + MIDI

  • 🌱 branch
  • πŸ”— download
  • 🐳 docker pull lvm23/tida1vm:0.6

TidalCycles 0.7 + MIDI

  • 🌱 branch
  • πŸ”— download
  • 🐳 docker pull lvm23/tida1vm:0.7

TidalCycles 0.7 + Dirt

  • 🌱 branch
  • πŸ”— Download
  • 🐳 docker pull lvm23/tida1vm:0.6

TidalCycles 0.8 + MIDI

  • 🌱 branch
  • πŸ”— Download
  • 🐳 docker pull lvm23/tida1vm:0.8

TidalCycles 0.8 + MIDI (Volca Beats + Volca Bass only)

  • 🌱 branch
  • πŸ”— Download
  • 🐳 docker pull lvm23/tida1vm:volca

TidalCycles 0.8 + MIDI + EspGrid

  • 🌱 branch
  • πŸ”— Download
  • 🐳 docker pull lvm23/tida1vm:espgrid

TidalCycles 0.8 + SuperDirt

  • 🌱 branch
  • πŸ”— Download
  • 🐳 docker pull lvm23/tida1vm:superdirt

TidalCycles 0.9 + SuperDirt

  • 🌱 branch
  • πŸ”— Download
  • 🐳 docker pull lvm23/tida1vm:0.9

All of them are equally stable (ie: run at your own risk :neckbeard:)

So, let's say, you want to run the 0.9 version, simply:

$ git clone
$ cd tida1vm
$ git checkout 0.9
$ docker build -t tida1vm-0.9 .
$ docker run -ti --rm --net=host --name tida1vm lvm23/tida1vm:0.9

or just:

$ docker pull lvm23/tida1vm:0.9
$ docker run -ti --rm --net=host --name tida1vm lvm23/tida1vm:0.9

MIDI Ports

See the README for each branch.

Custom tidal-midi Synths

For 0.6, there's a forked version of tidal-midi here, removing most of the synths (which I don't have) and added GM1Drums.hs configured after GM1 standards for percussion in GM soundfonts. Uses gdrum (works with drum too, but won't recognize all GM1 values).
For 0.7, since it has MIDI integrated, I created a repo for FluidSynth here with two exposed modules: GMDrums.hs and GMInst.hs, one for Drums and other for the rest of the instruments.
For 0.8, it should be integrated within tidal-midi.


There's a small script in the helper directory called midithru-connect which connects clients to "Midi Through".

usage: midithru-connect [-h] [-v] [-a] [-c CONNECT] [-d DISCONNECT]

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         shows the current version
  -a, --all             auto connects all clients available
  -c CONNECT, --connect CONNECT
                        connects a client to midi through
  -d DISCONNECT, --disconnect DISCONNECT
                        disconnects a client off midi through

Extra docs

For more info, take a look at the wiki.

What's the difference with Tidebox?

This container has configurations which are probably useful to me only, such as:

  • tidebox uses tidal+dirt and tida1vm uses tidal+tidal-midi.
  • Runs Debian Jessie instead of Fedora
  • A particular midi-port <-> tidal-stream config
  • Uses tmux instead of screen
  • Doesn't use Dirt
  • Doesn't use jack directly (though the host might)
  • Doesn't use ffserver (so I dropped dependencies on ffmpeg, lame and its libs)
  • Doesn't use supervisor
  • Doesn't use sshd