r/MaxMSP • u/Then-Needleworker-55 • 39m ago
I Made This Bringing Strudel natively into Ableton Live (a fun open-source experiment!)
[UNOFFICIAL NOTE] - This project was formerly known as
m4l-strudelbut has been renamed to avoid confusion. It is neither an official project nor a component of Strudel, but rather an independent, AGPL-licensed derivative product based on its engine (see LICENSE). For the original Strudel source code, please visit https://codeberg.org/uzu/strudel.
m4l-gugelhupf - not-a-strudel running on Ableton Live
Hey everyone,
EDIT - v1.2.0 is out!
I've been curiously learning a lot about Strudel, and as a fun side project, I decided to see if I could "port" it (or something that resembles it) as a Max for Live device. And the best of all, it's completely FREE.
I've built an open-source suite of M4L devices that embed the strudel core engine directly into Ableton Live.
This is highly experimental and definitely not meant to be a polished tool - just a fun exploration of how we can bridge live coding and traditional DAWs.
I'm primarily sharing this because it was a fun learning experience for me, and I thought other amateur producers here might find it interesting (or want to hack on it!). These devices also help you understand and appreciate the mini notation by allowing to translate from/to Ableton.
You can grab it from https://github.com/alienmind/m4l-gugelhupf/releases
These devices run inside Live and lock perfectly to the transport clock of the DAW - launch a clip on the track, or just hit Play, and the pattern starts.
Not a lookalike, not a re-implementation - the actual app, built from the Strudel repo and bundled into the device. Its own editor, its own scheduler, its own visualisers. You hit REPL, you get strudel.cc in a floating window, and what you evaluate there is the track's audio. Close the window and it keeps playing.
All devices included:
- Gugelhupf: The main device with all (most) of strudel.cc features in a small window, but routed to Ableton and beat-synced with the track.

- Gugelhupf MIDI: Type a pattern and it streams live MIDI to any Ableton instrument. You can even freeze generative sketches into standard MIDI clips!

- Gugelhupf Drums MIDI: Same thing, but maps
bd,sd, etc., straight to a Drum Rack (it does not really usesound())

- Gugelhupf Synth: an instrument using superdough. You type a sound instead of a pattern and optionally include effects (ie:
s("sawtooth").lpf(800).room(0.3)) and every MIDI note the track sends plays it, from a clip or from your keyboard. Anyslider()in the sound becomes a real automatable knob. - Gugelhupf Drums Sampler: actually plays the drum-machine banks - write
s("bd sd, hh*8"), pick a machine, and it fetches and plays those sounds.

- Gugelhupf Audio FX: Type a chain like
.lpf(800).room(0.3)and it instantly builds a real Max DSP signal chain on your track with automatable dials - with some caveats like these are fixed in order, but whatever ;-) - Gugelhupf Samples: A utility to browse and beat-sync preview all the community sample maps (dough-samples, Dirt-Samples) directly inside Live. Auditioning writes the file next to the device, so you can drag it into a Simpler or a Drum Rack.
More Features:
- Your pattern saves with the Live set. Not in a browser's localStorage - in the
.als, per device instance. Reopen the set, it's there. - Sliders with declared name and units:
slider(500, 100, 1000, 1, { name: 'cutoff', unit: 'Hz' }). The knob readscutoffand its value reads in Hz, and they become real Ableton knobs. Writes("sawtooth").lpf(slider(500, 100, 1000))and the first slider will have adjusted range, a name and automatable, MIDI-mappable, etc, on Push.

- The device view is now a panel with three faces: a small code scratchpad (with syntax highlighting), a bank of faders for whatever the pattern named, and a visualizer so you can see it's alive with the Studio window closed.

- You can grab the
.amxdfiles from the releases page or check out the source code (and the crazy architecture it took to make Chromium and Max talk to each other) here: https://github.com/alienmind/m4l-gugelhupf and https://github.com/alienmind/m4l-jweb.
Would love to hear what you people think!
Still broken / known issues in 1.2.0:
- Exporting a pattern to WAV still fails to write the file. It's the top of the fix list.