Strudel: o que é, para que serve e como criar uma base musical com código
Uma introdução clara à ferramenta, com construção linha por linha e código final completo.

Strudel: o que é, para que serve e como criar uma base musical com código
Se você ainda não explorou live coding musical, Strudel é uma das formas mais diretas de entender o potencial dessa abordagem.
Ele é uma ferramenta de música por código que roda no navegador. Você descreve padrões com texto e escuta o resultado em tempo real. Isso acelera experimentação, facilita variações e ajuda a enxergar ritmo e harmonia como estruturas programáveis.
O que é Strudel
Strudel é uma implementação web da linguagem de padrões do ecossistema Tidal Cycles.
Na prática, isso significa:
você abre no browser;
escreve comandos curtos;
toca, ajusta e evolui a música ao vivo.
Sem instalação pesada para começar.
Para que serve
Strudel serve para compor e prototipar música com rapidez, com foco em padrões.
Casos comuns:
criar beats e linhas de baixo rapidamente;
testar variações rítmicas sem regravar tudo;
estudar estrutura musical com feedback imediato;
gerar material para performance ao vivo.
Onde usar e comandos essenciais
REPL oficial:
Atalhos fundamentais:
Ctrl + Enter→ tocar/atualizar códigoCtrl + .→ parar tudo
Construindo a base linha por linha
Linha 1: tempo global
setcpm(124/4)
O que faz:
define o tempo em cycles por minuto;
converte 124 BPM para a lógica de cycle em 4/4;
sincroniza tudo que vier depois.
aqui você ainda não escuta nada, só define o tempo.
Linha 2: hi-hat com dinâmica
setcpm(124/4)
$: sound("hh*16").gain("[.25 1]*4")
O que faz:
$:cria uma camada paralela;hh*16cria hi-hat com alta subdivisão;gain("[.25 1]*4")alterna acentos e evita som mecânico.
Linha 3: base de kick e snare
setcpm(124/4)
$: sound("hh*16").gain("[.25 1]*4")
$: sound("bd*4,[~ sd:1]*2")
O que faz:
bd*4sustenta o pulso principal;,adiciona outra camada em paralelo;[~ sd:1]*2intercala silêncio e snare para formar a batida.
Linhas 4-5: linha harmônica com synth
setcpm(124/4)
$: sound("hh*16").gain("[.25 1]*4")
$: sound("bd*4,[~ sd:1]*2")
$: note("<[c2 c3]*4 [bb1 bb2]*4 [f2 f3]*4 [eb2 eb3]*4>")
.sound("sawtooth")
O que faz:
note(...)define a sequência de notas;alternância entre oitavas aumenta presença sem perder base;
sawtoothadiciona textura de synth;
Código final completo
Linha 6: adicionando um filtro
setcpm(124/4)
$: sound("hh*16").gain("[.25 1]*4")
$: sound("bd*4,[~ sd:1]*2")
$: note("<[c2 c3]*4 [bb1 bb2]*4 [f2 f3]*4 [eb2 eb3]*4>")
.sound("sawtooth")
.lpf("200 1000 200 1000")
lpf(...)abre e fecha filtro para dar movimento ao timbre.
Como validar rapidamente o resultado
Faça três testes curtos:
- dinâmica
troque
.gain("[.25 1]*4")por.gain(1)compare o quanto a batida perde acento
- timbre
troque
.sound("sawtooth")por.sound("square")compare textura e presença
- movimento
troque
.lpf("200 1000 200 1000")por.lpf(800)compare sensação de movimento do synth
Conclusão
Com poucas linhas, já dá para construir uma base musical funcional, interessante e totalmente controlada por código.
Esse é um dos grandes atrativos do Strudel, a liberdade para experimentar rápido, a clareza com que a música vai se organizando na tela e a facilidade de transformar uma ideia simples em algo cada vez mais elaborado.
No fim, isso aqui foi só uma pequena introdução à ferramenta. O Strudel vai muito além disso e abre bastante espaço para explorar, testar e criar.
E o mais legal é que tudo acontece via código.
Referências
Strudel REPL: https://strudel.cc/
Getting Started: https://strudel.cc/learn/getting-started/
Workshop First Sounds: https://strudel.cc/workshop/first-sounds/
Workshop First Notes: https://strudel.cc/workshop/first-notes/
Workshop First Effects: https://strudel.cc/workshop/first-effects/


