strudel cheatsheet
Note
OK I started with a grand plan to make a cheat sheet but quickly found myself learning a different way. Given this now seems to be quite high in search results i’m gonna leave it here.
For an excellent list of strudel resources, check this nicely curated list by terryds on gh: link
my path towards learning strudel
Honestly the thing which has helped me the most in learning these tools is spending time participating on nudel.cc
If you’re not familiar, you should first visit pastagang.cc which should tell you a bit about all this
instruments and synths
Listed under sounds in the right side panel on strudel.cc
very useful resource for discovering new sounds, synths, etc
categorised under samples, drum-machines, synths, wavetables, user, import-sounds
a few effects with brief explainers
1//todo: more examples
2
3//drums:
4$: s("bd!4,cp?*8") //plays a bass drum sound and sometimes (?) plays a clap sound (on eighth notes)
5 .bank("RolandTR808") //from the 808 bank of drums
6 .gain(.75) //lowers the volume (default is 1)
7 .speed(-8) //plays the sample at 8x speed in reverse
8
9//plays some notes. items between angled brackets
10//Commas are kind of an "and", thus there are two patterns playing at once
11$: n("<0 - 1!2>, <3 - 4!2>")
12 .s("sawtooth") //the sound for this note is a sawtooth
13 .scale("G2:minor") //the scale applied to the notes
14 .fast(2) //the pattern plays through twice as quickly in relation to everything else
15 .speed(1) //default speed is 1
16 .gain(.6)
17 .transpose("<0 -7>".slow(3)) //transposes the notes in the scale down by 0 or 7 semitones
18 .fm("<1 2 8>") //rotates through a few values for frequency modulation, 1 is the default
19 .ply("4 8") //fires each note 4 or 8 times instead of the default 1
20
21//crow(s):
22$: s("crow -") //plays a crow sound intermittently
23 .speed(-1) //backwards
1//young buck - get buck beat/tuba
2setcpm(80/4)
3
4$: s("bd - - bd cp - bd - - - bd - cp bd - -")
5.bank("RolandTR909")
6
7.early(.02)
8.gain(.5)
9.room(.25)
10
11$: note("b1 - - b1 - - c2 - b1 - d2 - d2 c#2 c2 - ")
12.s("gm_tuba")
13.gain(1.25)
14.crush(4.5)
15.delay(.15)
16.sometimesBy(.1,n=>n.jux(rev))Nudel has features beyond the native tools
Such as Spagda and Hubda.
- if you’re exporting what you found into strudel you may need to import additional js to use some of the code you exfiltrate
- the latest version of this lives here on codeberg for the raw js behind it
- or here from a docs perspective
changelog
[2025-03-26] began to write up instument/effect detail
[2025-04-18] updates as i prep for posting
[2025-10-03] Lil bit more stuff included, if you find yourself here, sorry it’s not more fleshed out :-)
[2025-12-29] found out yesterday that someone found this and was put onto nudel by it so figured i’d nudge it more in that direction. yes it’s not really a cheatsheet
to do list
- add to some of the nudel docs on codeberg rather than here
- mybe explain the things i struggled with such as getting the syntax right for feeding a synth with a scale or a chord