How Does Strudel REPL Relate to TidalCycles?

Updated

Strudel REPL is a browser-based port of TidalCycles: it takes the Tidal pattern language and reimplements it in JavaScript so you can live-code music without installing Haskell or SuperCollider. If you already think in Tidal patterns but want to run them in a browser tab, Strudel is the closest match. If you depend on Tidal's full Haskell/SuperCollider ecosystem, expect differences rather than a drop-in replacement.

What Strudel inherits from TidalCycles

The core idea is the same: you write patterns as code, and the pattern language handles cycles, subdivisions, and transformations for you.

  • Pattern language: Strudel ports TidalCycles' pattern language to JavaScript. The mental model of mini-notation and pattern transformations carries over.
  • Live coding workflow: You edit code and hear changes as the pattern plays, the same evaluate-and-listen loop Tidal users know.
  • Browser delivery: The environment runs in the browser, so the REPL is the interface rather than a terminal plus a separate synth server.

Where the two diverge

Dimension TidalCycles Strudel REPL
Language Haskell JavaScript
Runtime Haskell + SuperCollider Browser
Setup Install toolchain and synth engine Open the browser environment
Ecosystem Haskell/SuperCollider tooling JavaScript and web audio

The practical consequence: Strudel trades the depth of the Haskell/SuperCollider stack for zero-install access. You gain portability and a lower setup barrier; you give up direct access to SuperCollider's synthesis and the Haskell tooling around Tidal.

Who should move from TidalCycles to Strudel

  • Try it in Strudel if you want to experiment with Tidal-style patterns without installing anything, or you want to share runnable patterns as browser links.
  • Stay with TidalCycles if your work depends on SuperCollider synths, Haskell libraries, or a local setup you have already tuned.
  • Use both if you want Tidal's pattern thinking on the go and the full stack for serious sessions.

What to check before switching

  1. Confirm the specific Tidal functions you rely on exist in Strudel's JavaScript port — the port covers the pattern language, not every Haskell-side feature.
  2. Check how you will produce sound in the browser versus your SuperCollider setup, since that is the biggest practical difference.
  3. Test one of your existing patterns by rewriting it in JavaScript syntax to see how much translation effort it needs.

Strudel is best understood as TidalCycles' pattern language made accessible in the browser, not as a full replacement for the TidalCycles stack.