Skip to content
Switch branches/tags


Failed to load latest commit information.
Latest commit message
Commit time
May 17, 2016
May 11, 2016
May 11, 2016
Jun 30, 2020


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

TidalCycles 0.7 + MIDI

TidalCycles 0.7 + Dirt

TidalCycles 0.8 + MIDI

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

TidalCycles 0.8 + MIDI + EspGrid

TidalCycles 0.8 + SuperDirt

TidalCycles 0.9 + SuperDirt

TidalCycles 1.0

TidalCycles 1.6.1

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



Another Tidal Docker container



No packages published