Pular para o conteúdo
Untzel
Estreia 09.10
Páginas da documentação

Comece aqui

O Untzel é um instrumento musical que roda no navegador. Um toque e um loop começa, escolhido numa biblioteca de templates por estilo musical; depois você muda tudo com os dedos ou editando um texto curto, e a música nunca para enquanto isso.

O que é o Untzel

Cada som que você ouve é uma linha de uma pequena linguagem de texto. Os blocos das faixas, a linha do tempo da música e o editor de código editam esse mesmo texto: o que você monta pelo toque aparece como código, e o que você escreve como código aparece nos blocos.

O som é feito no seu aparelho: um motor de som escrito em Rust roda como WebAssembly dentro da thread de áudio do navegador, e a luz do palco segue os mesmos eventos que o motor toca. Nada é transmitido pela rede e não é preciso conta.

O texto é analisado, nunca executado. Não há JavaScript dentro dele, nem funções, nem importações, então é seguro colar um texto que outra pessoa escreveu, ou que um assistente escreveu para você (Usar IA).

Tocar para começar

Abra app.untzel.com e toque em Toque para tocar. O navegador só libera som depois de um gesto, e esse primeiro toque é o que liga o áudio. A música começa no próximo compasso, em modo loop.

Este é o texto que o app toca primeiro, exatamente como este build o traz:

// template: Midnight Bloom// order: 1// default: truetitle "Midnight Bloom"tempo 124key a minorkick:   kick       boom    x... x... x... x... | gain 0.9sub:    sub        warm    a1 . . . a1 . . . / f1 . . . f1 . . . / d1 . . . d1 . . . / e1 . . . e1 . . .   | duck 0.8bass:   bass       rolling . a2 a2 a2 . a2 c3 a2 / . f2 f2 f2 . f2 a2 f2 / . d2 d2 d2 . d2 f2 d2 / . e2 e2 e2 . g2 e2 b2   | duck 0.7 | comp 0.3 | pan 0.1 | gain 1.48hat:    hat        tight   . x x?0.6 x . x x?0.6 x . x x?0.6 x . x x?0.7 x     | gain 0.6 | swing 0.1 | pan -0.15ohat:   hat        open    ..x. ..x. ..x. ..x. | pan 0.15 | gain 0.85shaker: shaker     bright  x x?0.7 x x?0.8 x x?0.7 x x?0.8 x x?0.7 x x?0.8 x x?0.7 X x?0.8   | swing 0.16 | gain 0.35 | pan 0.3conga:  conga      open    . . x . x . . x . . x . x . x?0.4 x?0.5               | swing 0.16 | pan -0.35 | reverb roomrim:    rim        click   .... ..x. .... .x.x                                   | pan 0.4 | delay 3/16 | gain 1perc:   perc       ping    .... .... ..x. .x..                                   | pan -0.2 | delay 1/8 | reverb roomclap:   clap       tight   .... x... .... x...                                   | reverb room | gain 1pad:    pad        noir    Am9 ~ ~ ~ / Fmaj9 ~ ~ ~ / Dm9 ~ ~ ~ / Em7 ~ ~ ~       | voicing spread | brightness sine(16) 0.3..0.7 | duck 0.5 | reverb hall | gain 0.48pluck:  pluck      muted   Am9 ~ ~ ~ / Fmaj9 ~ ~ ~ / Dm9 ~ ~ ~ / Em7 ~ ~ ~       | arp updown | arp-rate 1/16 | arp-octaves 2 | highpass 300 | delay 3/16 | gain 0.6keys:   epiano     soft    . Am7 . . Am7 . . . / . Fmaj7 . . Fmaj7 . . . / . Dm7 . . Dm7 . . . / . Em7 . . Em7! . . .   | voicing open | chorus 0.25 | reverb wide | gain 0.5lead:   lead       noir    e4 ~ ~ . c4 ~ d4 ~ / a3 ~ ~ ~ ~ ~ . . / c4 ~ ~ . d4 ~ e4 ~ / g4 ~ ~ ~ e4 ~ ~ .   | legato | glide 0.08 | delay 1/4 | reverb plate | gain 0.53answer: square     hollow  . . e5 . . . c5 . / . . a4 . . . . . / . . d5 . . . f5 . / . . e5 . . . b4 .   | delay 3/16 | reverb hall | pan -0.25 | gain 0.4choir:  choir      monk    Am ~ ~ ~ / F ~ ~ ~ / Dm ~ ~ ~ / Em ~ ~ ~              | vowel sine(8) 0.2..0.6 | eq-high 3 | reverb hall | gain 0.5rise:   noise      white   x~~~ ~~~~ ~~~~ ~~~~                                   | cutoff saw(8) 300..9000 | gain saw(8) 0.15..0.5riser:  riser      noise   x... / .... / .... / .... / .... / .... / .... / ....   | length 15.5 | gain 0.6down:   downlifter noise   x~~~ ~~~~ ~~~~ ~~~~ / .... / .... / .... / .... / .... / .... / ....   | reverb wide | gain 0.8impact: impact     deep    x... / .... / .... / .... / .... / .... / .... / ....   | reverb sea | gain 0.9section intro   kick hat shaker conga rim padsection groove  kick sub bass hat ohat shaker conga rim perc clap pad keys | loopsection build   kick sub hat ohat shaker conga perc clap pad pluck risesection break   pad pluck keys choir downsection lift    hat pad pluck choir risersection drop    kick sub bass hat ohat shaker conga rim perc clap pad pluck lead answer choir impactsection groove2 kick sub bass hat ohat shaker conga rim perc clap keys plucksection break2  pad keys choir lead downsection drop2   kick sub bass hat ohat shaker conga rim perc clap pad pluck keys lead answer choir impactsection outro   kick hat shaker conga rim padsong intro 16, groove 32, build 8, break 16, lift 8, drop 32, groove2 16, break2 16, lift 8, drop2 32, outro 16

O primeiro loop em 2 minutos

  1. Toque em Code, ao lado do Drop. No celular o código abre numa folha; no computador, no painel lateral.
  2. Selecione todo o texto e troque por este:
// my first looptempo 124key a minorkick: kick x... x... x... x...hat:  hat  ..x. ..x. ..x. ..x.   | swing 0.1bass: bass a1 . . a1 . . e2 .    | cutoff 500
  1. Pare de digitar. No próximo compasso o texto novo toca.
  2. Mude um número, por exemplo cutoff 500 para cutoff 1200. A mudança de um número simples soa na hora; a mudança de um padrão espera o próximo compasso.
  3. Quebre algo de propósito: apague uma letra de kick. A linha ganha uma marca de erro com a mensagem, e a versão anterior continua tocando. Código inválido nunca para a música.

Para onde ir depois

  • Usar o app: cada tela, gesto e atalho de teclado.
  • Guia da linguagem: a linguagem, uma ideia por vez, cada uma com um exemplo para colar.
  • Receitas: grooves, subidas e uma música inteira com os instrumentos que existem hoje.
  • Usar IA: um prompt pronto que ensina um assistente a escrever Untzel para você.

Conteúdo da documentação do Untzel, sob a licença CPAL-1.0. Ler a licença