TidalCycles (also known asTidal) is alive coding environment which is designed for improvising and composing music. Technically, it is adomain-specific language embedded in thefunctionalprogramming 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 asalgorave.[5]
TidalCycles was created byAlex McLean who also coined the termalgorave,[6] and is adomain-specific language embedded inHaskell, 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 theSuperCollider sound environment through the SuperDirt framework, viaMIDI, orOpen 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 inelectronic 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 onBBC 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 environmentStrudel,[19] created by Felix Roos and Alex McLean.[20]