# 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:

*   https://strudel.cc/
    

Atalhos fundamentais:

*   `Ctrl + Enter` → tocar/atualizar código
    
*   `Ctrl + .` → parar tudo
    

## Construindo a base linha por linha

### Linha 1: tempo global

```javascript
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

```javascript
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

```javascript
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

```javascript
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**

```javascript
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
    

2.  timbre
    

*   troque `.sound("sawtooth")` por `.sound("square")`
    
*   compare textura e presença
    

3.  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/
