TidalCycles (also known as Tidal) is a live coding environment which is designed for improvising and composing music. Technically, it is a domain-specific language embedded in the functionalprogramming languageHaskell, and is focused on the generating and manipulating audiovisual patterns.[1][2][3] It was originally designed for heavily percussive and polyrhythmic grid-based music, but it now uses a flexible and functional reactive representation for patterns, by using rational time.[4] Therefore, Tidal may be applied to a wide range of musical styles, although its cyclic approach to time means that it affords use in repetitive styles such as algorave.[5]
Background
TidalCycles was created by Alex McLean who also coined the term algorave,[6] and is a domain-specific language embedded in Haskell, which focuses on generating and manipulating audiovisual patterns.[2] Tidal's representation of rhythm is based on metrical cycles,[7] which is inspired by Indian classical music,[8] supporting polyrhythmic and polymetric structures using a flexible, functional reactive representation for patterns, and rational time. This programme doesn't produce sound itself, but via the SuperCollider sound environment through the SuperDirt framework, via MIDI, or Open Sound Control.
Tidal is also used widely in academic research, including representation in music AI,[9][10] as a language in network music,[11] and in electronic literature.[12]
Tidal is widely used at algorave algorithmic dance music events,[13][14] and on high profile music releases.[15][16][17] It has been featured on BBC Radio 3's New Music Show.[18]
Since January 2022, an official port of Tidal's pattern engine has developed into the web-based live coding environment Strudel,[19] created by Felix Roos and Alex McLean.[20]