Skip to content
Published on

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

Authors

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

깊은 밤. 모니터 두 대. 한쪽에는 에디터, 한쪽에는 파형. 키보드를 두드리면 스피커에서 베이스가 나온다. 한 줄을 고치고 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