Based on the work of DoubleDensity's Tidebox
A complete Tidal musical live coding and audio streaming environment inside Docker
$ git clone https://github.com/lvm/tida1vm
$ cd tida1vm
$ git checkout 0.6
$ docker build -t tida1vm-0.6 .
$ docker run -ti --rm --privileged -v /dev/bus/usb:/dev/bus/usb --name tida1vm6 tida1vm-0.6
All of them are connected to ALSA "Midi Through".
Device | Stream | MIDI Port | Tidal Midi | Soundfont | Notes | Alias |
---|---|---|---|---|---|---|
Volca Beats | beats | 1 | VolcaBeats.hs | |||
Volca Bass | bass | 2 | VolcaBass.hs | |||
Qsynth | drums | 3 | GM1Drums.hs | FluidR3_GM | Bank 128 / Prog 25 | |
{Q,am}synth | midi4 | 4 | SimpleSynth.hs | |||
{Q,am}synth | midi5 | 5 | SimpleSynth.hs | |||
{Q,am}synth | midi6 | 6 | SimpleSynth.hs | |||
{Q,am}synth | midi7 | 7 | SimpleSynth.hs | |||
{Q,am}synth | midi8 | 8 | SimpleSynth.hs | |||
{Q,am}synth | midi9 | 9 | SimpleSynth.hs | |||
{Q,am}synth | midi10 | 10 | SimpleSynth.hs | |||
{Q,am}synth | midi11 | 11 | SimpleSynth.hs | |||
{Q,am}synth | midi12 | 12 | SimpleSynth.hs | |||
{Q,am}synth | midi13 | 13 | SimpleSynth.hs | |||
{Q,am}synth | midi14 | 14 | SimpleSynth.hs | |||
{Q,am}synth | midi15 | 15 | SimpleSynth.hs | |||
{Q,am}synth | midi16 | 16 | SimpleSynth.hs |
They used to be named based on a particular use, now it's more generic.
In order to alias any stream, just write in your .tidal
file, something like:
let something = midi4
-- now it can be used as:
something $ n $ tom "c d e f"
I forked the 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 and uses gdrum
(works with drum
too, but won't recognize all GM1 values).
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
For more info, take a look at the wiki.