TidalCycles allows you to make musical patterns with text, describing sequences and ways of transforming and combining them, exploring complex interactions between simple parts.
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…
Welcome to the TidalCycles userbase!
It's a wiki, which means that as well as enjoying these resources, you can improve and add to them.
This is a work-in-progress, but will soon be the go-to resource for documentation, links and community projects around TidalCycles live coding environment, as we head towards Tidal version 1.0.0.
Guides, References, etc
- Reference - the main reference-to-be, still being built up
- Functions - the big list of functions and other keywords
- Installation (0.9.x) - for the currently published version of Tidal
- Installation troubleshooting
- The Tidal Tutorial
- Tidal workshop worksheet - for beginners+
- Kindohm video tutorials
- Haskell resources
- Advanced workshop topics
- How to add and use your own Custom Samples
- History of Tidal
TidalCycles version 1.0.0+
Not yet released, but early-adopters are encouraged!
- Tidal 1.0.0 project (on github)
- Changes in Tidal 1.0.0
- Interaction - starting and stopping patterns, etc
- Controller Input - OSC and MIDI
- Combining pattern structure
- Tempo patterns
- Contributing tests