Strudelify
Brick cover art

Whatever And Ever Amen

Brick

Ben Folds Five

KeyD majorTempo97 bpm
0:00/0:00
// Brick — Ben Folds Five
// 97 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 2 "bass" named as a bass, played on electric bass finger (its cello patch is not one)
// note: Full arrangement: all 68 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(97/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 · piano
const piano = note(`<
  A B A B A B C D A B A B A B A B A B A B A B A B A B A B C B C B A B C E F G H I J K L M@8 N@8 O@8 ~
>`.pickRestart({
  A: "~@7 d4, [d2,f#4]@3 d2@3 d2@2, ~ a3@2 f#4@5, ~ d4 a3 ~, ~@5 e4@2 ~", // D
  B: "~@7 e4, g2@3 g2@3 [g2,d4]@2, e4 d4!2 ~, ~ a3@2 e4@2 a3@2 ~", // G5
  C: "~@7 d4, [b2,f#4]@3 b2@3 b2@2, ~ a3@2 f#4@5, ~ d4 a3 ~, ~@5 e4@2 ~", // B5
  D: "~@5 a3 ~ e4, e2@3 e2@3 [e2,d4]@2, a3 e4 d4 ~, ~ d4@2 g#3@2 ~@3", // E7
  E: "~@7 e4, e2@3 e2@3 [e2,d4]@2, a3 e4 d4 ~, ~ d4@2 g#3@2 a3@2 ~", F: "[g3,b3,d4]@2 ~ [a3,c#4,e4]@3 ~@2",
  G: "[a3,c#4,e4]@3 [a3,c#4,e4]@2 ~@3", H: "[g3,b3,d4]@3 [a3,c#4,e4]@2 ~@3",
  I: "[a3,c#4,e4] [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@3", J: "[g3,b3,d4]@3 [a3,c#4,e4]@3 ~@2",
  K: "[a3,c#4,e4]@3 [a3,c#4,e4]@3 ~@2", L: "b4 g4 d4 c#5 a4 d4 b4 a3, g3@2 ~ a3@3 ~@2",
  M: "[[d3,a3,f#4]@8 ~@15 e4 ~@15 e4 ~@15 e4 ~@7 d4, d4@10 d4@5 d4@3 d4@2 d4@2 d4@4 d4@5 d4@3 d4@2 d4@2 d4@4 d4@5 d4@3 d4@2 d4@2 d4@4 d4@5 ~, ~@8 [d2,f#4]@3 d2@2 e4@2 ~ e4@2 ~ e4@2 ~@6 f#4@5 ~ a3@2 ~@2 a3@2 ~@2 a3@2 ~ a3 e4@2 ~ e4@2 ~ e4@2 ~@6 f#4@5, ~@9 a3@2 f#4@5 ~ a3@2 ~@2 a3@2 ~@2 a3@2 ~ a3 e4@2 ~ e4@2 ~ e4@2 ~@6 f#4@5 ~ a3@2 ~@2 a3@2 ~@2 a3@2 ~ a3 e4@2 ~, ~@12 a3@2 d2@2 g2@3 g2@3 g2@2 [d2,f#4]@3 d2@3 d2@2 g2@3 g2@3 g2@2 [d2,f#4]@3 d2@3 d2@2 g2@3 g2@3 g2@2 [d2,f#4]@3 d2@3 d2@2]/8", // D
  N: "[~@7 e4 ~@15 e4 ~@15 e4 ~@15 e4 ~@7 d4, g2@3 g2@3 g2@2 [d2,f#4]@3 d2@2 e4@2 ~ e4@2 ~ e4@2 ~@6 f#4@5 ~ a3@2 ~@2 a3@2 ~@2 a3@2 ~ a3 e4@2 ~ e4@2 ~ e4@2 ~@6 f#4@5, e4@2 d4@2 d4@2 d4@4 d4@5 d4@3 d4@2 d4@2 d4@4 d4@5 d4@3 d4@2 d4@2 d4@4 d4@5 d4@3 d4@2 d4@2 d4@4 d4@5 ~, ~ a3@2 e4@2 a3@2 ~@2 a3@2 f#4@5 ~ a3@2 ~@2 a3@2 ~@2 a3@2 ~ a3 e4@2 ~ e4@2 ~ e4@2 ~@6 f#4@5 ~ a3@2 ~@2 a3@2 ~@2 a3@2 ~ a3 e4@2 ~, ~@12 a3@2 d2@2 g2@3 g2@3 g2@2 [d2,f#4]@3 d2@3 d2@2 g2@3 g2@3 g2@2 [d2,f#4]@3 d2@3 d2@2 g2@3 g2@3 g2@2 [d2,f#4]@3 d2@3 d2@2]/8", // D
  O: "[~@7 e4 ~@15 e4 ~@15 e4 ~@15 e4 f#4@5 ~@3, g2@3 g2@3 g2@2 [d2,f#4]@3 d2@2 e4@2 ~ e4@2 ~ e4@2 ~@6 f#4@5 ~ a3@2 ~@2 a3@2 ~@2 a3@2 ~ a3 e4@2 ~ e4@2 ~ e4@2 ~@11, e4@2 d4@2 d4@2 d4@4 d4@5 d4@3 d4@2 d4@2 d4@4 d4@5 d4@3 d4@2 d4@2 d4@4 d4@5 d4@3 d4@2 d4@2 d4@10, ~ a3@2 e4@2 a3@2 ~@2 a3@2 f#4@5 ~ a3@2 ~@2 a3@2 ~@2 a3@2 ~ a3 e4@2 ~ e4@2 ~ e4@2 ~@6 f#4@5 ~ a3@2 ~@2 a3@2 ~@9, ~@12 a3@2 d2@2 g2@3 g2@3 g2@2 [d2,f#4]@3 d2@3 d2@2 g2@3 g2@3 g2@2 [d2,f#4]@3 d2@3 d2@2 g2@3 g2@3 g2@2 d2@3 ~@5]/8", // D
})).s("gm_piano").gain(0.24)

// bass · electric bass finger · "bass"
const bass = note("<~@16 A B A B A B A B A B A B C B C B D E F G ~@10 A B A B A B A B A B ~@12>".pickRestart({
  A: "d2", B: "g2", C: "b2", D: "d2 ~@2 d2 ~@2 d2 ~", E: "g2 ~@2 g2 ~@2 g2 ~", F: "b2 ~@2 b2 ~@2 b2 ~", G: "e2",
})).s("gm_electric_bass_finger").gain(0.06)

// bass · electric bass finger · "bass plucked"
const bass_2 = note("<~@36 A B A C A B D ~@25>".pickRestart({
  A: "g2!3 a2!5", B: "d3!8", C: "[d2,d3]!8", D: "g2 ~@2 a2 ~@2 a2 ~",
})).s("gm_electric_bass_finger").gain(0.04)

// drums · kick
const kick = s("bd").struct(`<
  ~@20 A B A B A B A B A B A B A B A B A B A B A B ~@6 A B A B A B A B A B A B A B ~@6
>`.pickRestart({
  A: "x ~@2 x ~@4", B: "x",
})).gain(0.14)

// drums · snare
const snare = s("sd").struct("<~@20 A@4 B@6 A@2 B@2 A B A@2 B@4 C ~@5 B A B A B A B A B A B A B A ~@6>".pickRestart({
  A: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2", B: "x ~ x!3 ~ x!3 ~ x!3 ~ x ~", C: "x",
})).gain(0.14)

// drums · crash
const crash = s("cr").struct("<~@16 A@4 B C@21 ~@2 A@4 B C@13 ~@6>".pickRestart({
  A: "x ~@2 x ~@4", B: "x!2 ~ x", C: "~ x ~ x",
})).gain(0.14)

stack(piano, bass, bass_2, kick, snare, crash)

More by Ben Folds Five