Strudel represents a significant evolution in accessible music live coding, porting the sophisticated pattern language of TidalCycles from Haskell to JavaScript for entirely browser-based performance.

Origins and Development

The project emerged in early 2022 when Alex McLean (creator of TidalCycles) began porting Tidal’s pattern representation to JavaScript. Developer Felix Roos discovered this early work and built a complete browser system around it. After intensive collaborative development, Strudel was formally presented at the 2023 International Conference on Live Coding in Utrecht, establishing it within the “Uzulangs” family of Tidal-inspired environments.

Key Differences from TidalCycles

While Strudel faithfully preserves Tidal’s cyclic time model and pattern operations, several distinctions matter:

No installation required. Unlike TidalCycles, which demands Haskell, SuperCollider, and SuperDirt setup, Strudel runs immediately in any modern browser. This dramatically lowers the entry barrier for newcomers and educational contexts.

JavaScript, not Haskell. The syntax feels familiar to web developers, though the underlying pattern concepts remain consistent with Tidal’s approach.

Flexible output routing. Strudel includes WebAudio synthesis directly, but can also drive MIDI hardware, send OSC to SuperCollider/SuperDirt, connect via WebSerial, or route to CSound, making it adaptable to various workflows.

How It Works

Strudel’s REPL transpiles code into Pattern objects using Acorn and Escodegen parsers. A scheduler queries these patterns at regular intervals, generating musical events (called “Haps”) while maintaining Tidal’s characteristic approach: events compress into fixed cycle lengths, enabling dense polymetric structures without tempo changes.

The result is a practical tool for algorave performance, classroom teaching, and studio sequencing that preserves TidalCycles’ creative philosophy while embracing web accessibility.

Explore at strudel.cc.

Short Demo

After reading this, the concept that stuck with me most is “thinking in public.” In my experience as a student and a developer, coding is usually taught as a semi-private, stressful process where you hide your messy pseudo code and only show the final, polished result. The idea of projecting your raw thoughts and errors onto a wall for an audience to see feels like a massive shift. It turns programming from a rigid engineering task into something more like a conversation. I like the way the text describes it as “unthinking” the way we usually work. It makes the computer feel less like a cold tool and more like a creative partner you’re collaborating with in real time.

The most interesting takeaway for me was the critique of “seamless” technology. We’re so used to interfaces being invisible and easy that we forget there is a programmed system actually directing our behavior. By showing the code, live coders are essentially stripping away that illusion. It’s a bit of a reality check. It makes me realize that when we don’t understand the software we use, we’re just passive consumers. This perspective reclaims the idea of being a “user” as someone who actually has autonomy. It’s definitely made me rethink the relationship I have with my own laptop and the software I run on it every day.

What really stood out to me in this reading is the idea that feeling in music does not come from complexity, but from very small timing choices. Even in simple, repetitive patterns, musicians can express a lot just by playing slightly early or slightly late. Those tiny differences change how the music feels, even if the tempo stays the same.

The example of West African drumming and the backbeat helped make this clear. A drummer playing a snare just a little behind the beat can make the groove feel relaxed and grounded. It is not something you would notice on paper, but you feel it immediately when listening or moving to the music. That sense of “in the pocket” seems closely tied to the body and to playing with other people, not just keeping perfect time.

I also liked the idea that musical communication does not have to “say” anything specific. Meaning comes from interaction, from call and response, and from how musicians respond to each other in real time. Microtiming becomes a quiet way musicians communicate and stay connected, which helps explain why groove feels so human.