Strudelify

If I Can't Have You

Kim Wilde

KeyC majorTempo118 bpm
0:00/0:00
// If I Can't Have You — Kim Wilde
// 118 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 3/4 at bar 17, 4/4 at bar 20, 2/4 at bar 48, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 112 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(118/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 · "A.PIANO 3"
const piano = note(`<
  A B C D E F C D E F C D E G@4 H@6 I J K L M N O P Q R S T U V S T U W X Y Z AA@2 AB A AC AD AE AF AG AH AI AJ AI AJ AI
  AK B C D E F C D E AL@7 AM B C D E F C D E F C D E F C D E F C D E F C D E F C D AN ~@8
>`.pickRestart({
  A: "~@12 [f6,g6,a6,b6,c7] [a5,b5,c6,d6,e6] [c5,d5,e5,f5,g5] [g4,a4,b4]", // F Am C G
  B: "[a2,a3,c4,e4,f4] ~@3 [a2,a3,c4,e4] ~@2 [a2,a3,c4,e4]@2 ~ [a2,a3,c4,e4] ~ a2 ~ a2@2, ~@13 [a3,c4,e4]@2 ~", // Fmaj7 Am
  C: "[g3,b3,d4]@5 ~ [g3,b3,d4] [g3,b3,d4]@2 ~ [g3,b3,e4]@2 ~@2 g2@2, g2@6 g2 ~, ~@13 [g3,b3,d4]@3", // G Em G
  D: "[e2,e3,g3,b3,d4] ~@3 [e2,e3,g3,b3,d4] ~@2 [e2,e3,g3,b3,d4]@2 ~ [e2,e3,g3,b3,d4] ~ e2 ~ e2@2, ~@13 [e3,g3,b3,d4]@2 ~", // Em7
  E: "[f3,a3,c4,e4]@4 ~@2 [f3,a3,c4] [f3,a3,c4,e4] [f2,f3,a3,c4,e4]@2 [f2,f3,a3,c4,e4]@2 ~@2 g2@2, f2@4 ~@2 f2 ~, ~@13 [g3,b3,d4]@3", // Fmaj7 F Fmaj7 G
  F: "[a2,a3,c4,e4] ~@3 [a2,a3,c4,e4] ~@2 [a2,a3,c4,e4]@2 ~ [a2,a3,c4,e4] ~ a2 ~ a2@2, ~@13 [a3,c4,e4]@2 ~", // Am
  G: "[[d3,a3,c4,d4,f4]@5 ~ [c3,g3,c4,e4]@5 ~ [g2,g3,b3,d4]@10 [g3,b3,d4]@2 [a2,g3,a3,c4,e4]@5 ~ [a#2,a3,a#3,d4,f4]@5 ~ [f2,a3,c4,f4]@16 ~@12]/4", // Dm7 C G Am7 A#maj7 F
  H: "[~@4 [c3,g3,c4,e4]@15 ~ [c3,g#3,c4,f4]@15 ~ [c3,g3,c4,e4]@15 ~ [c3,g3,b3,d4]@15 ~ [c3,f3,a3,c4]@15 ~ [c3,g3,c4,e4] ~@3 [c3,g3,c4,e4] ~@2 [c3,g3,c4,e4]@2 ~ [c3,g3,c4,e4] ~]/6", // C Fm C G F C
  I: "~ [c3,g3,c4,e4]@2 ~ [c3,g#3,c4,f4] ~@3 [c3,g#3,c4,f4] ~@2 [c3,g#3,c4,f4]@2 ~ [c3,g#3,c4,f4] ~", // C Fm
  J: "~ [c3,g#3,c4,f4]@2 ~ [c3,g3,c4,e4] ~@3 [c3,g3,c4,e4] ~@2 [c3,g3,c4,e4]@2 ~ [c3,g3,c4,e4] ~", // Fm C
  K: "~ [c3,g3,c4,e4]@2 ~ [c3,g3,b3,d4] ~@3 [c3,g3,b3,d4] ~@2 [c3,g3,b3,d4]@2 ~ [c3,g3,b3,d4] ~", // C G
  L: "~ [c3,g3,b3,d4]@2 ~ [c3,f3,a3,c4] ~@3 [c3,f3,a3,c4] ~@2 [c3,f3,a3,c4]@2 ~ [c3,f3,a3,c4] ~", // G F
  M: "~ [c3,f3,a3,c4]@2 ~ [g2,g3,b3,d4] ~@3 [g2,g3,b3,d4] ~@2 [g2,g3,b3,d4]@2 ~ [g2,g3,b3,d4] ~", // F G
  N: "~ [g2,g3,b3,d4]@2 ~ [f2,f3,a3,c4] ~@3 [f2,f3,a3,c4] ~@2 [f2,f3,a3,c4]@2 ~ [f2,f3,a3,c4] ~", // G F
  O: "~ [f2,f3,a3,c4]@2 ~ [d3,f3,a3,c4] ~@3 [d3,f3,a3,c4] ~@2 [d3,f3,a3,c4]@2 ~ [d3,f3,a3,c4] ~", // F Dm7
  P: "~ [d3,f3,a3,c4]@2 ~ [f2,f3,a3,c4] ~@3 [f2,f3,a3,c4] ~@2 [f2,f3,a3,c4]@2 ~ [f2,f3,a3,c4] ~", // Dm7 F
  Q: "~ [f2,f3,a3,c4]@2 ~ [d3,f3,a3,c4] ~@3 [d3,f3,a3,c4] ~@2 [g2,g3,b3,d4]@2 ~ [g2,g3,b3,d4] ~", // F Dm7 G
  R: "[f6,g6,a6,b6,c7] [a5,b5,c6,d6,e6] [c5,d5,e5,f5,g5] [g4,a4,b4] [a2,a3,c4,e4,f4] ~@3 [a2,a3,c4,e4] ~@2 [a2,a3,c4,e4]@2 ~ [a2,a3,c4,e4] ~", // F Am C G Fmaj7 Am
  S: "a2 ~ a2@2 [g3,b3,d4]@5 ~ [g3,b3,d4] [g3,b3,d4]@2 ~ [g3,b3,e4]@2, ~ [a3,c4,e4]@2 ~ g2@12", // G Em Am
  T: "~@2 g2@2 [e2,e3,g3,b3,d4] ~@3 [e2,e3,g3,b3,d4] ~@2 [e2,e3,g3,b3,d4]@2 ~ [e2,e3,g3,b3,d4] ~, g2 ~@7, ~ [g3,b3,d4]@3 ~@12", // Em7 G
  U: "e2 ~ e2@2 [f3,a3,c4,e4]@4 ~@2 [f3,a3,c4] [f3,a3,c4,e4] [f2,f3,a3,c4,e4]@2 [f2,f3,a3,c4,e4]@2, ~ [e3,g3,b3,d4]@2 ~ f2@8 ~@4", // Fmaj7 F Fmaj7 Em7
  V: "~@2 g2@2 [a2,a3,c4,e4] ~@3 [a2,a3,c4,e4] ~@2 [a2,a3,c4,e4]@2 ~ [a2,a3,c4,e4] ~, f2 ~@7, ~ [g3,b3,d4]@3 ~@12", // Am G
  W: "~@2 g2@2 [a#2,f3,a3,a#3,d4] ~@3 [a#2,f3,a3,a#3,d4] ~@2 [a#2,f3,a3,a#3,d4]@2 ~ [a#2,f3,a3,a#3,d4] ~, f2 ~@7, ~ [g3,b3,d4]@3 ~@12", // A#maj7 G
  X: "~ [a#2,f3,a3,a#3,d4]@2 ~ [a#2,f3,a3,a#3,d4] ~@3 [a#2,f3,a3,a#3,d4] ~@2 [a#2,f3,a3,a#3,d4]@2 ~ [a#2,f3,a3,a#3,d4] ~", // A#maj7
  Y: "~ [a#2,f3,a3,a#3,d4]@2 ~ [a2,e3,g3,a3,c4] ~@3 [a2,e3,g3,a3,c4] ~@2 [a2,e3,g3,a3,c4]@2 ~ [a2,e3,g3,a3,c4] ~", // A#maj7 Am7
  Z: "~ [d3,f3,a3,c4,d4]@2 ~ [d3,f3,a3,c4,d4] ~@3 [d3,f3,a3,c4,d4] ~ a2 c3 [d3,a3,c4,d4,f4]@4", // Dm7
  AA: "[~@2 [c3,g3,c4,e4]@5 ~ [g2,g3,b3,d4]@10 [g3,b3,d4]@2 [a2,g3,a3,c4,e4]@5 ~ [a#2,a3,a#3,d4,f4]@5 ~]/2", // C G Am7 A#maj7
  AB: "[f2,a3,c4,f4]", AC: "[c3,g3,c4]@15 ~, [e4,f4] ~@15", AD: "[c3,g#3,c4,f4]@15 ~", AE: "[c3,g3,c4,e4]@15 ~",
  AF: "[c3,g3,b3,d4]@15 ~", AG: "[c3,f3,a3,c4]@15 ~", AH: "[g2,g3,b3,d4]@15 ~",
  AI: "[f2,f3,a3,c4] ~@3 [f2,f3,a3,c4] ~@2 [f2,f3,a3,c4]@2 ~ [f2,f3,a3,c4] ~@2 [f2,f3,a3,c4]@2 ~", // F
  AJ: "[d3,f3,a3,c4] ~@3 [d3,f3,a3,c4] ~@2 [d3,f3,a3,c4]@2 ~ [d3,f3,a3,c4] ~@2 [d3,f3,a3,c4]@2 ~", // Dm7
  AK: "[d3,f3,a3,c4] ~@3 [d3,f3,a3,c4] ~@2 [g2,g3,b3,d4]@2 ~ [g2,g3,b3,d4] ~ [f6,g6,a6,b6,c7] [a5,b5,c6,d6,e6] [c5,d5,e5,f5,g5] [g4,a4,b4]", // Dm7 G F Am C G
  AL: "[a2,g3,a3,c4,e4] ~@3 [a2,g3,a3,c4,e4] ~@2 [a2,g3,a3,c4,e4]@2 ~ [a2,g3,a3,c4,e4] ~@2 [a#2,a3,a#3,d4,f4]@2 ~", // Am7 A#maj7
  AM: "[a2,g3,a3,c4,e4] ~@3 [a2,g3,a3,c4,e4] ~@2 [a2,g3,a3,c4,e4]@3 [g3,a3,c4,e4]@2 [f6,g6,a6,b6,c7] [a5,b5,c6,d6,e6] [c5,d5,e5,f5,g5] [g4,a4,b4], ~@5 a2@2 ~", // Am7 F Am C G
  AN: "[f3,a3,c4,e4]@4 ~@2 [f3,a3,c4] ~@9, f2 ~", // Fmaj7 F
})).s("gm_piano").gain(0.22).pan(0.7)

// bass · synth bass 2 · "SYN BASS 2"
const bass = note(`<
  ~@4 A B C D E B C D E F@4 G H I H I J H I H I K L M N O P Q R S P Q R S T U V W@3 X Y Z AA Z AA AB AC AD AE AD AE AD
  AF B C D E B C D E AG@7 AH ~@3 AI B C D E B C D E B C D E B C D E B C D E B C D E ~@8
>`.pickRestart({
  A: "~@13 g1@2 ~", B: "a1 ~@3 a1 ~@2 a1@2 ~ a1 ~ a1 ~ c2@2", C: "g1 ~@3 g1 ~@2 g1@2 ~ a1 ~ b1 ~ g1 ~",
  D: "e1 ~@3 e1 ~@2 e1@2 ~ b0 ~ e1 ~ e1@2", E: "f1 ~@3 f1 ~@2 f1@2 ~ f1 ~ g1 ~ g1@2",
  F: "[d2@6 c2@6 g1@10 e1@2 a1@6 a#1@6 f1@16 f1 ~@3 f1 ~ f1 ~ f1 ~ f1 ~]/4", G: "f1@2 ~@2 c2 ~@3 c2 ~@2 c2@2 ~ c2@2",
  H: "c2 ~ g1@2 c2 ~@3 c2 ~@2 c2@2 ~ g1@2", I: "f1 ~ g1@2 c2 ~@3 c2 ~@2 c2@2 ~ c2@2",
  J: "g1@2 ~@2 c2 ~@3 c2 ~@2 c2@2 ~ c2@2", K: "c2 ~ g1@2 g1 ~@3 g1 ~@2 g1@2 ~ g1 ~",
  L: "g1 ~ e1@2 f1 ~@3 f1 ~@2 f1@2 ~ f1@2", M: "f1 ~ c2@2 d2 ~@3 d2 ~@2 d2@2 ~ f1@2",
  N: "c2 ~ f1@2 f1 ~@3 f1 ~@2 f1@2 ~ f1@2", O: "f1 ~ c2@2 d2 ~@3 d2 ~@2 g1@2 ~ g1@2",
  P: "g1 ~ g1@2 a1 ~@3 a1 ~@2 a1@2 ~ a1 ~", Q: "a1 ~ c2@2 g1 ~@3 g1 ~@2 g1@2 ~ a1 ~",
  R: "b1 ~ g1 ~ e1 ~@3 e1 ~@2 e1@2 ~ b0 ~", S: "e1 ~ e1@2 f1 ~@3 f1 ~@2 f1@2 ~ f1 ~",
  T: "g1 ~ g1@2 a#1 ~@3 a#1 ~@2 a#1@2 ~ a#1 ~", U: "a#1 ~ d2@2 a#1 ~@3 a#1 ~@2 a#1@2 ~ a#1 ~",
  V: "d2 ~ a#1 ~ a1 ~@3 a1 ~@2 a1@2 ~ a1 ~", W: "[a1 ~ c2@2 d2 ~@3 d2@2 a1@2 d2@6 c2@6 g1@10 e1@2 a1@6 a#1@6]/3",
  X: "f1", Y: "f1 ~@3 f1 ~ f1 ~ f1 ~ f1 ~ f1@2 ~@2", Z: "c2 ~@3 c2 ~@2 c2@2 ~ c2@2 c2 ~ g1@2",
  AA: "c2 ~@3 c2 ~@2 c2@2 ~ g1@2 f1 ~ g1@2", AB: "c2 ~@3 c2 ~@2 c2@2 ~ c2@2 g1 ~ g1@2",
  AC: "g1 ~@3 g1 ~@2 g1@2 ~ g1 ~ g1 ~ e1@2", AD: "f1 ~@3 f1 ~@2 f1@2 ~ f1@2 f1 ~ c2@2",
  AE: "d2 ~@3 d2 ~@2 d2@2 ~ f1@2 c2 ~ f1@2", AF: "d2 ~@3 d2 ~@2 g1@2 ~ g1@2 g1 ~ g1@2",
  AG: "a1 ~ c2@2 a1 ~@2 a1 ~@2 a1 ~@2 a#1@2 ~", AH: "a1 ~ c2@2 a1 ~@2 a1 ~@2 a1 ~@5", AI: "~@10 f1@2 ~ g1@2 ~",
})).s("gm_synth_bass_2").gain(0.64)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@4 A B@2 C@2 B@2 D@2 ~@2 E@2 F G H I J K L M N O P Q@2 R@2 S T U V W T U X@4 Y ~@2 Z AA AB AC@7 AD@2 AE@2 AF@2 AG@2
  B@2 D@2 ~ AH ~ A AI AH ~ AJ B@2 AG@2 B@2 C@2 B@2 AG@2 B@2 C@2 B@2 AG@2 B@2 C@2 B@2 D@2 ~@8
>`.pickRestart({
  A: "~@14 [e4,g4,c5] [c4,e4,a4]", // C Am
  B: "[[e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 ~@4 [e4,a4,c5]@2 [e4,a4,c5] ~ [e4,a4,c5]@4 [d4,g4,b4] ~ [d4,g4,b4]@2 [b3,e4,g4] [d4,g4,b4]@2 ~ [e4,a4,c5] ~@3 [d4,g4,b4] [b3,e4,g4]]/2", // C Am G Em G Am G Em
  C: "[[d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~@5 [b3,e4,g4]@2 [d4,g4,b4]@2 [e4,a4,c5]@6 ~@2 c5@2 b4@2 a4@2 g4@2 [e4,g4,c5] [c4,e4,a4]]/2", // G Em G Am C Am
  D: "[[d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~@5 [b3,e4,g4]@2 [d4,g4,b4]@2 [e4,a4,c5]@6 ~@12]/2", // G Em G Am
  E: "[~@4 [c4,f4,a4]@15 ~ [f4,a4,c5]@8 ~@4]/2", F: "c4@2 e4@2 e4@3 d4 c4@6 ~@2",
  G: "d4@2 e4@2 f4 ~ f4@2 f4@2 f4@2 g4@4", H: "f4 e4@5 ~@2", I: "g4@2 g4@4 d4@2 d4@5 ~@3",
  J: "g4@2 g4@4 c4 ~ c4@6 g4@2", K: "g4 f4 e4@4 ~@2",
  L: "[d4,f4]@2 [e4,g4]@2 [f4,g#4]@2 [f4,g#4] ~ [f4,g#4] ~ [f4,g#4]@2 [g4,a#4]@4", M: "[f4,g#4] [e4,g4]@5 ~@2",
  N: "g4@2 g4@4 d4@2 d4@7 ~", O: "g4@2 g4@4 c4 ~ c4@6 c4@2", P: "g4@2 g4@4 e4@4 d4@3 ~ [e4,g4,c5]@2",
  Q: "[[e4,g4,c5] ~ [e4,g4,c5]@4 [d4,f4,a4]@2 [c4,e4,g4]@2 [d4,f4,a4]@2 [c4,e4,g4] ~ [d4,f4,a4]@4 [a3,d4,f4]@7 ~@5 [e4,g4,c5]@2]/2", // C Dm C Dm C Dm C
  R: "[~@2 [e4,g4,c5]@3 ~ [d4,f4,a4]@2 [c4,e4,g4] ~ [d4,f4,a4]@2 [c4,e4,g4]@2 [d4,f4,a4]@4 [a3,d4,f4]@6 ~@2 [e4,g4,c5] [c4,e4,a4] [e4,g4,c5]@2 [e4,g4,c5]@2]/2", // C Dm C Dm C Dm C Am …
  S: "[e4,g4,c5] ~@6 [e4,a4,c5]", // C Am
  T: "[e4,a4,c5] ~ [e4,a4,c5]@4 [d4,g4,b4] ~ [d4,g4,b4]@2 [b3,e4,g4] [d4,g4,b4]@2 ~ [e4,a4,c5] ~", // Am G Em G Am
  U: "~@2 [d4,g4,b4] [b3,e4,g4] [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~@5 [b3,e4,g4]@2", // G Em G Em
  V: "[d4,g4,b4] [e4,a4,c5]@3 ~@4", // G Am
  W: "~@2 [e4,g4,c5] [c4,e4,a4] [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 ~@4 [e4,a4,c5]@2", // C Am C Am
  X: "[[d4,g4,b4]@2 [e4,a4,c5]@6 ~@4 e4@2 ~ f4@2 g4@2 ~ g4@6 f4 e4 f4@8 e4@2 ~ f4@2 g4@2 ~ a4@2 ~ g4@2 f4@2 ~ e4@10 f4@2]/4", // G Am
  Y: "g4 f4@5 ~@2", Z: "[c4,f4,a4]@15 ~", AA: "[f4,a4,c5]@4 ~@2 [c4,e4] [e4,g4]",
  AB: "[e4,g4]@3 [d4,f4] [c4,e4]@7 ~ [d4,f4]@2 [e4,g4]@2", // Em Dm C Dm Em
  AC: "[[f4,g#4]@2 [f4,g#4] ~ [f4,g#4] ~ [f4,g#4]@2 [g4,a#4]@4 [f4,g#4]@2 [e4,g4]@10 ~@4 g4@2 g4@4 d4@2 d4@7 ~ g4@2 g4@4 c4 ~ c4@6 c4@2 g4@2 g4@4 e4@4 d4@3 ~@3 [e4,g4,c5] ~ [e4,g4,c5]@4 [d4,f4,a4]@2 [c4,e4,g4]@2 [d4,f4,a4]@2 [c4,e4,g4] ~ [d4,f4,a4]@4 [a3,d4,f4]@7 ~@5 [e4,g4,c5] ~ [e4,g4,c5]@2 [e4,g4,c5]@2]/7", // Fm Gm Fm Em C Dm C Dm …
  AD: "[~@2 [d4,f4,a4]@2 [c4,e4,g4] ~ [d4,f4,a4]@2 [c4,e4,g4]@2 [d4,f4,a4]@4 [a3,d4,f4]@6 ~@6 [e4,g4,c5]@3 ~ [e4,g4,c5]@2]/2", // Dm C Dm C Dm C
  AE: "[~@2 [d4,f4,a4]@2 [c4,e4,g4] ~ [d4,f4,a4]@2 [c4,e4,g4]@2 [d4,f4,a4]@4 [a3,d4,f4]@6 ~@2 [e4,g4,c5] [c4,e4,a4] [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@2 ~@2]/2", // Dm C Dm C Dm C Am C
  AF: "[~@10 [e4,a4,c5]@2 [e4,a4,c5] ~ [e4,a4,c5]@4 [d4,g4,b4] ~ [d4,g4,b4]@2 [b3,e4,g4] [d4,g4,b4]@2 ~ [e4,a4,c5] ~@3 [d4,g4,b4] [b3,e4,g4]]/2", // Am G Em G Am G Em
  AG: "[[d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~@5 [b3,e4,g4]@2 [d4,g4,b4]@2 [e4,a4,c5]@6 ~@10 [e4,g4,c5] [c4,e4,a4]]/2", // G Em G Am C Am
  AH: "~@2 a4@4 g4@4 a4@3 ~@3", AI: "[e4,g4,c5]!3 ~@5", AJ: "~@6 c5@2 b4@2 a4@2 g4@2 [e4,g4,c5] [c4,e4,a4]",
})).s("gm_electric_guitar_jazz").gain(0.48)

// chords · brass section · "BRASS 1"
const brass_section = note(`<
  ~@9 A B C D E@4 F ~@11 G ~ H@2 I J K L I J K M N O@4 P@2 ~@7 Q ~ Q ~ R A B C S A B C T ~@16 A B C S A B C S A B C S A
  B C S A B C S ~@8
>`.pickRestart({
  A: "~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3", // Am
  B: "~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@3 [d4,g4,b4]@4", // G
  C: "[e4,g4,b4,d5] ~ [e4,g4,b4,d5] ~@2 [e4,g4,b4,d5] ~@2 [e4,g4,b4,d5] ~@3 [e4,g4,b4,d5] ~@3", // Em7
  D: "~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5]!2 ~ a3 c4", // Fmaj7
  E: "[d4@6 c4@6 g3@12 a3@6 a#3@6 f3@20 [f3,c4,a4] ~ [f3,c4,a4] ~ [f3,c4,a4] ~ [f3,c4,a4,c5,g5] ~]/4", // F
  F: "[f3,c4,a4,c5,g5] ~@7", G: "~@4 d3 ~@3 d3 ~@2 d3@3 ~@2",
  H: "[~@4 d3 ~@3 d3 ~@2 e3@9 ~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@3]/2", // Am
  I: "[e4,a4,c5] ~@5 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@3", // Am G
  J: "[d4,g4,b4]@4 [e4,g4,b4,d5] ~ [e4,g4,b4,d5] ~@2 [e4,g4,b4,d5] ~@2 [e4,g4,b4,d5] ~@3", // G Em7
  K: "[e4,g4,b4,d5] ~@5 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5]", // Em7 Fmaj7
  L: "[f4,a4,c5,e5] ~@5 [e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@3", // Fmaj7 Am
  M: "[f4,a4,c5,e5] ~ [g4,b4,d5]@2 ~@2 [f4,a4,a#4,d5] ~@2 [f4,a4,a#4,d5] ~@2 [f4,a4,a#4,d5] ~@3", // Fmaj7 G A#maj7
  N: "~@6 [f4,a4,a#4,d5] ~@2 [f4,a4,a#4,d5] ~@2 [f4,a4,a#4,d5] ~@3", // A#maj7
  O: "[~@6 [e4,g4,a4,c5] ~@2 [e4,g4,a4,c5] ~@2 [e4,g4,a4,c5]@8 ~@6 a3 c4 d4@6 c4@6 g3@12 a3@6 a#3@6]/4", // Am7
  P: "[f3@20 [f3,c4,a4] ~ [f3,c4,a4] ~ [f3,c4,a4] ~ [f3,c4,a4,c5,g5] ~ [f3,c4,a4,c5,g5]@2 ~@2]/2", // F
  Q: "d3 ~@3 d3 ~@2 d3@3 ~@6", R: "d3 ~@3 d3 ~@2 e3@9",
  S: "~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5]!2 ~@3", // Fmaj7
  T: "~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5]!2 ~ [a4,b4] c5", // Fmaj7 Asus2
})).s("gm_brass_section").gain(0.56).pan(0.3)

// other · french horn · "FR.HORN"
const french_horn = note(`<
  ~@9 A B C D E@4 ~@4 F G@7 H I J@2 K L M@2 K N O@2 ~@2 P Q@2 R@2 ~@5 S T U V U ~ W A B X Y A B C D ~@16 A B X Y A B C Z
  A B X Y A B C Z A B X Y ~@8
>`.pickRestart({
  A: "e4@2 d4 c4 a3@2 e4@2", B: "d4@10 e4@3 d4@3", C: "g4@9 ~ b4@3 g4@3", D: "c5@14 a4 c5",
  E: "[d5@4 c5@2 a4@2 g4@2 e4@2 d4@10 c4 d4 e4@6 f4@6 c4@20 ~@8, c#5 ~@63]/4", F: "~@2 g3 c4",
  G: "[e4 g4@4 f4@4 e4@4 d4@4 c4@4 d4@4 ~@3]/7", H: "~@10 d4 [e4,f4] g4@4", I: "e4 ~@3",
  J: "[~@2 a3@3 e4 d4@4 e4@2 d4 c4 a3@2]/2", K: "e4@2 d4@5 e4", L: "~ d4@3 g4@9 ~ g4@2",
  M: "[~ e4@3 a4@16 e4@4 d4@2 c4@2 a3@4]/2", N: "~ d4@3 g4@9 ~ b4@2", O: "[~ g4@3 c5@16 ~@12]/2",
  P: "~@6 a4 c5 d5@8, ~@8 c#5 ~@7", Q: "[c5@2 a4@2 g4@2 e4@2 d4@10 c4 d4 [e3,e4]@6 [f3,f4]@6]/2",
  R: "[[c3,c4]@21 ~@11]/2", S: "~@7 [e4,f4] g4@2 f4@2 e4@4", T: "g4@5 ~@7 a3 ~@3", U: "a3@6 d4 [e4,f4] g4@4 e4@4",
  V: "~@12 a3 ~@3", W: "a3@3 e4 d4@4", X: "g4@9 ~ g4@3 e4@3", Y: "a4", Z: "c5",
})).s("gm_french_horn").gain(0.32)

// other · flute
const flute = note("<~@24 A B C D@2 E F@3 ~@16 G H I J@2 K@6 ~@52>".pickRestart({
  A: "~@2 g5 e5 g5@2 e5 ~ g5@2 e5 ~ g5@2 e5 ~", B: "~@2 g5 d5 g5@2 d5@2 g5@2 d5 ~ g5@2 d5 ~",
  C: "~@2 f5@3 ~ f5@2 a5@2 f5 ~ a5@2 f5 ~", D: "[a5 b5@9 g5 f6 e6 f6 e6@2]/2", E: "f6@2 d6@8 e6 d6 c6@2 d6@2",
  F: "[e6@2 g6@4 f6@2 e6@2 f6@2 e6@2 f6@4 d6@8 d5 f5 g5@8 ~@12]/3", G: "~@14 g5 e5",
  H: "g5@2 e5 ~ g5@2 e5 ~ g5@2 e5 ~@3 g5 d5", I: "g5@2 d5@2 g5@2 d5 ~ g5@2 d5 ~@3 f5@2",
  J: "[~@2 f5@2 a5@2 f5 ~ a5@2 f5 ~ a5@2 b5@18]/2",
  K: "[g5@2 f6@2 e6@2 f6@2 e6@4 f6@2 d6@8 e6 d6 c6@2 d6@2 e6@2 g6@4 f6@2 e6@2 f6@2 e6@4 f6@2 d6@8 e6 d6 c6@2 d6@2 e6@2 g6@4 f6@2 e6@2 f6@2 e6@2 f6@4 d6@8 d5 f5 g5@8]/6",
})).s("gm_flute").gain(0.32).pan(0.3)

// other · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
  ~@68
  [a4@3 ~ a4 ~@2 a4 ~@2 a4 ~@2 a#4@2 ~]!3
  [a4@3 ~ a4!5 ~ a4!3 a#4@2 ~]
  [a4@3 ~ a4 ~@2 a4 ~@2 a4 ~@2 a#4@2 ~]!3
  [a4@3 ~ a4!5 ~ a4!3 a#4@2 ~]
  ~@36
>`).s("gm_epiano1").gain(0.48)

// drums · kick
const kick = s("bd").struct(`<
  ~@9 A@3 B C D A@7 E A@4 E A@4 E A@3 E A@3 E A@3 F E A@9 B A@3 B A@3 B A@3 B A@3 B A@3 B ~@8 A@3 B A@3 B A@3 B A@3 B
  A@3 B ~@8
>`.pickRestart({
  A: "x!4", B: "x ~ x ~ x ~ x!2", C: "x ~@2 x ~ x!2 ~", D: "x ~ x!3 ~ x ~", E: "x!3 ~ x ~ x ~", F: "~ x ~ x!2 ~ x ~",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct(`<
  ~@8 A B@3 C ~@3 D E F@21 G F@4 ~@3 H B@19 C B@7 C ~@7 A B@7 C B@7 C B@4 ~@8
>`.pickRestart({
  A: "~@3 x", B: "~@4 x ~@2 x ~@4 x ~@3", C: "~@4 x ~@2 x ~@3 x!2 ~@3", D: "~@4 x!6 ~ x!3 ~ x",
  E: "x!3 ~@5 x ~@2 x ~@4", F: "x ~@7 x ~@2 x ~@4", G: "x ~@7 x ~@2 x ~@3 x", H: "x!6 ~ x!3 ~ x!4 ~",
})).gain(0.56)

// drums · clap
const clap = s("cp").struct(`<
  ~@2 A ~ A ~ A ~ A B@3 C ~ D E F G ~ G ~ G@2 ~ G ~ G@6 H@3 I H@3 I G@4 ~ G J K ~ A ~ A ~ A@7 B@3 C B@3 C ~ A ~ A ~ A ~
  A ~ A ~ A ~ A ~ A B@3 C B@3 C B@3 C B@3 C L ~@11
>`.pickRestart({
  A: "~@3 x", B: "~ x!2 ~ x ~ x ~", C: "~ x!2 ~ x!3 ~", D: "~ x ~@2", E: "~ x", F: "x ~@3 x ~@2 x", G: "x",
  H: "x ~@2 x!2 ~ x ~", I: "x ~@2 x!2 ~ x!2", J: "~ x ~ x", K: "~@2 x ~@2 x!2 ~", L: "~ x!2 ~@5",
})).gain(0.4)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A@3 B A@3 B A@3 B C A D@2 E D@18 E D@3 E D@3 C F A B A@15 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B
  A@3 B ~@8
>`.pickRestart({
  A: "x ~@3 x ~ x!3 ~@3 x ~@3", B: "x ~@3 x ~ x!3 ~@3 x!2 ~@2", C: "x!4", D: "x ~@3 x ~@3 x ~ x!3 ~@3",
  E: "x!2 ~@2 x ~@3 x ~ x!3 ~@3", F: "x ~ x!3 ~@3 x ~@3 x ~@3",
// … 64 more lines

More by Kim Wilde