Strudelify

Down in the Park

Foo Fighters

KeyE majorTempo140 bpm
0:00/0:00
// Down in the Park — Foo Fighters
// 140 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 140 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(140/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · distortion guitar · "Distortion w/ Flange"
const distortion_guitar = note(`<
  ~@32 A B A B C D C E ~@24 A B A B C F C G H ~@5 I J K L M N K L O@2 K L M N K L O@2 K L M N K L O@2 K L M N K L O@2 A
  B A B A B A B A B A B ~@16
>`.pickRestart({
  A: "~ d4 e4 a3 d4 c#4 d4 c#4", B: "a3 d4 e4 a3 g3 d4 c#4@2", C: "~ c4 b3 g3 f3 g3 c4 g3", D: "b3 c4 b3 g3 d4@2 b3 g3",
  E: "b3 c4 b3 g3 d4@2 g4@2", F: "b3 c4 b3 g3 c4 b3 c4@2", G: "b3@2 c4@2 b3@2 g3@2 c4 b3 c4 b3 a3@4", H: "b3@7 ~",
  I: "~ [e2,b2]!7", J: "[e2,b2]!8", K: "[b2,f#3,b3,d#4]!8", L: "[c#3,g#3,c#4]!8", M: "[a2,e3,a3,c#4]!8",
  N: "[e2,b2,e3,g#3,b3,e4]!8", O: "[g#2,d#3,g#3]!8",
})).s("gm_distortion_guitar").gain(0.48)

// chords · distortion guitar · "Distortion w/ Flange" · soft notes
const distortion_guitar_soft = note("<~@78 A ~@45 B C B C B C B C B C B C B C B C>".pickRestart({
  A: "[e2,b2] ~@7", B: "~ d4 e4 a3 d4 c#4 d4 c#4", C: "a3 d4 e4 a3 g3 d4 c#4@2",
})).s("gm_distortion_guitar").gain(0.16)

// chords · distortion guitar · "Distortion"
const distortion_guitar_2 = note(`<
  ~@32 A@4 B@4 C@8 D E F G D H I@2 D E F G D H I@2 A@4 B@4 C@8 J K L M J K N@2 J K L M J K N@2 J K L M J K N@2 J K L M J
  K N@2 A@28
>`.pickRestart({
  A: "[[a2,e3,a3]@15 ~]/2", B: "[[g2,d3,g3]@15 ~]/2", C: "[[e2,b2,e3]@15 ~]/2",
  D: "[b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~", // B5
  E: "[c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~", // C#5
  F: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~", // A5
  G: "[e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
  H: "[c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [e2,b2] ~ [f#2,c#3] ~", // C#5 E5 F#5
  I: "[g#2,d#3] ~ [g#2,d#3] ~ [g#2,d#3] ~ [g#2,d#3] ~ [g#2,d#3] ~ [g#2,d#3] ~ [g#2,d#3] ~ [g#2,d#3] ~", // G#5
  J: "[b2,f#3,b3]!8", K: "[c#3,g#3,c#4]!8", L: "[a2,e3,a3]!8", M: "[e2,b2,e3]!8", N: "[g#2,d#3,g#3]!8",
})).s("gm_distortion_guitar").gain(0.48)

// chords · piano
const piano = note("<~@48 A B C D A E F@2 A B C D A E F@2 ~@76>".pickRestart({
  A: "[b2,f#3]!8", B: "[c#3,g#3]!8", C: "[a2,e3]!8", D: "[e2,b2]!8", E: "[c#3,g#3]!6 [e2,b2] [f#2,c#3]",
  F: "[g#2,d#3]!8", // G#5
})).s("gm_piano").gain(0.2)

// other · electric guitar jazz · "Digital Delay"
const electric_guitar_jazz = note(`<
  A B C ~ A B D E@2 B C F A B D E@2 B C F A B D E@2 B C F A B D ~@10 G@4 H@2 I@3 ~@5 E@2 ~@16 G@4 J@2 K ~@7 E@2 ~@6 L
  ~@7 L ~@36
>`.pickRestart({
  A: "b3!3 ~", B: "c#4!3 ~", C: "a3!3 ~", D: "g#3!3 ~", E: "[~@5 c#5 ~ b4@8 ~, ~@4 g#4@2 f#4@9 ~]/2", F: "e3!3 ~",
  G: "[f#4@5 ~ e4@5 ~ b3@18 ~@2]/2", H: "[g#4@5 ~ e4@5 ~ b3@18 ~@2]/2", I: "[f#4@5 ~ e4@5 ~ b3@34 ~@2]/3",
  J: "[d4@5 ~ e4@5 ~ b3@18 ~@2]/2", K: "g#4@5 ~ e4@5 ~@5", L: "~@5 c#5 ~ b4, ~@2 g#4 f#4",
})).s("gm_electric_guitar_jazz").gain(0.4)

// other · electric guitar jazz · "Digital Delay" · soft notes
const electric_guitar_jazz_2 = note(`<
  A B C D A B E F ~ B C G A B E F ~ B C G A B E F ~ B C G A B E F ~@108
>`.pickRestart({
  A: "~@3 b3", B: "~@3 c#4", C: "~@3 a3", D: "a3!2 ~@2", E: "~@3 g#3", F: "g#3!2 ~@2", G: "~@3 e3",
})).s("gm_electric_guitar_jazz").gain(0.16)

// other · piano
const piano_2 = note("<~ A B ~ C D E ~ F ~@3 G D@2 ~@125>".pickRestart({
  A: "~ c#5@2 c#5@2 c#5@2 ~", B: "d#4 e4 d#4 e4 d#4 e4 ~@2", C: "b4 a#4 b4 a#4 b4 a#4 ~@2",
  D: "c#5 c5 c#5 c5 c#5 c5 ~@2", E: "g#3 g3 g#3 g3 g#3 g3 ~@2", F: "b3!4", G: "b4!3 ~",
})).s("gm_piano").gain(0.1)

// other · piano · soft notes
const piano_soft = note("<~ A B C D E F G ~@4 H E@2 I ~@124>".pickRestart({
  A: "~@7 c#5", B: "~@6 d#4 e4", C: "d#4 e4 d#4 e4 d#4 e4 ~@2", D: "~@6 b4 a#4", E: "~@6 c#5 c5", F: "~@6 g#3 g3",
  G: "g#3 g3 g#3 g3 ~@4", H: "~@3 b4", I: "c#5 c5 c#5 c5 ~@4",
})).s("gm_piano").gain(0.05)

// other · piano
const piano_3 = note("<~@8 A ~@7 A ~@7 A ~@31 A ~@31 A ~@7 A ~@7 A ~@35>".pickRestart({
  A: "f#4 b4 f#4 b4 f#4 ~@3",
})).s("gm_piano").gain(0.1)

// other · piano · soft notes
const piano_soft_2 = note("<~@8 A ~@7 A ~@7 A ~@31 A ~@31 A ~@7 A ~@7 A ~@35>".pickRestart({
  A: "~@5 b4 ~@2",
})).s("gm_piano").gain(0.05)

// bass · electric bass pick · "Pick Bass"
const bass = note(`<
  A B C D A E F@2 A B C D A E F@2 A B C D A E F@2 A B C D A E F@2 G@2 H@2 I@2 J@2 K@6 L M A B C D A E F@2 A B C D A E
  F@2 G@2 H@2 I@2 J@2 K@6 L M A B C D A E F@2 A B C D A E F@2 A B C D A E F@2 A B C D A E N@2 O@12 P ~@15
>`.pickRestart({
  A: "b1!8", B: "c#2!8", C: "a1!8", D: "e1!7 a1", E: "c#2!6 e1 f#1", F: "g#1!8",
  G: "[a1@5 ~ a1@5 ~ a1@6 g2@2 a2@5 ~ e2@2 g2@2 a2@2]/2", H: "[a1@5 ~ a1@5 ~ a1@6 g2@2 a2@5 ~ e2@2 d2@2 c#2@2]/2",
  I: "[g1@5 ~ g1@5 ~ g1@6 g1@2 g1@5 ~ g1@2 g1@2 g1@2]/2", J: "[g1@5 ~ g1@5 ~ g1@6 g1@2 g1@5 ~ g1@2 ~@4]/2",
  K: "[e1@15 ~]/2", L: "~ e1!7", M: "e1!8", N: "[g#1!4 b1 g#1@2 g#1@2 b1 d#2 g#1 d#2 f#2 g#2@2]/2",
  O: "[a1@5 ~ a1@5 ~ a1@6 a1@2 a1@5 ~ a1@2 a1@2 a1@2]/2", P: "a1@5 ~@11",
})).s("gm_electric_bass_pick").gain(0.48)

// bass · electric bass pick · "Pick Bass" · soft notes
const bass_soft = note("<~@46 A ~@31 A ~@45 B@2 C@14>".pickRestart({
  A: "e1 ~@7", B: "[~@6 a1@5 ~ a1@6 a1@2 a1@5 ~ a1@2 a1@2 a1@2]/2",
  C: "[a1@5 ~ a1@5 ~ a1@6 a1@2 a1@5 ~ a1@2 a1@2 a1@2]/2",
})).s("gm_electric_bass_pick").gain(0.16)

// drums · kick
const kick = s("bd").struct(`<
  A@31 B C D C D C D C D E ~ E ~ E ~ F G A@15 H C D C D C D C D E ~ E ~ E ~ F G I@6 J K I@6 J K I@6 J K I@2 L I@3 J M C
  D C D C D C N ~@20
>`.pickRestart({
  A: "x ~@2 x ~@3 x", B: "x ~@2 x ~ x ~ x", C: "x ~@2 x ~@2 x ~", D: "~@2 x ~@2 x ~ x", E: "x", F: "x ~@4 x!3",
  G: "x!8", H: "x ~@5 x ~@3 x!2 ~@2 x ~", I: "x!4 ~ x!3", J: "x!4 ~ x ~ x", K: "x ~ x ~@2 x!3", L: "x!3 ~@2 x!3",
  M: "x ~ x!2 ~ x ~ x", N: "~@2 x ~@2 x ~@2",
})).gain(0.64)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@46 A ~@31 A ~@40 B C D C D C D C D C D C D C D C D C D C D>".pickRestart({
  A: "~ x!4 ~@3", B: "~@7 x", C: "x ~@2 x ~@2 x ~", D: "~@2 x ~@2 x ~ x",
})).gain(0.24)

// drums · snare
const snare = s("sd").struct(`<
  A@31 B A@8 ~@6 C D A@15 E A@8 ~@6 C D A@6 B F A@6 B F A@6 B F A@6 B G A@8 ~@20
>`.pickRestart({
  A: "~ x", B: "~@2 x!2", C: "~@5 x!3", D: "x ~ x ~ x ~ x ~ x ~@3 x!2 ~@2", E: "~@8 x!2 ~@2 x ~@3", F: "~ x ~ x!2 ~@3",
  G: "~ x ~@2 x ~ x ~",
})).gain(0.64)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@46 [x!5 ~@3] ~@31 [x!5 ~@3] ~@41 [~ x]!20>").gain(0.32)

// drums · hihat
const hihat = s("hh").struct(`<
  A@6 B A B@7 A B@7 A B@6 A ~@9 C D C D C D C D A B@5 A E B@6 A ~@9 C D C D C D C D ~@60
>`.pickRestart({
  A: "x!3 ~ x!4", B: "x!4 ~@2 x!2", C: "~ x", D: "x!2", E: "x!5 ~ x!2",
})).gain(0.4)

// drums · open hat
const open_hat = s("oh").struct(`<
  A@6 B A B@7 A B@7 A B@6 A C D@8 ~@7 E A B@5 A F B@6 A C D@8 ~@7 E ~@32 D@12 G ~@15
>`.pickRestart({
  A: "~@3 x ~@4", B: "~ x", C: "x!5 ~@3", D: "x!4", E: "~@5 x ~ x", F: "~@5 x ~@2", G: "x",
})).gain(0.48)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct("<~@124 [~ x!3] [x!4]!15>").gain(0.16)

// drums · crash
const crash = s("cr").struct(`<
  ~@32 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@17 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ B@32 A ~ A ~ A ~ A ~@21
>`.pickRestart({
  A: "x", B: "x!4",
})).gain(0.64)

// drums · crash · soft notes
const crash_soft = s("cr").struct("<~@120 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~>".pickRestart({
  A: "x",
})).gain(0.24)

stack(
  distortion_guitar, distortion_guitar_soft, distortion_guitar_2, piano, electric_guitar_jazz, electric_guitar_jazz_2,
  piano_2, piano_soft, piano_3, piano_soft_2, bass, bass_soft, kick, kick_soft, snare, snare_soft, hihat, open_hat,
  open_hat_soft, crash, crash_soft
)

More by Foo Fighters