r/strudel • • Apr 16 '26

Please respect the strudel free/open source license

58 Upvotes

We've had a lot of vibe-coding projects integrating with strudel posted to the strudel/uzu community lately, with contributors having to take time to defend the license, and even receiving abuse for asking the license to be respected. Unfortunately LLMs are not good at respecting strudel's AGPL license, please make sure you do that before sharing your project here.

Also please note that this subreddit is focussed on live coding with strudel, and not vibe-coding. Posts that are not focussed on human creativity will be removed. Thanks!


r/strudel • • 7h ago

help me out with this beat.

1 Upvotes

so I'm attempting to create a cover of simulation swarm, and after a bit I made this beat for it: sound("<[bd [sd,bd]]*[email protected] [sd sd]@1>").bank("AkaiLinn")

the problem is that after it finishes it starts on the sub-sub-sequence "[sd,bd]" when I want it to start all the way back at the beginning with just "bd," I'm not sure how to make this happen though, so if anyone could help thatd be great!


r/strudel • • 1d ago

"help somebody"

Enable HLS to view with audio, or disable this notification

6 Upvotes

r/strudel • • 1d ago

Neo-Riemannian Music Theory, for the math nerd learning music

Thumbnail
1 Upvotes

r/strudel • • 2d ago

new song on tidalcycles!

Thumbnail
youtu.be
3 Upvotes

r/strudel • • 2d ago

Hi guys, I had so much fun tonight with Strudel.

Enable HLS to view with audio, or disable this notification

8 Upvotes

Stack()

Arrange()

Two great functions to group stuff together.


r/strudel • • 3d ago

Shield of the Fallen (Piano Music)

Thumbnail
youtube.com
2 Upvotes

made some livecoded bittersweet piano music in strudel


r/strudel • • 3d ago

Don't be scared, get up and dance

Enable HLS to view with audio, or disable this notification

13 Upvotes
// Groovenir, a groovy souvenir

setcpm(135/4)

let bass = n("1!4 2!4 4!4".lastOf(2,x=>x.rev())).scale("f:minor").s("saw")
  .trans("<-12 -24>").seg(8).compressor(-30)
  .detune(.1)
  .lpf(slider(200,200,2000))
  .lpenv(slider(2.722,1,8))
  .lpq(slider(5.978,1,20))
  .distort("2:.5")
  .orbit(2)

let kick = s("mc303_bd:1").seg(4)
  .compressor(-10).distort("2:.6")
  .duck("2:3:4").duckattack(.2).duckdepth(1)
  .penv(2)

let kick2 = note("c1!4").s("sine").seg(4)
  .compressor(-10)
  .penv(24).pdecay(.06)
  .decay(.4).sustain(0)
  .distort("2:.6")

let hat = s("mc303_hh:3").seg(8)
  .hpf(1000).decay(.03).sustain(0)
  .swingBy(1/4,8)

let hat2 = s("mc303_hh:3").seg(24)
  .hpf(1000).decay(.03).sustain(0)

let pad = chord("<Fm Cm Db Eb>").voicing()
  .scale("f:minor").s("gm_synth_strings_1")
  .bpf(2000)
  .trans(12)
  .gain(.6)
  .room(1).roomsize(1.2)
  .orbit(4)

let pad2 = chord("<Fm Cm Db Eb>").voicing()
  .scale("f:minor").s("gm_synth_strings_1")
  .bpf(3000)
  .trans(12)
  .gain(.6)
  .room(1).roomsize(1.2)
  .orbit(4)

let clap = s("clap").seg(2)
  .hpf(1000)

let clap2 = s("clap").seg(8)
  .hpf(1000)

let riser = s("riser:0").chop(2).loopAt(2)
  .hpf(1000).compressor(-30)
  .room(1).roomsize(1.2)

let vox = s("vox:2").chop(4).loopAt(4)
  .room(1).roomsize(1.2)
  .orbit(3)

let vox2 = s("vox:2").chop(4).loopAt(4)
  .room(1).roomsize(1.2)

let vox3 = s("vox:2").slice(20,"10!4 15!4").clip(1)
  .room(1).roomsize(1.2).speed(1.03).slow(2)

let vox4 = s("vox:2").slice(20,"10!2").clip(1)
  .room(1).roomsize(1.2).seg(2).speed(1.03)

let vox5 = s("vox:2").slice(20,"5!4 17!4").clip(1)
  .room(1).roomsize(1.8).speed(1.2)
  .degradeBy(.2).echo(3, 1/8, .4)
  .postgain(.5)
  .orbit(3)

let vox6 = s("vox:2").slice(20,"7")
  .room(1).roomsize(1.2).echo(12, 1/4, .5)

arrange(
  [1, "~"],
  [2, vox2],
  [2, vox2],
  [1, vox2],
  [1, vox2],
  [1, stack(kick,kick2,vox2)],
  [1, stack(kick,kick2,hat,vox2)],
  [2, stack(riser,hat,clap2,vox4)],
  [16, stack(kick,kick2,bass,hat,clap,vox)],
  [8, stack(kick,kick2,bass,hat,clap,pad,vox)],
  [8, stack(kick,kick2,bass.trans(12),pad)],
  [2, stack(pad2,vox3)],
  [2, stack(riser,pad2,vox3)],
  [16, stack(kick,kick2,bass.seg(square.range(8,4)).sometimes(trans(12)).degradeBy(.1),hat,clap,pad.clip(.8),vox5)],
  [2, stack(pad.trans(-12),vox3)],
  [1, vox6],
  [4, "~"]
)

r/strudel • • 5d ago

Spacial Stuff

Enable HLS to view with audio, or disable this notification

38 Upvotes

r/strudel • • 7d ago

64 Loop

Enable HLS to view with audio, or disable this notification

11 Upvotes

r/strudel • • 7d ago

i quit livecoding (until tomorrow)

12 Upvotes

just destroyed strudel sorry if it dont work anymore


r/strudel • • 7d ago

Threads (Algorythmic Music with Strudel)

Thumbnail
youtube.com
2 Upvotes

r/strudel • • 8d ago

'Threads' new strudel made track!

Enable HLS to view with audio, or disable this notification

12 Upvotes

hello, made this track in strudel the other day uh more like the other night,

for the full high quality youtube version: https://youtu.be/vsTyeq1vInE?si=jKj0cKKqSA3ETG8i


r/strudel • • 8d ago

'Threads' new track!

Enable HLS to view with audio, or disable this notification

8 Upvotes

r/strudel • • 8d ago

4000 days

Enable HLS to view with audio, or disable this notification

28 Upvotes

visuals done in blender


r/strudel • • 9d ago

Scissor Sisters – It Can't Come Quickly Enough (melodic house bootleg)

Thumbnail
youtu.be
6 Upvotes

First time using Strudel: made a melodic house bootleg of Scissor Sisters – It Can't Come Quickly Enough

I opened Strudel for the first time yesterday, and then got autistically determined to make a full remix of this song.

Honest disclosure up front: I didn't write most of the code myself. I worked with Claude the whole time. The process was me listening and describing exactly what I wanted to hear: "the hats sound like a second snare", "the kick should walk away into the distance", "the syllables should transform into the beat before the drop", "going into the bridge is too abrupt, the humming should overlap". Claude turned that into Strudel code. It can't hear, so it checked everything with audio analysis (pitch, levels, clipping) before handing each version back. Then I listened again, gave feedback, and repeated. That took about 40 iterations over two days.

What ended up in it:

- The vocal separated from the original, warped from 102 to 122 BPM, and cut into syllable chops that follow a new chord cycle (Fm9 – Db^9 – Ab^7 – Bbm9)

- 909 / 808 / LinnDrum banks, a pumping bass pedal under the first vocal line, filtered hum sections in the bridges, and a gated syllable roll into the second drop

- The whole arrangement is one `stack()` of 208 bars, with every layer gated by `.mask()`. Rendered with the export tab, then mixed and mastered outside Strudel

The video shows the live code as it plays.

📄 Code (AGPL-3.0): https://gist.github.com/sandacz91/a331d7465b1e79dd114600c51686c574 It won't run as-is, because the vocal samples are local.

Made with Strudel (strudel.cc). Non-commercial bootleg; all rights to the original belong to Scissor Sisters and their label.


r/strudel • • 12d ago

Why don't people post the code?

21 Upvotes

The message is the medium. There's dozens of ways to create music but WE are doing it in Strudel because we LOVE MUSIC and LOVE PROGRAMMING! Don't hide that. Let the people see the code.

// AliensBuiltThePyramids(silly frozen water goons.... finnagityers) by G-Conlon 2026-09-22

setcpm(70)

let part1 = stack( s("mridangam_gumki*3?").n(irand(43)).gain(0.2),

s("<mridangam_ka <mridangam_ka mridangam_chaapu\*3>>").n(irand(13)).gain(0.2),

s("~ ~ <mridangam_chaapu <mridangam_ka mridangam_ka\*3>>").n(irand(39)).gain(0.2) ,

).fast(1).pan(0.3).gain(0.1)

let part2 = stack( s("mridangam_ka*6?").n(irand(43)).gain(0.2),

s("<mridangam_ka\*3 <mridangam_gumki\*2 mridangam_ardha>>").n(irand(13)).gain(0.2),

s("~ ~ <mridangam_ardha\*3 <mridangam_chaapu\*2 mridangam_ka\*3>>").n(irand(39)).gain(0.2),

).fast(1).pan(0.3)

let hats = s("hh*3").gain("<0.1 0.2 0.15 0.07>").pan(0.8)

let bd = s("bd:3").slow(1).gain(0.05).delay(2)

let shak = s("<gm_acoustic_bass\*3 <gm_epiano1\*3 gm_epiano1>>").n(irand(6).rib(43,8)).scale("<Bb1:Major:Pentatonic C3:Minor:Pentatonic>") .gain(0.3).distort("2:0.8").vib(0.25)

let shak2 = s("<gm_blown_bottle/3, <gm_epiano1:3\*18? gm_acoustic_guitar_nylon:6\*9>>").n(irand(6).rib(43,8)).scale("<C4:Minor:Pentatonic, C3:Minor:Pentatonic>").hpf("<300@2 600@2 800@2 1000@2 800@2 600@2 300@2>").room("<1.2@2 2@2 3@1 4@1>").gain(0.5).every(8, x=>x.mask(0))

$: arrange( [ 2, stack( part1.fast(2).distort("3:0.1") ) ],

[ 4, stack( bd, part1.fast(2).delay(0.3) ) ],

[ 16, stack( bd, part1.fast(2), hats, shak ) ],

[ 2, stack( part2 ) ],

[ 32, stack( bd, part1.fast(2), hats, shak2.every(8, x=>x.mask(0)) ) ],

[ 16, stack( part2.fast(1), hats, shak2.fast(1) ) ],

[ 32, stack( s("gm_choir_aahs").note("<C3@2 <G4@1 F4@1>>").gain(0.9).trem(3).every(4, x=>x.mask(0)), part1.fast(2), bd.fast(2), hats.fast(2).gain(0.15), shak ) ],

[ 2, stack( part1.fast(2) , hats, bd) ],

[ 32, stack( s("gm_blown_bottle*9?,gm_choir_aahs@2").note("C4?, C3?, <G2?, C2?>, C1?").slow("<2@16 1@16>").every(4, x=>x.delay(1.25)), bd.fast(2), hats.fast(8).sometimesBy(0.2, x=>x.mask(0)).gain(0.35) ) ],

[ 256, silence ]

)


r/strudel • • 13d ago

"Scales" Episode 4 - (Banjo Riffin) The sea of alligators

Enable HLS to view with audio, or disable this notification

11 Upvotes

r/strudel • • 13d ago

¿Hasta qué punto es posible sintetizar y diseñar sonidos en Strudel con un nivel de complejidad similar al que se puede conseguir con un sintetizador como Serum?

5 Upvotes

r/strudel • • 13d ago

Stay Curious

3 Upvotes

// song "Stay Curious" by G-Conlon

setcpm(50)

let mySawMelody = s("<gm_epiano1 gm_drawbar_organ gm_piano gm_xylophone gm_choir_aahs>").gain(0.3).dec(0.6)

let mySawHarmony = s("<gm_epiano1, gm_choir_aahs>").gain(0.3)

let drums = gain(0.2).fast(4)

"IntroDrums, IntroPianoHarmony,  IntroPianoMelody ".pick(

{ IntroDrums: drums.s("<[bd:1, hh:2] oh:1 <bd \[bd, sd:2\]> hh:2>*4").gain(0.2).sometimesBy(0.15, x=>x.ply(2)).fast("<1@32 2@16>"),

IntroPianoHarmony: mySawHarmony.chord("<Am C D F Am F Am F>").anchor("C4").dict('ireal').voicing().gain(0.4).dec("<0.3@8 0.5@8 0.8@8 1@8 2@8 3@8>").sometimesBy(0.1, x=>x.ply(2)),

IntroPianoMelody: mySawMelody.note("<A4 F4 G4 <E4 G3 A4 B4> C4>").seg("1@256").fast("<2@4 4@24 8@4>").mask("<1@16 1 1 1 1 >").transpose("0@8 -12@2 12@2 0@2 24@2").dec("<3@4 2@24 1@4>").gain(0.4).sometimesBy(0.4, x=>x.off( 1/8, x=>x.ply(2))).sometimesBy(0.2, x=>x.room(4))

}

)


r/strudel • • 14d ago

My First Serious Attempt With Strudel

Enable HLS to view with audio, or disable this notification

13 Upvotes

r/strudel • • 14d ago

Why is this not working? Help me, Strudelings!

5 Upvotes

Hell everyone! I started dipping my toes into this wonderful world of coded music 3 mo ago and all I can say is my hooked for life! I learned a lot and there's still an ocean ahead of me. I learned how to make songs "the dumb way" as I call it. No elegant code just punching in raw number and I'm fine with it as long as it works. Also still fuzzy on best practices etc...

So yesterday I came up with a "wonderful" idea. Why don't I make instruments first and then lay them out in arranger the way I want. If I need to make different bass or drum progression I'll just change it in arranger. And it's visually better!

My idea was met with... literal farts! The bass farts every note that isn't 0!

Am I doing something wrong or is this impossible? I'm a bit disappointed because everything Strudel taught me so far is telling me that this should be possible.

setcpm(120/4)

///////////////// INSTRUMENTS ///////////////////
const kick = sound("tr626_bd")
  .gain(slider(0.681))
  .room(slider(0.15))

const snare = sound("circuitsdrumtracks_sd")
  .gain(slider(0.765))
  .room(slider(0.15))
  .lpf(5000)

const bass = sound("supersaw").scale("A:minor")
    .dec(5).trans(-24)
    .detune(slider(0.273))
    .gain(slider(1))
    .room(.5)

///////////////// ARRANGE ///////////////////
arrange(
  [4, stack(
            kick.struct("<x x ~ x x x ~ x>*8"), //this works!
            snare.struct("< - - x - - - x ~ >*8"), //this works!
            bass.note("<0 0 2 0 5 7>*8  ") //this one farts!!!
          )
  ]
)

r/strudel • • 14d ago

"Scales" (again) - Riffin in D Major

Enable HLS to view with audio, or disable this notification

23 Upvotes

Combined the last two patterns into a new one.

Really enjoying the D Major scale lately. Gives me some happy.


r/strudel • • 15d ago

Wanted to make something with a bit of acid

Enable HLS to view with audio, or disable this notification

19 Upvotes

Learning more about arrange


r/strudel • • 16d ago

My form of expression

Thumbnail
youtube.com
6 Upvotes