Strudelify

Bang Bang (My Baby Shot Me Down)

Cher

KeyG minorTempo83 bpm
0:00/0:00
// Bang Bang (My Baby Shot Me Down) — 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 47 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.

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  A B C D E F@2 E G H E F G H I@2 J@2 K L@2 M N O K P N Q R S T U V@6 W X Y Z AA AB AC@3
>`.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 d4@2 ~@2 d4@2 bb3 g3@2 ~@2 g3@2 ~@2 bb3 ~ d4@2 bb3 g3@2 ~ bb3@2 g3@5 ~ g4@3 eb4@2 ~ g4@2 eb4 c4@2 ~ eb4, d4@2 ~@4 bb3@2 ~@5 d4@2 ~@3 d4@2 ~@6 d4@2 ~@12 c4@2 ~@4 g4@2, ~@7 g3@2 ~@5 bb3@2 ~@4 g3@2 ~@26",
  C: "c4@2 ~ eb4@2 ~ g4@2 eb4 c4@2 ~@2 c4@2 g4@2 eb4 c4@2 ~@2 c4@2 ~ eb4 c4@2 ~ eb4 c4@2 g4@2 eb4@2 c4@5 d4@3 a3@2 gb3@2, ~@2 g4@2 ~ c4@2 ~@4 g4@2 ~@7 g4@2 ~@2 g4@2 ~@2 g4@2 ~@18, ~@12 eb4@2 ~@7 eb4@2 ~@25",
  D: "d4@2 [gb3,a3]@2 d4@2 a3 gb3@2 ~@2 gb3@2 ~ a3 ~@2 d4@2 ~ gb3@2 ~ a3 gb3@2 ~ a3@2 gb3@2 ~ a3 gb3@2 ~ a3 gb3@2 d4@2 ~ gb3@5 ~, ~@9 d4@2 ~@2 d4@2 ~@7 d4@2 ~@2 d4@2 ~@3 d4@2 ~@2 d4@2 ~@11, ~@10 a3@2 ~@4 gb3@2 ~ a3@2 ~@20 a3@2 ~@5", // Gbm
  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] ~@11 [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]@2 ~@10 [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,c4,d4]@3 ~@9 [d3,gb3,c4,d4]@2 c-1@10 [d3,gb3,c4,d4]@2 ~@4, ~@18 gb3 ~@29", // D7
  I: "[d4@3 bb3@2 g3@2 ~ bb3 g3@2 ~ bb3 g3@2 d4@2 ~ g3@2 ~ bb3 g3@2 ~@2 g3@2 d4@2 bb3 g3@2 ~@2 g3@2 ~ bb3 g3@2 d4@2 [g3,bb3]@2 ~@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 ~ eb4 c4@2 g4@2 ~ c4@2 ~ eb4 c4@2, ~@7 d4@2 ~@2 d4@2 ~@4 bb3@2 ~ d4@2 ~@2 d4@2 ~@7 d4@2 ~@2 d4@2 ~@7 d4@2 ~@16 c4@2 ~@4 g4@2 ~@11 g4@2 ~@7 g4@2 ~@2, ~@25 bb3@2 ~@7 bb3@2 ~@35 eb4@2 ~@4 c4@2 ~ eb4@2 ~@7 eb4@2 ~@5]/2", // Gm
  J: "[~ eb4 c4@2 g4@2 eb4@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 a3 gb3@2 ~@2 gb3@2 d4@2 a3 ~ d4@2 a3 gb3@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, g4@2 ~@18 d4@2 ~@5 gb3@2 ~ a3@2 ~ d4@2 ~@2 d4@2 ~@7 d4@2 ~@11 d4@2 ~@35, ~@38 a3@2 ~@7 a3@2 ~@4 gb3@2 ~@41]/2", // Gm
  K: "~@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
  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 [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
  N: "~@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
  O: "~@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
  P: "~@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
  Q: "~@2 [d3,gb3,c4,d4]@2 c-1@10 [d3,gb3,c4,d4]@2 ~@4 d4@3 bb3@2 ~ d4@2 bb3 g3@2 ~ bb3 g3@2 ~ bb3@2 ~ d4@2 bb3 ~ d4@2 ~ g3@2, ~@25 g3@2 ~@4 d4@2 ~@2 d4@2 ~ g3@2 ~@2 g3@2 ~ bb3@2 ~", // D7
  R: "~ bb3 ~@2 d4@2 ~ g3@2 ~ bb3 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 ~ g3@2 ~ bb3@2 ~ d4@2 ~@2 d4@2 ~@18 g4@2 ~@7 g4@2 ~@2 g4@2, ~@43 eb4@2 ~@3",
  S: "c4@2 g4@2 ~@2 g4@2 eb4 c4@2 ~@2 c4@2 ~@2 eb4 c4@2 ~ eb4 c4@2 g4@2 ~ c4@5 ~ d4@3 a3@2 ~ d4@2 a3 gb3@2 ~ a3 gb3@2, ~@4 eb4@2 ~@5 g4@2 ~@3 g4@2 ~@2 g4@2 ~@22 d4@2 ~@2, ~@5 c4@2 ~@5 eb4@2 ~@12 eb4@2 ~@10 gb3@2 ~@8",
  T: "d4@2 ~ gb3@2 ~ a3 gb3@2 ~@2 gb3@2 d4@2 a3 gb3@2 ~@2 gb3@2 ~ a3 gb3@2 d4@2 [gb3,a3]@2 ~@2 a3@2 gb3@5 ~ [g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [g3,bb3,d4] ~, ~@2 a3@2 ~ d4@2 ~@2 d4@2 ~@7 d4@2 ~@2 d4@2 ~@7 d4@2 ~@15, ~@10 a3@2 ~@7 a3@2 ~@27", // Gbm Gm
  U: "~ [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
  V: "[~ [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] ~@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 [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,c4] a3 ~@2 [f3,a3,c4] ~ [f3,a3,c4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@3 bb3 g3 d4 [g3,bb3] d4 [g3,bb3] d4 [g3,bb3] d4 [g3,bb3] [bb3,d4] g3 [bb3,d4] g3 [bb3,d4] g3 [bb3,d4] [g3,d4] [g3,bb3] d4 bb3 g3@2 g4@2 [c4,eb4] g4 [c4,eb4] g4 [c4,eb4] g4 [c4,eb4] g4 [c4,eb4] g4 [c4,eb4] g4 [c4,eb4] [eb4,g4] c4 [eb4,g4] c4 [eb4,g4] c4 [eb4,g4] c4@2 ~@2 a3 [gb3,d4] [gb3,a3] d4 [gb3,a3], ~@28 [f3,c4]@3 ~@96 f3@2 ~@104 d4@2 ~@47 d4@2 ~@4, ~@29 c-1@216 ~@43]/6", // F Gm Bb Gm Am F Am F …
  W: "d4 [gb3,a3] d4 [gb3,a3] d4 [gb3,a3] d4 [gb3,a3] d4 [gb3,a3] [a3,d4] gb3 [a3,d4] gb3 [a3,d4] gb3@2 ~ [g3,bb3,d4,g4] ~@2 [g3,bb3,d4,g4] [bb3,d4,g4] [g3,bb3,d4,g4]!2 ~@2 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@2 [g3,bb3,d4,g4] ~@2 [g3,bb3,d4,g4] [bb3,d4,g4] [g3,bb3,d4,g4]", // Gbm D5 Gm
  X: "[g3,bb3,d4,g4] ~@2 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@2 [g3,bb3,d4,g4] ~@2 [g3,bb3,d4,g4] [bb3,d4,g4] [g3,bb3,d4,g4]!2 ~@2 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@2 [g3,bb3,d4,g4] ~@2 [g3,bb3,d4,g4] [bb3,d4,g4] [g3,bb3,d4,g4]", // Gm
  Y: "[g3,bb3,d4,g4] ~@2 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@2 [f3,a3,c4,f4] ~@2 [f3,a3,c4] [f3,a3,c4,f4]!3 ~@2 [f3,a3,c4,f4] ~@5 [f3,a3,c4,f4] ~@5 [f3,a3,c4,f4] ~@2 [d3,gb3,c4,d4] ~@2 [d3,gb3,c4,d4]!3", // Gm F D7
  Z: "[d3,gb3,c4,d4] ~@2 [d3,gb3,c4,d4] ~@5 [d3,gb3,c4,d4] c-1@6 [d3,gb3,c4,d4] ~@2 [g3,bb3,d4,g4] ~@2 [g3,bb3,d4,g4] [bb3,d4,g4] [g3,bb3,d4,g4]!2 ~@2 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@2 [g3,bb3,d4,g4] ~@2 [g3,bb3,d4,g4] [bb3,d4,g4]", // D7 Gm
  AA: "[g3,bb3,d4,g4]!2 ~@2 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@5 [g3,bb3,d4,g4] ~@2 [f3,a3,c4,f4] ~@2 [f3,a3,c4] [f3,a3,c4,f4]!3 ~@2 [f3,a3,c4,f4] ~@5 [f3,a3,c4,f4] ~@5 [f3,a3,c4,f4] ~@2 [d3,gb3,c4,d4] ~@2 [d3,gb3,c4,d4]!2", // Gm F D7
  AB: "[d3,gb3,c4,d4]!2 ~@2 [d3,gb3,c4,d4] ~@5 [d3,gb3,c4,d4] c-1@5 [d3,gb3,c4,d4] ~@3 bb3 g3 d4 [g3,bb3] d4 [g3,bb3] [bb3,d4] g3 [bb3,d4] g3 [bb3,d4] g3 [bb3,d4] g3 [bb3,d4] g3 [bb3,d4] [g3,d4] [g3,bb3] d4 bb3 g3@2 g4@2 [c4,eb4] g4 [c4,eb4], ~@19 d4@2 ~@27", // D7 Gm Bb G5 Gm Cm
  AC: "[g4 [c4,eb4] g4 [c4,eb4] g4 [c4,eb4] [eb4,g4] c4 [eb4,g4] c4 [eb4,g4] c4 [eb4,g4] [c4,g4] [c4,eb4] g4 eb4 c4@2 d4@2 a3 [gb3,d4] [gb3,a3] d4 [gb3,a3] d4 [gb3,a3] d4 [gb3,a3] d4 [gb3,a3] d4 [gb3,a3] [a3,d4] gb3 [a3,d4] gb3 [a3,d4] gb3 [a3,d4] gb3@2 ~ bb3 ~@2 bb3@43 ~@8 g4@13 ~@33, ~@44 g2@45 ~@3 g2@5 d4@14 ~@33, ~@45 d3@44 ~@4 d3@17 ~@34, ~@46 g3@44 ~@5 g3@16 ~@33, ~@32 bb3@5 ~@11]/3", // Cm Eb C5 Cm D Gbm D5
})).s("gm_acoustic_guitar_nylon").gain(0.19).pan(0.4)

// bass · fretless bass · "FRETLESS"
const bass = note("<A@4 B C D E F G H I J K L M@8 N@3 O P@6 Q@6 R S T@4 ~@2>".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@6 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@6 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@4 ~@2 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 ~@2 g2@4 ~@2 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@22 ~@2 c2@23 ~@2 d2@24 g1@7 ~@2 g1@3 bb1@6 d2@6 g1@6]/6",
  R: "~@3 g1@3 bb1@5 ~ d2@6 g1@8 ~ g1@3 bb1@6 d2@6 g1@6", S: "~@3 g1@3 bb1@6 d2@6 f1@8 ~ f1@3 a1@6 c2@6 d2@6",
  T: "[~@3 d2@3 gb2@3 g2@3 a2@3 ~ d2@2 ~ g1@8 ~ g1@3 bb1@6 d2@6 g1@8 ~ g1@2 ~ bb1@6 d2@6 f1@7 ~@2 f1@3 a1@3 bb1@3 c2@3 f1@3 d2@8 ~ d2@3 gb2@3 g2@3 a2@3 d2@3 g1@22 ~@2 c2@23 ~ d2@24 ~@5]/4",
})).s("gm_fretless_bass").gain(0.49)

// chords · drawbar organ · "ORGAN 1"
const drawbar_organ = note("<~@30 A B C D E F G ~@10>".pickRestart({
  A: "~@42 [bb4,d5,g5] ~@5", // Gm
  B: "[bb4,d5] ~@6 [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 ~@5 bb4 ~@5 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] ~@6 [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] ~@3, ~@14 a4 ~@5 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.33).pan(0.6)

// chords · glockenspiel · "GLOCKENSPL"
const glockenspiel = note("<~@10 A@2 B C ~@9 D@5 ~@13 E F G ~@3>".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@4 ~@2 [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@4 ~@2 [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@4 ~@2 [a5,c6]@9 ~@3 [g5,bb5]@10 ~@2 [gb5,a5]@5 ~@35]/5", // Dm Cm Bb Dm Cm Bb Cm Bb …
  E: "~@22 g5@2 [d6,f6]@5 ~@2 [c6,eb6]@4 ~@2 [bb5,d6]@5 ~@4 g5@2", // Dm Cm Bb
  F: "~ [d6,f6]@5 ~ [c6,eb6]@4 ~@2 [bb5,d6]@5 ~@4 f5@2 ~ [c6,eb6]@5 ~ [bb5,d6]@5 ~ [a5,c6]@7 ~@2 d5@2", // Dm Cm Bb Cm Bb Am
  G: "~ [a5,c6]@5 ~ [g5,bb5]@5 ~ [gb5,a5]@3 ~@32", // Am Gm Gbm
})).s("gm_glockenspiel").gain(0.33).pan(0.6)

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

// other · violin
const violin = note("<A B C D E F G H I J K ~@3 L@5 M N@2 O P ~@3 Q@4 ~@2 R S T U@3 V@3 ~ W X Y ~>".pickRestart({
  A: "~@29 d6@6 g5@6 bb5@7", B: "d6@7 c6@14 bb5@14 eb6@6 g5@7", C: "c6@6 eb6@7 d6@14 c6@13 ~ d6@7",
  D: "d5@6 gb5@7 eb6@6 ~ d6@7 c6@7 bb5@7 a5@7", E: "g5@5 ~", F: "~@7 bb5", G: "g5@25 ~@11 bb5@12", H: "g5@8 ~ bb5@3",
  I: "a5@25 ~@17 a5@6", J: "gb5@14 ~@7 a5@3", K: "bb5 ~@3",
  L: "[d6@6 ~ g5@6 bb5@7 d6@6 c6@14 ~ bb5@13 eb6@7 g5@6 c6@7 eb6@6 d6@15 c6@13 ~ d6@7 d5@6 gb5@7 eb6@6 ~ d6@7 c6@7 bb5@7 a5@7 g5@40 ~@36]/5",
  M: "~@13 bb5@6 ~ g5@25 ~@3", N: "[~@8 bb5@12 g5@32 ~@4 bb5@12 a5@25 ~@3]/2", O: "~@7 a5@3 gb5@14",
  P: "~@7 a5@3 bb5@6 ~@8",
  Q: "[~@20 d6@6 g5@6 bb5@7 ~ d6@6 c6@14 bb5@14 eb6@7 g5@6 c6@7 eb6@6 d6@15 c6@13 d6@7 d5@7 gb5@7 eb6@6 d6@7 ~ c6@6 bb5@7 ~ a5@7 ~@8]/4",
  R: "~@16 eb6@3 d6 ~@2 d6@3 c6 ~@2 c6@3 bb5 ~@2 bb5@3 a5@2 ~@9",
  S: "~@17 d6@3 c6 ~@2 c6@2 bb5 ~@3 bb5@3 a5 ~@2 a5@3 g5@3 ~@7",
  T: "~@17 eb6@3 d6 ~@2 d6@3 c6 ~@2 c6@3 bb5 ~@2 bb5@2 ~ a5@2 ~@8",
  U: "[~@17 d6@3 c6 ~@2 c6@3 bb5 ~@2 bb5@3 a5 ~@2 a5@3 g5@3 d6@3 g5@3 bb5@3 d6@3 c6@6 bb5@6 eb6@3 g5@3 c6@3 eb6@3 d6@6 c6@6 d6@3 d5@3 gb5@3 eb6@3 d6@3 c6@3 bb5@3 ~ a5@3 g5@20 ~@10]/3",
  V: "[~@15 bb5@3 g5@13 ~@5 bb5@6 g5@16 ~@2 bb5@6 a5@13 ~@8 a5@3 ~ gb5@14 ~@7 a5@3 bb5@6 ~@23]/3",
  W: "~@23 a3@2 bb3@3 d4@2 ~@2 a4@2 ~ d5@2 g5@6 ~@5, ~@22 g3@2 ~@7 g4@2 ~ bb4@2 ~@12",
  X: "~@2 g5 ~@8 d5@2 ~@12 d4@2 ~ a4@2 d5@2 ~ a5 ~ eb6@2 d6@2 ~ bb5@2 a5@2 ~@4, ~ f5@2 ~@24 gb4@2 ~@10 c6@2 ~@7",
  Y: "~@12 d4@2 g4@2 a4@2 bb4 d5@2 g5@2 a5@2 bb5@5 ~@18",
})).s("gm_violin").gain(0.27).pan(0.4)

// other · violin · soft notes
const violin_soft = note("<~@43 A B@3>".pickRestart({
  A: "~@43 eb5@5", B: "[~@4 c6@4 g5@2 eb5@2 ~ c5@6 d5@7 ~@5 gb5 ~@2 c6@2 ~@8 g5@6 g3@5 a3@3 bb3@2 ~@18 g5@33 ~@33]/3",
})).s("gm_violin").gain(0.16).pan(0.4)

// chords · flute
const flute = note("<~@10 A@2 B C ~@9 D E F G H ~@13 I J K ~@3>".pickRestart({
  A: "~@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
  B: "~@3 f5 ~@2 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@2, ~@6 a5 ~@41", // F
  C: "~@3 [gb5,a5] ~@2 [gb5,a5] ~@2 [gb5,a5] ~@2 [gb5,a5] ~@2 [gb5,a5] ~@2 [gb5,a5] ~@5", // Gbm
  D: "~@13 g5 ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~, ~@26 bb5 ~@21", // Gm
  E: "~ [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@5 g5 ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~, ~@26 bb5 ~@21", // Gm
  F: "~ [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@5 f5 ~@2 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~, ~@26 a5 ~@21", // Gm F
  G: "~ [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@5 [gb5,a5] ~@2 [gb5,a5] ~@2 [gb5,a5] ~@2 [gb5,a5] ~", // F Gbm
  H: "~ [gb5,a5] ~@2 [gb5,a5] ~@19", // Gbm
  I: "~@21 g5 bb5 ~ [g5,bb5] ~@3 [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@5 [g5,bb5] ~", // Gm
  J: "~ [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5] ~@5 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@2 [f5,a5] ~@5 [gb5,a5] ~", // Gm F Gbm
  K: "~ [gb5,a5] ~@2 [gb5,a5] ~@2 [gb5,a5] ~@2 [gb5,a5] ~@2 [gb5,a5] ~@34", // Gbm
})).s("gm_flute").gain(0.27).pan(0.4)

// chords · harpsichord · "HARPSICHRD" · Gm
const harpsichord = note("<~@45 [~@39 g5@8 ~, ~@37 [g4,bb4]@10 ~, ~@38 d5@9 ~] ~>").s("gm_harpsichord").gain(0.27)

// other · timpani
const timpani = note("<~@30 A@7 ~@10>".pickRestart({
  A: "[~@40 g3@4 ~@2 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.38).pan(0.4)

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

// drums · crash
const crash = s("cr").struct("<~@31 [~@5 x ~@18]!4 [~@11 x ~@36]!2 ~@10>").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 L M N@2 O@2 P Q ~@2>".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: "~@17 x ~@24 x ~@5", M: "~@13 x!2 ~",
  N: "~@5 x!2 ~@6 x!2 ~", O: "~@16 x ~@2 x ~@20 x ~@2 x ~@4", P: "~@16 x ~@2 x ~@23 x ~@4", Q: "~@19 x ~@28",
})).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 ~ K L@2 M N O ~@3>".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: "~@20 x ~@2 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 ~@6 x ~@5 x ~@5 x ~@5 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: "~@6 x ~ x ~ x ~ x!3 ~", L: "x ~ x ~ x!3 ~ x ~ x ~ x!3 ~",
  M: "x ~@5 x ~@5 x ~@3 x ~@2 x ~@5 x ~@5 x ~@5 x ~@2 x ~@2 x ~@4",
  N: "~ x ~@5 x ~@5 x ~@2 x ~@2 x ~@5 x ~@5 x ~@5 x ~@2 x ~@2 x ~@4", O: "~ x ~@5 x ~@5 x ~@34",
})).gain(0.33)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct(`<
  ~@30
  [~@43 x ~@4]
  [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]
  ~@10
>`).gain(0.11)

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

More by Cher