Getting Started with Tidal Cycles: Live Coding Music in Singapore
Tidal Cycles is the most widely used live coding language for music. Here's a practical guide to installing it, understanding the basics, and making your first patterns — written for Singapore-based beginners.
Getting Started with Tidal Cycles
Tidal Cycles is the language most Algorave performers use to make music live. It's a domain-specific language built on Haskell, designed specifically for creating rhythmic patterns that evolve in real time.
This guide gets you from zero to your first sounds. It's written for beginners — you don't need to know Haskell, and you don't need a music theory background.
Option 1: Start in the Browser (Recommended for Beginners)
Before installing anything, try Strudel.cc — a browser-based port of Tidal Cycles that runs without any setup. It's the fastest way to understand what live coding music feels like.
Open it, hit play on one of the examples, then start changing numbers and words. That's the whole workflow.
Once you're hooked, come back here for the full desktop setup.
Option 2: Full Tidal Cycles Installation
The full setup gives you better audio quality, more sounds, and the ability to use your own samples.
What You Need
- SuperCollider — the audio engine that Tidal Cycles sends instructions to
- SuperDirt — a SuperCollider plugin that handles the actual sound synthesis
- Tidal Cycles — the pattern language itself (installed via Haskell's package manager)
- A text editor — VS Code with the Tidal Cycles extension is the easiest option
Step-by-Step Installation (macOS)
# Install Haskell (via GHCup)
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
# Install Tidal Cycles
cabal install tidal
Then install SuperCollider from supercollider.github.io, open it, and run:
Quarks.checkForUpdates({Quarks.install("SuperDirt", "v1.7.3"); thisProcess.recompile()})
Full installation guides for Windows and Linux are on the Tidal Cycles documentation site.
Your First Patterns
Once everything is running, start SuperDirt in SuperCollider, then open your editor and try these:
A Basic Beat
d1 $ sound "bd sn bd sn"
This plays a kick drum (bd) and snare (sn) alternating. Four sounds, one cycle.
Adding Variation
d1 $ sound "bd [sn sn] bd ~"
Square brackets group sounds into a subdivision. ~ is a rest. Now the second beat has two snares squeezed in.
Layering Patterns
d1 $ sound "bd sn bd sn"
d2 $ sound "hh*8"
d3 $ sound "cp ~ ~ cp"
Each d1, d2, d3 is a separate channel. They all run simultaneously.
Changing Speed
d1 $ fast 2 $ sound "bd sn bd sn"
fast 2 doubles the speed. slow 2 halves it.
Adding Effects
d1 $ sound "bd sn bd sn" # room 0.5 # size 0.8
room and size add reverb. # chains effects onto a pattern.
The Core Concept: Everything is a Pattern
The key insight in Tidal Cycles is that everything — sounds, effects, parameters — is a pattern that can be transformed, combined, and manipulated using the same set of functions.
Once you internalize this, the language opens up. You can apply the same transformations to rhythm, pitch, reverb, panning, and anything else.
Where to Go Next
- Tidal Cycles documentation — comprehensive reference
- Tidal Club Forum — the main community forum, very welcoming to beginners
- Algorave Singapore Resources page — our curated list of tools and tutorials
Come to one of our events and watch how performers use these patterns live. Seeing it in context makes everything click faster than any tutorial.
Explore Topics
Written by
Algorave Singapore
Content creator and writer sharing insights and stories.