Giter VIP home page Giter VIP logo

supertidebox's Introduction

SuperTidebox

SuperTidebox is based on Buttetsu Batou's Tidebox.

A complete Tidal musical live coding and audio streaming environment inside Docker (now with SuperDirt!)

First, the obligatory video demonstration

A video demonstrating SuperTidebox usage.

What is Tidal?

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.

What is SuperDirt?

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.

Why SuperTidebox?

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.

Getting started

  1. Install docker
  2. git clone https://github.com/efairbanks/supertidebox.git
  3. cd supertidebox
  4. ./deploy.sh
  5. ssh localhost -p 2222 (password is algorave)
  6. Point your browser to http://localhost:8090/stream.mp3
  7. Jam out!

Utilities

  • destroy.sh destroys the last deployed instance of SuperTidebox
  • build.sh builds the SuperTidebox image
  • run.sh runs the SuperTidebox image in a new container
  • deploy.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.

Tips & tricks

  • When you ssh in, you will be placed in a customized screen session
  • ctrl-C ctrl-C executes line
  • ctrl-C ctrl-E executes block
  • ctrl-A , and ctrl-A . cycle through windows
  • ctrl-A D disconnects

Caveats

  • 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.

supertidebox's People

Contributors

efairbanks avatar

Watchers

James Cloos avatar Can Ince avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.