How do I start live coding music in Strudel REPL?

Updated

Open strudel.cc in a browser and you are already in the REPL: type a pattern in the code editor, press play, and edit the code while it runs to change the sound in real time. That is the whole loop of live coding here. You need a browser with working audio support (the environment runs on Web Audio), and you should expect to hear nothing until you actually start playback.

What you need before you start

  • A modern desktop browser. Strudel is a browser-based music live coding environment, so there is nothing to install.
  • Working audio output on the machine, and the browser tab allowed to play sound. If the tab is muted or the system output is wrong, patterns will run silently.
  • No prior TidalCycles setup. Strudel ports the TidalCycles pattern language to JavaScript, so the syntax will look familiar if you know Tidal, but you do not need a Tidal install to use it.

The basic loop: write, play, edit

  1. Open strudel.cc. The page is the REPL — an editor plus playback controls, not a separate download or account screen.
  2. Type a pattern into the code editor. A pattern is the code that describes what should sound and when.
  3. Start playback. This is the step that turns the code into audio; nothing plays before it.
  4. Edit the code while it plays. Because the environment is a live coding REPL, changes you make to the running pattern are reflected in the sound as it continues — you do not stop and restart to hear a variation.

The important mental model: the editor is not a file you compile and run once. It is a running pattern you keep rewriting. That is why the same short piece of code can be changed bar by bar while the loop continues.

What "live" actually means here

In a normal audio workflow you write a track, render it, then listen. In Strudel the order is inverted: playback is already running, and your edits are the input. Each edit is a new instruction to the pattern that is currently sounding.

For example, if you have a repeating pattern playing and you change one value in the code, the next cycle of the pattern reflects that change rather than waiting for a re-render. This is the same idea that makes TidalCycles-style live coding work: patterns are functions of time, and you are editing the function while time keeps moving.

Common snags and how to read them

Symptom Likely cause What to check
Page loads but no sound Playback was never started Start playback before expecting audio
Sound stops after an edit The edit broke the pattern Revert the change; a valid pattern keeps running
Silence with no error visible Browser or system audio blocked/muted Tab audio, system output, output device
Syntax looks wrong Mixing Tidal habits with JS-based syntax Remember this is the Tidal language ported to JavaScript

Where to go next

Once the write–play–edit loop feels normal, the useful next step is learning the pattern language itself rather than the interface, since the interface is deliberately minimal. If you already know TidalCycles, the fastest path is to compare what carries over and what changes in the JavaScript port; if you are new, treat each pattern as a small experiment you modify while it plays.