Home

Awesome

Piratidal

Experimental Clojure port of TidalCycles. This is a very early work in progress and so far more of a proof of concept.

<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc -->

Table of Contents

<!-- markdown-toc end -->

Installation

Piratidal requires the installation of Java, the clojure-cli and a suitable editor (one with a Clojure repl). You will also need to download SuperCollider and install SuperDirt.

Usage

Open SuperCollider and evaulate the following line of code:

SuperDirt.start

The start a Clojure repl by following the instructions of the plugin from your editor of choice or running the following line of code in your terminal (while inside the piratidal directory).

$ clj

Then in an editor file or your terminal repl evaluate the following:

(require '[piratidal.core :refer :all])

(p 1 (-> (s "[bd cp/2 hh]")
         (jux rev)))

You can also use the examples file at dev/examples.cljc to try other stuff out.

The API that has been already implemented can be found in the piratidal.core namespace in the def-main-and-control-patterns, def-pattern-transformations and import-vars forms. If using the -> (thread) macro, the API replicates very closely Tidal's own.

(un)Implemented Features

Parser

Most of the parser's functionality is already implemented. Notable missing things are the following:

  1. Elongation probably doesn't work 100%.
  2. Patterned operations such as bd*<1 2>. Operations missing this are fast, slow, euclidean rhythms, elongation, replication and degradation.
  3. The fastcat operator ..
  4. Variables
  5. Chords

Tidal's API Implemented So Far