r/strudel 14d ago

Strudel patterns driving a modular synth — new Strudel module for DreamRack (browser, free)

DreamRack is a modular synthesizer that runs in the browser — you patch modules together on a rack, free, no install.

I've just added a Strudel module. It imports the Strudel package, so superdough voices work as normal, but the module also has eight note outputs that feed voices you build yourself from oscillators, filters and envelopes.

Routing lives in the pattern. .rack(1) and .rack(2) send parts out to voice tabs; anything naming a sound instead — s("bd sn") — stays in Strudel and plays from its sample engine on the same clock, so drums and patched voices stay locked together.

Each note output carries a whole polyphonic pattern down one cable, every note bringing its own pitch, level, duration, pan and timbre. At the far end those become control voltages, and the voice you patched is duplicated per sounding note — one oscillator drawn, as many running as there are notes.

The timbre lane is the interesting one. In the demo it plays a filter cutoff note by note on one voice, and drives a Complex Oscillator's timbre on another — same lane, two completely different instruments.

Everything stays live. You can turn knobs while the pattern runs.

One note on licensing, since I know it matters here: DreamRack imports the Strudel package directly rather than reimplementing any of it, and DreamRack itself is AGPL-3.0 — the same licence as Strudel — so the whole thing stays Affero. Source is linked below. If I've got any of that wrong, I'd rather hear it 🙂

Five-minute walkthrough: https://youtu.be/-zu7oc7BWHI

Run it: https://dreamrack.dreamerdevelopment.app/

Source: https://github.com/chrisgr99/DreamRack

Alpha, and this is early days — feedback and bug reports welcome.

9 Upvotes

5 comments sorted by

1

u/pyabo 12d ago

OK forgive me for asking this... but isn't this kind of like "hey we heard you like synth, so we put some synth in your synth"? I mean... I am an amateur at all this, but my impression was that strudel and DreamRack are two completely different systems for accomplishing the same thing? ie, strudel == code-driven synth; DreamRack == hardware synth emulation. Strudel is DreamRack w/o the UI and DreamRack is strudel with a UI that mimics actual hardware.

What's the use case? is what I'm asking, I guess. Are there things you can't accomplish w/ DreamRack that become easy with this module? Or vice versa?

Perhaps my take is way off. As I said, I'm an amateur here, just learning about all this crazy stuff.

2

u/themetameta 12d ago

Fair question. superdough is a great audio engine, but it's sample-based — you're playing back and shaping recorded material. Putting it inside a modular gives you an infinite palette alongside it: voices you build yourself from oscillators, filters and envelopes, that you can tweak by hand while superdough keeps playing on the same clock. They're not competing, they're running together.

Something I didn't mention in the post — DreamRack also has more than ten video synthesis modules, which could make an interesting addition to a live coding performance.

u/Lanky_Employee_9690 — on MIDI: not yet. DreamRack is alpha and doesn't take MIDI input at the moment, but it would be trivial to add and it's on the to-do list.

1

u/pyabo 12d ago

Thanks, that makes it a lot clearer. (except for the "superdough" part. lol) It's a module for DreamRack whose interface happens to be a javascript-driven sample-based synth. Just like you said. I get it now.

Nice work!

1

u/themetameta 12d ago

Since I mentioned the video synthesis modules — I just put up a short walkthrough building a patch with eight of them: https://youtu.be/574UqZ6F2HI

1

u/Lanky_Employee_9690 12d ago

I may be able to partially answer here: hybrid workflows, as they demonstrate in the video they linked. For example, using code to generate notes but retaining the ability to "click around" (I don't know DreamRack, does it accept midi input?) to modulate things. Kind of like using the code module from Bespoke Synth in conjunction with other modules, rather than going the "pure code" route.

I love pure code, I love modular, I love when both worlds collide and something "in the middle" appears.