2 puntos por GN⁺ 2025-10-15 | 1 comentarios | Compartir por WhatsApp
  • Strudel REPL es un entorno de live coding musical de código abierto y gratuito que funciona en el navegador web
  • Permite generar y modificar música en tiempo real usando solo el navegador, sin instalar software adicional
  • Funciona básicamente con el modelo REPL (Read–Eval–Print Loop), donde al ingresar código, el patrón de sonido se reproduce de inmediato
  • Características principales

    • Los usuarios pueden realizar fácilmente secuenciación de patrones, selección de instrumentos y ajuste de sonido mediante comandos de código como "s(\"[bd ]*2\").bank(\"tr909\").dec(.4)"
    • Permite manipulaciones musicales detalladas, como varios samplers de batería (bank) y configuraciones de decaimiento (decay)
    • Como la edición del código en tiempo real y la escucha del resultado ocurren al instante, su fortaleza está en la retroalimentación inmediata
  • Accesibilidad y utilidad

    • Incluso sin un DAW (estación de trabajo de audio digital) ni software musical complejo, se puede intentar crear y experimentar con música usando código simple
    • Incluso quienes se inician en la música o la programación pueden disfrutar y vivir una experiencia creativa con una barrera de entrada baja
    • Al ser de código abierto y contar con apoyo de la comunidad, también ofrece potencial de expansión y colaboración a futuro
  • Comparación y ventajas

    • Frente a plataformas de live coding ya existentes (TidalCycles, Sonic Pi, etc.), ofrece mayor accesibilidad y comodidad al estar basado en un entorno web
    • Cualquiera puede empezar de inmediato una experiencia de live coding musical sin procesos adicionales de instalación o configuración

1 comentarios

 
GN⁺ 2025-10-15
Comentarios en Hacker News
  • Hay muchísimas sesiones de live coding con Strudel realmente geniales en YouTube; como ejemplo, recomiendo este video
    • Los videos de Switch Angel son especialmente impresionantes, y sus tutoriales en Instagram también valen la pena
    • Uno de los videos que más me gustan es este, donde gracias al filtro de voz la narración se siente como parte de la canción; me divirtió muchísimo
    • Creo que sería muy divertido que alguien hiciera un remix del audio de este video, incluyendo la voz
    • Parece que el mismo enlace quedó pegado dos veces; me pregunto cuál era el segundo enlace que se quería poner originalmente, porque también me gustaría verlo
  • Strudel es un port de TidalCycles (Haskell) a JavaScript; a diferencia de TC, que usa SuperCollider como sintetizador, Strudel parece usar su propia implementación llamada superdough. Ahora mismo estoy aprendiendo SuperCollider sclang y me gustaría compartirlo en HN cuando haya actualizaciones de versión; sobre este tema siempre surgen discusiones profundas. Pero sclang es como el PHP del mundo musical: más feo y menos consistente. Aun así, también es poderoso y divertido
    • En el foro de SuperCollider hay discusiones sobre portar SuperCollider a wasm (publicación sobre soporte para WebAssembly); me pregunto si esto podría aprovecharse más adelante
    • Yo también estuve jugando con TidalCycles y quería usarlo porque me gusta la sintaxis de Haskell, pero la UI de Strudel es tan fluida que toleré la sintaxis de JS. Gracias a eso conocí algo llamado superdough, que nunca había visto antes, así que me dio curiosidad
    • Cuando usaba SuperCollider antes, usaba Overtone, que envuelve todo en una API de Clojure para poder definir sonidos con s-expressions en vez de sclang. No estoy del todo seguro de si Overtone sigue manteniéndose hoy en día, pero parece que todavía tiene algo de actividad (sitio oficial)
    • En mi experiencia, sclang se sentía como un híbrido entre Smalltalk y Ruby; es realmente la definición de "inconsistente", se siente extraño y curiosamente familiar al mismo tiempo, pero aun así me parece mucho más elegante que PHP
  • Lo genial de Strudel es que, mientras las herramientas musicales existentes se sienten un poco viejas y como si padecieran el síndrome NIH (not invented here), lo que realmente hacía falta era algo que corriera en JS. Cuando salieron las herramientas de la generación anterior (como sonic pi), esto era difícil, pero ahora el momento es perfecto. Ojalá que en la próxima generación aparezca una interfaz donde la visualización y el código de verdad se comuniquen en ambos sentidos; creo que los sliders ya son un elemento realmente genial. Hasta Bret Victor estaría orgulloso
  • También existe una herramienta llamada flok, que combina strudel repl con los visuales de hydra; también ofrece otros entornos de algorave como sclang, y todo se sincroniza (supongo que con CRDTs). Está buenísima para hacer jams remotos con amistades (enlace a flok)
  • No tengo mucho talento musical, pero hice esto
    $: 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()
    
    Yo tampoco entiendo ni la mitad de lo que está pasando aquí, pero fue divertidísimo, probablemente mi proyecto favorito de todos los que he hecho. Y lo que más me gustó fue que hubiera documentación de referencia directamente en la página, así que podía probar cualquier cosa y ver al instante qué pasaba
  • Me aparece este mensaje de error
    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
    
    Me pregunto qué tendría que cambiar en mi configuración de seguridad para que esto funcione
  • Comparto mi versión remix de DJ_Dave - Array bajo mi nombre (Lil Data) (mezcla en Strudel, video en YouTube)
  • Me gusta este video de introducción (enlace de YouTube)
  • Como Strudel está basado en texto, se vuelve muy fácil que la IA genere música automáticamente; estoy esperando que aparezca un agente de Strudel que transcriba música a notación de Strudel
    • A mí me gusta componer con mis propias manos, pero si la IA pudiera encargarse incluso del diseño de sonido con solo escribir prompts ("algo parecido al lead synth de la canción XYZ, pero más áspero, y que además me deje ajustar aparte los parámetros ABC"), sería revolucionario
    • Creo que pronto los agentes podrán incluso escuchar la música en sí y analizar cómo la habíamos evaluado antes
  • Hace poco vi la interfaz de Strudel en YouTube; al principio parece una consola, pero como también tiene elementos como sliders, me pareció interesante