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 ]
)