Files
Strudel-AI-music/agentic_workflow/genre_recipes.md
2026-03-20 21:16:20 +01:00

6.7 KiB

Genre Recipes for Strudel

Copy-paste templates and production techniques for specific genres.

Genre Quick Reference

Genre BPM Key Feel Drum Machine Signature
Lo-fi Hip-Hop 70-90 Minor/Dorian Any vintage Swing, dusty, vinyl crackle
Trap 60-80 (half-time feel) Minor TR808 Fast hats, sparse kicks, 808 sub
Boom-Bap 85-100 Minor SP-1200/vintage Chopped samples, swing
House 120-130 Minor/Major TR909 Four-on-floor, offbeat hats
Deep House 118-125 Minor 7ths TR909 Lush pads, jazzy chords
Techno 125-140 Minor/chromatic TR909/TR808 Driving, repetitive, industrial
Drum & Bass 170-180 Minor Amen break style Fast breaks, heavy bass
Ambient 60-90 Lydian/Major None/minimal Long reverb, slow pads
UK Garage 130-140 Minor TR909 Shuffled, 2-step
Dubstep 140 (half-time) Minor Heavy Sub bass wobbles
R&B / Neo-Soul 65-85 Minor 7/9 Light drums Lush chords, smooth
Synthwave 80-120 Minor LinnDrum/TR707 Retro synths, gated reverb

Lo-fi Hip-Hop

// Lo-fi Hip-Hop — Dm Dorian — 80 bpm
setcps(80/60/4)

$: s("[bd ~ ~ bd] [~ ~ ~ ~] [~ ~ bd ~] [~ ~ ~ ~]")
  .bank("RolandTR808").gain(0.9).lpf(300)

$: s("~ ~ ~ ~ [sd ~ ~ ~] ~ ~ ~ ~ [~ ~ ~ ~] ~ ~ [sd ~ ~ ~] ~ ~")
  .bank("RolandTR808").gain(0.5).room(0.3)

$: s("[hh ~ hh ~]*2").bank("RolandTR808")
  .gain("0.25 0.15 0.2 0.15").lpf(3000)

$: note("<[d3,f3,a3,c4] [g2,b2,d3,f3]>")
  .sound("gm_electric_piano_1")
  .lpf(2000).gain(0.2)
  .room(0.5).size(0.8)

$: note("<d2 ~ d2 ~ g1 ~ ~ ~>")
  .sound("sawtooth").lpf(400).gain(0.45)
  .decay(0.4).sustain(0.1)

Key characteristics: swing feel, muted/warm tones, vinyl crackle, jazzy 7th chords, low-pass everything.


Trap

// Trap — Cm — 72 bpm (half-time feel)
setcps(72/60/4)

$: s("[bd ~ ~ bd] [~ ~ ~ ~] [~ ~ bd ~] [~ ~ ~ bd]")
  .bank("RolandTR808").gain(1.1).lpf(200)

$: s("~ ~ ~ ~ cp ~ ~ ~, ~ ~ ~ ~ cp ~ ~ ~")
  .bank("RolandTR808").gain(0.7).room(0.2)

$: s("hh*16").bank("RolandTR808")
  .gain(sine.range(0.05, 0.35).fast(4))

$: s("~ ~ ~ ~ ~ ~ oh ~").bank("RolandTR808").gain(0.2)

$: note("<c1 ab0 f0 g0>")
  .sound("sine").gain(0.65).lpf(100)
  .decay(0.8).sustain(0)

$: note("<[c3,eb3,g3,bb3] [ab2,c3,eb3,g3] [f2,ab2,c3,eb3] [g2,bb2,d3,f3]>")
  .sound("sawtooth").lpf(800).lpq(2).gain(0.15)
  .room(0.4).size(0.7)
  .attack(0.3).release(0.6)

Key characteristics: 808 sub bass (long sine decay), rapid hi-hat rolls (*16 to *32), sparse kick patterns, half-time snare, dark pads.


House

// House — Am — 124 bpm
setcps(124/60/4)

$: s("bd*4").bank("RolandTR909").gain(1.1)

$: s("~ cp ~ cp").bank("RolandTR909").gain(0.65).room(0.2)

$: s("[~ hh]*4").bank("RolandTR909").gain(0.3)

$: s("~ ~ ~ ~ ~ ~ oh ~").bank("RolandTR909").gain(0.2)

$: note("<[a2,c3,e3,g3] [d3,f3,a3,c4]>")
  .sound("sawtooth").lpf(sine.range(500, 2000).slow(8))
  .lpq(3).gain(0.2)
  .room(0.4).size(0.6)
  .attack(0.2).release(0.5)

$: note("a1*4").sound("sine")
  .gain(0.5).lpf(150).decay(0.15).sustain(0)

Key characteristics: four-on-the-floor kick, offbeat hi-hats, clap on 2&4, filter sweeps, looping.


Techno

// Techno — Cm — 132 bpm
setcps(132/60/4)

$: s("bd*4").bank("RolandTR909").gain(1.2).lpf(250)

$: s("[~ hh]*4").bank("RolandTR909").gain(0.3)

$: s("hh*16").bank("RolandTR909")
  .gain("0.3 0.1 0.2 0.1 0.3 0.1 0.2 0.1 0.35 0.1 0.2 0.1 0.3 0.1 0.25 0.15")

$: s("~ ~ ~ ~ cp ~ ~ ~, ~ ~ ~ ~ cp ~ ~ ~")
  .bank("RolandTR909").gain(0.7).room(0.15)

$: note("c2 c2 [c2 eb2] c2 c2 [c2 g2] c2 [c2 c3]")
  .sound("sawtooth")
  .lpf(sine.range(300, 3000).slow(8)).lpq(8)
  .gain(0.4).decay(0.1).sustain(0)

$: note("<[c4,eb4,g4] ~ ~ ~ [ab3,c4,eb4] ~ ~ ~>")
  .sound("square").lpf(1200).gain(0.1)
  .room(0.3).decay(0.05).sustain(0)

Key characteristics: driving kick, acid bassline (sawtooth + high resonance filter sweep), minimal, hypnotic repetition, industrial textures.


Drum & Bass

// DnB — Am — 174 bpm
setcps(174/60/4)

$: s("[bd ~ ~ ~] [~ ~ sd ~] [~ bd ~ ~] [sd ~ ~ ~]")
  .bank("RolandTR909").gain(1)

$: s("hh*16").bank("RolandTR909")
  .gain(sine.range(0.05, 0.3).fast(2))
  .pan(sine.range(0.2, 0.8).fast(3))

$: note("[a1 ~] [~ a1] [~ ~] [a1 ~], [~ ~] [c2 ~] [~ ~] [a1 ~]")
  .sound("sawtooth")
  .lpf(sine.range(200, 800).slow(8)).lpq(4)
  .gain(0.55)

$: note("<[a3,c4,e4] [c4,e4,g4]>").slow(4)
  .sound("triangle").lpf(2500).gain(0.08)
  .room(0.7).size(0.9).attack(0.8).release(2)

Key characteristics: fast tempo 170+, syncopated breaks, heavy "reese" bass (detuned sawtooth), atmospheric pads.


Ambient

// Ambient — F Lydian — 60 bpm
setcps(60/60/4)

$: note("<[f3,a3,c4,e4] [g3,b3,d4,f#4] [a3,c4,e4,g4] [f3,a3,c4,e4]>").slow(2)
  .sound("triangle")
  .lpf(sine.range(800, 2500).slow(16))
  .gain(0.12)
  .room(0.9).size(0.99)
  .attack(2).release(4)

$: note("~ f5 ~ a5, ~ ~ c6 ~").slow(4)
  .sound("sine").gain(0.06)
  .room(0.95).size(0.99)
  .delay(0.6).delaytime(0.5).delayfeedback(0.6)

$: s("~ ~ bd ~").gain(0.3).lpf(100).room(0.8).slow(2)

Key characteristics: extremely slow, huge reverb/delay, lydian for dreaminess, long attack/release, minimal drums.


R&B / Neo-Soul (Saul, Frank Ocean, SZA style)

// R&B — Cm — 68 bpm
setcps(68/60/4)

$: s("[bd ~ ~ ~] [~ ~ ~ bd] [~ ~ bd ~] [~ ~ ~ ~]")
  .bank("RolandTR808").gain(0.9).lpf(180)

$: s("~ ~ ~ ~ [rim ~ ~ ~] ~ ~ ~ ~ ~ ~ [rim ~ ~ ~] ~ ~")
  .bank("RolandTR808").gain(0.3).room(0.4)

$: s("[~ hh ~ hh]*2").bank("RolandTR808").gain(0.12)

$: note("<[c3,eb3,g3,bb3] [f2,ab2,c3,eb3] [ab2,c3,eb3,g3] [g2,bb2,d3,f3]>")
  .sound("triangle")
  .lpf(sine.range(600, 1500).slow(8)).lpq(2)
  .gain(0.18)
  .room(0.6).size(0.9)
  .attack(0.4).release(1)

$: note("~ eb5 ~ g5, ~ ~ bb5 ~, ~ ~ ~ c6").slow(2)
  .sound("sine").gain(0.08)
  .room(0.8).size(0.95)
  .delay(0.5).delaytime(0.375).delayfeedback(0.4)

$: note("<c1 f0 ab0 g0>")
  .sound("sine").gain(0.55).lpf(100)
  .decay(0.6).sustain(0.1)

Key characteristics: slow tempo, minor 7th/9th chords, sparse drums, warm pads, ethereal delayed melodies, big reverb, intimate feel.


Synthwave

// Synthwave — Am — 100 bpm
setcps(100/60/4)

$: s("bd*4, [~ sd]*2, [~ hh]*4")
  .bank("RolandTR707").gain("1 0.6 0.25")

$: note("a1 a1 [a1 c2] a1").sound("sawtooth")
  .lpf(600).gain(0.45).decay(0.2).sustain(0.1)

$: note("<[a3,c4,e4] [f3,a3,c4] [d3,f3,a3] [e3,g3,b3]>")
  .sound("square").lpf(1500).gain(0.12)
  .room(0.5).size(0.7)
  .attack(0.1).release(0.5)

$: n("<0 4 7 4 12 7 4 0>").scale("A4:minor")
  .sound("sawtooth").lpf(2000).gain(0.12)
  .delay(0.3).delaytime(0.125)

Key characteristics: gated snare, arpeggiated leads, sawtooth/square synths, 80s drum machines, driving bass.