Strudelify
America cover art

1996 · The Jazz Singer (Original Songs From The Motion Picture)

America

Neil Diamond

KeyF majorTempo135 bpm
0:00/0:00
// America — Neil Diamond
// 135 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: ch 6 "Bass 2" named as a bass, played on electric bass finger (its electric guitar jazz patch is not one)
// note: Full arrangement: all 133 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(135/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 · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  A@5 B@7 C D E F@2 G@6 H@6 I@4 J@8 K@4 L@4 M N M O P Q R S T@2 U@2 V@2 W@4 X@2 Y@2 Z@2 AA@2 AB@2 AC@4 AD@8 AE@8 AF@5
  AG@8 AH@3 AI@4 AJ@2 AK@2 AL@8 ~@4
>`.pickRestart({
  A: "[~ [f1,f2]@44 ~ [e1,e4]@25 ~@9, ~ f4@45 ~@34]/5", // F E
  B: "[~@12 [e1,e2,e4,g4]@22 ~ [d4,a4]@22 [g1,g2,g4]@23 ~@22 a4@5 ~ a4@2 ab4@2, ~@35 [d1,d2]@21 ~ b4@43 ~@12]/7", // Em D5 G D
  C: "a4 ab4 ~ a4@3 a4 ~", D: "a4@3 ~@3 e5@10, ~ e4@3",
  E: "a4@3 ~@6 [c1,d1] ~@2 [g2,a2,b2,c3] [e3,f3,g3] [a3,b3,c4,d4] [e4,f4,g4,a4], ~@3 e5@5", // Csus2 Cmaj7 Em D7 Fmaj7
  F: "[e5@2 c5 g5@2 e5@2 f5@2 e5 g5@2 d5 c5 b4 c5, [c2,c3]@31 ~, b4 ~@31]/2", // C
  G: "[~@4 c6@2 g5@6 f5@2 ~@2 f5@2 ~@6 g6 [c6,d6,e6] [f5,g5,a5,b5] [b4,d5,e5] [f4,g4,a4] [c4,d4,e4] b3 ~@5 a6@2 e6@6 d6@2 ~@2 d6@2 ~@6 [b1,b2] ~ [a1,a2] ~ ab3@2 a1 ~@5 a6@2 e6@6 d6@3 ~@9 [a1,a2] ~ [g1,g2] ~ gb3@2 [g1,g2] ~, [a1,a2]@55 ~ b3@2 ~@4 a3@2 [g1,g2]@23 ~@5 gb1 ~@3, ~@20 c5@7 c5@4 a3@26 ~ a3@2 ab1 ~@2 g3@24 ~ a3@2 ~@4 g3@2, ~@13 a5@4 ~@4 a5@3]/6", // C G7 E7 F C B A G …
  H: "[[f1,f2]@8 [f1,f2]@15 ~, f5@73 ~@23]/6", // F
  I: "[~@2 f5@2 ~ f5@2 ~ c5@6 f5@2 e5@2 f5@2 c5@14 f5@2 e5@2 ~ g5@2 f5@2 ~ e5@2 f5 ~@3 f5@2 e5@2 f5@2 g5@2 f5@2 e5@2 f5 ~, [f1,f2]@31 ~, ~@2 e5 ~@16 f5 ~@12]/4", // F
  J: "[~@2 f5@2 e5@2 f5@2 c5@6 f5@2 e5@2 f5@2 c5@14 f5@2 e5@2 f5@2 c5@6 f5@2 g5@2 f5@2 ~@14 f5@2 ~ f5@2 ~ c5@6 f5@2 e5@2 f5@2 c5@14 f5@2 e5@2 f5@2 g5@2 f5@2 e5@2 f5 ~@3 f5@2 e5@2 f5@2 g5@2 f5@2 e5@2 f5 ~, [f1,f2]@61 ~@2 f2@61 ~@4, ~@26 c6@7 ~ e5 ~@29, ~@64 f1@61 ~@3]/8", // F
  K: "[~ f5 e5 f5 c5@3 f5 e5 f5 c5@7 f5 e5 f5 c5@3 f5 g5 f5 c6@6, [f1,f2]@61 ~@3]/4", // F
  L: "[~@3 f5 c5@3 f5 e5 f5 c5@7 f5 e5 f5 g5 f5 e5 f5 ~ f5 e5 f5 g5 f5 e5 f5, [f1,f2]]/4", // F
  M: "~@2 g5 ~ gb5 ~ g5 ~ d5@6 g5 ~", N: "gb5 ~@2 d5@13, ~ g5 ~@6", O: "a5 ~ g5@2 d6@12",
  P: "~@2 g5@2 gb5 ~ g5@2 d5@6 g5 ~", Q: "gb5 ~ g5@2 d5@12", R: "~@2 g5 ~ gb5 ~ g5 ~ a5@2 g5 ~ gb5@2 g5@2",
  S: "~@2 g5 ~ gb5 ~ g5 ~ a5@2 g5 ~ gb5 ~ g5@2, ~@2 g2 gb2", T: "[[e2,e5]@23 ~ e2@4 [d2,a5]@4, ~@23 g5@4 ~@5]/2",
  U: "[[g2,b5]@6 [a2,c6] [g2,b5]]/2", V: "[[d2,a5]@23 ~ d2@3 ~ e2@4, ~@23 c6@4 b5@4 ~]/2",
  W: "[[f2,a5]@24 [g2,g5]@3 ~ f5@3 ~ e5@27 b4@4 ~, ~@27 f2@4 e2@32 ~]/4", X: "[[e2,e5]@6 [e2,g5] [d2,a5]]/2",
  Y: "[[g2,b5]@23 ~ a2@4 [g2,b5]@4, ~@23 c6@4 ~@5]/2", Z: "[[d2,a5]@23 [d2,c6]@5 [e2,b5]@4]/2",
  AA: "[[f2,a5]@6 [g2,g5] [f2,f5]]/2", AB: "[e2,e5]/2",
  AC: "[~@2 f5@2 e5@2 f5@2 c5@6 f5@2 e5@2 f5@2 ~@14 f5@2 e5@2 f5@2 g5@2 f5@2 e5@2 f5 ~@3 f5@2 e5@2 f5@2 g5@2 f5@2 e5@2 f5 ~, f2@31 ~ [f1,f2]@31 ~, ~@10 c5@7 ~@15]/4", // F
  AD: "[~@2 f5@2 e5@2 f5@2 c5@6 f5@2 e5@2 f5@2 ~@14 f5@2 e5@2 f5@2 c5@6 f5@2 g5@2 f5@2 ~@14 f5@2 e5@2 f5@2 c5@6 f5@2 e5@2 f5@2 ~@14 f5@2 e5@2 f5@2 g5@2 f5@2 e5@2 f5 ~@3 f5@2 e5@2 f5@2 g5@2 f5@2 e5@2 f5@2, [f1,f2]@31 ~ [f1,f2]@31 ~ [f1,f2]@30 ~@2 [f1,f2]@31 ~, ~@10 c5@7 ~@9 c6@7 ~@9 c5@7 ~@15]/8", // F
  AE: "[~@2 g5@2 gb5@2 g5@2 d5@6 g5@2 gb5@2 g5@2 ~@14 g5@2 gb5@2 g5@2 d5@6 g5@2 a5@2 g5@2 ~@14 g5@2 gb5@2 g5@2 d5@6 g5@2 gb5@2 g5@2 ~@14 g5@2 gb5@2 g5@2 a5@2 g5@2 gb5@2 g5@2 ~@2 g5@2 gb5@2 g5@2 a5@2 g5@2 gb5@2 g5 ~, [g1,g2]@31 ~ [g1,g2]@31 ~ [g1,g2]@31 ~ [g1,g2]@32, ~@10 d5@7 ~@9 d6@7 ~@9 d5@7 ~@15]/8", // G
  AF: "[[a1,a2,a4,a5]@23 ~ [a1,a2]@2 [a4,a5] ~ [e1,e2]@2 ~@2 [gb1,gb2]@23 ~ [gb1,gb2]@2 [a4,a5] ~ [db1,db2]@2 ~@2 [d1,d2]@16, ~@24 [b4,b5] ~@3 [ab4,ab5] ~ [a4,a5]@25 ~ [b4,b5] ~@3 [ab4,ab5] ~ [a4,a5]@18]/5", // A E Gb A Db D B Ab …
  AG: "[~@8 [b4,b5] ~ [a4,a5] ~ [ab4,ab5] ~@27 [b4,b5] ~ [a4,a5] ~ [ab4,ab5] ~@3 [a1,a2]@23 ~ [a1,a2]@2 [a4,a5] ~ [e1,e2]@2 ~@2 [gb1,gb2]@23 ~ [gb1,gb2]@2 [a4,a5] ~ [ab4,ab5] ~@3 [d1,d2]@16, ~@7 d2@4 a1@4 b1@31 ~@2 b2 ~@58 [db1,db2]@4 ~@17, ~@8 d1@4 ~@2 [a4,a5]@26 ~@6 [a4,a5]@26 [b4,b5] ~@3 [ab4,ab5] ~ [a4,a5]@25 ~ [b4,b5] ~@5 [a4,a5]@18]/8", // B A Ab B A Ab A E …
  AH: "[~@8 [b4,b5] ~ [a4,a5] ~ [ab4,ab5] ~@2 b1@32 ~, ~@2 [d1,d2] a1 ~@8, ~@7 [a4,a5]@15 ~@2]/3", // B A Ab D A
  AI: "[[a1,a2]@15 ~ gb5@16, e5@16 gb1@15 ~, ~@31 gb2@30 ~@3]/4", AJ: "[[d1,d2]@14 ~ db5]/2",
  AK: "[[b1,b2,b4]@15 ~, db2 ~@31]/2", AL: "[ab1 ~@35 f6@4 c6 ~ bb5 ~@3 a5@19 ~@63, [f1,f2]]/8",
})).s("gm_string_ensemble_1").gain(0.18)

// chords · string ensemble 1 · "Strings" · soft notes
const string_ensemble_1_soft = note(`<
  ~@2 A@3 ~@6 B C D E F ~ G H I J I K L@3 ~@19 M ~@11 N ~@19 O@2 ~@38 P@2 ~ G Q@3 ~@9
>`.pickRestart({
  A: "[~@7 e2@12 ~@5]/3", B: "~@2 b4 ~@5", C: "~@2 e4 ~@4 ab4", D: "~ ab4 ~@6",
  E: "~@2 ab4@2 e4@2 ~@3 [e1,f1] [g1,a1,b1] [c2,d2,e2,f2] ~ d3 ~@2", F: "~ d5 ~@14", G: "~@7 e5",
  H: "~@2 e5@2 ~@4 [f6,a6] ~@7", I: "~@7 db6", J: "~@2 db6@2 ~@8 ab2 ~ a2 ~", K: "d6@2 db6@2 ~@6 g3@2 gb2 ~@3",
  L: "[f3@11 ~@5]/3", M: "~@2 e5 ~@5", N: "d2 ~@15", O: "[f1@31 ~]/2", P: "[d5@31 ~]/2", Q: "[f5@3 ~]/3",
})).s("gm_string_ensemble_1").gain(0.1)

// chords · pizzicato strings · "Pizz. Strings" · D Db
const pizzicato_strings = note(`<
  ~@10
  [e6 a5 ~ a5 e6 a5 e5 a5, ~ e5 ~@2]
  [e6 a5 e5 a5 e6 a5 ~ a5, ~@3 e5]
  [e6 a5 ~ a5 e6 a5 e5 a5, ~ e5 ~@2]
  [e6 a5 e5 a5 e6 a5 e5 a5, [d1,d2]@9 ~@7]
  [e6 a5 e5 a5 e6 a5 ~ a5, [db1,db2]@9 ~@3 e5@4]
  [e6@3 ~@13]
  ~@117
>`).s("gm_pizzicato_strings").gain(0.17)

// other · tubular bells · "Tubular-bell"
const tubular_bells = note("<~@19 A ~ B@2 C@2 ~@108>".pickRestart({
  A: "a4", B: "[e4@27 ~@5]/2", C: "f4/2",
})).s("gm_tubular_bells").gain(0.51)

// bass · fretless bass · "Bass 1"
const bass = note(`<
  ~@25 A@24 B@7 C D@2 E@2 F@2 G@2 H@2 D@2 E@2 F@2 G@2 I@2 A@12 B@8 J K L M N O P Q R S T U V W X Y Z@2 ~@6 A@6 AA ~@5
>`.pickRestart({
  A: "e1@2 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~", B: "gb1@2 g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~",
  C: "gb1@2 g1 ~ g1 ~ g1 ~ g1@2 g1@2 g1 ~ g1 ~, ~@3 gb1", D: "[e1@23 ~ e1@4 d1@4]/2", E: "[g1@6 a1 g1]/2",
  F: "[d1@23 ~ d1@4 e1@4]/2", G: "[f1@6 g1 f1]/2", H: "[e1@7 b0]/2", I: "e1/2", J: "a1@5 ~ a1 ~ a1@5 ~ a1 ~",
  K: "a1@5 ~ a1 ~ a1@4 e1@4", L: "gb1@5 ~ gb1 ~ gb1@5 ~ gb1 ~", M: "gb1@5 ~ gb1 ~ gb1@4 db1@4",
  N: "d1@6 d1@2 d1@5 ~ d1@2", O: "d1@5 ~ d1 ~ d1@4 a0@3 ~", P: "b0@6 b0 ~ b0@5 ~ b0 ~", Q: "b0@5 ~ b0 ~ b0@5 ~ b0@2",
  R: "a2@5 ~ a2 ~ a2@5 ~ a2 ~", S: "a2@5 ~ a2 ~ a2@4 e2@3 ~", T: "gb2@5 ~ gb2 ~ gb2@5 ~ gb2 ~",
  U: "gb2@5 ~ gb2 ~ gb2@4 db2@3 ~", V: "d2@5 ~ d2 ~ d2@5 ~ d2@2", W: "d2@5 ~ d2 ~ d2@3 ~ a1@3 ~",
  X: "b1@5 ~ b1 ~ b1@5 ~ b1 ~", Y: "b1@5 b1@2 ~ b1@3 ~ b1@3 ~", Z: "[a2@27 ~@5]/2", AA: "e1@2 f1 ~ f1 ~ f1 ~@9",
})).s("gm_fretless_bass").gain(0.41)

// bass · electric bass finger · "Bass 2"
const bass_2 = note(`<
  ~@25 A@24 B C@5 D@2 E@2 F@2 G@2 H@2 I@2 J@2 F@2 G@2 H@2 K@2 A@5 L@5 M@2 B N@5 O@4 P@2 Q@2 R@4 S@2 T@2 U@4 ~@6 V@3 W@4
  ~@5
>`.pickRestart({
  A: "e2@2 f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~", B: "gb2@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~",
  C: "[gb2@2 g3@2 b3@2 g2 ~ g2 ~ g3@2 b3@2 g2 ~ gb2@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ gb2@2 g2 ~ g2 ~ g2 ~ d4@2 g2 ~ g2 ~ g2 ~ gb2@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ gb2@2 g2 ~ g2 ~ g2 ~ b3@2 g2 ~ g2 ~ e3@2, ~@2 g2 ~ g2 ~ d4@4 g2 ~ g2 ~ d4@22 g4@4 g2 ~ c4@4 b3@22 c4@4 g2 ~ g3@4 g2 ~]/5",
  D: "[gb2@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ gb2@2 g2 ~ g2 ~ g2 ~ g2@2 g2@2 g2 ~ g2 ~, g3@5 ~ g3 [gb2,gb3]]/2", // Gb
  E: "[e2@23 ~ e2@4 d2@4, e3@21 ~@11]/2", F: "[g2@6 a2 g2]/2", G: "[d2@23 ~ d2@4 e2@4]/2", H: "[f2@6 g2 f2]/2",
  I: "[~@11 e4@3 b1@2, e2@7 ~, ~@3 e5@4 ~, ~@7 b4@7 ~@2, ~@9 g4@5 ~@2]/2",
  J: "[~@5 e4 e2 d2, e2@23 ~@9, ~@9 g4@3 ~@4]/2", K: "e2/2",
  L: "[e2@2 f3@2 a3@2 f2 ~ f2 ~ f3@2 a3@2 f2 ~ e2@2 f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ e2@2 f2 ~ f2 ~ f2 ~ c4@2 f2 ~ f2 ~ f2 ~ e2@2 f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ e2@2 f2 ~ bb3@2 f2 ~ f2 ~ f2 ~ f2 ~ d3@2, ~@2 f2 ~ f2 ~ c4@4 f2 ~ f2 ~ c4@22 f4@4 f2 ~ bb3@4 a3@22 f2 ~ a3@4 f3@4 f2 ~]/5",
  M: "[e2@2 f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ e2@2 f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~, f3@5 ~@3]/2",
  N: "[gb2@2 g3@2 b3@2 g2 ~ g2 ~ g3@2 b3@2 g2 ~ gb2@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ gb2@2 g2 ~ g2 ~ g2 ~ d4@2 g2 ~ g2 ~ g2 ~ gb2@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ gb2@2 g2 ~ c4@2 g2 ~ g2 ~ g2 ~ g2 ~ e3@2, ~@2 g2 ~ g2 ~ d4@4 g2 ~ g2 ~ d4@22 g4@4 g2 ~ c4@4 b3@22 g2 ~ b3@4 g3@4 g2 ~]/5",
  O: "[gb2@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ gb2@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ a4@2 ~@2 e5@2 a2 ~ a2@4 d5@2 db5@2 d5@2 db5@2 ~@2 a2 ~ a2@4 [e2,e4]@4, g3@25 ~@5 e4@4 ~@4 d5@5 ~@21, ~@32 a2@5 ~@9 a2 ~ a2@5 ~@11, ~@32 ab4 ~ a4@18 a4@4 a4@8]/4", // E
  P: "[e4@2 a4@2 e5@2 gb2 ~ gb2@4 d5@2 db5@2 d5@2 db5@2 ~@2 gb2 ~ [gb2,gb4]@4 [db2,db4]@4, gb4@23 ~@9, gb2@5 ~ d5@5 ~@3 gb2 ~ gb2@4 a4@12]/2", // Gb Db
  Q: "[e4@2 a4@2 e5@2 d2@2 d2@4 d5@2 [d2,db5]@2 ~ db5@2 ~ b4 ~ d2 ~ [d2,d4]@4 [a1,a3]@3 bb3, d4@23 ~@9, d2@6 d5@5 ~@5 d2@5 ~@11, ~@8 d5 ~ a4@6]/2", // Dmaj7 D A
  R: "[e4@2 a4@2 e5@2 b1 ~@3 db5@2 d5@2 db5@2 ~@2 a4@2 d5@2 [b1,c5] ~@6 e4 f4 ~ a2@5 ~ a2 ~ a2@5 ~ a2 ~ a2@5 ~ a2 ~ [a2,a4]@4 [e2,e4]@4, b3@24 ~@3 b3@2 ~@3 e5@28 ~@4, b1@6 d5@4 ~@12 d5@4 db5@2 [c4,d4,d5]@2 ~ a4@23 ~@10, ~@8 b1@5 ~ b1 ~ b1@5 ~@3 b1@5 ~ [b1,e5]@2 ~@32]/4", // Cmaj7 A E Csus2 E5
  S: "[gb2@5 ~ gb2 ~ gb2@5 ~ gb2 ~ gb2@4 ~@2 gb2 ~ [gb2,gb4]@4 [db2,db4]@4, gb4@11 ~@5]/2", // Gb Db
  T: "[d2@5 ~ d2 ~ d2@5 ~ d2 ~ d2@5 ~ d2 ~ d4@4 [a1,a3]@4, d4@11 ~ d2 ~@3]/2", // A
  U: "[b1@5 ~ b1 ~ b1@5 ~ b1 ~ b1@5 ~ b1 ~ b1@3 ~@2 b3@2 [c4,d4,e4] f4 ~@31, b3@25 ~@39, bb3 ~@27 b1@3 a1@20 ~@13]/4", // C
  V: "[e2@2 f2 ~ f4@2 a4@2 f2 ~ f2 ~ f4@2 f2 ~ e2@2 bb4@2 f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ e2@2 f2 ~ f4@2 a4@2 c5@2 f2 ~ bb4@2 a4@2, ~@4 f2 ~ f2 ~ c5@4 f2 ~ a4@4 f2 ~ c5@16 f2 ~ f2 ~ f2 ~@2 c5@2 ~@3, ~@44 f2 ~ f2 ~]/3",
  W: "[[e2,bb4]@2 a4@2 f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ e2@2 f2 ~ f4@2 a4@2 f2 ~ f2 ~ f4@2 f2 ~ e2@2 bb4@2 f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ e2@2 f4@2 a4@2 bb4@2 ~@8, ~@2 f2 ~ f4@15 ~ f2 ~ f2 ~ c5@4 f2 ~ a4@4 f2 ~ c5@14 f2 ~ f2 ~ f2 ~@9]/4", // Edim
})).s("gm_electric_bass_finger").gain(0.42)

// other · overdriven guitar · "Guit." · F
const overdriven_guitar = note("<~@30 [~@5 [f3,f4] ~ [f3,f4]] ~@47 [~@5 [f3,f4] ~ [f3,f4]] ~@54>")
  .s("gm_overdriven_guitar").gain(0.22)

// chords · electric guitar clean · "Guit. 2"
const electric_guitar_clean = note(`<
  ~@57 A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 I@2 J@2 ~@20 K L M L N L O P Q ~@27
>`.pickRestart({
  A: "[~@9 e4@17 ~@6, ~@7 e3@19 ~@6, ~@8 [g3,b3]@19 ~@5]/2", B: "[~@2 [d4,g4]@5 ~, ~@7 [g3,b3]@22 ~@3]/2",
  C: "[~@7 [gb3,a3]@21 ~@4, ~@3 d3@11 ~@2]/2", D: "[~@7 [a3,c4,f4]@16 ~@9, ~@6 f3@17 ~@9]/2",
  E: "[~@7 [g3,b3]@18 ~@7, ~@3 e3@9 ~@4]/2", F: "[~@8 b3@19 ~@5, ~@3 e3@10 ~@3, ~@7 g3@19 ~@6]/2",
  G: "[~ g4@2 ~, ~@3 g3@9 ~@4, ~@7 [b3,d4]@17 ~@8]/2", H: "[~@7 [gb3,a3]@19 ~@6, ~@3 d3@10 ~@3]/2",
  I: "[~@8 f4@15 ~@9, ~@6 f3@17 ~@9, ~@7 [a3,c4]@16 ~@9]/2", J: "[~ [b3,e4]@2 ~, ~@7 g3@17 ~@8]/2",
  K: "e4 a4 e5 d5@3 d5 db5", L: "d5 db5 a4@6", M: "e4@2 a4@2 e5@2 d5@5 ~ d5@2 db5@2",
  N: "e4@2 a4@2 e5@2 d5@3 ~ d5 ~ d5@2 db5@2", O: "e4@2 a4@2 e5@2 d5@4 db5@2 d5@2 db5 ~",
  P: "~@2 a4@2 e5@2 d5@4 db5@2 d5@2 e5 ~", Q: "e5",
})).s("gm_electric_guitar_clean").gain(0.46)

// chords · electric guitar clean · "Guit. 2" · soft notes
const electric_guitar_clean_2 = note("<~@61 A@2 ~@2 B@2 C@2 ~@2 D@2 ~@2 E@2 ~@56>".pickRestart({
  A: "[~@8 d4@21 ~@3]/2", B: "[~@8 e4@17 ~@7]/2", C: "[~@8 e4@19 ~@5]/2", D: "[~@4 d4@9 ~@3]/2", E: "[~@7 e3@17 ~@8]/2",
})).s("gm_electric_guitar_clean").gain(0.26)

// other · percussive organ · "Organ"
const percussive_organ = note(`<
  ~@23 A@8 B C D E@2 F@2 G@2 B H@8 I@8 J@2 K@2 L@2 M@2 N@2 O@2 K@2 P@2 M@2 Q@2 R@8 D E@2 B S@8 T@2 U@2 V@2 W@2 X@2 Y@2
  Z@2 AA@2 AB@2 AC@2 AD@2 AE@2 AF@7 AG@5
>`.pickRestart({
  A: "[~@49 f6 e6 f6 c6@3 f6 e6 f6 c6@6, [f2,f3]]/8", B: "~@2 f6@2 e6@2 f6@2 g6@2 f6@2 e6@2 f6 ~",
  C: "~ f6 e6 f6 g6 f6 e6 f6", D: "~ f6 e6 f6 c6@3 f6", E: "[e6 f6 c6@7 f6 e6 f6 c6@3 f6]/2",
  F: "[g6 f6 c7@7 f6 e6 f6 c6@3 f6]/2", G: "[e6 f6 c6@7 f6 e6 f6@3 e6 f6]/2",
  H: "[~@2 f6@2 e6@2 f6@2 c6@6 f6@2 e6@2 f6@2 c6@14 f6@2 e6@2 f6@2 ~@6 f6@2 g6@2 f6@2 c7@14 f6@2 e6@2 f6@2 c6@6 f6@2 e6@2 f6@2 c6@14 f6@2 e6@2 f6@2 g6@2 f6@2 e6@2 f6 ~@3 f6@2 e6@2 f6@2 g6@2 f6@2 e6@2 f6 ~, [f2,f3]@123 ~ [f2,f3]@4, ~@5 c6 ~@10]/8", // F
  I: "[~@2 g6@2 gb6@2 g6@2 d6@6 g6@2 gb6@2 g6@2 d6@14 g6@2 gb6@2 g6@2 d6@6 g6@2 a6@2 g6@2 d7@14 g6@2 gb6@2 g6@2 d6@6 g6@2 gb6@2 g6@2 d6@14 g6@2 gb6@2 g6@2 a6@2 g6@2 gb6@2 g6 ~@3 g6@2 gb6@2 g6@2 a6@2 g6@2 [gb2,gb3,gb6]@2 g6@2, [g2,g3]@31 ~]/8", // Gb G
  J: "[[e2,e3,e6]@7 [d2,d3,gb6]]/2", K: "[[g2,g3,g6]@24 [a2,a3]@3 ~ [g2,g3,g6]@4, ~@6 a6 ~]/2",
  L: "[[d2,d3]@23 ~ [d2,d3]@3 ~ [e2,e3,e6]@4, d6@21 ~@3 d6@4 ~@4]/2", M: "[[f2,f3,f6]@6 [g2,g3,g6] [f2,f3,f6]]/2",
  N: "[[e2,e3,e6]@7 [b2,b5]]/2", O: "[[e2,e3,e6]@23 ~ [e2,e3,e6]@4 [d2,d3,d6]@4]/2",
  P: "[[d2,d3,d6]@23 ~ [d2,d3,d6]@4 [e2,e3,e6]@4, e2 ~@31]/2", Q: "[[e2,e3,e6]@29 ~@3]/2",
  R: "[~@2 f6@2 e6@2 f6@2 c6@6 f6@2 e6@2 f6@2 c6@14 f6@2 e6@2 f6@2 f6@3 ~ e6@2 f6@2 ~@2 f6@2 e6@2 f6@2 g6@2 f6@2 e6@2 f6 ~@3 f6@2 e6@2 f6@2 c6@6 f6@2 e6@2 f6@2 c6@14 f6@2 e6@2 f6@2 c6@6 f6@2 g6@2 f6@2 c7@12, [f2,f3], ~@40 g6 ~@87]/8", // F
  S: "[~@2 g6@2 gb6@2 g6@2 d6@5 ~ g6@2 gb6@2 g6@2 d6@14 g6@2 gb6@2 g6@2 d6@6 g6@2 a6@2 g6@2 d7@14 g6@2 gb6@2 g6@2 d6@6 g6@2 gb6@2 g6@2 d6@14 g6@2 gb6@2 g6@2 a6@2 g6@2 gb6@2 g6 ~@3 g6@2 gb6@2 g6@2 a6@2 g6@2 gb6@2 g6@2, [g2,g3]@125 ~@3]/8", // G
  T: "[[e2,e3]@3 ~@3 [a2,a3]@15 ~@3 [a2,a3]@2 ~@2 [e3,e6]@4, ~@2 a6@9 ~ a6@2 e2 ~]/2", // E A E
  U: "[[gb2,gb3,gb6]@23 ~ [gb2,gb3]@2 ~@2 [db3,db6]@4, ~@6 gb6 ~]/2", V: "[[d3,d6]@23 ~ [d3,d6]@4 [a2,a5]@4]/2",
  W: "[b5@22 ~@2 b5@4 [c6,d6] ~ [e6,f6] ~, b2@27 ~ b2@2 ~@2, bb5 ~@31]/2", // Csus2 Fmaj7
  X: "[g6 ~@7 g6 ~@15 [a2,a3]@2 ~@2 [e3,e6]@4, [a2,a3,a6]@23 ~ a6@4 e2@2 ~@2]/2", // A E A
  Y: "[[gb2,gb3,gb6]@23 ~ [gb2,gb3,gb6]@4 [db2,db3,db6]@4]/2", Z: "[[d2,d3,d6]@23 ~ [d2,d3,d6]@4 [a2,a5]@4]/2",
  AA: "[b2@27 ~ b2@3 ~, b5, bb5 ~@31]/2", AB: "a3/2", AC: "gb3/2", AD: "d3/2", AE: "[b3@31 ~]/2",
  AF: "[~ f5 e5 f5 c5@3 f5 e5 f5 c5@7 f5 e5 f5 ~@3 f5 g5 f5 c6@7 f5 e5 f5 c5@3 f5 e5 f5 c5@7 f5 e5 f5 ~@3 f5, f3, ~@5 c5 ~@7 c5]/7",
  AG: "[g5 f5 c6@38]/5",
})).s("gm_percussive_organ").gain(0.25)

// drums · kick
const kick = s("bd").struct("<~@25 [x ~@2 x!2 ~@3]!88 [x!2]!8 [x ~@2 x!2 ~@3]!7 ~@5>").gain(0.39)

// drums · low tom
const low_tom = s("lt").struct("<~@27 A ~@18 B ~@11 C D C D C D C D E D C D C D C D C D F ~@56>".pickRestart({
  A: "~@6 x!2", B: "~@2 x!2 ~@2 x ~", C: "~@2 x!2", D: "x", E: "~@3 x", F: "x ~ x ~ x!4",
})).gain(0.39)

// drums · hihat
const hihat = s("hh").struct("<~@25 [~ x ~ x]!88 ~@8 [~ x ~ x]!7 ~@5>").gain(0.39)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@49 A ~@3 A ~@2 B ~ B ~@3 B ~@8 A ~@5 A ~@11 A ~@3 A ~@11 A ~@3 C ~@23
>`.pickRestart({
  A: "x", B: "~@3 x", C: "~ x ~@14",
})).gain(0.39)

// drums · mid tom
const mid_tom = s("mt").struct("<~@109 [~ x ~@14] ~@23>").gain(0.27)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@27 A ~ B@17 C B@11 D E D E D E D E B E D E D E D E D E F B@32 G B@3 ~@8 B@7 ~@5
>`.pickRestart({
  A: "~@6 x!2", B: "~ x ~ x", C: "~@2 x!2 ~@2 x ~", D: "~ x!3", E: "x!2 ~ x", F: "x ~ x ~ x!4",
  G: "~ x ~@2 x ~@7 x ~@3",
})).gain(0.39)

// drums · crash
const crash = s("cr").struct(`<
  ~@25 A ~@23 A ~@3 A ~@2 B A B A B A B A B A C A B A B A B A B A D A ~@11 A ~@3 A ~@2 B A B A B A B A ~ A ~@2 B ~ B A ~
  A ~@7 A E ~ E ~ E ~ F ~@4
>`.pickRestart({
  A: "x", B: "~@2 x!2", C: "~@3 x", D: "~@7 x", E: "~@6 x!2", F: "~@11 x ~@4",
})).gain(0.39)

// drums · tambourine
const tambourine = s("tb").struct("<~@73 [~ x ~@14] ~@31 [x!16]!8 [x ~ x!14] [x!16]!7 x ~@11>").gain(0.39)

// drums · ride
// … 10 more lines

More by Neil Diamond