You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+34-14Lines changed: 34 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,42 +4,61 @@
4
4
5
5
> A complete Tidal musical live coding and audio streaming environment inside Docker
6
6
7
-
Run Tidal immediately on any available compute node and stream the output to any target. No sound hardware or elevated permissions are required on the Docker host.
7
+
## What is Tidal?
8
+
9
+
According to the official [homepage](http://tidal.lurk.org):
10
+
11
+
"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."
12
+
13
+
Said differently, Tidal lets you rock out and explore sound and rhythm in real time from the context of a text editor.
14
+
15
+
If you are interested in more detail about the theory and execution of Tidal I highly suggest you read [this paper](https://raw.githubusercontent.com/yaxu/Tidal/master/doc/farm/farm.pdf) from its creator [Alex McLean](https://twitter.com/yaxu).
16
+
17
+
For an example of the types of patterns and techniques which are possible in Tidal, see the album [Expedition](https://kindohm.bandcamp.com/album/expedition) from [Kindohm](https://twitter.com/kindohm).
18
+
19
+
## Why Tidebox?
20
+
21
+
The goal of Tidebox is to allow anyone to run Tidal immediately on any available compute node and stream the output to any target. No package installation or configuration need. No sound hardware or elevated permissions are required on the Docker host.
8
22
This allows for the use of very-low end performance hardware to control and compose the session while harnessing greater resources on remote hosts, clusters and public cloud infrastructure.
9
23
10
24
Many thanks to Tidal and the entire live coding community for making such fun and exciting software!
11
25
12
26
## Getting started
13
27
14
28
First you will want to start the container:
15
-
16
-
docker run -it --net=host quay.io/doubledensity/tidebox:0.1
17
29
18
-
Tidebox should be run in interactive terminal mode with `-it` so that you can interact with the Emacs session.
30
+
```bash
31
+
docker run -d quay.io/doubledensity/tidebox:0.2
32
+
```
33
+
34
+
Tidebox has been re-written for 0.2 so that it can now be run 'headless' as a detached Docker container and no longer requires an interactive terminal to run.
19
35
20
-
In this initial release a controlling terminal is required, and running the container as a daemon is not yet functional. I am working to augment this so that daemonization is supported to facilitate running on the Google Container Engine service.
36
+
* After launching the container you can ssh in to it using the user name `tidal` and the password `livecoding`
21
37
22
-
You do not need to use `--net=host` although it may make it easier for you to reach the stream from a remote host depending on your Docker networking setup.
38
+
The Tidal session will begin automatically upon login. You can detach at any time from your session by using `CTRL-A-D`; Tidal will keep playing, and you can re-attach at any time by ssh'ing back in.
23
39
24
-
Once the container is started, the FFserver process providing the audio stream is exposed on port 8090.
40
+
The FFserver process providing the audio stream is exposed on port 8090 and sshd is on port 22.
25
41
26
42

27
43
28
-
Then you can connect to the stream with any media player which supports streaming mp3 such as VLC, iTunes, MPlayer, mpg123, etc.
44
+
You can connect to the stream with any media player which supports streaming mp3 such as VLC, iTunes, MPlayer, mpg123, etc.
29
45
30
-
Here is an example with MPlayer:
31
-
32
-
mplayer http://localhost:8090/stream.mp3
46
+
Here is an example of connecting to the stream with MPlayer:
47
+
48
+
```bash
49
+
mplayer http://172.17.0.2:8090/stream.mp3
50
+
```
51
+
* You may need to find the IP address of your Tidebox container using the Docker `inspect` command if you don't use the --net=host option
33
52
34
-
By default Tidebox will start to play a test Tidal audio sequence automatically within approximately ten seconds after the container has launched so you can verify audio connectivity.
53
+
By default Tidebox will start to play a test Tidal audio sequence automatically when you first login to the container so you can verify audio connectivity.
35
54
36
55
## Controls
37
56
38
57
The various components of Tidebox are running in separate windows within the GNU Screen terminal window manager, and should initialize automatically.
39
58
40
-
The Emacs / Haskell Tidal environment is the default screen (0), but you can find the additional components JACK, Dirt, ffmpeg, and ffserver on windows 1-4.
59
+
The Emacs / Haskell Tidal environment is the default window `0`, but you can find the logs for the additional components JACK, Dirt, ffmpeg, and ffserver on windows `1-4`.
41
60
42
-
Window 5 is currently set aside as an interactive shell for working with and managing Tidal files or anything else you may wish to pull down or manipulate for use in your session.
61
+
Window `5` is currently set aside as an interactive shell for working with and managing Tidal files or anything else you may wish to pull down or manipulate for use in your session.
43
62
44
63
You can switch between the Screen windows using `CTRL-,` and `CTRL-.` forward and backward, or `CTRL-A` followed by the default window numbers 1-5.
45
64
@@ -52,3 +71,4 @@ You can switch between the Screen windows using `CTRL-,` and `CTRL-.` forward an
0 commit comments