{"slug": "releasing-an-open-source-sound-engine-for-strudel", "title": "Releasing an open source-sound engine for Strudel", "summary": "The Strudel project has released an open-source sound engine, enabling users to generate music and visuals through code. The engine integrates with Hydra for real-time visual synthesis, as demonstrated in a live coding session featuring a Roland TR-909 drum machine and synthesizer patterns.", "body_md": "zaltz\nBasement pressure\n▶ play\nCopilot\nyou\nstrudel\nhydra\nCopilot\nstrudel\n\n```\nsetcpm(122/4)\n$: s(\"bd*4\").bank(\"RolandTR909\").lpf(300).shape(.15).gain(.9).duck(\"2\").duckdepth(.4)\n$: note(\"a1 [~ a1] ~ [a1 ~]\").s(\"sine\").attack(.01).decay(.15).sustain(.7).release(.12).lpf(200).shape(.1).gain(.8)\n$: note(\"[~ <[a3,c4,e4]!2 [g3,c4,e4] [g3,b3,e4]>]*2\").s(\"sawtooth\").attack(.004).decay(.2).sustain(0).release(.1).lpf(sine.range(700,1600).slow(8)).delay(.6).delaytime(.3689).delayfeedback(.6).room(.5).roomsize(6).gain(.32).orbit(2)\n$: s(\"[~ hh]*4\").bank(\"RolandTR909\").hpf(6500).decay(.05).sustain(0).gain(\"0.3 0.42\").pan(sine.range(.4,.6).slow(3))\n$: s(\"~ ~ rim ~ ~ [~ rim] ~ ~\").bank(\"RolandTR909\").hpf(900).delay(.7).delaytime(.3689).delayfeedback(.55).room(.6).roomsize(5).gain(.3).orbit(3)\n$: note(\"<a2 a2 g2 e2>\").s(\"triangle\").attack(1.5).release(2).lpf(sine.range(400,900).slow(8)).room(.8).roomsize(8).gain(.22).pan(sine.range(.35,.65).slow(6)).orbit(4)\n```\n\nsetcpm(122/4) $: s(\"bd*4\").bank(\"RolandTR909\").lpf(300).shape(.15).gain(.9).duck(\"2\").duckdepth(.4) $: note(\"a1 [~ a1] ~ [a1 ~]\").s(\"sine\").attack(.01).decay(.15).sustain(.7).release(.12).lpf(200).shape(.1).gain(.8) $: note(\"[~ <[a3,c4,e4]!2 [g3,c4,e4] [g3,b3,e4]>]*2\").s(\"sawtooth\").attack(.004).decay(.2).sustain(0).release(.1).lpf(sine.range(700,1600).slow(8)).delay(.6).delaytime(.3689).delayfeedback(.6).room(.5).roomsize(6).gain(.32).orbit(2) $: s(\"[~ hh]*4\").bank(\"RolandTR909\").hpf(6500).decay(.05).sustain(0).gain(\"0.3 0.42\").pan(sine.range(.4,.6).slow(3)) $: s(\"~ ~ rim ~ ~ [~ rim] ~ ~\").bank(\"RolandTR909\").hpf(900).delay(.7).delaytime(.3689).delayfeedback(.55).room(.6).roomsize(5).gain(.3).orbit(3) $: note(\"<a2 a2 g2 e2>\").s(\"triangle\").attack(1.5).release(2).lpf(sine.range(400,900).slow(8)).room(.8).roomsize(8).gain(.22).pan(sine.range(.35,.65).slow(6)).orbit(4)\nhydra\n\n```\nosc(5, 0, 1.4)\n  .color(1, .2, .62)\n  .rotate(H(saw.slow(4).range(0, 6.283)))\n  .modulate(noise(2.5, 0), .22)\n  .kaleid(2)\n  .contrast(1.4)\n  .mult(shape(4, .6, .6).scale(H(sine.slow(2).range(1.1, 1.5))))\n  .out()\n```\n\nosc(5, 0, 1.4) .color(1, .2, .62) .rotate(H(saw.slow(4).range(0, 6.283))) .modulate(noise(2.5, 0), .22) .kaleid(2) .contrast(1.4) .mult(shape(4, .6, .6).scale(H(sine.slow(2).range(1.1, 1.5)))) .out()", "url": "https://wpnews.pro/news/releasing-an-open-source-sound-engine-for-strudel", "canonical_source": "https://zaltz.klappn.com", "published_at": "2026-07-27 01:21:22+00:00", "updated_at": "2026-07-27 01:52:38.185111+00:00", "lang": "en", "topics": ["developer-tools"], "entities": ["Strudel", "Roland TR-909", "Hydra"], "alternates": {"html": "https://wpnews.pro/news/releasing-an-open-source-sound-engine-for-strudel", "markdown": "https://wpnews.pro/news/releasing-an-open-source-sound-engine-for-strudel.md", "text": "https://wpnews.pro/news/releasing-an-open-source-sound-engine-for-strudel.txt", "jsonld": "https://wpnews.pro/news/releasing-an-open-source-sound-engine-for-strudel.jsonld"}}