Strudelify
The Boxer cover art

1970 · Bridge Over Troubled Water

The Boxer

Simon & Garfunkel

KeyC majorTempo144 bpm
0:00/0:00
// The Boxer — Simon & Garfunkel
// 144 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 3 "Bass" named as a bass, played on electric bass finger (its piano patch is not one)
// note: Full arrangement: all 126 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(144/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 · "Treble"
const piano = note(`<
  A@2 B C D E F G H I J K L M N O P Q@2 R S T U@2 V W@2 X Y Z AA AB AC AD U AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT AU@2 AV@2 U V AW AX AY AZ@2 BA BB BC@2 BD BE BF@2 BG AI BH@4 V@2 AW BI BJ@2 BK BL BM@2 BN BD BO BP BQ@2 BR@2 U BS
  BT BU BV BW BX BY BZ CA CB@2 CC@2 CD CE@3 CF CG CH CI AO CJ AQ AR AO CK AU@2 CL CM
>`.pickRestart({
  A: "~ c4 e4 g4 ~ c4 e4 g4", B: "[e4,g4]@2 [e4,g4]@2 g4@3 a4, ~ e4", C: "[e4,g4]@2 [c4,e4]@2 e4 f4@3, ~ c4",
  D: "[e4,g4]!2 c5 b4, c4 [e4,g4]", E: "~ g3 c4 e4 [e4,a4]@2 [e4,g4,b4]@2, a4 ~",
  F: "a4@2 g4@2 ~ g3 b3 [d4,a4], [b3,d4]@4 g4@3 ~", G: "[b3,d4,g4]@2 g3 b3 ~@2 d4 e4, ~ d4@2 b3",
  H: "f4@2 f4@2 ~ g3 b3 [d4,g4], [b3,d4]@4 f4@3 ~", I: "f4 e4 c4 [b3,d4], [g3,c4] ~",
  J: "f4 e4@2 c4@2 c4 e4 c4, g3 ~, c4@3 ~@5", K: "~ c5 e5 g5 ~ c5 e5 g5", L: "~ c5!2 b4, [e4,g4]",
  M: "~ c4 e4 a4 ~ c4 e4 b4, c5@4 c5@3 ~", N: "[d4,g4,c5]@2 b3 d4 g4@2 b4!2, ~ b4@2 [d4,g4]",
  O: "b4@2 a4 a4@3 [c4,f4,a4]@2, [c4,f4]@3 ~", P: "~ a3 c4 [e4,a4] [c4,f4,a4]@2 [a3,c4,f4]@2, a4@3 ~@5",
  Q: "[~ g3 c4 e4 g3 b3 e4 ~@2 g3 b3 d4 ~ g3 b3 d4, g4]/2", R: "~ g3 b3 d4 ~ g3 b3 d4, g4",
  S: "~ g3 b3 d4 e4@2 d4@2, f4 g3", T: "~ g3 c4 e4 ~ g3 c4 e4, e4@3 ~ e4@3 ~", U: "[c4,e4]@3 [c4,e4] [c4,e4]@4",
  V: "[c4,e4]@3 [c4,e4] [c4,e4]@2 [c4,e4] [d4,f4]", // C Dm
  W: "[[e4,g4]@2 [e4,g4]@2 [e4,g4]!3 [e4,g4]@3 [d4,f4] [c4,e4]@3 [c4,e4] [d4,f4], c4 ~]/2", // Em Dm C Dm
  X: "[e4,g4] [e4,g4,c5] c5 b4, ~ [e4,g4]", Y: "[c4,e4]@2 [c4,e4]@4 a4!2, a4@3 [c4,e4]",
  Z: "g4@2 g4 g4@3 [b3,d4,g4]@2, [b3,d4]@3 ~", AA: "[b3,d4,g4]@2 [b3,d4]@4 d4 e4, ~@3 b3", AB: "f4!4, [a3,c4]",
  AC: "f4 e4 c4 [b3,d4], c4 ~", AD: "f4 e4@2 ~@2 g3 c4 e4, g3 ~, c4@3 c4@3 ~@2",
  AE: "[c4,e4]@3 [c4,e4] c5@2 b4@2, ~ [c4,e4]", AF: "~ c4 e4 a4 c5@2 b4@2, c5 [e4,a4]",
  AG: "[d4,g4]@2 ~ b4 ~ b3 d4 g4, c5@3 ~ b4@2 b4@2, ~ [d4,g4] ~@2", AH: "[g4,b4] [f4,a4]!3, c4",
  AI: "[f4,a4]!3 [e4,g4], c4", AJ: "~ g3 c4 e4!2 f4@3, g4 c4", AK: "[b3,d4,g4]@3 [b3,d4] [b3,d4]@2 [c4,e4]@2",
  AL: "[a3,c4,f4]!2 [g3,b3,e4] [f3,a3,d4]", AM: "~ g3 c4 e4 ~ g3 c4 e4, c4 ~@3", AN: "~ g3 c4 e4 c5@3 b4, ~ [c4,e4]",
  AO: "c5 [c4,e4,a4] ~ [c4,e4,a4]", AP: "~@2 [c4,e4,a4]@2 ~@3 b4, ~@4 c5@3 ~, ~@3 [e4,a4]",
  AQ: "c5@2 b4@2 b4 a4@3, [d4,g4]", AR: "g4@2 [b3,d4]@2 ~@3 b4, ~@4 c5@3 ~, ~@3 [d4,g4]",
  AS: "[c4,e4,a4,c5]@2 ~@2 [c4,e4,a4]@2 ~ b4, ~@4 c5@3 ~", AT: "~@2 [c4,e4,a4]@2 [f4,d5]@3 [g4,e5], ~ b4",
  AU: "[[a4,f5]@2 [g4,e5]@2 [g4,e5] [f4,d5] [e4,c5] [f4,d5]@3 [a4,c5]!3 [g4,b4]@3]/2", // Dm C Dm C Dm Am G
  AV: "[~ c4 e4 g4 ~ c4 e4 g4 ~ c4 e4 g4 ~ c4 e4 g4, c5@5 ~@3]/2", AW: "[e4,g4]!4, c4", AX: "[c4,e4,g4] [c4,e4]!3",
  AY: "[d4,f4] [c4,e4]@3 c4@2 d4@2, g3", // Dm C
  AZ: "[[c4,e4]@2 [c4,e4]!3 [c4,e4]@2 [c4,e4]@3 g3 b3 d4 b3 g3 b3, a3@4 ~ d4 ~@2]/2", BA: "d4 b3 g3 b3 d4@2 [b3,d4]!2",
  BB: "[d4,f4] [d4,f4]@3 [d4,f4]@2 [d4,f4]@2, a3", // Dm
  BC: "[[d4,f4] [c4,e4] [c4,e4]@2 c4 [b3,d4]@2 [d4,f4]@3 [c4,e4]@2 ~ g3 c4 e4, g3@8 ~@4 e4@3 ~]/2", // Dm C Bm Dm C
  BD: "~ g3 c4 e4 ~ g3 c4 e4", BE: "~ c4 [e4,c5]@2 c5@2 b4@2, ~ e4",
  BF: "[~@4 [a4,c5]@2 [g4,b4] ~@4 [g4,b4] [g4,b4]@2 [g4,b4]@2, [a4,c5]@4 ~@3 [a4,c5]@4 ~@5, ~ e4@3 ~ d4@3]/2", // Am G Am
  BG: "[g4,b4]@2 [f4,a4]@2 [f4,a4] [f4,a4]@3, c4", // G F
  BH: "[[c4,e4,g4]@4 [c4,e4,g4] [c4,e4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4]@4 [b3,d4] [b3,d4]@4 [b3,d4]@3 [b3,d4] [b3,d4]@4, ~@15 g4@17]/4", // C G Bm
  BI: "[e4,g4]@2 [d4,f4] [c4,e4]@3 [d4,f4]@2", // Em Dm C Dm
  BJ: "[[e4,g4]@2 [e4,g4,c5]@2 [e4,g4,c5] ~@2 a4@5 [c4,e4,a4]@2 [c4,e4]@2, ~@5 b4@2 ~@9, ~@3 [c4,e4]@3 ~@2]/2", // Em C Am C
  BK: "~@2 g3 b3 d4 b3 g3 b3, g4", BL: "g3 b3 d4 g4@2 ~ [b3,d4] [c4,e4]",
  BM: "[[d4,f4] [d4,f4]@3 [d4,f4] [d4,f4]@2 ~@3 [c4,e4]@2 c4@2 [c4,d4]@2, a3 b3 g3 ~, ~@7 [d4,f4]@3 ~@6]/2", // Dm C Csus2 Dm
  BN: "[d4,f4]@2 [c4,e4]@2 ~ g3 c4 e4, ~@2 e4 ~", BO: "g3 c4 e4@2 c5@2 b4@2, ~ [e4,g4]",
  BP: "[b3,e4] [b3,e4]@2 [b3,e4], g4", BQ: "[[c4,e4] [c4,e4]@2 [c4,e4] [c4,e4] ~ a4 [c4,e4], a4@5 [c4,e4]@2 ~]/2",
  BR: "[~ g3 b3 d4 ~ g3 b3 d4 ~ g3 b3 d4 ~ g3 b3 d4, g4]/2", BS: "[c4,e4]@3 [c4,e4] ~@2 g4 a4, ~ [c4,e4]",
  BT: "[e4,g4]@2 [e4,g4]@2 [e4,g4]@3 [e4,g4], c4", BU: "[e4,g4] [c4,e4]!2 [d4,f4], g3 ~",
  BV: "[e4,g4]!2 c5 b4, c4 [c4,e4]", BW: "[c4,e4]!2 a4 b4, a4 [c4,e4]", BX: "a4@2 g4@2 g4@3 a4, [b3,d4]",
  BY: "[b3,d4,g4] [b3,d4]@2 [b3,d4]", BZ: "[d4,f4] [d4,f4]@3 [d4,f4]@2 [d4,f4]@2",
  CA: "[d4,f4] [c4,e4]@2 c4@3 [b3,d4]@2", // Dm C Bm
  CB: "[[g3,c4,f4]@2 [g3,c4,e4]@2 [a3,c4] [b3,d4]@2 [d4,f4]@3 [c4,e4]@2 ~@2 [e4,g4]!2]/2", // Csus4 C Am Bm Dm C Em
  CC: "[[e4,g4]@2 [e4,g4,c5]@2 [e4,g4,c5] [e4,g4,b4]@2 [e4,a4]@3 ~@2 c5@2 [e4,a4,c5]@2, ~@7 c5@5 ~@4, ~@5 [e4,a4]@2 ~]/2", // Em C Em A5 Am A5
  CD: "c5 b4!3, [d4,g4]!2", // G5
  CE: "[[f4,b4]@2 [f4,a4]@2 [f4,a4]@2 [f4,a4] [f4,a4]@3 [f4,a4]@2 [f4,a4]@2 [e4,g4] e4@3 [c4,e4]@2 [b3,d4]@2 [a3,c4]@2, c4@2 ~, ~@5 g4@3]/3", // Fdim F Em C Bm Am
  CF: "[b3,d4] [b3,d4]@2 [b3,d4]", CG: "[a3,c4] [a3,c4]@2 [a3,c4], f4", CH: "c4 c4@2 c4, e4",
  CI: "[e4,g4]@2 ~@5 b4, ~ [e4,g4]@2 [e4,g4], ~@4 c5@3 ~", CJ: "~@2 [c4,e4,a4]@2 c5@3 b4, ~ [c4,e4,a4]",
  CK: "~@2 [c4,e4,a4]@2 [f4,d5]@3 [g4,e5]", CL: "[e4,g4,c5] [e4,g4]@2 [e4,g4]", CM: "[e4,g4] [e4,g4]@2 [e4,g4]",
})).s("gm_piano").gain(0.26)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A@4 B C D@4 A@2 B C D E@2 A D@2 F G H@2 I A J B K D L D A@2 H@2 C D E@2 A D M A B N O P Q O@2 R S A@2 H I A@2 B C D@3
  T A@2 B C D E@2 H D L@2 H I A U B V D@3 A@4 L V@2 W@2 H@2 A T B X L@3 Y Z AA B V L E@2 AB Q AC AB AD N O AE Q O AF R
  AC AG@2
>`.pickRestart({
  A: "c3 e3 g3 e3", B: "c3 e3 c3 b2", C: "a2 e3 a3 e3", D: "g2 d3 g3 d3", E: "f2 c3 f3 c3", F: "g2 d3 c3 b2",
  G: "g2 e3 g3 e3", H: "g2@2 c3 e3 g3@2 e3@2", I: "g2@2 c3 e3 g3@2 e3 d3", J: "c3 e3 g3 c3", K: "g2@2 c3 e3 a3@2 e3@2",
  L: "g2@2 b2 d3 g3@2 d3@2", M: "f2 c3 f2 d3", N: "a2@3 e3 a3@3 e3", O: "a2@3 e3 a3@4", P: "g2@3 g3 f3@2 d3@2",
  Q: "g2@3 d3 g3@4", R: "g2@3 g3 g3@4", S: "f2@3 c3 e3@4", T: "c3 e3 g3 g2", U: "c3 g3 g2 g3",
  V: "a2@2 c3 e3 a3@2 e3@2", W: "g2 d3 d2 d3", X: "a2@2 c3 e3 g3@2 e3@2", Y: "g2 c3 e3 g3", Z: "g2 c3 g3 d3",
  AA: "c3@2 e3 g3 c4@2 g3@2", AB: "c3@3 g3 g3@4", AC: "f2@3 c3 f3@4", AD: "c3@3 g3 c4@2 g3@2", AE: "a2@3 a3 a3@2 d3@2",
  AF: "a2@3 e3 g3@4", AG: "c3@3 g3 c4@4",
})).s("gm_electric_bass_finger").gain(0.26)

stack(piano, bass)

More by Simon & Garfunkel