TidalCycles (also known as "Tidal") is a live coding environment designed for musical improvisation and composition. In particular, it is a domain-specific language embedded in Haskell, focused on the generation and manipulation of audible or visual patterns.[1][2][3] It was originally designed for heavily percussive, polyrhythmic grid-based music, but now uses a flexible, functional reactive representation for patterns, using rational time.[4] Tidal may therefore be applied to a wide range of musical styles, although its cyclic approach to time[5] means that it affords use in repetitive styles such as Algorave.[6]

TidalCycles identity.svg
Tidal Code Screenshot.png
Developer(s)Alex McLean and others
Initial release2009
Stable release
1.7.2 / 25 February 2021; 3 months ago (2021-02-25)
Written inHaskell
Operating systemLinux, macOS, Windows
TypeLive coding environment, Algorave

Tidal does not produce sound itself, but via the SuperCollider sound environment through the SuperDirt framework, or via MIDI or Open Sound Control.


  1. ^ McLean, Alex. "Tidal – Pattern Language for Live Coding of Music". Sound and Music Computing. Archived from the original on 2017-10-15. Retrieved 22 May 2015.
  2. ^ Bick, Emily (March 2016). "Pattern Recognition". The Wire (385). pp. 16–17.
  3. ^ "TidalCycles, free live coding environment for music, turns 1.0". CDM Create Digital Music. 2018-12-18. Retrieved 2018-12-27.
  4. ^ McLean, Alex (2014). Making Programming Languages to Dance to: Live Coding with Tidal. Proceedings of the 2Nd ACM SIGPLAN International Workshop on Functional Art, Music, Modeling & Design. FARM '14. New York, NY, USA: ACM. pp. 63–70. doi:10.1145/2633638.2633647. ISBN 978-1-4503-3039-8.
  5. ^ McLean, Alex; Fanfani, Giovanni; Harlizius-Klück, Ellen (2018-11-23). "Cyclic Patterns of Movement across Weaving, Epiplokē and Live Coding". Dancecult: Journal of Electronic Dance Music Culture. 10 (1).
  6. ^ Mollan, Cherylann (2019-02-10). "Grooving to Algo'rhythms'". The Asian Age. Retrieved 2019-03-01.

External linksEdit