2 pontos por GN⁺ 2025-10-15 | 1 comentários | Compartilhar no WhatsApp
  • O Strudel REPL é um ambiente de live coding musical open source e gratuito que funciona no navegador web
  • Permite gerar e modificar música em tempo real apenas no navegador, sem instalar software adicional
  • Funciona basicamente no modo REPL (Read–Eval–Print Loop), em que, quando o usuário insere código, os padrões sonoros são reproduzidos imediatamente
  • Principais recursos

    • O usuário pode realizar facilmente sequenciamento de padrões, seleção de instrumentos e ajuste de som por meio de comandos de código como "s(\"[bd ]*2\").bank(\"tr909\").dec(.4)"
    • É possível fazer manipulações musicais detalhadas com vários samplers de bateria (bank) e configurações de decay (decay), entre outros
    • Como a edição do código em tempo real e a audição do resultado acontecem imediatamente, o grande ponto forte é o feedback instantâneo
  • Acessibilidade e aplicabilidade

    • Mesmo sem uma DAW (Digital Audio Workstation) ou software musical complexo, é possível tentar produzir e experimentar música com código simples
    • Até iniciantes em música e programação podem ter diversão e uma experiência criativa com uma barreira de entrada baixa
    • Por ser open source e contar com apoio da comunidade, também traz potencial de expansão e colaboração no futuro
  • Comparação e vantagens

    • Em relação a plataformas tradicionais de live coding (TidalCycles, Sonic Pi etc.), oferece maior acessibilidade e praticidade por ser baseado em ambiente web
    • Qualquer pessoa pode começar imediatamente a experiência de live coding musical sem processos separados de instalação ou configuração

1 comentários

 
GN⁺ 2025-10-15
Comentários do Hacker News
  • Há muitas sessões de live coding do Strudel realmente incríveis no YouTube; como exemplo, recomendo este vídeo
    • Os vídeos da Switch Angel são especialmente impressionantes, e os tutoriais dela no Instagram também valem a pena
    • Um dos vídeos de que eu realmente gosto é este aqui, em que, graças ao filtro de voz, a narração parece fazer parte da música; achei particularmente divertido
    • Seria muito divertido se alguém remixasse o áudio desse vídeo, incluindo os vocais
    • Parece que o mesmo link foi colado duas vezes; fiquei curioso para saber qual era o segundo link pretendido originalmente, também queria ver
  • Strudel é um port em JavaScript do TidalCycles (Haskell); ao contrário do TC, que usa o SuperCollider como synth, o Strudel parece usar uma implementação própria chamada superdough. Estou aprendendo o sclang do SuperCollider agora e gostaria de compartilhar no HN quando houver uma atualização de versão; esse assunto sempre rende discussões profundas por lá. Mas o sclang é como o PHP do mundo da música: mais feio e menos consistente. Ainda assim, também é poderoso e divertido
    • No fórum do SuperCollider há discussões sobre portar o SuperCollider para wasm (post sobre suporte a WebAssembly); fico curioso se isso poderá ser usado no futuro
    • Eu também mexi um pouco com TidalCycles e queria usar por gostar da sintaxe do Haskell, mas a UI do Strudel é tão polida que aceitei a sintaxe de JS. Graças a isso, descobri esse tal de superdough, que eu nunca tinha visto até agora, então fiquei curioso
    • Quando eu usava SuperCollider no passado, usava o Overtone, que encapsula tudo em uma API de Clojure, então dá para definir sons com s-expressions em vez de sclang. Não sei ao certo se o Overtone ainda é mantido hoje em dia, mas parece que ainda existe alguma atividade (site oficial)
    • Na minha experiência, o sclang parecia um híbrido de Smalltalk com Ruby. É a própria definição de “falta de consistência”: estranho e estranhamente familiar, mas ainda assim eu diria que é bem mais elegante que PHP
  • O que torna o Strudel legal é que, enquanto as ferramentas musicais existentes parecem meio antigas e afetadas pela síndrome NIH (not invented here), o que realmente se precisa é de algo que rode em JS. Quando a geração anterior de ferramentas (como sonic pi etc.) surgiu, isso era difícil, mas agora o momento é perfeito. Na próxima geração, eu gostaria de ver uma interface em que visualização e código realmente se comuniquem em duas vias. Acho que os sliders já são um elemento muito legal; até o Bret Victor provavelmente ficaria orgulhoso
  • Há também uma ferramenta chamada flok, que combina o strudel repl com os visuais do hydra; ela também oferece outros ambientes algorave, como sclang, e tudo fica sincronizado (presumivelmente com CRDTs), o que é ótimo para jams remotas com amigos (link do flok)
  • Eu não tenho muito talento musical, mas fiz isto aqui
    $: arrange(
     [4, "<sh09_bd>(4,8)"],
     [4, "<sh09_bd>(4,8)"],
     [1, "<sh09_bd mfb512_sd>(6,6)"]
    ).s().fast(2).layer(x=>x.add("0,2")).gain(".4!2 .5").phaser(2).phasercenter("<4000 800 4000 4000>")
    
    $: s("gm_tinkle_bell").distort("<1 2 1 2:.5>").crush("<8 8 8 6 6 8 8>").chop(4)
    
    $: arrange(
     [2, "<c4 e4 g4>(3,8)"], 
     [1, "<f4 a4 c5>(3,8)"], 
     [1, "<c4 e4 g4>(3,8)"] 
    ).note().chop(4).fast(4).distort("<3:.5>").phaser(4).phasercenter("<800>").fm(4).fmdecay("<.05 .05 .1 .2>").fmsustain(.4)._scope()
    
    Eu também não entendo nem metade do que está acontecendo aqui, mas foi muito divertido e provavelmente é um dos meus projetos favoritos que já fiz. E o mais divertido foi ter a documentação de referência diretamente na página, então eu podia testar qualquer coisa e ver o resultado na hora
  • Esta mensagem de erro aparece
    Uncaught (in promise) ReferenceError: AudioContext is not defined
     ln https://strudel.cc/_astro/spectrum.Bf7jMx6O.js:1
     W https://strudel.cc/_astro/spectrum.Bf7jMx6O.js:1
     un https://strudel.cc/_astro/spectrum.Bf7jMx6O.js:1
     c https://strudel.cc/_astro/spectrum.Bf7jMx6O.js:1
    
    Fico me perguntando o que preciso mudar nas minhas configurações de segurança para isso funcionar
  • Compartilho minha versão remix de Array, do DJ_Dave, para o meu projeto Lil Data (mix no Strudel, vídeo no YouTube)
  • Gostei deste vídeo de introdução (link do YouTube)
  • Como o Strudel é baseado em texto, ficou muito fácil para a IA gerar música automaticamente. Estou esperando surgir um agente de Strudel que transcreva música para a notação do Strudel
    • Eu gosto de compor com as próprias mãos, mas seria revolucionário se a IA resolvesse até o sound design só com um prompt (“parecido com o lead synth da música XYZ, mas um pouco mais áspero, e deixando o parâmetro ABC ajustável separadamente”)
    • Acho que em breve os agentes poderão ouvir a própria música e até analisar como a avaliamos anteriormente
  • Vi recentemente a interface do Strudel no YouTube; no começo parece um console, mas também tem elementos como sliders, então achei interessante