Skip to main content

Command Palette

Search for a command to run...

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.

Published
4 min read
Strudel: o que é, para que serve e como criar uma base musical com código

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ódigo

  • Ctrl + . → 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*16 cria 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*4 sustenta o pulso principal;

  • , adiciona outra camada em paralelo;

  • [~ sd:1]*2 intercala 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;

  • sawtooth adiciona 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:

  1. dinâmica
  • troque .gain("[.25 1]*4") por .gain(1)

  • compare o quanto a batida perde acento

  1. timbre
  • troque .sound("sawtooth") por .sound("square")

  • compare textura e presença

  1. 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