SuperTidebox is based on Buttetsu Batou's Tidebox.
A complete Tidal musical live coding and audio streaming environment inside Docker (now with SuperDirt!)
According to the official homepage:
"Tidal is a language for live coding pattern(s). It provides a way to express music with very flexible timing, providing a little language for describing patterns as discrete sequences (which can be polyphonic and polymetric), some generators of continuous patterns (e.g. sinewaves, sawtooths) and a wide range of pattern transformations."
If you are interested in more detail about the theory and execution of Tidal, Buttetsu and myself highly suggest you read this paper from its creator Alex McLean.
For an example of the types of patterns and techniques which are possible in Tidal, I would have you listen to the album RISC Chip from Kindohm. Kindohm also puts the code used in his albums up on Github, which is pretty darn cool.
SuperDirt is a drop-in replacement for the classic OSC-controlled Tidal sampler Dirt. It runs inside the multimedia live coding framework known as SuperCollider.
SuperCollider has a long history of being integrated into other projects because its synthesis engine, known as scsynth
, is incredibly powerful and hyper efficient. The integration of SuperCollider into Tidal makes it possible to combine powerful, custom-built effects and softsynths with the flexibilty and efficiency of the Dirt sampler.
Moving from Dirt to SuperDirt is like going from recording with a 4-track to a modern DAW, except that in this case you can build your own features and instruments.
In early 2016, Buttetsu Batou A.K.A. DoubleDensity created Tidebox as no-fuss way for people to spin up a working environment for playing with Tidal. No pesky building tools from source, no hardware requirements, and no fussing with application startup. Since then, a large portion of the community has moved from using Tidal with the classic Dirt sampler to SuperDirt for the aforementioned reasons.
I was hoping to simply fork Tidebox and make a pull request, but I could not get SuperCollider to cooperate on Fedora, so here we are. SuperTidebox is (for the moment) as close to being a 1:1 Tidebox-like experience as I could manage, but on Ubuntu and with SuperDirt.
- Install docker
git clone https://github.com/efairbanks/supertidebox.git
cd supertidebox
./deploy.sh
ssh localhost -p 2222
(password is algorave)- Point your browser to http://localhost:8090/stream.mp3
- Jam out!
destroy.sh
destroys the last deployed instance of SuperTideboxbuild.sh
builds the SuperTidebox imagerun.sh
runs the SuperTidebox image in a new containerdeploy.sh
runs the previous three helper scripts in order
Note: Any of the files included in
./config
or./tidal
will be updated in the image/container when you run./build.sh
or./deploy.sh
. Feel free to customize these to meet your needs.
- When you ssh in, you will be placed in a customized screen session
ctrl-C ctrl-C
executes linectrl-C ctrl-E
executes blockctrl-A ,
andctrl-A .
cycle through windowsctrl-A D
disconnects
- Sometimes, when building, sclang will have trouble pulling down SuperDirt. This may lead to a lack of audio, sclang errors, or a mysterious lack of audio. A pre-built version of supertidebox is currently in the works to circumvent this, but for the moment just rebuild and it should work.
- Currently, jack and sclang are not cooperating with the version of docker that ships with Mac OS, and this is untested in Windows. If you are having consistent issues with jack or sclang starting, I recommend running docker in linux or in a linux VM. Investigations into these issues are underway.
- FFMpeg dropped ffserver. This uses a forked copy of an older version of FFMpeg. This should be fine, but alternatives should be considered.
- There's some latency when streaming over ffmpeg. It's gonna happen. If you fall too far out of sync, refresh the page.
- This project is brand new. If you encounter issues, please let me know about them. I want this to be useful to the community, not just me.