2 points par GN⁺ 2025-10-15 | 1 commentaires | Partager sur WhatsApp
  • Strudel REPL est un environnement de live coding musical open source et gratuit qui fonctionne dans un navigateur web
  • Il permet de générer et modifier de la musique en temps réel directement dans le navigateur, sans installer de logiciel supplémentaire
  • Il repose par défaut sur un mode REPL (Read–Eval–Print Loop) : lorsque l’utilisateur saisit du code, des motifs sonores sont joués immédiatement
  • Principales caractéristiques

    • L’utilisateur peut facilement effectuer du pattern sequencing, le choix des instruments et le réglage du son à l’aide de commandes de code comme "s(\"[bd ]*2\").bank(\"tr909\").dec(.4)"
    • Il permet des manipulations musicales détaillées, avec divers sampleurs de batterie (bank) et des réglages de decay, entre autres
    • Comme le code peut être modifié en temps réel et le résultat écouté immédiatement, son point fort est le feedback instantané
  • Accessibilité et usages

    • Sans DAW (station de travail audio numérique) ni logiciel musical complexe, il est possible de créer et d’expérimenter avec la musique à l’aide d’un code simple
    • Même les débutants en musique et en programmation peuvent profiter d’une faible barrière à l’entrée pour vivre une expérience ludique et créative
    • Son caractère open source et le soutien de la communauté laissent aussi entrevoir un potentiel d’extension et de collaboration
  • Comparaison et avantages

    • Par rapport aux plateformes de live coding existantes (TidalCycles, Sonic Pi, etc.), son approche basée sur le web le rend plus accessible et plus pratique
    • Sans installation ni configuration séparée, tout le monde peut commencer immédiatement une expérience de live coding musical

1 commentaires

 
GN⁺ 2025-10-15
Commentaires sur Hacker News
  • Il y a vraiment beaucoup de super sessions de live coding avec Strudel sur YouTube, je recommande par exemple cette vidéo
    • Les vidéos de Switch Angel sont particulièrement impressionnantes, et ses tutoriels Instagram valent aussi le détour
    • L’une de mes vidéos préférées est celle-ci, où, grâce au filtre vocal, la narration donne l’impression de faire partie du morceau, c’était particulièrement amusant à regarder
    • Ce serait vraiment amusant si quelqu’un remixait l’audio de cette vidéo, y compris les voix
    • On dirait que le même lien a été collé deux fois, je me demande quel était le deuxième lien prévu à l’origine, j’aimerais bien le voir aussi
  • Strudel est un portage JavaScript de TidalCycles (Haskell) ; contrairement à TC qui utilise SuperCollider comme synthé, Strudel semble utiliser sa propre implémentation appelée superdough. J’apprends actuellement SuperCollider sclang, et s’il y a une mise à jour de version, j’aimerais la partager sur HN. Il y a toujours des discussions approfondies sur ce sujet, mais sclang, c’est un peu le PHP du monde de la musique, en plus laid et moins cohérent. Cela dit, c’est aussi puissant et amusant
    • Sur le forum SuperCollider, il y a des discussions autour d’un portage de SuperCollider en wasm (message sur le support WebAssembly), je me demande si cela pourra être utilisé plus tard
    • J’ai moi aussi bricolé avec TidalCycles et j’avais envie de l’utiliser parce que j’aime la syntaxe Haskell, mais l’interface de Strudel est tellement fluide que j’accepte la syntaxe JS. C’est d’ailleurs grâce à ça que j’ai découvert superdough, que je n’avais encore jamais vu, et ça m’intrigue
    • À l’époque où j’utilisais SuperCollider, j’utilisais Overtone, qui encapsule tout dans une API Clojure, ce qui permet de définir les sons en s-expressions au lieu de sclang. Je ne sais pas totalement si Overtone est encore maintenu aujourd’hui, mais il semble encore y avoir un peu d’activité (site officiel)
    • D’après mon expérience, sclang ressemblait à un hybride de Smalltalk et de Ruby. C’est vraiment l’incarnation même du « manque de cohérence » : à la fois étrange et curieusement familier, mais je trouve quand même ça bien plus élégant que PHP
  • Ce qui rend Strudel génial, c’est que les outils musicaux existants semblent un peu datés et atteints du syndrome NIH (not invented here), alors qu’en pratique, ce qu’il fallait vraiment, c’était quelque chose qui tourne en JS. Quand la génération précédente d’outils est sortie (sonic pi, etc.), c’était difficile à faire, mais maintenant le timing est parfait. J’aimerais que la prochaine génération propose une interface où la visualisation et le code communiquent vraiment dans les deux sens ; je trouve que les sliders sont déjà un élément vraiment excellent. Bret Victor en serait probablement fier
  • Il existe aussi un outil appelé flok, qui combine le REPL de Strudel avec les visuels de hydra. Il propose aussi d’autres environnements algorave comme sclang, et tout est synchronisé (probablement via des CRDT), ce qui est super pour jammer à distance avec des amis (lien flok)
  • Je n’ai pas beaucoup de talent musical, mais j’ai fait ça
    $: 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()
    
    Je ne comprends moi-même même pas la moitié de ce qui se passe ici, mais c’était vraiment très amusant, et c’est probablement l’un de mes projets préférés parmi tout ce que j’ai fait. Ce qui était le plus fun, c’est qu’il y avait la documentation de référence directement dans la page, donc on pouvait essayer n’importe quoi et voir immédiatement le résultat
  • J’obtiens ce message d’erreur
    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
    
    Je me demande ce que je dois changer dans mes paramètres de sécurité pour que ça fonctionne
  • Je partage ma version remix de DJ_Dave’s Array par moi (Lil Data) (mix Strudel, vidéo YouTube)
  • J’aime bien cette vidéo d’introduction (lien YouTube)
  • Comme Strudel est basé sur du texte, cela rend l’autogénération musicale par l’IA vraiment facile ; j’attends avec impatience l’arrivée d’un agent Strudel capable de transcrire la musique en notation Strudel
    • J’aime composer de mes propres mains, mais si une IA pouvait aussi prendre en charge le sound design à partir d’un simple prompt (« un lead synth dans le style du morceau XYZ, mais un peu plus fuzzy, avec les paramètres ABC réglables séparément »), ce serait révolutionnaire
    • Je pense que bientôt, les agents pourront écouter la musique elle-même et analyser jusqu’à la manière dont nous l’avons évaluée auparavant
  • J’ai récemment vu l’interface de Strudel sur YouTube ; au début ça ressemble à une console, mais avec des éléments comme des sliders, j’ai trouvé ça assez amusant