Strudelify

Bang Bang

Sonny & Cher

KeyG minorTempo83 bpm
0:00/0:00
// Bang Bang — Sonny & Cher
// 83 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 58 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(83/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.

// bass · electric bass finger · "Bass"
const bass = note("<A@4 B C D E F G H I J K L M@8 N@3 O P@6 Q@5 R@3 S T@7 U V@4 ~@4>".pickRestart({
  A: "[~@28 g1@51 ~@4 c2@52 ~@2 d2@53 ~@2]/4", B: "g1@7 ~@2 g1@3 bb1@6 d2@6", C: "g1@16 ~@2 g1@5 ~ bb1@11 ~ d2@12",
  D: "g1@16 ~@2 g1@6 bb1@11 ~ d2@12", E: "g1@17 ~ g1@5 ~ bb1@11 ~ d2@11 ~", F: "f1@15 ~@3 f1@5 ~ a1@11 ~ c2@12",
  G: "d2@17 ~ d2@6 gb2@6 g2@6 a2@6 d2@4 ~@2", H: "g1@16 ~@2 g1@5 ~ bb1@11 ~ d2@11 ~",
  I: "g1@16 ~@2 g1@5 ~ bb1@12 d2@11 ~", J: "f1@5 ~ f1@2 a1@2 bb1@2 c2@2 f1@2", K: "d2@17 ~ d2@6 gb2@5 ~ g2@6 a2@6 d2@6",
  L: "g1",
  M: "[~@7 c2@52 ~@2 d2@53 ~@2 g1@14 ~@4 g1@6 bb1@12 d2@12 g1@16 ~@2 g1@5 ~ bb1@11 ~ d2@12 g1@16 ~@2 g1@6 bb1@11 ~ d2@12 g1@17 ~ g1@5 ~ bb1@11 ~ d2@11 ~ f1@15 ~@3 f1@5 ~ a1@11 ~ c2@12 d2@17 ~ d2@6 gb2@4]/8",
  N: "[~@2 g2@6 a2@6 d2@5 ~ g1@16 ~@2 g1@5 ~ bb1@11 ~ d2@11 ~ g1@16 ~@2 g1@5 ~ bb1@12 d2@11 ~ f1@15 ~@3 f1@6 a1@4]/3",
  O: "~@2 bb1@6 c2@6 f1@6 d2@17 ~ d2@6 gb2@4",
  P: "[~@2 g2@6 a2@6 d2@6 g1@51 ~@3 c2@52 ~@3 d2@53 ~ g2@4 ~@3 d2@4 ~ g2@5 ~@2 d2@5 ~ g1@5 ~ d2@5 ~ g1@5 ~ d2@5 ~ f2@5 ~ c2@5 ~ f2@5 ~ c2@6 f1@5 ~ c2@6 f1@5 ~ c2@3 ~@3 g2@4 ~@2 d2@2]/6",
  Q: "[~@4 g2@5 ~ d2@5 ~ g1@5 ~ d2@5 ~ g1@5 ~ d2@5 ~ f2@5 ~ c2@5 ~ f2@5 ~ c2@6 f1@5 ~ c2@6 ~ f1@5 ~ c2@3 ~@3 g2@4 ~@2 d2@4 ~@2 g2@5 ~ d2@5 ~ g1@5 ~ d2@5 ~ g1@5 ~ d2@5 ~ f2@5 ~ c2@5 ~ f2@5 ~ c2@6 f1@5 ~ c2@6 f1@5 ~ c2@3 ~@3 g1@51 ~@4]/5",
  R: "[c2@52 ~@2 d2@53 ~@2 g1@14 ~@4 g1@6 bb1@11]/3", S: "~ d2@11 g1@16 ~@2 g1@5 ~ bb1@11 ~",
  T: "[d2@11 ~ g1@16 ~@2 g1@6 bb1@11 d2@12 g1@17 ~ g1@5 ~ bb1@11 ~ d2@11 ~ f1@15 ~@2 f1@5 ~ a1@11 ~ c2@12 d2@17 ~ d2@6 gb2@6 g2@6 a2@6 d2@4 ~@2 g1@16 ~ g1@5 ~ bb1@11 ~ d2@11 ~ g1@16 ~@2 g1@5 ~ bb1@12 d2@11 f1@15 ~@3 f1@6 a1@6 bb1@6 c2@4]/7",
  U: "~@2 f1@6 d2@17 ~ d2@6 gb2@5 g2@6 a2@5", V: "[~ d2@6 g1@51 ~@5 c2@53 ~@2 d2@58 ~@16]/4",
})).s("gm_electric_bass_finger").gain(0.36)

// chords · drawbar organ · "Keyboard"
const drawbar_organ = note("<~@30 A B C D E F G ~@21>".pickRestart({
  A: "~@42 [bb4,d5,g5] ~@5", // Gm
  B: "[bb4,d5] ~@5 [d5,g5]@2 ~@5 [d5,g5]@2 ~@4 [bb4,d5,g5] ~@5 [bb4,d5,g5] ~@5 [d5,g5]@2 ~@4 [bb4,d5,g5] ~@5 [a4,c5,f5] ~@4, g5@2 ~@4 bb4 ~@6 bb4 ~@17 bb4 ~@16", // Bb G5 Gm G5 Gm F
  C: "~ [a4,c5,f5] ~@5 [a4,c5,f5] ~@5 [c5,f5]@2 ~@4 [c5,f5]@2 ~@4 [c5,f5]@2 ~@4 [a4,c5,f5]@2 ~@4 [a4,c5,f5]@2 ~@4 [bb4,d5,g5] ~@4, ~@13 a4 ~@5 a4 ~@5 a4 ~@22", // F F5 F Gm
  D: "~ [bb4,d5] ~@5 [d5,g5]@2 ~@4 [d5,g5]@2 ~@4 [bb4,d5,g5] ~@5 [bb4,d5,g5] ~@5 [d5,g5]@2 ~@4 [bb4,d5,g5] ~@5 [a4,c5,f5] ~@4, ~ g5@2 ~@4 bb4 ~@5 bb4 ~@17 bb4 ~@16", // Bb G5 Gm G5 Gm F
  E: "~ [a4,c5,f5] ~@5 [a4,c5,f5] ~@5 [c5,f5]@2 ~@5 [c5,f5]@2 ~@4 [c5,f5]@2 ~@4 [a4,c5,f5]@2 ~@4 [a4,c5,f5]@2 ~@4 [bb4,d5,g5] ~@3, ~@13 a4 ~@6 a4 ~@5 a4 ~@21", // F F5 F Gm
  F: "~@2 [bb4,d5] ~@5 [d5,g5]@2 ~@4 [d5,g5]@2 ~@4 [bb4,d5,g5] ~@5 [bb4,d5,g5] ~@5 [d5,g5]@2 ~@4 [bb4,d5,g5] ~@5 [a4,c5,f5] ~@3, ~@2 g5@2 ~@4 bb4 ~@5 bb4 ~@17 bb4 ~@15", // Bb G5 Gm G5 Gm F
  G: "~@2 [a4,c5,f5] ~@5 [a4,c5,f5] ~@5 [c5,f5]@2 ~@4 [c5,f5]@2 ~@4 [c5,f5]@2 ~@4 [a4,c5,f5]@2 ~@4 [a4,c5,f5]@2 ~@8, ~@14 a4 ~@5 a4 ~@5 a4 ~@21", // F F5 F
})).s("gm_drawbar_organ").gain(0.32).pan(0.6)

// chords · acoustic guitar nylon · "Guitar 1"
const acoustic_guitar_nylon = note(`<
  A B C D E@3 F G H E@2 G H I@2 J K L@2 M N O P L N Q R S T U V W@6 X@2 Y Z AA AB AC AD@2 AE AF AG@3 AH@6
>`.pickRestart({
  A: "~@28 d4@3 bb3@2 g3@2 ~ bb3 g3@2 d4@2 bb3 ~ d4@2 ~ g3@2, ~@35 d4@2 ~@5 g3@2 ~ bb3@2 ~",
  B: "~ bb3 g3@2 ~@2 g3@2 d4@2 ~ g3@2 ~ bb3 g3@2 d4@2 [g3,bb3]@2 d4@2 bb3 g3@2 ~ bb3@2 g3@5 ~ g4@3 eb4@2 ~ g4@2 eb4 c4@2 ~ eb4, d4@2 ~@2 d4@2 ~@7 d4@2 ~@11 d4@2 ~@12 c4@2 ~@4 g4@2, ~@5 bb3@2 ~@3 bb3@2 ~@36", // Gm
  C: "c4@2 ~@2 c4@2 g4@2 eb4 c4@2 ~@2 c4@2 ~ eb4@2 ~ g4@2 eb4 c4@2 ~@2 c4@2 ~ eb4 c4@2 g4@2 eb4@2 c4@5 d4@3 a3@2 gb3@2, ~@2 g4@2 ~@7 g4@2 ~@2 g4@2 ~@7 g4@2 ~@2 g4@2 ~@18, ~@3 eb4@2 ~@7 eb4@2 ~@4 c4@2 ~@5 eb4@2 ~@21",
  D: "~ a3 gb3@2 d4@2 a3 gb3@2 ~@2 gb3@2 ~ a3 ~@2 d4@2 ~@2 d4@2 ~ gb3@2 ~ a3 ~ gb3@2 ~@2 gb3@2 ~ a3 gb3@2 d4@2 ~ gb3@5 ~, d4@2 ~@7 d4@2 ~@2 d4@2 ~@5 gb3@2 ~@10 a3@2 ~@7 a3@2 ~@5, ~@10 a3@2 ~@4 gb3@2 ~ a3@2 ~@2 a3@2 ~ d4@2 ~@3 d4@2 ~@2 d4@2 ~@11",
  E: "[g3,bb3,d4,g4]@3 ~@3 [g3,bb3,d4,g4] ~ [bb3,d4,g4] ~ [g3,bb3,d4,g4] ~ [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@11 [g3,bb3,d4,g4]@2 ~@10 [g3,bb3,d4,g4] ~@5", // Gm
  F: "[g3,bb3,d4,g4]@3 ~@3 [g3,bb3,d4,g4] ~ [bb3,d4,g4] ~ [g3,bb3,d4,g4] ~ [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@11 [g3,bb3,d4,g4] ~@11 [g3,bb3,d4,g4] ~@5", // Gm
  G: "[f3,a3,c4,f4]@2 ~@4 [f3,a3,c4] ~ [f3,a3,c4,f4] ~ [f3,a3,c4,f4] ~ [f3,a3,c4,f4]@2 ~@4 [f3,a3,c4,f4] ~@11 [f3,a3,c4,f4]@2 ~@10 [f3,a3,c4,f4]@2 ~@4", // F
  H: "[d3,gb3,c4,d4]@2 ~@4 [d3,gb3,c4,d4] ~ [d3,gb3,c4,d4] ~ [d3,gb3,c4,d4] ~ [d3,gb3,c4,d4] ~@5 [d3,gb3,c4,d4]@2 ~@10 [d3,gb3,c4,d4]@2 c-1@10 [d3,gb3,c4,d4]@2 ~@4", // D7
  I: "[d4@3 bb3@2 ~ d4@2 bb3 g3@2 ~ bb3 g3@2 ~ bb3@2 ~ d4@2 bb3 g3@2 ~@2 g3@2 d4@2 ~ g3@2 ~ bb3 g3@2 ~@2 g3@2 d4@2 [g3,bb3]@2 d4@2 bb3@2 g3@5 ~ g4@2 eb4@2 c4@2 g4@2 eb4 ~ g4@2 eb4 c4@2 ~@2 c4@2 g4@2 eb4 ~ g4@2 ~ c4@2 ~@2 c4@2 g4@2 eb4 c4@2 ~@2 c4@2, ~@5 g3@2 ~@4 d4@2 ~@2 d4@2 ~ g3@2 ~@4 d4@2 ~@7 d4@2 ~@2 d4@2 ~@25 c4@2 ~@4 g4@2 ~@11 g4@2 ~@7 g4@2 ~@2, ~@25 bb3@2 ~@3 bb3@2 ~@6 bb3@2 ~@31 eb4@2 ~@4 c4@2 ~ eb4@2 ~@2 eb4@2 ~@7 eb4@2 ~]/2", // Gm
  J: "~ eb4 c4@2 g4@2 ~ c4@5 ~ d4@3 a3@2 gb3@2 ~ a3 gb3@2 d4@2 a3 ~ d4@2 ~ gb3@2 ~ a3 gb3@2 ~@2 gb3@2 d4@2 ~ gb3@2 ~ a3, g4@2 ~@4 eb4@2 ~@12 d4@2 ~@5 gb3@2 ~ a3@2 ~ d4@2 ~@2 d4@2 ~@7 d4@2, ~@38 a3@2 ~@3 a3@2 ~@3",
  K: "gb3@2 ~@2 gb3@2 d4@2 [gb3,a3]@2 ~@2 a3@2 gb3@5 ~ [g3,bb3,d4,g4]@3 ~@3 [g3,bb3,d4,g4] ~ [bb3,d4,g4] ~ [g3,bb3,d4,g4] ~ [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@9, ~@2 d4@2 ~@7 d4@2 ~@35, ~@3 a3@2 ~@43", // Gbm Gm
  L: "~@2 [g3,bb3,d4,g4]@2 ~@10 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4]@3 ~@3 [g3,bb3,d4,g4] ~ [bb3,d4,g4] ~ [g3,bb3,d4,g4] ~ [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@9", // Gm
  M: "~@2 [g3,bb3,d4,g4] ~@11 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4]@3 ~@3 [g3,bb3,d4,g4] ~ [bb3,d4,g4] ~ [g3,bb3,d4,g4] ~ [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@9", // Gm
  N: "~@2 [g3,bb3,d4,g4]@2 ~@10 [g3,bb3,d4,g4] ~@5 [f3,a3,c4,f4]@2 ~@4 [f3,a3,c4] ~ [f3,a3,c4,f4] ~ [f3,a3,c4,f4] ~ [f3,a3,c4,f4]@2 ~@4 [f3,a3,c4,f4] ~@9", // Gm F
  O: "~@2 [f3,a3,c4,f4]@2 ~@10 [f3,a3,c4,f4]@2 ~@4 [d3,gb3,c4,d4]@2 ~@4 [d3,gb3,c4,d4] ~ [d3,gb3,c4,d4] ~ [d3,gb3,c4,d4] ~ [d3,gb3,c4,d4] ~@5 [d3,gb3,c4,d4]@2 ~@8", // F D7
  P: "~@2 [d3,gb3,c4,d4]@2 c-1@10 [d3,gb3,c4,d4]@2 ~@4 [g3,bb3,d4,g4]@3 ~@3 [g3,bb3,d4,g4] ~ [bb3,d4,g4] ~ [g3,bb3,d4,g4] ~ [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@9", // D7 Gm
  Q: "~@2 [f3,a3,c4,f4]@2 ~@10 [f3,a3,c4,f4]@2 ~@4 [d3,gb3,c4,d4]@2 ~@4 [d3,gb3,c4,d4] ~ [d3,gb3,c4,d4] ~ [d3,gb3,c4,d4] ~ [d3,gb3,c4,d4] ~@5 [d3,c4,d4]@3 ~@7, ~@38 gb3 ~@9", // F D7
  R: "~@2 [gb3,c4,d4] ~ c-1@10 [d3,gb3,c4,d4]@2 ~@4 d4@3 ~ g3@2 d4@2 bb3 g3@2 ~ bb3 g3@2 ~@2 g3@2 d4@2 bb3 ~ d4@2 ~ g3@2, ~@2 d3@2 ~@19 bb3@2 ~@6 d4@2 ~@2 d4@2 ~@11, ~@36 bb3@2 ~@4 g3@2 ~ bb3@2 ~", // D7
  S: "~@2 g3@2 d4@2 bb3 g3@2 ~@2 g3@2 ~ bb3 g3@2 d4@2 bb3@2 g3@5 g4@3 eb4@2 c4@2 ~ eb4 c4@2 g4@2 eb4 c4@2 ~@2 c4@2 ~ eb4, d4@2 ~@7 d4@2 ~@2 d4@2 ~@18 g4@2 ~@7 g4@2 ~@2 g4@2, ~ bb3@2 ~@7 bb3@2 ~@31 eb4@2 ~@3",
  T: "c4@2 ~@2 c4@2 g4@2 ~ c4@2 ~ eb4 c4@2 g4@2 ~ c4@2 ~ eb4 c4@2 ~ eb4@2 c4@5 ~ d4@3 a3@2 ~ d4@2 a3 gb3@2 ~ a3 gb3@2, ~@2 g4@2 ~@7 g4@2 ~@7 g4@2 ~@2 g4@2 ~@18 d4@2 ~@2, ~@3 eb4@2 ~@3 eb4@2 ~@7 eb4@2 ~@19 gb3@2 ~@8",
  U: "~ a3@2 ~ d4@2 a3 gb3@2 ~@2 gb3@2 ~ a3@2 ~ d4@2 a3 gb3@2 ~@2 gb3@2 d4@2 [gb3,a3]@2 d4@2 a3@2 gb3@5 ~ [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~, d4@2 ~ gb3@2 ~@4 d4@2 ~@2 d4@2 ~@7 d4@2 ~@24, ~@10 a3@2 ~@4 gb3@2 ~@5 a3@2 ~@23", // Gbm Gm
  V: "~ [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~", // Gm F
  W: "[~ [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 a3 ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@3 [g3,bb3,d4] ~ [bb3,d4] g3 ~ [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 f3 [a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~ f3 [a3,c4] ~ [f3,a3,c4] ~@2 [f3,a3,c4] ~@3 [a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~ [g3,bb3,d4] ~@3 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 d4@3 bb3@2 g3@2 ~ bb3 g3@2 d4@2 bb3 ~ d4@2 ~ g3@2 ~ bb3 g3@2 ~@2 g3@2 d4@2 ~ g3@2 ~ bb3 g3@2 ~@2 g3@2 d4@2 bb3 g3@2 ~ bb3@2 g3@5 ~, ~@28 [f3,c4]@3 ~@96 f3@2 ~@111 d4@2 ~@5 g3@2 ~ bb3@2 ~ d4@2 ~@2 d4@2 ~@7 d4@2 ~@2 d4@2 ~@7 d4@2 ~@7, ~@29 c-1@229 bb3@2 ~@3 bb3@2 ~@6 bb3@2 ~@15]/6", // F Gm Bb Gm Am F Am F …
  X: "[g4@3 ~ c4@2 g4@2 eb4 c4@2 ~ eb4 c4@2 ~@2 c4@2 g4@2 eb4 c4@2 ~@2 c4@2 ~@2 c4@2 g4@2 eb4 c4@2 ~@2 c4@2 ~ eb4 c4@2 g4@2 eb4@2 c4@5 d4@3 a3@2 gb3@2 ~ a3 gb3@2 d4@2 a3 gb3@2 ~@2 gb3@2 ~ a3 ~@2 d4@2 ~@2 d4@2 ~ gb3@2 ~ a3 gb3@2 d4@2 ~ gb3@2, ~@3 eb4@2 ~@6 g4@2 ~@2 g4@2 ~@7 g4@2 ~@2 g4@2 ~@7 g4@2 ~@2 g4@2 ~@28 a3@2 ~@4 gb3@2 ~ a3@2 ~@2 a3@2 ~ d4@2 ~@7, ~@16 eb4@2 ~@7 eb4@2 ~@2 eb4@2 ~@7 eb4@2 ~@21 d4@2 ~@7 d4@2 ~@2 d4@2 ~@5 gb3@2 ~@10 a3@2 ~]/2",
  Y: "~ a3 gb3@2 d4@2 ~ gb3@5 ~ [g3,bb3,d4,g4]@3 ~@3 [g3,bb3,d4,g4] ~ [bb3,d4,g4] ~ [g3,bb3,d4,g4] ~ [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@11 [g3,bb3,d4,g4] ~@4, d4 ~@2 a3 ~@20", // Gm
  Z: "~@6 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4]@3 ~@3 [g3,bb3,d4,g4] ~ [bb3,d4,g4] ~ [g3,bb3,d4,g4] ~ [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@11 [g3,bb3,d4,g4] ~@5", // Gm
  AA: "~@6 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4]@3 ~@3 [g3,bb3,d4,g4] ~ [bb3,d4,g4] ~ [g3,bb3,d4,g4] ~ [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@10 [g3,bb3,d4,g4] ~@6", // Gm
  AB: "~@5 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4]@3 ~@3 [g3,bb3,d4,g4] ~ [bb3,d4,g4] ~ [g3,bb3,d4,g4] ~ [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@11 [g3,bb3,d4,g4] ~@6", // Gm
  AC: "~@5 [g3,bb3,d4,g4] ~@5 [f3,a3,c4,f4]@2 ~@4 [f3,a3,c4] ~ [f3,a3,c4,f4] ~ [f3,a3,c4,f4] ~ [f3,a3,c4,f4] ~@4 [f3,a3,c4,f4] ~@11 [f3,a3,c4,f4]@2 ~@6", // Gm F
  AD: "[~@4 [f3,a3,c4,f4]@2 ~@4 [d3,gb3,c4,d4]@2 ~@4 [d3,gb3,c4,d4] ~ [d3,gb3,c4,d4] ~ [d3,gb3,c4,d4] ~ [d3,gb3,c4,d4] ~@5 [d3,gb3,c4,d4]@2 ~@10 [gb3,c4,d4] ~ c-1@10 [d3,gb3,c4,d4]@2 ~@4 [g3,bb3,d4,g4]@3 ~@2 [g3,bb3,d4,g4] ~ [bb3,d4,g4] ~ [g3,bb3,d4,g4] ~ [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@11 [g3,bb3,d4,g4] ~@8, ~@20 d3 ~@27]/2", // F D7 Gm
  AE: "~@3 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4]@3 ~@3 [g3,bb3,d4,g4] ~ [bb3,d4,g4] ~ [g3,bb3,d4,g4] ~ [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@11 [g3,bb3,d4,g4] ~@8", // Gm
  AF: "~@2 [g3,bb3,d4,g4] ~@5 [f3,a3,c4,f4]@2 ~@4 [f3,a3,c4] ~ [f3,a3,c4,f4] ~ [f3,a3,c4,f4] ~ [f3,a3,c4,f4] ~@5 [f3,a3,c4,f4] ~@11 [f3,a3,c4,f4]@2 ~@8", // Gm F
  AG: "[~@2 [f3,a3,c4,f4]@2 ~@4 [d3,gb3,c4,d4]@2 ~@4 [d3,gb3,c4,d4] ~ [d3,gb3,c4,d4] ~ [d3,gb3,c4,d4] ~ [d3,gb3,c4,d4] ~@5 [d3,gb3,c4,d4]@2 ~@9 [gb3,c4,d4] ~ c-1@10 [d3,gb3,c4,d4]@2 ~@4 d4@3 bb3@2 g3@2 ~ bb3 g3@2 d4@2 bb3 g3@2 ~@2 g3@2 d4@2 bb3 ~ d4@2 ~ g3@2 ~@2 g3@2 d4@2 bb3 g3@2 ~@2 g3@2 ~ bb3 g3@2 d4@2 bb3@2 g3@5 ~ g4@2 eb4@2 c4@2 g4@2 eb4 c4@2 ~ eb4 c4@2 ~@2 c4@2 g4@2 eb4 c4@2 ~@2 c4@2 g4@2 ~ c4@2, ~@37 d3@2 ~@23 d4@2 ~@7 d4@2 ~@11 d4@2 ~@7 d4@2 ~@2 d4@2 ~@23 g4@2 ~@2 g4@2 ~@7 g4@2 ~@7, ~@72 bb3@2 ~@4 g3@2 ~ bb3@2 ~@2 bb3@2 ~@7 bb3@2 ~@31 eb4@2 ~@7 eb4@2 ~@3 eb4@2 ~]/3", // F D7
  AH: "[~ eb4 c4@2 ~@2 c4@2 g4@2 eb4 c4@2 ~ eb4@2 c4@5 ~ d4@3 a3@2 ~ d4@2 a3 gb3@2 ~ a3 gb3@2 d4@2 ~ gb3@2 ~ a3 gb3@2 ~@2 gb3@2 d4@2 ~ gb3@2 d4@2 ~ gb3@2 d4@2 ~ gb3@2 d4@2 ~ gb3@2 d4@2 a3@2 gb3@7 ~ bb3 ~@7 bb3@120 ~@25 g4@35 ~@18, g4@2 ~@2 g4@2 ~@7 g4@2 ~@18 d4@2 ~@7 d4@2 ~@2 d4@2 ~@38 d3@123 ~@12 d3@52 ~@15, ~@5 eb4@2 ~@20 gb3@2 ~@10 a3@2 ~@6 a3@2 ~@3 a3@2 ~@3 a3@2 ~@3 a3@2 ~@3 a3@2 ~@15 g2@126 ~@8 g2@56 ~@14, ~@88 g3@123 ~@13 g3@50 ~@14, ~@76 bb3 d4@13 ~@6]/6",
})).s("gm_acoustic_guitar_nylon").gain(0.19).pan(0.4)

// other · acoustic guitar steel · "Guitar 2"
const acoustic_guitar_steel = note(`<
  A B@2 C D E ~@4 F G H I J@5 K ~@3 L M N O P@4 ~@5 Q R S@3 T ~@4 U@2 V W X Y@2 Z@3 ~@2
>`.pickRestart({
  A: "~@28 d5@6 ~ g4@6 bb4@7", B: "[d5@7 c5@14 bb4@14 eb5@6 g4@6 c5@7 eb5@7 d5@14 c5@13 ~ d5@7]/2",
  C: "d4@6 gb4@7 eb5@6 ~ d5@6 ~ c5@7 bb4@7 a4@7", D: "g4@36 bb4@4 d5@3 ~ f5@3 e5",
  E: "~ e5!6 ~ e5!3 ~ e5!3 ~ e5!14 ~ e5 ~@16", F: "~@6 g3@4 ~@2 d4@6 g3@5 ~ c4@5 ~ g3@5 ~ bb3@5 ~ g3@6",
  G: "~@6 g3@5 ~ d4@5 ~ g3@5 ~ c4@5 ~ g3@4 ~@2 bb3@5 ~ g3@6", H: "~@6 f3@5 ~ c4@5 ~ f3@5 ~ bb3@5 ~ f3@5 ~ a3@6 f3@5 ~",
  I: "~@6 d3@5 ~ a3@5 ~ d3@5 ~ g3@6 d3@5 ~ gb3@5 ~@7",
  J: "[d5@6 g4@7 bb4@7 d5@6 c5@14 ~ bb4@13 eb5@7 g4@6 c5@7 eb5@6 d5@14 ~ c5@13 ~ d5@7 d4@6 gb4@7 eb5@6 ~ d5@6 ~ c5@7 bb4@7 a4@7 g4@36 bb4@4 d5@3 ~ f5@3 e5 ~ e5!27]/5",
  K: "e5!2 ~ e5 ~@44", L: "~@26 g3@4 ~@2 d4@6 g3@5 ~ c4@4",
  M: "~@2 g3@5 ~ bb3@5 ~ g3@9 ~@3 g3@5 ~ d4@5 ~ g3@4 ~@2 c4@4",
  N: "~@2 g3@4 ~@2 bb3@5 ~ g3@7 ~@5 f3@5 ~ c4@5 ~ f3@5 ~ bb3@4",
  O: "~@2 f3@5 ~ a3@6 f3@5 ~@7 d3@5 ~ a3@5 ~ d3@5 ~ g3@4",
  P: "[~@2 d3@5 ~ gb3@5 ~@7 d5@6 g4@6 bb4@7 d5@7 c5@14 bb4@14 eb5@7 g4@6 c5@7 eb5@6 d5@14 ~ c5@13 d5@7 d4@7 gb4@7 eb5@6 d5@6 ~ c5@7 bb4@7 ~ a4@7 ~@8]/4",
  Q: "~@41 d5@6 ~", R: "g4@6 bb4@7 d5@7 c5@14 bb4@14",
  S: "[eb5@6 g4@6 c5@7 eb5@7 d5@14 c5@13 ~ d5@7 d4@6 gb4@7 eb5@6 ~ d5@6 ~ c5@7 bb4@7 a4@7 g4@35]/3",
  T: "~ bb4@4 d5@3 f5@4 e5!2 ~ e5!27 ~ e5 ~@4",
  U: "[~@15 g3@4 ~@2 d4@6 g3@5 ~ c4@5 ~ g3@5 ~ bb3@5 ~ g3@9 ~@3 g3@5 ~ d4@4 ~@2 g3@4 ~@2 c4@5 ~ g3@4 ~ bb3@4]/2",
  V: "~@2 g3@7 ~@5 f3@5 ~ c4@5 ~ f3@5 ~ bb3@5 ~ f3@5 ~ a3@4", W: "~@2 f3@5 ~@7 d3@4 ~@2 a3@5 d3@5 ~ g3@6 d3@5 ~ gb3@5",
  X: "~@7 d5@6 ~ g4@6 bb4@7 d5@7 c5@14", Y: "[bb4@14 eb5@7 g4@6 c5@7 eb5@7 d5@14 c5@14 d5@7 d4@7 gb4@7 eb5@6]/2",
  Z: "[~ d5@7 c5@8 bb4@9 a4@9 g4@63 ~@47]/3",
})).s("gm_acoustic_guitar_steel").gain(0.38).pan(0.6)

// other · violin
const violin = note("<A B@2 C D ~@53>".pickRestart({
  A: "~@28 d6@6 ~ g5@6 bb5@7", B: "[d6@7 c6@14 bb5@14 eb6@6 g5@6 c6@7 eb6@7 d6@14 c6@13 ~ d6@7]/2",
  C: "d5@6 gb5@7 eb6@6 ~ d6@6 ~ c6@7 bb5@7 a5@7", D: "g5@5 ~",
})).s("gm_violin").gain(0.28).pan(0.4)

// chords · flute
const flute = note("<~@10 A B C D ~@9 E F G H I ~@18 J K L M ~@8>".pickRestart({
  A: "~@3 [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2 g5 ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2, ~@30 bb5 ~@17", // Gm
  B: "~@3 g5 ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2, ~@6 bb5 ~@41", // Gm
  C: "~@3 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@2", // F
  D: "~@3 [gb5,a5] ~@2 [gb5,a5] ~@2 [gb5,a5] ~@2 [gb5,a5] ~@2 [gb5,a5] ~@2 [gb5,a5] ~@5", // Gbm
  E: "~@13 g5 ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~, ~@26 bb5 ~@21", // Gm
  F: "~ [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@5 g5 ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2 g5 ~, ~@26 bb5 ~@17 bb5 ~@3", // Gm
  G: "~ [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@5 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~", // Gm F
  H: "~ [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@5 [gb5,a5] ~@2 [gb5,a5] ~@2 [gb5,a5] ~@2 [gb5,a5] ~", // F Gbm
  I: "~ [gb5,a5] ~@2 [gb5,a5] ~@19", // Gbm
  J: "~@15 g5@2 ~@4 [g5,bb5]@2 ~@4 [g5,bb5]@2 ~@4 g5@2 ~@4 g5@2 ~@4 [g5,bb5]@2 ~, ~@15 bb5 ~@17 bb5 ~@5 bb5 ~@8", // Gm
  K: "~@3 [g5,bb5]@2 ~@10 [g5,bb5] ~@5 g5@2 ~@4 [g5,bb5]@2 ~@4 g5@2 ~@3 [g5,bb5]@2 ~@4 [g5,bb5]@2 ~@2, ~@21 bb5 ~@11 bb5 ~@14", // Gm
  L: "~ [g5,bb5] ~@5 f5 ~@2 [f5,a5] ~@2 f5 ~@2 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~, ~@14 a5 ~@11 a5 ~@21", // Gm F
  M: "~@2 [f5,a5]@2 ~@10 [gb5,a5]@2 ~@4 [gb5,a5]@2 ~@3 [gb5,a5]@2 ~@4 [gb5,a5]@2 ~@4 a5@2 ~@9, ~@37 gb5 ~@10", // F Gbm
})).s("gm_flute").gain(0.28).pan(0.4)

// chords · glockenspiel · "Bells"
const glockenspiel = note("<~@10 A@2 B C ~@9 D@5 ~@18 E@4 ~@8>".pickRestart({
  A: "~@6 g5@4 ~@2 [d6,f6]@9 ~@3 [c6,eb6]@8 ~@4 [bb5,d6]@9 ~@3", // Dm Cm Bb
  B: "~@6 f5@4 ~@2 [c6,eb6]@9 ~@3 [bb5,d6]@9 ~@3 [a5,c6]@12", // Cm Bb Am
  C: "~@6 d5@5 ~ [a5,c6]@9 ~@3 [g5,bb5]@10 ~@2 [gb5,a5]@5 ~@7", // Am Gm Gbm
  D: "[~@26 g5@4 ~@2 [d6,f6]@9 ~@3 [c6,eb6]@8 ~@4 [bb5,d6]@9 ~@9 g5@5 ~ [d6,f6]@9 ~@3 [c6,eb6]@8 ~@4 [bb5,d6]@9 ~@9 f5@4 ~@2 [c6,eb6]@9 ~@3 [bb5,d6]@9 ~@3 [a5,c6]@14 ~@4 d5@5 ~ [a5,c6]@9 ~@3 [g5,bb5]@10 ~@2 [gb5,a5]@5 ~@35]/5", // Dm Cm Bb Dm Cm Bb Cm Bb …
  E: "[~@15 g5@4 ~@2 [d6,f6]@9 ~@3 [c6,eb6]@8 ~@4 [bb5,d6]@9 ~@9 g5@4 ~@2 [d6,f6]@9 ~@3 [c6,eb6]@8 ~@4 [bb5,d6]@9 ~@8 f5@4 ~@2 [c6,eb6]@9 ~@3 [bb5,d6]@9 ~@3 [a5,c6]@14 ~@4 d5@4 ~@2 [a5,c6]@9 ~@3 g5@10 ~ [gb5,a5]@5, ~@175 bb5@9 ~@8]/4", // Dm Cm Bb Dm Cm Bb Cm Bb …
})).s("gm_glockenspiel").gain(0.28).pan(0.6)

// other · timpani
const timpani = note("<~@30 A@7 ~@21>".pickRestart({
  A: "[~@39 g3@4 ~@3 d3@4 ~ g3@4 ~@3 d3@4 ~@26 f3@5 ~ c3@5 ~ f3@4 ~@2 c3@4 ~@26 g3@4 ~@2 d3@4 ~@2 g3@4 ~@2 d3@3 ~@27 f3@4 ~@2 c3@5 ~ f3@4 ~@2 c3@4 ~@27 g3@4 ~@2 d3@4 ~@2 g3@4 ~@2 d3@3 ~@27 f3@4 ~@2 c3@3 ~@3 f3@3 ~@3 c3@3 ~@34]/7",
})).s("gm_timpani").gain(0.45).pan(0.4)

// chords · harpsichord
const harpsichord = note("<~@56 [~@10 g5@23 ~@15, ~@4 g4@29 ~@15, ~@3 bb4@14 ~@7, ~@8 d5@25 ~@15] ~>")
  .s("gm_harpsichord").gain(0.3)

// drums · low tom
const low_tom = s("lt").struct("<~@9 A B@4 ~@9 C@4 D ~@18 E F G@2 H ~@7>".pickRestart({
  A: "~@7 x", B: "x ~@6 x", C: "~@7 x ~@2 x ~@13", D: "~@7 x ~@16", E: "~@2 x ~@2 x ~@18", F: "~ x ~ x ~@12",
  G: "~ x ~@2 x ~@19", H: "~ x ~@46",
})).gain(0.44)

// drums · crash
const crash = s("cr").struct("<~@31 [~@5 x ~@18]!4 [~@11 x ~@36]!2 ~@21>").gain(0.49)

// drums · ride
const ride = s("rd").struct("<A B C ~ D E@9 F G H ~ I@10 J K ~@6 C ~ F L ~ M@2 N@2 O@2 P Q@2 R S T ~@5>".pickRestart({
  A: "~@7 x ~@4", B: "~@35 x ~@12", C: "~@41 x ~@6", D: "~@7 x", E: "x ~@6 x", F: "x", G: "~@7 x ~@40",
  H: "~@13 x ~@34", I: "~@7 x ~@2 x ~@13", J: "~@13 x ~@10", K: "~@11 x ~@4", L: "~ x ~@6", M: "~ x!2 ~@5",
  N: "~@5 x ~@5 x ~@36", O: "~@2 x ~@2 x ~@18", P: "~ x ~ x ~@12", Q: "~ x ~@2 x ~@19", R: "~ x ~@5 x ~@40",
  S: "~@5 x ~@10", T: "~@11 x ~@12",
})).gain(0.38)

// drums · tambourine
const tambourine = s("tb").struct("<~@4 A@10 ~@3 B C@9 D ~@2 E F G@2 H I J ~@3 K L M N O P Q R S T ~@8>".pickRestart({
  A: "x ~ x ~ x ~ x!2", B: "~@5 x ~@2 x ~@2 x", C: "~@4 x ~@2 x ~@2 x ~@5 x ~@5 x ~", D: "~@4 x ~@2 x ~@16",
  E: "~@39 x ~@6 x ~", F: "~@3 x ~@6 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~",
  G: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", H: "~@4 x ~@5 x ~@5 x ~@6 x ~@4 x ~@6 x ~@5 x ~@5 x",
  I: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x", J: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@12",
  K: "~@13 x ~@11 x ~@11 x ~@10", L: "~ x ~@4 x ~@5 x ~@11 x ~@11 x ~@11", M: "x ~@5 x ~@5 x ~@11 x ~@11 x ~@10 x",
  N: "~@5 x ~@5 x ~@11 x ~@11 x ~@11 x", O: "~@5 x ~@5 x ~@11 x ~@10 x ~@11 x ~", P: "~@2 x ~@2 x ~@5 x ~@5 x ~@5 x",
  Q: "~@4 x ~@5 x ~@10 x ~@11 x ~@11 x ~@2", R: "~ x ~ x ~@3 x ~@3 x ~@3 x", S: "~ x ~@2 x ~@5 x ~@5 x ~@5 x ~",
  T: "~@2 x ~@5 x ~@11 x ~@11 x ~@10 x ~@4",
})).gain(0.38)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct(`<
  ~@30
  [~@7 x]
  [x ~@6 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4]
  [~ x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4]!2
  [~ x ~@5 x ~@5 x ~@6 x ~@4 x ~@6 x ~@5 x ~@5 x ~@3]
  [~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~]
  [~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@4]
  ~@21
>`).gain(0.16)

stack(
  bass, drawbar_organ, acoustic_guitar_nylon, acoustic_guitar_steel, violin, flute, glockenspiel, timpani, harpsichord,
  low_tom, crash, ride, tambourine, tambourine_soft
)

More by Sonny & Cher