Skip to content

Split View: 라이브 코딩 음악 2026 — Sonic Pi·TidalCycles·Strudel로 개발자가 뮤지션이 되는 법 (Algorave 심층 가이드)

|

라이브 코딩 음악 2026 — Sonic Pi·TidalCycles·Strudel로 개발자가 뮤지션이 되는 법 (Algorave 심층 가이드)

프롤로그 — 개발자도 뮤지션이 될 수 있다

깊은 밤. 모니터 두 대. 한쪽에는 에디터, 한쪽에는 파형. 키보드를 두드리면 스피커에서 베이스가 나온다. 한 줄을 고치고 Cmd+Enter를 누르면, 다음 마디부터 비트가 바뀐다.

이건 마법이 아니다. 라이브 코딩 음악(live coding music) 이다.

DAW(Digital Audio Workstation)를 한 번도 만져본 적 없는 백엔드 개발자도, 코드를 칠 줄 안다면 30분 안에 첫 비트를 만들 수 있다. 음악 이론을 몰라도 된다. 악기를 배우지 않아도 된다. 필요한 건 텍스트 에디터, 스피커, 그리고 약간의 호기심뿐이다.

라이브 코딩은 2000년대 초 영국 셰필드에서 시작됐다. Alex McLean과 동료들이 "음악을 코드로 즉흥 연주할 수 있을까?"라는 질문에서 출발했고, 2004년 TOPLAP(The (Temporary | Transnational | Terrestrial | Transdimensional) Organisation for the (Promotion | Proliferation | Permanence | Purity) of Live Algorithm Programming)이라는 우스꽝스러운 이름의 운동으로 정리됐다. TOPLAP 선언문(manifesto)의 핵심은 단순하다 — 알고리즘은 사고이고, 사고는 보여져야 한다. 라이브 코더는 자기 화면을 관객에게 공개한다. 비트가 어떻게 만들어지는지, 어디서 망쳤는지, 어디서 회복했는지 모두 보여준다.

이 글은 라이브 코딩의 세 가지 주요 시스템을 한 번에 정리한다.

  • Sonic Pi — Ruby 기반, 입문에 최적, 영국 교실 수백 곳에서 쓰이는 도구
  • TidalCycles — Haskell 위에 얹힌 패턴 언어, 테크노·IDM·브레이크코어의 본진
  • Strudel — TidalCycles의 JavaScript 포팅, 브라우저에서 바로 돌아간다

그리고 Foxdot, Csound, ORCA 같은 변종들과 Algorave라는 씬, 그리고 30분 안에 첫 비트를 찍는 튜토리얼까지.


1장 · "라이브 코딩"이 뭔지부터

라이브 코딩은 두 가지를 동시에 가리킨다.

(1) 행위로서의 라이브 코딩. 무대 위에서 코드를 실시간으로 쓰면서 음악(또는 비주얼)을 만드는 퍼포먼스. 관객 앞에서 빈 에디터를 띄우고 시작해서 한 시간 동안 비트를 짜올린다. 망친 부분도 다 보인다. 그게 매력이다.

(2) 도구로서의 라이브 코딩. 음악을 만들기 위한 환경. DAW의 GUI 대신 텍스트로 패턴을 기술하고, 실행하면 즉시 소리가 나고, 다시 고쳐서 다시 실행하면 다음 마디부터 변경된 소리가 나온다.

이 둘은 같이 가지만, 둘 중 하나만 해도 된다. 무대에 안 올라가도 라이브 코딩으로 음악을 만들 수 있다. 반대로, 무대에서 라이브 코딩을 한다고 해서 꼭 클럽 음악만 해야 하는 것도 아니다 — 클래식 라이브 코더도 있고, 노이즈 라이브 코더도 있다.

Algorave — 클럽에 간 알고리즘

Algorave는 "algorithm + rave"의 합성어다. 2012년 영국에서 시작됐다. 라이브 코더들이 클럽에 가서, DJ 대신 코드를 띄우고, 관객은 그 앞에서 춤춘다.

화면에 코드가 보이는 건 단순한 트릭이 아니다. 관객은 코드의 한 줄이 바뀌면서 비트가 어떻게 변하는지 본다. 마치 셰프가 주방을 공개한 오마카세 같다 — 결과만 즐기는 게 아니라 만드는 과정을 함께 본다.

2026년 현재 Algorave는 전 세계적으로 정기 행사가 된다. 런던·베를린·도쿄·서울·멕시코시티·상파울루·뉴욕에서 매년 수십 개의 이벤트가 열린다. 라이브 코딩은 더 이상 학술 실험이 아니라 음악 씬의 한 갈래다.

TOPLAP 선언문의 6원칙

TOPLAP manifesto의 요약(라이브 코더가 지키려고 하는 것들).

  1. 화면을 보여줘라(give us access to the performer's mind). 노트북에 비닐을 씌우지 마라.
  2. 알고리즘은 사고다. 사고가 음악이 된다.
  3. 코드는 도구이자 악기다. 라이브 코딩은 도구를 새로 만드는 행위이기도 하다.
  4. 장르에 묶이지 마라. 테크노만 라이브 코딩이 아니다.
  5. 잘하든 못하든 사람들 앞에서 코딩하라. 망쳐도 괜찮다.
  6. 마우스 사용 금지(half-joke). 텍스트만으로 다 한다.

물론 6번은 농담이고, 실제로는 OSC·MIDI 컨트롤러도 자유롭게 쓴다. 핵심은 "텍스트가 일급 시민(first-class citizen)이다"라는 정신이다.


2장 · Sonic Pi — Ruby로 시작하는 라이브 코딩

라이브 코딩 입문이 두려운 이유는 보통 "Haskell이라고요?"에서 멈추기 때문이다. 그래서 Sam Aaron은 Ruby를 골랐다.

Sonic Pi가 뭔지

Sam Aaron(케임브리지 컴퓨터 연구실 출신)이 2012년부터 만들기 시작한 라이브 코딩 환경. Ruby DSL로 음악을 기술하고, 백엔드는 SuperCollider(C++ 기반 음악 엔진)다. macOS·Windows·Linux·Raspberry Pi에서 돌아간다.

Sonic Pi가 다른 도구와 다른 점은 두 가지다.

  1. 교육 친화적. 영국 BBC의 micro:bit 캠페인, Raspberry Pi Foundation의 교실 코딩, Aaron 본인의 케임브리지 학교 순회 — 수만 명의 십대가 Sonic Pi로 처음 코딩을 배운다.
  2. 타이밍 모델이 명시적. sleep 0.5 같은 명령어가 "wall-clock 시간"이 아니라 "음악적 시간"으로 작동한다. 즉, 무거운 함수 호출이 있어도 비트가 늦어지지 않는다.

설치(30초)

https://sonic-pi.net/에서 OS별 인스톨러를 받는다. macOS는 dmg, Windows는 msi, Linux는 AppImage. Raspberry Pi에서는 sudo apt install sonic-pi만 치면 끝난다.

설치 후 앱을 띄우면 좌측 에디터·우측 로그·하단 트랙 시각화가 보인다. v5는 2024년 말에 나왔고, 새로운 신스(synth) 엔진과 더 정확한 타이밍 모델, M-series 맥에서의 네이티브 빌드가 포함됐다.

첫 비트 — kick·snare·hat

에디터에 다음을 붙여넣고 Cmd+R(Run)을 누른다.

# Sonic Pi — 4-on-the-floor 기본 비트
use_bpm 120

live_loop :kick do
  sample :bd_haus
  sleep 1
end

live_loop :snare do
  sleep 1
  sample :sn_dolf
  sleep 1
end

live_loop :hat do
  16.times do
    sample :drum_cymbal_closed, amp: 0.4
    sleep 0.25
  end
end

설명.

  • use_bpm 120 — 분당 120박. 1박 = sleep 1.
  • live_loop — 라이브 코딩의 핵심. 무한 루프인데, 코드를 고친 뒤 다시 Run하면 다음 사이클부터 새 코드가 적용된다. 끊김 없이 바뀐다.
  • sample :bd_haus — 내장 샘플. :bd_*가 킥, :sn_*가 스네어, :drum_cymbal_*가 하이햇.
  • sleep — 다음 이벤트까지 기다리는 음악적 시간.

이걸 돌리면 즉시 4박자 비트가 나온다. 이제 hat 루프의 0.250.125로 바꿔서 Run을 다시 눌러보라. 다음 마디부터 16비트가 32비트로 바뀐다. 이게 라이브 코딩이다.

멜로디 한 줄 추가

live_loop :bass do
  use_synth :tb303
  play (ring :c2, :c2, :eb2, :g2).tick, release: 0.4, cutoff: rrand(70, 110)
  sleep 0.5
end

(ring :c2, :c2, :eb2, :g2)는 4개의 음을 도는 환형 리스트. .tick이 매 호출마다 다음 인덱스를 꺼낸다. rrand(70, 110)은 매 비트마다 70~110 사이 난수로 필터 컷오프를 흔든다 — 그래서 똑같은 패턴인데 매번 다르게 들린다.

Sonic Pi의 매력은 이런 식으로 한 줄 한 줄 쌓아가는 데 있다. "음악을 짓는다"가 아니라 "비트를 라이브로 빚어낸다" 가 정확한 표현이다.

Sonic Pi가 어울리는 사람

  • 라이브 코딩이 처음인 사람.
  • Ruby가 익숙하거나 OOP 언어가 익숙한 사람.
  • 학생·교실에서 가르치려는 사람.
  • Raspberry Pi·micro:bit 같은 SBC와 연동하고 싶은 사람.

3장 · TidalCycles — Haskell 위에 자라난 패턴 언어

TidalCycles는 라이브 코딩 세계의 본진이자, 라이브 코딩이 "왜 단순한 시퀀서가 아닌가"를 보여주는 작품이다.

Tidal이 뭔지

2009년 Alex McLean(영국 음악·컴퓨터과학 박사)이 만든 Haskell 라이브러리. 백엔드는 SuperDirt(SuperCollider 위에 얹힌 샘플 재생기)다. macOS·Windows·Linux 모두 지원하지만, 입문 장벽이 가장 높다 — Haskell·SuperCollider·에디터(VS Code·Pulsar·Atom·Emacs) 세 가지를 모두 깔아야 한다.

그런데도 사람들이 Tidal을 쓰는 이유는 단 하나 — 미니 노테이션(mini-notation) 이라는 패턴 언어 때문이다.

미니 노테이션 — 언어 안의 언어

Tidal은 Haskell 안에서 돌아가지만, 패턴을 기술할 때는 Haskell이 아닌 자신만의 작은 언어를 쓴다. 이 언어를 미니 노테이션이라고 부른다.

-- TidalCycles — 4-on-the-floor 기본 비트
d1 $ s "bd bd bd bd"            -- 킥, 1초에 4번
d2 $ s "~ sd ~ sd"              -- 스네어, 2·4박
d3 $ s "hh*16" # gain 0.6       -- 하이햇, 16번 분할

읽는 법.

  • d1·d2·d3 — 9개의 오케스트라 채널(stream). 각자 독립적으로 돈다.
  • s "..." — 샘플 패턴. 따옴표 안이 미니 노테이션.
  • "bd bd bd bd" — bd 샘플을 사이클 안에서 4번 균등 분할.
  • 물결표(틸드)는 휴지(silence)를 의미한다. 즉 "쉼 sd 쉼 sd"는 백비트.
  • 별표 — hh*16은 hh 샘플을 16번 반복(분할).
  • # gain 0.6 — 게인 60%.

이 짧은 코드가 본격적인 비트를 만든다. 그런데 미니 노테이션이 진짜로 빛나는 건 다음과 같은 표현력이다.

-- 변주가 있는 미니 노테이션
d1 $ s "bd(3,8)"                -- 8박 안에 킥 3번을 유클리드 분배 (3·3·2 패턴)
d2 $ s "[bd, ~ sd] [hh*4]"      -- 동시 발음·중첩 패턴
d3 $ slow 2 $ s "rim*8"         -- 패턴을 2배 느리게
d4 $ every 4 (rev) $ s "cp*4"   -- 매 4사이클마다 패턴을 뒤집기
  • bd(3,8) — 유클리드 리듬(Euclidean rhythm). 8박을 3개 펄스로 최대 균등 분배. 음악적으로 자연스러운 폴리리듬이 자동으로 나온다.
  • 대괄호 — 패턴을 그룹화·중첩.
  • slow·fast·rev·every — 패턴을 시간 축으로 변형하는 함수들.

이게 미니 노테이션이 "단순한 시퀀서 표기"가 아닌 이유다. 패턴이 일급 값(first-class value)이고, 함수들이 패턴을 변형한다. 그래서 함수형 프로그래밍을 좋아하는 사람들이 Tidal에 빠진다.

설치 — 가장 어려운 부분

Tidal 설치는 라이브 코딩 입문에서 가장 큰 장벽이다. 단계는 이렇다.

  1. SuperCollider 설치 (음악 엔진).
  2. SuperDirt 설치 (SuperCollider 안에서 Quarks.install("SuperDirt")).
  3. Haskell + GHC 설치 (ghcup 권장).
  4. Tidal 패키지 설치 (cabal install tidal).
  5. 에디터 플러그인 — VS Code의 TidalCycles 확장이 현실적인 선택.

이 다섯 단계를 처음 도전하는 사람의 70% 정도는 어딘가에서 막힌다. 그래서 Strudel이 등장했다.

그래도 Tidal을 쓰는 이유

설치가 어려운데도 사람들이 Tidal을 떠나지 않는 이유는, 표현력의 한계가 사실상 없다는 점이다. Haskell 위에 있으니 패턴을 함수로 만들고, 함수를 합성하고, 자기만의 라이브러리를 짤 수 있다. 그리고 SuperDirt 위에 있으니 SuperCollider의 모든 신스·이펙트가 접근 가능하다.

테크노·브레이크코어·IDM·노이즈 — 클럽에서 빠르게 코딩하면서 들려주기에 가장 강력한 도구가 Tidal이다.


4장 · Strudel — TidalCycles가 브라우저로 옮겨갔다

Tidal의 설치 지옥을 한 번에 해결한 것이 Strudel이다.

Strudel이 뭔지

Felix Roos가 주도해서 2022년부터 만들고 있는 TidalCycles의 JavaScript 포팅. https://strudel.cc/로 들어가면 바로 코딩이 시작된다. 설치도, SuperCollider도, Haskell도 필요 없다.

Strudel은 Tidal의 미니 노테이션을 거의 그대로 가져왔다. 그래서 Tidal을 알고 있다면 90%는 바로 적응된다. 다만 호스트 언어가 JavaScript이기 때문에, 함수 합성을 메서드 체이닝으로 쓴다.

첫 비트 — 브라우저에서

https://strudel.cc/를 열고 다음 코드를 붙여넣은 뒤 Ctrl+Enter를 누른다.

// Strudel — 4-on-the-floor 기본 비트
stack(
  s("bd bd bd bd"),               // 킥
  s("~ sd ~ sd"),                 // 스네어
  s("hh*16").gain(0.5),           // 하이햇
  note("c2 c2 eb2 g2").s("sawtooth").cutoff(800).resonance(15)
)

읽는 법.

  • stack(...) — 여러 패턴을 동시에 재생.
  • s("...") — 샘플 패턴. 미니 노테이션 문법은 Tidal과 동일.
  • .gain(0.5) — 메서드 체이닝으로 게인 조절.
  • note("c2 c2 eb2 g2") — 음높이(MIDI 노트) 패턴.
  • .s("sawtooth") — 톱니파 신스로 재생.
  • .cutoff(800).resonance(15) — 로우패스 필터.

이게 끝이다. 설치도 회원가입도 필요 없다. URL만 열면 라이브 코딩이 시작된다.

Strudel이 만든 변화

Strudel이 2022년 이후 일으킨 변화는 세 가지다.

  1. 입문 장벽 제로. Tidal 설치 5단계가 "URL 열기" 1단계가 됐다. Algorave 입문자의 80% 이상이 이제 Strudel로 시작한다.
  2. 공유가 쉽다. Strudel REPL은 코드를 URL로 인코딩해서 공유 링크를 만든다. 트위터에 한 줄 비트를 링크로 올릴 수 있다.
  3. 웹 오디오 + 비주얼. 브라우저 안이라 Canvas·WebGL과 자연스럽게 결합된다. Hydra(라이브 코딩 비주얼 도구)와 Strudel이 같은 페이지에서 함께 돌아간다.

Strudel vs Tidal — 어떤 차이?

거의 같지만 다음이 다르다.

  • 백엔드. Tidal은 SuperDirt(데스크톱 신스), Strudel은 Web Audio + 자체 신스 + 샘플.
  • 표현력. Tidal이 약간 더 풍부 — SuperCollider의 모든 신스를 쓸 수 있어서. Strudel은 점점 따라잡고 있다.
  • 퍼포먼스. 무대 라이브에서는 아직도 Tidal이 많이 쓰인다. 레이턴시·신스 품질에서 우위. 다만 2025~2026년 사이 Strudel을 무대에 쓰는 라이브 코더가 빠르게 늘었다.
  • OSC·MIDI. Tidal은 자유롭게. Strudel도 Web MIDI API를 통해 외부 신스·드럼 머신을 제어할 수 있다.

입문은 Strudel, 본격 무대는 Tidal — 그렇게 시작해서 점점 옮겨가는 사람이 많다.


5장 · 변종들 — Foxdot·Csound·ORCA

세 가지가 주류이지만, 그 외에도 흥미로운 변종이 많다.

FoxDot — Python 라이브 코딩

Ryan Kirkbride(영국 리즈 대학)가 만든 Python 기반 라이브 코딩 환경. 백엔드는 SuperCollider이고, DSL은 Python이다.

# FoxDot — 4-on-the-floor
Clock.bpm = 120
d1 >> play("x x x x")        # 킥
d2 >> play("  o   o")        # 스네어
d3 >> play("-" * 16, dur=0.25)  # 하이햇
b1 >> bass([0, 0, 3, 5], dur=0.5, oct=3)

d1 >> play("x x x x")라는 어셔라이제이션은 "d1 채널에 이 패턴을 보낸다"는 뜻. 시각적으로 흐름이 좋다.

FoxDot은 Sonic Pi보다 풍부하고 Tidal보다 가볍다. Python 생태계와 자연스럽게 결합되니까 NumPy·SciPy로 패턴을 생성해서 흘려보낼 수도 있다. 다만 커뮤니티가 Tidal·Strudel·Sonic Pi보다는 작다.

Csound — 컴퓨터 음악의 할아버지

1986년 MIT의 Barry Vercoe가 만든 음악 합성 언어. 라이브 코딩의 원조 격이지만, 본래 텍스트 기반 음악 합성 도구로 시작했다.

; Csound — 단순 사인파
instr 1
  asig oscili 0.5, 440, 1
  out asig
endin

i1 0 1

Csound는 라이브 코딩 도구라기보다 사운드 디자인 도구다. 라이브 코딩으로 쓰려면 Cabbage·Live Coding 모드를 통해야 한다. 하지만 신스를 처음부터 만들고 싶거나, 클래식·실험 음악 쪽이라면 Csound가 여전히 가장 강력하다.

ORCA — 격자 위의 에소터릭

이 글의 변종 중 가장 이상하고 가장 매력적인 것이 ORCA다. Devine Lu Linvega(노매드 아티스트 듀오 Hundred Rabbits)가 만든 라이브 코딩 환경.

ORCA는 텍스트 에디터가 아니라 2D 격자(grid) 다. 격자 안에 한 글자짜리 명령어를 배치하면, 그 명령어들이 서로 신호를 주고받으면서 MIDI·OSC·UDP를 흘려보낸다.

.....D8....
...........
.aT5...4Cc4
.....b.....
...........

각 글자가 하나의 "오퍼레이터"다. D는 딜레이, C는 카운터, T는 트래커, a·b는 변수. ORCA 자체는 소리를 내지 않는다 — 외부 신스에 MIDI를 보낼 뿐이다.

ORCA는 음악 도구이기 이전에 세포 자동자(cellular automaton) 에 가까운 시각적 프로그래밍 환경이다. 라이브 코더들이 "에소터릭(esoteric)" 도구로 사랑한다. 한 시간 보고 있으면 격자가 살아 움직이는 게 보인다.


6장 · 30분 첫 비트 튜토리얼 — Strudel로 가장 빠르게

가장 빠르게 첫 비트를 찍는 코스. 30분이면 충분하다.

0~5분: 환경 띄우기

https://strudel.cc/를 연다. 화면이 코드 에디터로 뜬다. 우상단의 Play 버튼을 누르면 기본 데모가 재생된다.

기본 데모를 일단 멈추고(Stop), 코드를 전부 지운다.

5~10분: 첫 줄

다음 한 줄을 친다.

s("bd*4")

Ctrl+Enter(Mac은 Cmd+Enter). 킥이 4번 친다. 첫 비트 완성이다.

10~15분: 스네어와 하이햇 추가

stack(
  s("bd*4"),
  s("~ sd ~ sd"),
  s("hh*8").gain(0.5)
)

Ctrl+Enter. 4박자 비트가 완성된다.

15~20분: 베이스 라인

stack(
  s("bd*4"),
  s("~ sd ~ sd"),
  s("hh*8").gain(0.5),
  note("c2 c2 eb2 g2").s("sawtooth").cutoff(800)
)

c2·eb2·g2는 C 마이너 코드의 1·3·5도. 그 위에 무엇을 얹어도 들을 만한 소리가 난다.

20~25분: 변주

베이스 라인에 살짝 변화를 준다.

stack(
  s("bd*4"),
  s("~ sd ~ sd"),
  s("hh*8").gain(0.5).sometimes(x => x.fast(2)),
  note("c2 c2 eb2 g2")
    .s("sawtooth")
    .cutoff(sine.range(400, 1200).slow(8))
    .resonance(10)
)
  • sometimes(x => x.fast(2)) — 가끔(약 50% 확률) 패턴을 2배 빠르게.
  • sine.range(400, 1200).slow(8) — 사인파로 컷오프를 400Hz~1200Hz 사이로 8사이클에 걸쳐 흔든다. 필터 스윕(filter sweep)이라는 클럽 음악의 클리셰.

25~30분: 공유

Strudel REPL은 좌상단의 공유 버튼을 누르면 코드가 인코딩된 URL을 만들어준다. 트위터·디스코드에 붙여넣으면 친구들이 그 URL을 열고 바로 들을 수 있다.

30분 안에 첫 비트를 만들고, 변주하고, 공유까지 끝났다. 이게 라이브 코딩이 개발자의 취미로 강력한 이유다.


7장 · Algorave 씬 — 커뮤니티에 합류하는 법

혼자 비트를 만드는 것도 즐겁지만, 라이브 코딩의 진짜 재미는 커뮤니티에 있다.

어디서 만나는가

  • TOPLAP 공식 채널https://toplap.org/와 디스코드. 전 세계 라이브 코더의 본진.
  • Algorave 이벤트https://algorave.com/에 전 세계 이벤트 캘린더가 있다. 2026년 기준 매달 평균 5~10개의 이벤트가 열린다.
  • Strudel 디스코드 — Strudel REPL에서 직접 들어갈 수 있다. 가장 활발한 라이브 코딩 커뮤니티.
  • TidalCycles 클럽tidalcycles.org 포럼과 디스코드.
  • Sonic Pi 포럼https://in-thread.sonic-pi.net/. 교육·교실 사용자가 많아서 분위기가 부드럽다.

한국·일본·아시아의 씬

  • 서울 — 2023년부터 Algorave Seoul이 비정기적으로 열린다. Postech·KAIST 학부생들이 주도한 적이 있다.
  • 도쿄 — Algorave Tokyo가 정기적으로 열린다. 일본은 라이브 코더 인구가 두텁다(특히 미디어 아트 씬과 연결).
  • 타이베이·홍콩·쿠알라룸푸르 — 각자 작은 씬이 있다.

첫 공연에 올라가는 법

라이브 코딩 씬은 진입 장벽이 의외로 낮다. 대부분의 Algorave는 "신인 슬롯(open slot)"을 마련해둔다. 디스코드에 코드 한 줄과 짧은 영상을 올리고 "다음 행사에서 10분만 해보고 싶다"고 말하면, 대부분의 경우 OK가 나온다.

준비물은 적다.

  • 노트북 (Sonic Pi·Strudel·Tidal 중 익숙한 것 하나).
  • 헤드폰 또는 모니터 스피커.
  • 결과를 큰 화면에 띄울 수 있는 HDMI·USB-C 어댑터.
  • 10~15분짜리 셋(set). 처음에는 미리 짜놓은 코드 베이스를 가져가도 된다(라이브 코딩 정신상 권장은 아니지만, 처음에는 부담을 줄이는 게 우선).

8장 · 라이브 코딩 + 비주얼 — Hydra·TouchDesigner와 결합

음악만 라이브 코딩하는 사람도 있지만, 많은 라이브 코더가 비주얼도 함께 한다. 음악이 라이브로 변하면 화면도 라이브로 변해야 한다.

Hydra — 비주얼 라이브 코딩

Olivia Jack이 만든 브라우저 기반 비주얼 라이브 코딩. https://hydra.ojack.xyz/로 들어가서 코드를 친다.

// Hydra — 음악에 반응하는 비주얼
osc(20, 0.1, 1.2)
  .color(1, 0.5, 0.3)
  .rotate(0.1)
  .modulate(noise(3, 0.5))
  .out()

osc는 사인파를 화면 가득 그리는 셰이더 한 줄. modulate로 노이즈를 더한다. Strudel과 같은 페이지(같은 탭)에서 돌릴 수 있어서, Strudel의 비트가 Hydra의 화면을 흔드는 라이브 셋이 자연스럽다.

TouchDesigner·VVVV — 노드 기반 비주얼

좀 더 무거운 작품을 만들고 싶다면 TouchDesigner(macOS·Windows)나 VVVV(Windows)를 쓴다. OSC로 라이브 코딩 도구와 통신한다. Tidal의 패턴이 TouchDesigner의 비주얼 파라미터를 직접 흔든다.


9장 · 라이브 코딩을 진지하게 하는 사람들

세 명의 대표 라이브 코더를 짧게.

Alex McLean — TidalCycles의 창시자

영국 셰필드·런던 기반. 케임브리지 컴퓨터 음악 연구실 출신. TidalCycles와 Algorave 운동의 핵심 인물. 그의 셋은 학구적이면서도 클럽에서 통한다. 유튜브에 그의 풀 셋이 여러 편 있다.

Sam Aaron — Sonic Pi의 창시자

영국 캠브리지. Aaron의 셋은 "친근한 라이브 코딩"의 모범. Sonic Pi의 모든 데모는 직접 그가 짠다. 교실에서 가르치는 영상도 다수 공개.

Renick Bell·CNDSD·char stiles 등

라이브 코더 신(scene)은 좁고, 매년 새 얼굴이 등장한다. Algorave 유튜브 채널에 가서 30분만 둘러보면 자기 취향에 맞는 사람을 빠르게 찾을 수 있다.


10장 · 패턴 추상의 매력 — 왜 함수형 프로그래머가 끌리는가

TidalCycles와 Strudel을 좀 더 깊이 봤다면 눈치챘을 것이다. 미니 노테이션은 패턴이 일급 값이고, 함수들이 패턴을 변형한다. 즉, 함수형 프로그래밍이다.

// Strudel — 함수 합성으로 비트를 변형
const basicKick = s("bd*4")

basicKick
  .every(4, x => x.fast(2))           // 매 4사이클마다 두 배 빠르게
  .sometimes(x => x.degradeBy(0.3))   // 가끔 30% 음을 빼기
  .jux(rev)                           // 좌우 스테레오에 정/역방향 배치

이건 그냥 음악이 아니라 패턴이라는 추상이다. every·sometimes·jux·fast·slow·rev·palindrome·shuffle — 라이브 코더가 자주 쓰는 콤비네이터들. 함수 합성이 음악적 표현이 된다.

함수형 프로그래머가 라이브 코딩에 빠지는 이유다. 음악을 만드는 게 곧 함수를 합성하는 행위다. 언어가 곧 악기다.


에필로그 — 왜 이게 개발자의 가장 행복한 취미인가

라이브 코딩을 시작한 사람들이 공통적으로 하는 말이 있다.

"코드를 쳤더니 소리가 나는 게 너무 즐겁다."

직장에서는 코드를 친다고 즉시 뭔가 일어나지 않는다. 빌드를 기다리고, 테스트가 돌아가고, 배포가 되고, 그제서야 실제 효과를 본다. 그 사이에는 PR 리뷰·승인·롤아웃이 끼어 있다.

라이브 코딩은 그 모든 걸 0초로 만든다. Ctrl+Enter를 누르는 순간, 만든 코드가 즉시 들린다. 망쳤으면 즉시 들리고, 잘 됐으면 즉시 들린다. 피드백 루프가 가장 짧은 프로그래밍 환경이다.

게다가 결과물이 재미있다. 빌드 그린이 아니라 비트가 좋다.

직업 개발자에게 이보다 더 좋은 취미가 있을까. 회사 노트북이 아니라 자기 노트북에서, 회사 코드가 아니라 자기 패턴으로, 회사의 빌드가 아니라 자기 비트로. 그리고 망쳐도 아무도 화내지 않는다. 오히려 클럽 관객들이 박수친다.

시작 체크리스트

  1. https://strudel.cc/ 열기.
  2. 6장의 30분 튜토리얼 따라가기.
  3. 자기 비트 한 트랙 만들기.
  4. URL 공유로 친구에게 보내기.
  5. TOPLAP 디스코드 가입.
  6. 한 달 안에 Algorave 영상 30분어치 듣기.
  7. 6개월 안에 첫 공개 셋 5분 시도(친구 앞이든 디스코드 보이스 채널이든).
  8. 1년 안에 자기 도시의 Algorave 신인 슬롯 신청.

안티패턴 — 이렇게 시작하면 망한다

  1. Tidal부터 설치하려고 한다. 입문은 Strudel·Sonic Pi. Tidal은 익숙해진 다음.
  2. DAW 마인드로 접근한다. 라이브 코딩은 "트랙을 완성하기"가 아니라 "패턴을 빚어가기"다.
  3. 음악 이론을 다 배운 다음 시작하려고 한다. 음계 하나(C minor pentatonic)만 알아도 시작할 수 있다.
  4. 첫 셋을 완벽하게 하려고 한다. 라이브 코더의 셋은 90%가 즉흥. 완벽한 셋은 라이브 코딩이 아니다.
  5. 마우스로 GUI 조작에 의존한다. 키보드 단축키와 텍스트만으로 다 한다.
  6. 샘플을 직접 만들려고 한다. Strudel·Sonic Pi에 수백 개 샘플이 내장돼 있다.
  7. 자기 라이브러리를 처음부터 짜려고 한다. 6개월쯤 쓴 다음에.
  8. 혼자만 한다. 커뮤니티에 들어가야 빠르게 는다. TOPLAP·Algorave·Strudel 디스코드.
  9. 녹음에만 집중한다. 라이브 코딩은 라이브가 본질. 녹음은 부산물.
  10. Algorave 영상을 안 본다. 매일 30분씩 한 달만 봐도 자기 스타일이 잡힌다.

다음 글 예고

다음 글 후보: Hydra 비주얼 라이브 코딩 — 셰이더 한 줄로 클럽 영상 만들기, SuperCollider 신스 직접 만들기 — 사운드 디자인 입문, 음악 이론 30분 — 라이브 코더용 코드 진행 패턴 12개.

"코드를 친다. 비트가 나온다. 한 줄을 고친다. 다음 마디가 바뀐다. 이게 라이브 코딩이다. 이게 가장 즐거운 프로그래밍이다."

— 라이브 코딩 음악 2026, 끝.


참고 / References

Live Coding Music 2026 — How Developers Become Musicians with Sonic Pi, TidalCycles, and Strudel (Algorave Deep Dive)

Prologue — Developers can be musicians too

Late at night. Two monitors. Editor on one side, waveform on the other. You hit keys and bass pours out of the speakers. Change a line, hit Cmd+Enter, and from the next bar the beat is different.

This isn't magic. It's live coding music.

A backend developer who has never touched a DAW (Digital Audio Workstation) can make their first beat in 30 minutes — if they know how to type code. You don't need music theory. You don't need to learn an instrument. All you need is a text editor, speakers, and a bit of curiosity.

Live coding started in early-2000s Sheffield, UK. Alex McLean and friends asked, "Can you improvise music with code?" In 2004 the movement settled around a deliberately silly acronym, TOPLAP — The (Temporary | Transnational | Terrestrial | Transdimensional) Organisation for the (Promotion | Proliferation | Permanence | Purity) of Live Algorithm Programming. The core of the TOPLAP manifesto is simple: algorithms are thoughts, and thoughts should be visible. Live coders project their screens to the audience. The audience sees how the beat is built, where it broke, and how it recovered.

This article covers the three major live coding systems in one breath.

  • Sonic Pi — Ruby-based, ideal for beginners, used in hundreds of UK classrooms.
  • TidalCycles — A pattern language on top of Haskell, the heartland of techno, IDM, and breakcore.
  • Strudel — A JavaScript port of TidalCycles that runs in the browser.

Plus the variants — FoxDot, Csound, ORCA — the Algorave scene, and a 30-minute first-beat tutorial.


1 · What "live coding" actually means

Live coding refers to two things at once.

(1) Live coding as a performance. Writing code in real time on stage to make music (or visuals). You stand on stage with an empty editor and build a beat over the next hour. The audience sees you mess up and recover. That's the point.

(2) Live coding as a tool. An environment for making music. Instead of a DAW GUI, you describe patterns as text. You run them, sound comes out, you fix them, and the next bar plays the updated sound.

The two come together but each can exist alone. You can use live coding tools without ever performing. You can also perform live coding without doing club music — there are classical live coders and there are noise live coders.

Algorave — algorithms walk into the club

Algorave is a portmanteau of "algorithm" and "rave." It started in the UK in 2012. Live coders go to clubs, project their code instead of DJ booths, and the audience dances in front of the screen.

The code being visible isn't a gimmick. The audience watches a line change and hears the beat shift. It's like an omakase where the kitchen is exposed — you don't just enjoy the result, you watch the cooking.

As of 2026, Algorave is a global recurring event. London, Berlin, Tokyo, Seoul, Mexico City, Sao Paulo, New York — dozens of events happen every year. Live coding is no longer an academic experiment; it's a genuine branch of the music scene.

The six principles of the TOPLAP manifesto

A summary of what live coders try to honor.

  1. Show your screen (give us access to the performer's mind). Don't put a tarp over the laptop.
  2. Algorithms are thoughts. Thought becomes music.
  3. Code is both tool and instrument. Live coding includes building the tools.
  4. Don't get stuck in a genre. Live coding is not only techno.
  5. Code in front of people whether you're good or not. Mistakes are fine.
  6. No mouse (half-joke). Do it with text only.

Point six is a joke, of course; OSC and MIDI controllers are used freely. The spirit is "text is a first-class citizen."


2 · Sonic Pi — Live coding starting from Ruby

Beginners often bounce off live coding at the words "Haskell?" That's why Sam Aaron picked Ruby.

What Sonic Pi is

Built by Sam Aaron (Cambridge Computer Lab) starting in 2012. A Ruby DSL for describing music, with SuperCollider (a C++ audio engine) as the backend. Runs on macOS, Windows, Linux, and Raspberry Pi.

Two things make Sonic Pi distinctive.

  1. Education-friendly. BBC's micro:bit campaign, the Raspberry Pi Foundation's classroom coding initiative, and Aaron's own classroom tours have introduced tens of thousands of teenagers to coding via Sonic Pi.
  2. Explicit timing model. A command like sleep 0.5 runs on "musical time," not wall-clock time. Heavy function calls don't delay the beat.

Install (30 seconds)

Go to https://sonic-pi.net/ and grab the installer for your OS. macOS: dmg. Windows: msi. Linux: AppImage. On Raspberry Pi just run sudo apt install sonic-pi.

Launch the app and you'll see the editor on the left, log on the right, and a track visualizer at the bottom. v5 shipped in late 2024 with a new synth engine, more accurate timing, and a native build for M-series Macs.

First beat — kick, snare, hat

Paste the following into the editor and hit Cmd+R (Run).

# Sonic Pi — 4-on-the-floor basic beat
use_bpm 120

live_loop :kick do
  sample :bd_haus
  sleep 1
end

live_loop :snare do
  sleep 1
  sample :sn_dolf
  sleep 1
end

live_loop :hat do
  16.times do
    sample :drum_cymbal_closed, amp: 0.4
    sleep 0.25
  end
end

Reading it.

  • use_bpm 120 — 120 beats per minute. One beat is sleep 1.
  • live_loop — The heart of live coding. An infinite loop, but when you edit the code and Run again, the new version is applied from the next cycle. Seamless.
  • sample :bd_haus — A built-in sample. :bd_* are kicks, :sn_* snares, :drum_cymbal_* hi-hats.
  • sleep — Musical-time wait until the next event.

Run it and a four-on-the-floor beat plays immediately. Now change the 0.25 in the hat loop to 0.125 and Run again. From the next bar the 16ths become 32nds. That's live coding.

Add one line of melody

live_loop :bass do
  use_synth :tb303
  play (ring :c2, :c2, :eb2, :g2).tick, release: 0.4, cutoff: rrand(70, 110)
  sleep 0.5
end

(ring :c2, :c2, :eb2, :g2) is a circular list of four notes. .tick pulls the next index on each call. rrand(70, 110) reseeds the filter cutoff at a random value between 70 and 110 every beat — so the pattern is the same but it sounds slightly different each time.

The charm of Sonic Pi is exactly this — building up line by line. It's not "composing music" so much as "sculpting a beat live."

Sonic Pi suits you if

  • You are new to live coding.
  • You know Ruby or any OOP language.
  • You teach students or run classroom sessions.
  • You want to integrate with SBCs like Raspberry Pi or micro:bit.

3 · TidalCycles — A pattern language grown on top of Haskell

TidalCycles is the heartland of the live coding world and the strongest argument for why live coding is more than a "fancy sequencer."

What Tidal is

A Haskell library built by Alex McLean (PhD in music and computer science, UK) starting in 2009. The backend is SuperDirt (a sample player on top of SuperCollider). It runs on macOS, Windows, and Linux — but the entry barrier is the highest. You need Haskell, SuperCollider, and an editor (VS Code, Pulsar, Atom, or Emacs).

People still use Tidal for one reason — the mini-notation pattern language.

Mini-notation — a language inside a language

Tidal runs inside Haskell, but you describe patterns in its own small language, not in Haskell. That little language is mini-notation.

-- TidalCycles — 4-on-the-floor basic beat
d1 $ s "bd bd bd bd"            -- kick, 4 times per cycle
d2 $ s "~ sd ~ sd"              -- snare on 2 and 4
d3 $ s "hh*16" # gain 0.6       -- hi-hat, divided 16 times

Reading it.

  • d1, d2, d3 — Nine orchestra channels (streams). Each runs independently.
  • s "..." — A sample pattern. The quoted string is mini-notation.
  • "bd bd bd bd" — Divide the cycle into four equal parts and play bd in each.
  • The tilde character means silence. So "silence sd silence sd" is a backbeat.
  • The asterisk — hh*16 plays hh sixteen times.
  • # gain 0.6 — Gain at 60%.

That short snippet is already a real beat. But mini-notation truly shines with expressions like the following.

-- Mini-notation with variations
d1 $ s "bd(3,8)"                -- 3 kicks across 8 steps, Euclidean
d2 $ s "[bd, ~ sd] [hh*4]"      -- simultaneous and nested patterns
d3 $ slow 2 $ s "rim*8"         -- slow the pattern by 2x
d4 $ every 4 (rev) $ s "cp*4"   -- every 4 cycles, reverse the pattern
  • bd(3,8) — Euclidean rhythm. Distribute three pulses across eight steps as evenly as possible. Musically pleasing polyrhythms emerge for free.
  • Brackets — Grouping and nesting patterns.
  • slow, fast, rev, every — Functions that transform patterns along the time axis.

This is why mini-notation is "not just a sequencer notation." Patterns are first-class values, and functions transform them. That's why functional programmers fall hard for Tidal.

Install — the hardest part

Installing Tidal is the biggest hurdle in live coding. The steps go like this.

  1. Install SuperCollider (audio engine).
  2. Install SuperDirt (run Quarks.install("SuperDirt") inside SuperCollider).
  3. Install Haskell with GHC (ghcup is recommended).
  4. Install the Tidal package (cabal install tidal).
  5. Install an editor plugin — the TidalCycles extension for VS Code is the realistic choice.

About 70 percent of first-time attempts get stuck somewhere in those five steps. That is why Strudel exists.

Why people still use Tidal

Despite the install pain, people stay with Tidal because its expressive ceiling is essentially unlimited. It sits on top of Haskell, so you can turn patterns into functions, compose those functions, and build your own libraries. And it sits on top of SuperDirt, so every SuperCollider synth and effect is reachable.

For techno, breakcore, IDM, and noise — for music that needs to be coded fast on stage — Tidal is the most powerful option.


4 · Strudel — TidalCycles moves to the browser

Strudel takes Tidal's install hell and erases it.

What Strudel is

A JavaScript port of TidalCycles led by Felix Roos since 2022. Go to https://strudel.cc/ and you can start coding immediately. No install, no SuperCollider, no Haskell.

Strudel inherited Tidal's mini-notation almost verbatim. If you know Tidal you'll adapt within minutes. The one big difference: because the host language is JavaScript, function composition is expressed via method chaining.

First beat — in the browser

Open https://strudel.cc/, paste this in, hit Ctrl+Enter.

// Strudel — 4-on-the-floor basic beat
stack(
  s("bd bd bd bd"),               // kick
  s("~ sd ~ sd"),                 // snare
  s("hh*16").gain(0.5),           // hi-hat
  note("c2 c2 eb2 g2").s("sawtooth").cutoff(800).resonance(15)
)

Reading it.

  • stack(...) — Play multiple patterns simultaneously.
  • s("...") — A sample pattern. Mini-notation syntax is identical to Tidal.
  • .gain(0.5) — Adjust gain via method chaining.
  • note("c2 c2 eb2 g2") — Note (MIDI) pitch pattern.
  • .s("sawtooth") — Play with a sawtooth synth.
  • .cutoff(800).resonance(15) — Low-pass filter.

That's it. No install, no signup. Open a URL and live coding begins.

What Strudel changed

Since 2022 Strudel has done three things.

  1. Zero entry barrier. The five Tidal install steps became one — opening a URL. More than 80 percent of new Algorave participants now start with Strudel.
  2. Easy sharing. The Strudel REPL encodes your code into a URL. You can drop a one-line beat as a link on Twitter.
  3. Web audio plus visuals. Because everything runs in the browser, Canvas and WebGL combine naturally. Hydra (a live coding visuals tool) and Strudel happily share a page.

Strudel vs Tidal — what differs?

Almost the same, with these differences.

  • Backend. Tidal uses SuperDirt (a desktop synth); Strudel uses Web Audio plus its own synths and samples.
  • Expressivity. Tidal is slightly richer — full SuperCollider access. Strudel keeps closing the gap.
  • Performance reliability. For stage gigs Tidal still dominates — better latency, richer synths. But between 2025 and 2026 Strudel-on-stage grew rapidly.
  • OSC and MIDI. Tidal handles these freely. Strudel also drives external synths and drum machines via the Web MIDI API.

Start with Strudel, move to Tidal for serious stages — that's the common path.


5 · Variants — FoxDot, Csound, ORCA

The big three dominate, but several variants are interesting.

FoxDot — Python live coding

Built by Ryan Kirkbride (University of Leeds). A Python-based live coding environment with SuperCollider as the backend and a Python DSL on top.

# FoxDot — 4-on-the-floor
Clock.bpm = 120
d1 >> play("x x x x")        # kick
d2 >> play("  o   o")        # snare
d3 >> play("-" * 16, dur=0.25)  # hi-hat
b1 >> bass([0, 0, 3, 5], dur=0.5, oct=3)

The double right-arrow operator means "send this pattern into channel d1." Visually the flow reads well.

FoxDot is richer than Sonic Pi and lighter than Tidal. It plugs naturally into the Python ecosystem, so you can generate patterns with NumPy or SciPy and feed them in. The community is smaller than Tidal, Strudel, or Sonic Pi.

Csound — the grandparent of computer music

Built at MIT by Barry Vercoe in 1986. The ancestor of live coding, although it began as a text-based sound synthesis tool.

; Csound — a simple sine wave
instr 1
  asig oscili 0.5, 440, 1
  out asig
endin

i1 0 1

Csound is more a sound design tool than a live coding tool per se. To use it live you'd go through Cabbage or its live-coding mode. But if you want to build synths from scratch — or you're into classical/experimental music — Csound is still the most powerful.

ORCA — esoteric on a grid

Among these variants the weirdest and most charming is ORCA, built by Devine Lu Linvega of the nomadic art duo Hundred Rabbits.

ORCA is not a text editor — it is a 2D grid. You place single-character operators on the grid, and those operators exchange signals to emit MIDI, OSC, and UDP.

.....D8....
...........
.aT5...4Cc4
.....b.....
...........

Each glyph is an "operator." D is delay, C is counter, T is tracker, and a and b are variables. ORCA does not produce sound itself — it only sends MIDI to external synths.

ORCA is closer to a cellular automaton than a music tool. Live coders love it as an "esoteric" environment. Watch the grid for an hour and you can see it breathing.


6 · 30-minute first beat tutorial — fastest with Strudel

The fastest path to your first beat. Thirty minutes is enough.

0 to 5 minutes: open the environment

Go to https://strudel.cc/. The page opens with a code editor. Top-right Play button plays the default demo.

Stop the demo and clear all the code.

5 to 10 minutes: the first line

Type one line.

s("bd*4")

Ctrl+Enter (Cmd+Enter on Mac). The kick fires four times. First beat done.

10 to 15 minutes: add snare and hi-hat

stack(
  s("bd*4"),
  s("~ sd ~ sd"),
  s("hh*8").gain(0.5)
)

Ctrl+Enter. A four-on-the-floor beat is now complete.

15 to 20 minutes: bass line

stack(
  s("bd*4"),
  s("~ sd ~ sd"),
  s("hh*8").gain(0.5),
  note("c2 c2 eb2 g2").s("sawtooth").cutoff(800)
)

c2, eb2, g2 are the root, third, and fifth of a C-minor chord. Almost anything on top will sound reasonable.

20 to 25 minutes: variation

Add a touch of motion to the bass.

stack(
  s("bd*4"),
  s("~ sd ~ sd"),
  s("hh*8").gain(0.5).sometimes(x => x.fast(2)),
  note("c2 c2 eb2 g2")
    .s("sawtooth")
    .cutoff(sine.range(400, 1200).slow(8))
    .resonance(10)
)
  • sometimes(x => x.fast(2)) — Roughly half the time, play the pattern twice as fast.
  • sine.range(400, 1200).slow(8) — Modulate the filter cutoff between 400 and 1200 Hz over 8 cycles via a sine wave. The classic "filter sweep" cliche of club music.

25 to 30 minutes: share

The Strudel REPL has a Share button (top-left) that creates a URL with your code encoded into it. Drop the URL in Twitter or Discord and your friends can open it and hear the same beat.

Within 30 minutes you have made a beat, varied it, and shared it. This is why live coding is so strong as a developer hobby.


7 · The Algorave scene — joining the community

Solo beat-making is fun, but the real joy of live coding is the community.

Where to meet

  • TOPLAP official channelshttps://toplap.org/ and Discord. The global home for live coders.
  • Algorave eventshttps://algorave.com/ lists the worldwide event calendar. As of 2026, an average of five to ten events run per month worldwide.
  • Strudel Discord — Linked directly from the Strudel REPL. The liveliest live coding community right now.
  • TidalCycles Club — The tidalcycles.org forum and Discord.
  • Sonic Pi forumhttps://in-thread.sonic-pi.net/. Heavy on educators and classroom users, so the tone is gentle.

Korea, Japan, and the broader Asian scene

  • Seoul — Algorave Seoul has run intermittently since 2023. Postech and KAIST undergraduates have led some of them.
  • Tokyo — Algorave Tokyo runs regularly. Japan has a deep population of live coders, often connected to the media art scene.
  • Taipei, Hong Kong, Kuala Lumpur — Small scenes in each.

How to get on stage for the first time

Live coding's barrier to performance is surprisingly low. Most Algorave events keep an "open slot" for newcomers. Post one line of code and a short video clip in Discord, ask "Can I do ten minutes at the next event?" and you'll usually get a yes.

You don't need much.

  • A laptop (whichever of Sonic Pi, Strudel, or Tidal you know best).
  • Headphones or monitor speakers.
  • An HDMI or USB-C adapter so your screen can project to the venue.
  • A 10 to 15 minute set. For your first time you can bring a code base prepared in advance (purists would frown, but reducing nerves matters more on your debut).

8 · Live coding + visuals — pairing with Hydra and TouchDesigner

Some live coders do only music, but many pair it with live visuals. If the music changes live, the screen changes live too.

Hydra — live coding for visuals

Built by Olivia Jack as a browser-based live coding tool for visuals. Open https://hydra.ojack.xyz/ and start typing.

// Hydra — visuals that react to the music
osc(20, 0.1, 1.2)
  .color(1, 0.5, 0.3)
  .rotate(0.1)
  .modulate(noise(3, 0.5))
  .out()

osc is a one-line shader that fills the screen with a sine wave. modulate adds noise. You can run Strudel on the same page so Strudel's beats drive Hydra's screen — a natural live set.

TouchDesigner and VVVV — node-based visuals

For heavier visual works, TouchDesigner (macOS, Windows) or VVVV (Windows). They talk to live coding tools via OSC. Tidal's patterns can directly modulate TouchDesigner's visual parameters.


9 · People who do this seriously

Three live coders, briefly.

Alex McLean — creator of TidalCycles

Based in Sheffield and London. Cambridge computer music background. Central figure of TidalCycles and the Algorave movement. His sets are academic in spirit yet land in clubs. There are several full sets of his on YouTube.

Sam Aaron — creator of Sonic Pi

Cambridge. Aaron's sets are the model of "friendly live coding." Every Sonic Pi demo is his own. Plenty of his classroom teaching is on YouTube too.

Renick Bell, CNDSD, char stiles, and others

The scene is small and new faces appear every year. Spend 30 minutes on the Algorave YouTube channel and you'll quickly find someone who matches your taste.


10 · The charm of pattern abstraction — why functional programmers fall in

If you've spent some time with TidalCycles or Strudel, you've noticed: mini-notation makes patterns first-class values and functions transform those patterns. In other words, functional programming.

// Strudel — transforming a beat through function composition
const basicKick = s("bd*4")

basicKick
  .every(4, x => x.fast(2))           // every 4 cycles, twice as fast
  .sometimes(x => x.degradeBy(0.3))   // sometimes drop 30% of the notes
  .jux(rev)                           // place forward/reverse across stereo

That isn't merely music — it's patterns as abstraction. every, sometimes, jux, fast, slow, rev, palindrome, shuffle — the combinators a live coder reaches for. Function composition becomes musical expression.

This is why functional programmers gravitate to live coding. Making music is composing functions. The language is the instrument.


Epilogue — Why this is the happiest hobby for developers

People who start live coding all say the same thing.

"It's just so much fun that I type code and sound comes out."

At work you don't get instant feedback from typing code. You wait for builds, tests, and rollouts before anything actually happens. Reviews and approvals are squeezed in between.

Live coding compresses all that to zero seconds. The moment you press Ctrl+Enter, the code you just wrote becomes sound. Botched, you hear it; perfect, you hear it. It's the shortest feedback loop in programming.

And the result is fun. Not a green CI badge — a good beat.

For working developers, is there a better hobby? Not on the work laptop but on your own. Not on the company codebase but on your own patterns. Not waiting for the company build but listening to your own beat. And mistakes get applause, not anger.

Starter checklist

  1. Open https://strudel.cc/.
  2. Walk through the 30-minute tutorial from chapter 6.
  3. Build your own one-track beat.
  4. Share the URL with a friend.
  5. Join the TOPLAP Discord.
  6. Listen to 30 minutes of Algorave videos within a month.
  7. Try a 5-minute public set within six months (in front of friends or in a Discord voice channel).
  8. Apply for a newcomer slot at your local Algorave within a year.

Anti-patterns — how to ruin your start

  1. Trying to install Tidal first. Start with Strudel or Sonic Pi. Tidal once you're comfortable.
  2. Approaching it with a DAW mindset. Live coding isn't "finish a track" — it's "sculpt a pattern."
  3. Trying to learn all music theory before starting. Knowing just one scale (C-minor pentatonic) is enough.
  4. Trying to make your first set perfect. A live coder's set is 90 percent improvisation. A "perfect" set isn't live coding.
  5. Relying on the mouse to drive the GUI. Keyboard shortcuts and text only.
  6. Trying to build your own samples. Strudel and Sonic Pi ship with hundreds.
  7. Writing your own library from day one. Wait six months.
  8. Going solo. You learn faster in a community — TOPLAP, Algorave, Strudel Discord.
  9. Focusing only on recordings. Live coding is fundamentally live. Recordings are a byproduct.
  10. Not watching Algorave videos. Thirty minutes a day for a month locks in your style.

What's next

Possible follow-ups: Hydra live coding for visuals — make club imagery with one line of shader, Build your own synth in SuperCollider — sound design from scratch, 30 minutes of music theory — 12 chord progressions every live coder should know.

"Type code. A beat comes out. Change one line. The next bar shifts. That's live coding. That's the most joyful kind of programming."

— Live Coding Music 2026, end.


참고 / References