TidalCycles

TidalCycles

TidalCycles (or Tidal for short) is a language for live coding patterns.
It allows you to make musical patterns with text, describing sequences and ways of transforming and combining them, exploring complex interactions between simple parts.

Here's a playlist of performances with Tidal from our youtube channel

Tidal allows you to express music with very flexible timing, providing a little language for describing patterns as step sequences (which can be polyphonic and polymetric), some generators of continuous patterns (e.g. sinewaves, sawtooths) and a wide range of pattern transformations.

Tidal is highly composable in that pattern transformations can be easily combined together, allowing you to quickly create complex patterns from simple ingredients.

Tidal does not make sound itself, but is designed for use with the SuperDirt synth, and can control other synths over Open Sound Control or MIDI.

Tidal is embedded in the Haskell language.
You don't have to learn Haskell to learn Tidal, but as you get deeper, it might help to pick up an introduction.
You could try Graham Hutton's "Programming in Haskell", Miran Lipovača's Learn you a Haskell for Great Good.

Or, you could try learning just by playing with Tidal…