Strudelify
Nord Sud Ovest Est cover art

1993 · Nord Sud Ovest Est

Nord Sud Ovest Est

883

KeyG majorTempo121 bpm
0:00/0:00
// Nord Sud Ovest Est — 883
// 121 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 135 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(121/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, A@4 for four bars: edit a riff to change every repeat.

// chords · piano · "NORD SUD OVEST"
const piano = note(`<
  ~@3 A B C D E F G H E F G I J K L M J K L M N O P Q R S P T U V W X Y Z AA AB J K L AC E F G H E F G I J K L AC J K L
  M N O P Q R S P T U V W X Y Z AA AB AD AE AF AE ~@8 J K L M J K L AC N O P Q R S P T U V W X Y Z AA AB U V W X Y Z AA
  AB U V W X Y Z AA AB U V W X Y Z AA AG
>`.pickRestart({
  A: "[b3,d4,g4]@7 ~", B: "[a3,d4,f#4]@7 ~", C: "[b3,e4,g4]@6 ~@2 [a3,d4,f#4]@7 ~", D: "[g3,c4,e4]@5 ~ [a3,d4,f#4]@2",
  E: "[b3,d4,g4] ~@3 [b3,d4,g4]@5 ~ [b3,d4,g4] ~@2 [g3,c4] ~ c4, ~@13 e4@2 ~", F: "[a3,d4,f#4]@9 ~ [a3,d4,f#4]@5 ~",
  G: "[b3,d4,g4] ~@3 [b3,d4,g4]@4 ~@2 [b3,d4,g4] ~@2 [g3,c4,e4]@2 ~", // G C
  H: "[a3,d4,f#4]@8 ~@2 [a3,d4,f#4] ~@2 [g3,c4,e4]@3", // D C
  I: "~ d5 ~ d5 ~ d5 ~ d5 ~ d5 [a3,d4,f#4] d5 ~ [g3,c4,e4]@3, [a3,d4,f#4]@8 ~@5 d5 ~@2", // D C D
  J: "[g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~ d5 ~ [g4,b4,d5] ~@2 [g4,c5]@2 ~, ~@13 e4 ~@2", // G C5
  K: "[f#4,a4,d5]@2 ~ [f#4,a4,d5] ~@2 [f#4,a4,d5] ~@3 [f#4,a4,d5] ~@2 [e4,g4,c5]@2 ~", // D C
  L: "[g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@3 [g4,b4,d5] ~@2 [e4,g4,c5]@2 ~", // G C
  M: "[d4,f#4,a4] ~@2 [d4,f#4,a4] ~ a4 [d4,f#4,a4] ~@3 [f#4,a4,d5] ~@2 [e4,g4,c5]@2 ~", N: "b4@3 c5, [e4,g4]",
  O: "[d4,f#4,a4]@7 ~", P: "b4@4 d5@4 a4@4 b4@3 ~, [d4,g4]@8 [d4,f#4]@7 ~", Q: "[c4,e4,g4]@11 ~ [d4,f#4,a4]@4",
  R: "[e4,g4,b4]@9 ~ [e4,g4,c5] ~@2 [e4,g4,b4]@3", S: "~@2 d5 a4, [d4,f#4]@15 ~, a4@3 ~",
  T: "[c4,e4,g4]@7 ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4]@3 ~", // C D
  U: "[g2,d4,g4,b4] ~@2 [g2,d4,g4,b4] ~@2 [g2,d4,g4,b4] ~@2 [d4,g4,b4]@2 ~ [e4,g4,c5]@2 c2 ~, ~@9 g2 ~@2 c2 ~@3", // G C
  V: "[d2,d4,f#4,a4] ~@2 [d2,d4,f#4,a4] ~@2 [d2,d4,f#4] ~@2 [d2,d4,f#4,a4] ~@2 [c4,e4,g4]@2 c2 ~, ~@6 a4@2 ~@4 c2 ~@3", // D C
  W: "[e2,b4]@2 ~ [e2,e4,g4,b4] ~@2 [e2,e4,g4,b4] ~ [d2,d4,f#4] ~@2 [d2,d4,f#4,a4] ~@2 [d2,d4,f#4,a4] ~, [e4,g4] ~@7 a4@2 ~@6", // E5 Em D Em
  X: "[c2,c4,e4,g4] ~@2 [c2,c4,e4,g4] ~@2 [c2,c4,e4,g4] ~@2 [c2,c4,e4,g4] ~@2 [d4,f#4,a4]@2 d2 ~, ~@12 d2 ~@3", // C D
  Y: "[d4,g4,b4]@2 ~ [g2,d4,g4,b4] ~@2 [d4,b4]@2 ~ [d4,g4,b4]@2 ~ [c2,e4,g4,c5] ~ [c2,e4,g4,c5] ~, g2 ~@5 [g2,g4] ~@2 g2 ~@6", // G C G
  Z: "[f#4,a4,d5] ~@2 [d2,f#4,a4,d5] ~@2 [f#4,a4,d5] ~@2 [d2,f#4]@2 ~ c2 ~ c2 ~, d2@2 ~@4 d2@2 ~ [a4,d5] ~@2 [e4,g4,c5]@4", // D D5 C
  AA: "[e2,g4,b4]@2 ~ [e2,g4]@2 ~ [e2,e4,g4,b4] ~ [f#4,a4]@2 ~ [d4,f#4,a4]@2 ~ [d2,d4,f#4,a4] ~, e4 ~@2 [e4,b4] ~@4 [d2,d4] ~@2 d2 ~@4", // Em F#m D E5 D
  AB: "[c2,c4,e4,g4] ~@2 [c2,c4,e4] ~@2 [c2,c4,e4,g4] ~ [f#4,a4]@2 ~ [d2,d4,f#4] ~@2 [d4,f#4,a4] ~, ~@3 g4@2 ~@3 [d2,d4] ~@2 a4@2 ~ d2@2", // C F#m D
  AC: "[d4,f#4,a4] ~@2 [d4,f#4,a4] ~@2 [d4,f#4,a4] ~@3 [f#4,a4,d5] ~@2 [e4,g4,c5]@2 ~", // D C
  AD: "[g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [b4,d5] ~@2 [g4,b4,d5] ~@2 [e4,g4,c5] ~ [e4,g4,c5] ~, ~@3 g4 ~@4", // G Bm G C
  AE: "[f#4,a4,d5] ~@2 [f#4,a4,d5] ~@2 [f#4,a4,d5] ~@2 [f#4,a4,d5] ~@2 [e4,g4,c5] ~ [e4,g4,c5] ~", // D C
  AF: "[g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [e4,g4,c5] ~ [e4,g4,c5] ~", // G C
  AG: "[a1,c4,e4,g4]@8 [d2,c5] [d2,b4] ~ [d2,a4] ~ [d2,g4] ~ [g2,g4]", // Am7 D7 G D5 G5 G
})).s("gm_piano").gain(0.34).pan(0.4)

// bass · acoustic bass · "BASSO"
const bass = note(`<
  ~@3 A B C D A B A E A B A E A B A E A B A F G H I J G H I K A B C D A B C K A B A E A B A E A B A E A B A E A B A F G
  H I J G H I K A B C D A B C K A B A E ~@8 A B A L A M A N G H I J G H I K A B C D A B C K A B C D A B C K A B C D A B
  C K A B C D A B C O
>`.pickRestart({
  A: "g2 ~@2 g2 ~@2 g2 ~@2 g2 ~@2 c2 ~ c2 ~", B: "d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 c2 ~ c2 ~",
  C: "e2 ~@2 e2 ~@2 e2 ~ d2 ~@2 d2 ~@2 d2 ~", D: "c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 d2 ~ d2 ~",
  E: "d2 ~@2 d2 ~@2 d2!2 ~ d2 ~@2 c2 ~ c2 ~", F: "d2 ~@2 d2 ~@2 d2!2 ~ d2 ~@2 c2@2 d2@2",
  G: "e2 ~@2 e2 ~@2 e2@2 ~ e2 ~@2 e2 ~ e2 ~", H: "d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~ d2 ~",
  I: "g2 ~@2 g2 ~@2 g2 ~ d2 ~@2 d2 ~@2 d2 ~", J: "c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2 ~ d2@2",
  K: "c2 ~@2 c2 ~@2 c2 ~ d2@2 ~ d2@2 ~ d2 ~", L: "d2 ~ d2 ~@2 d2 ~ d2!2 ~@3 c2!2 ~@2",
  M: "d2 ~ d2 ~@3 d2 ~ d2 ~@3 c2 ~ c2 ~", N: "d2 ~ d2 ~@3 d2 ~ d2 ~@3 c2 ~ d2 ~", O: "a1@8 d2!2 ~ d2 ~ d2 ~ [f2,g2]",
})).s("gm_acoustic_bass").gain(0.41)

// chords · acoustic guitar nylon · "NYLON GT"
const acoustic_guitar_nylon = note(`<
  ~@3 A B C D E@3 ~ F ~@2 G E@3 ~ F ~@2 G ~@3 H@2 ~@3 A B C D A B C D I J K L E@3 ~ F ~@2 G E@3 ~ F ~@2 G ~@3 M@2 ~@3 A
  B C D A B C D I N K L O P O Q O P O Q O P O Q O P O Q R S T U@2 V W X A B C D A B C D A B C D A B C D A B C D A B C D
  A B C D Y B C Z
>`.pickRestart({
  A: "[g4,d5] ~ [g4,d5]!2 ~@2 [g4,d5]!3 ~ [g4,d5]!2 ~ [e4,c5] ~ [a4,d5]", // G5 C D5
  B: "~@2 [f#4,d5]!2 ~@2 [f#4,d5]!4 ~ [f#4,d5] ~ [f#4,c5] ~ b4", // D F#dim
  C: "[e4,b4]@3 [e4,b4] ~@2 [f#4,d5]!4 ~ [a4,d5] ~ [a4,d5] ~@2", // E5 D D5
  D: "[g4,d5] d5 ~ [g4,c5] ~@2 [g4,d5] d5 ~@2 [g4,d5]!2 ~ [g4,d5] ~ [g4,d5]", E: "~ [d4,d5] ~ [d4,d5]@13",
  F: "~@2 [d4,d5] [d4,d5]@7 ~@6", G: "~ [d4,d5] ~@3 [d4,d5] ~@3 [d4,d5] ~ [d4,d5] ~ [d4,d5] ~ d5",
  H: "[~@7 [c4,e4] [d4,f#4] [e4,g4] [f#4,a4] [g4,b4] [a4,c5] [b4,d5] [c5,e5] ~ e5 [e5,g5]!3 e5 [e5,g5] e5 [e5,g5] e5 [e5,g5]@2 ~@5, ~@15 [d5,f#5]@2 ~@15]/2", // C D Em F#m G Am Bm C …
  I: "[g4,b4] ~ g4 [g4,d5] ~ g4 [g4,b4] ~@2 [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,c5] ~ [f#4,a4]", // G G5 G C5 F#m
  J: "[f#4,a4]@2 d4 [a4,d5] ~ d4 [f#4,a4] ~@2 [a4,d5] ~ [d4,a4,d5] ~ [a4,c5] ~ [g4,b4]", // F#m D5 F#m D5 Am G
  K: "~@2 [g4,b4] [g4,d5] ~ g4 [g4,b4] ~@2 [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,c5] ~@2", // G G5 G Cmaj7
  L: "[f#4,a4] ~ d4 [f#4,a4,d5] ~ d4 [f#4,a4] ~@2 [f#4,a4,d5] ~ d4 ~ [e4,g4,c5]@3", // F#m D F#m D C
  M: "[~@7 [c4,e4] [d4,f#4] [e4,g4] [f#4,a4] [g4,b4] [a4,c5] [b4,d5] [c5,e5] [d5,f#5]@2 [e5,g5]!2 g5 e5 [e5,g5] e5 [e5,g5] e5 [e5,g5]@2 ~@5]/2", // C D Em F#m G Am Bm C …
  N: "[f#4,a4]@2 d4 [a4,d5] ~ d4 [f#4,a4]@2 ~ [a4,d5] ~ [d4,a4,d5] ~ [a4,c5] ~ [g4,b4]", // F#m D5 F#m D5 Am G
  O: "[d4,b4]!2 ~ [d4,b4] ~@2 [d4,b4]!2 ~ [d4,b4] ~ [d4,b4] ~ [e4,c5]@3", // G C
  P: "[f#4,d5]!2 ~ [f#4,d5] ~@2 [f#4,d5]!2 ~ [f#4,d5] ~ [f#4,d5] ~ [e4,c5]@2 ~", // D C
  Q: "[f#4,d5]!2 ~ [f#4,d5] ~@2 [f#4,d5] ~@3 [f#4,d5] f#4 d5 [e4,c5]@3", // D C
  R: "[e4,g4,b4] [e4,b4]!2 [e4,g4,b4] ~@2 [e4,g4,b4]!2 ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~@2", // Em E5 Em
  S: "[f#4,a4,d5] [f#4,d5]!2 [f#4,a4,d5] ~@2 [f#4,a4,d5] ~@2 [f#4,a4,d5] ~@2 [f#4,a4,d5] ~ [f#4,d5] ~", // D
  T: "[d4,g4,b4] [d4,b4]!2 [d4,g4,b4] ~@2 [d4,g4,b4] a4 d4 [f#4,a4,d5] ~@2 [f#4,a4,d5]@2 ~@2", // G D
  U: "[[e4,g4,c5] ~@2 [e4,g4,c5] ~@3 c4 [d4,f#4] [e4,g4,c5] [f#4,a4] [g4,b4] [e4,g4,a4,c5] [b4,d5] [c5,e5] ~ e5 [e5,g5]!2 e5 [e5,g5]!2 e5 [e5,g5] e5 [e5,g5]@2 ~ [e4,g4,b4] ~ [e4,b4] ~, ~@15 [d5,f#5]@2 ~@15]/2", // C D C F#m G Am7 Bm C …
  V: "[f#4,a4,d5] ~ [f#4,d5] [f#4,a4,d5] ~@2 [f#4,a4,d5] ~ [f#4,d5] ~ [f#4,a4,d5] [f#4,d5] ~ [f#4,a4,d5] [f#4,d5] ~", // D
  W: "[d4,g4,b4] [d4,b4]!2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@3 [f#4,a4,d5] ~@2 [f#4,a4,d5] ~ [f#4,d5]", // G D
  X: "[e4,g4,c5] [e4,c5] ~ g4 ~@2 [e4,g4,c5] ~ [e4,c5] ~ [e4,g4,c5] [e4,c5] ~@4, ~ [e4,c5] ~@6", // C
  Y: "~@2 [g4,d5]!2 ~@2 [g4,d5]!3 ~ [g4,d5]!2 ~ [e4,c5] ~ [a4,d5]", // G5 C D5
  Z: "[a3,g4,c5,d5]@7 ~@2 b4 ~ [d4,a4] ~ [d4,g4] ~ g4, ~@4 [d4,c5] ~@3", // Am7 D5 G5 D7
})).s("gm_acoustic_guitar_nylon").gain(0.21).pan(0.4)

// chords · brass section · "BRASS"
const brass_section = note(`<
  ~@2 A B@2 C D@2 ~@4 E F ~@6 E F ~ G H I J K H I L M N I O P Q ~ R ~@9 E F ~@6 E F ~ G H I J K H I L M N I O P Q ~ R
  ~@9 E F ~@6 S ~@2 G H I J K H I L M N I O P Q T U M N I O P Q ~ R M N I O P Q ~ R M N I O P Q V W
>`.pickRestart({
  A: "~ [g3,d4,g4,d5,g5]@2 ~", // G5
  B: "[[g4,b4]@6 [g4,b4] [a4,c5] [b4,d5] [a4,c5] ~ [g4,b4] ~ [e4,g4] [f#4,a4]@7 ~@2 [a4,c5]!3 ~ [a4,c5] ~ [a4,c5] [g4,b4]@2]/2", // G Am Bm Am G Em F#m Am …
  C: "~ [f#4,a4] [e4,g4]@4 ~ [g4,b4]!2 [f#4,a4] ~ [f#4,a4] ~ [e4,g4]@2 ~", // F#m Em G F#m Em
  D: "[[g4,c5] [g4,b4] ~ [f#4,a4] ~ [e4,g4]@2 ~ [g4,c5] [g4,b4] ~ [f#4,a4] ~ [e4,g4] [d4,g4]@18]/2", // C5 G F#m Em C5 G F#m Em …
  E: "~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4]", F: "[g4,b4] ~@15",
  G: "~ [g4,b4] ~ [g4,b4] ~ [g4,b4] ~ [g4,b4] ~@8", H: "~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4] ~@8",
  I: "~ [g4,b4] ~ [g4,b4] ~ [g4,b4] ~ [g4,b4] [f#4,a4] ~@7", J: "~ [e4,g4] ~ [e4,g4] ~@12",
  K: "~@3 [g4,b4] ~ [g4,b4] ~ [g4,b4] ~@8", L: "~ [e4,g4] ~ [e4,g4]!3 ~ [e4,g4] ~ [e4,g4] ~ e4 [g4,c5] ~ [c5,e5]@2",
  M: "[b4,d5]", N: "~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4]@3 [f#4,a4] ~@7",
  O: "[e4,g4]!2 ~ [e4,g4] ~ [e4,g4] ~ [e4,g4]!2 ~@7", P: "~ [g4,b4] ~ [g4,b4] ~ [g4,b4]!3 ~@8",
  Q: "~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4]!3 ~@8", R: "~ [e4,g4] ~ [e4,g4] ~ [e4,g4] ~ [e4,g4]!2 ~@7",
  S: "[f#4,a4] ~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4] [g4,b4]", // F#m G
  T: "~@3 [g4,b4] ~ [g4,b4] ~ [g4,b4] [f#4,a4] ~@7", // G F#m
  U: "~ [e4,g4] ~ [e4,g4] g4!2 ~ [e4,g4] ~ [e4,g4] ~ e4 [g4,c5] ~ [c5,e5]@2, ~@2 e4 ~@5", V: "[g4,b4]@8 [f#4,a4]@7 ~",
  W: "[g4,c5] [g4,b4] ~ [f#4,a4] ~ [e4,g4] ~@2 [g4,c5] [g4,b4] ~ [f#4,a4] ~ [e4,g4] ~ [d4,g4]", // C5 G F#m Em C5 G F#m Em …
})).s("gm_brass_section").gain(0.52).pan(0.4)

// chords · electric guitar clean · "CLEAN GT"
const electric_guitar_clean = note(`<
  ~@23 A B C D A B C E F G H I F G H I J K L M J K L M J K L M J K L M J K L M A B C E A B C E F G H I F G H I J K L M J
  K L M J K L M J K L M J K L M A B C D A B C E F G H I F G H I F G H I F G H I F G H I F G H I F G H I F G H N
>`.pickRestart({
  A: "[b3,e4,g4] ~@2 [b3,e4,g4] ~@2 [b3,e4,g4] ~@3 [b3,e4,g4] ~@2 [b3,e4,g4] ~@2", // Em
  B: "[a3,d4,f#4] ~@2 [a3,d4,f#4] ~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@2 [a3,d4,f#4] ~ g4", // D
  C: "[b3,d4,g4] ~@2 [b3,d4,g4] ~@2 [b3,d4,g4] ~@3 [a3,d4,f#4] ~@2 [a3,d4,f#4] ~@2", // G D
  D: "[g3,c4,e4] ~@2 [g3,c4,e4] ~@2 [g3,c4,e4] ~@3 [g3,c4,e4] ~@2 [a3,d4,f#4]@2 ~", // C D
  E: "[g3,c4,e4] ~@2 [g3,c4,e4] ~@2 [g3,c4,e4] ~@2 [a3,d4,f#4] ~@2 [a3,d4,f#4]@3 ~", // C D
  F: "~@2 [b3,d4,g4] ~@2 [b3,d4,g4] ~@4 [b3,d4,g4] ~@2 [b3,d4,g4] ~@2", // G
  G: "~@2 [a3,d4,f#4] ~@2 [a3,d4,f#4] ~@4 [a3,d4,f#4] ~@2 [a3,d4,f#4] ~@2", // D
  H: "~@2 [b3,e4,g4] ~@2 [b3,e4,g4] ~@4 [a3,d4,f#4] ~@2 [a3,d4,f#4] ~@2", // Em D
  I: "~@2 [g3,c4,e4] ~@2 [g3,c4,e4] ~@4 [g3,c4,e4] ~@2 [a3,d4,f#4]@2 ~", // C D
  J: "[b3,d4,g4] g3!2 [b3,d4,g4] g3!2 [b3,d4,g4] ~@3 [b3,d4,g4] g3 ~ [c4,e4]@2 ~", // G C
  K: "[a3,d4,f#4] d3!2 [a3,d4,f#4] d3!2 [a3,d4,f#4] ~@2 d3 [a3,d4,f#4] ~@2 [d3,c4,e4] ~@2", // D C
  L: "[b3,d4,g4] g3!2 [b3,d4,g4] g3!2 [b3,d4,g4] ~ g4 g3 [b3,d4,g4] ~@2 [c4,e4]@2 ~", // G C
  M: "[a3,b3,d4,f#4] d3!2 [a3,d4,f#4] d3!2 [a3,d4,f#4] ~@2 d3 [a3,d4,f#4] ~@2 [c4,e4]@2 ~", // Bm7 D C
  N: "c5 b4 ~ a4 ~ g4 ~@2 c5 b4 ~ a4 ~ g4 ~ [g3,g4], a2@7 ~ d3@7 ~", // G
})).s("gm_electric_guitar_clean").gain(0.13).pan(0.6)

// other · trumpet
const trumpet = note("<~@38 A B C D E ~@31 F G H I J K ~@38 L M N O P@3 Q R S T U V@2 W@2 X>".pickRestart({
  A: "~@9 g4 a4 b4 c5 d5 e5 f#5", B: "g5@8 ~ g5 ~ a5 b5 [b5,c6] g5 ~", C: "~ a5@2 d5@6 a5 ~ b5 c6@2 a5@2",
  D: "b5@8 ~@4 b5 g5 e6@2", E: "d6@11 d6 [b5,c6] [g5,a5] [b4,c5,d5,e5,f5] ~", F: "~@9 d4 g4 b4 d5 b4 c5 d5",
  G: "b4@3 g4 ~@5 d4 g4 b4 d5 b4 c5 d5, a#4 ~@15", H: "[d#5,e5] ~ e5 d5@5 ~ d5 e5 f#5 g5 f#5 g5 a5",
  I: "b5@2 ~ d5 ~ b4@2 b5@3 g5 ~ b5 ~ d6 b5, ~ g5 ~@6",
  J: "c6 b5 a5 g5 f#5 ~ d5 c#5 c5 b4 a4 [g4,b4] c5 [a4,b4] g4 f#4, ~@5 e5@2 ~@9", // G Asus2
  K: "g4@4 [a4,b4,c5] [d5,e5,f5] [g5,a5,b5] [c6,d6] e6 ~@7", L: "~@9 b4 ~ c5 d5 e5 d5 c#5",
  M: "d5@6 ~@3 b4 ~ c5 d5 e5 d5 c#5", N: "e5 ~ e5 d5@4 ~@2 d5 e5 f#5 g5 a5 b5 c6", O: "d6 [b5,c6] [g5,a5] ~@13",
  P: "[~ e5 g5!2 a5 g5 a#5!2 a5 a#5 a5 a#5 a5 g5 e5 g5@3 b5@2 ~@5 g5!2 a5 b5 a5 g5 a5@4 d6@12 [c6,c#6]]/3", // C#maj7
  Q: "b5@7 ~@5 b5 c6 b5 a5", R: "g5 f#5 f5 e5 d5 c5 b4 c5 d5 d#5 e5 g5 a5 ~ a#5!2",
  S: "a5 a#5 ~ a5 a#5!2 a5 a#5 ~@2 a#5!2 a5 a#5 ~@2", T: "~@2 d6!2 c#6 d6 ~ c#6 d6!2 c#6 d6 ~@4",
  U: "~@12 d6@3 [e6,f6]", V: "[g6@31 ~]/2", W: "[~ d5 f#5 g5 a5 ~ c6 c#6 d6@20 ~@4, ~@5 b5@2 ~@25]/2",
  X: "c6 b5 ~ a5 ~ g5 ~@2 c6 b5 ~ a5 ~ g5 ~ g5",
})).s("gm_trumpet").gain(0.48).pan(0.6)

// other · distortion guitar · "DISTORTION"
const distortion_guitar = note("<[a3 ~ a3 a2@2 ~@3] ~@134>").s("gm_distortion_guitar").gain(0.22).pan(0.4)

// drums · kick
const kick = s("bd").struct("<~@3 A@11 B A@7 B A@19 B A@7 B A@7 B A@19 B A@7 B A@7 B A@38 C D>".pickRestart({
  A: "x!4", B: "x!2", C: "x ~ x ~ x ~ x!2", D: "x ~@14 x",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct(`<
  ~@3 A@11 B A@7 B A@7 C A@11 B A@7 B A@7 B A@7 C A@11 B A@7 B A@7 D A@7 C A@30 C E
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@4 x ~@2 x ~ x!2", C: "~@4 x ~@6 x!2 ~@3", D: "~@4 x ~@4 x ~@2 x!3 ~", E: "~ x!2 ~",
})).gain(0.64)

// drums · clap
const clap = s("cp").struct("<~@2 A ~@12 B@8 ~@16 B@4 ~@8 B@8 ~@16 B@4 C@16 ~@40>".pickRestart({
  A: "~@13 x ~@2", B: "~ x ~@2", C: "~ x ~ x",
})).gain(0.64)

// drums · hihat
const hihat = s("hh").struct(`<
  A ~ B C@20 D@4 E D@2 F G H@3 G H@3 C@20 D@4 E D@2 F G H@3 G H@3 C@15 I J C K L E D@3 E D@2 F G H@3 G H@3 G H@3 G H@3 G
  H@3 G H@3 M H@3 G H@2 N
>`.pickRestart({
  A: "~@5 x!2 ~", B: "~@6 x!2", C: "x!5 ~ x!3 ~ x!3 ~ x!2", D: "x!2 ~@2 x ~@3 x ~ x!2 ~@2 x!2",
  E: "~ x ~@2 x ~@3 x ~ x!2 ~@2 x!2", F: "x!2 ~@2 x ~@3 x ~ x!2 ~@4", G: "x ~@2 x!2 ~ x!3 ~@3 x ~@3",
  H: "x ~ x!3 ~ x!3 ~@3 x ~@3", I: "x ~ x ~ x ~ x!3 ~ x!3 ~ x!2", J: "x!5 ~ x!3 ~@2 x!2 ~ x!2",
  K: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2", L: "x!5 ~ x!3 ~ x!6", M: "~ x ~ x!2 ~ x!3 ~@3 x ~@3", N: "x ~@5 x!3 ~@3 x ~@3",
})).gain(0.5)

// drums · open hat
const open_hat = s("oh").struct("<~@23 A@7 B C@8 ~@20 A@7 B C@8 ~@20 A@7 B C@31 D>".pickRestart({
  A: "~ x ~ x ~@4", B: "~ x ~ x ~@3 x", C: "~@5 x ~ x", D: "~@15 x",
})).gain(0.5)

// drums · mid tom
const mid_tom = s("mt").struct("<[~@9 x ~ x ~@4] ~@134>").gain(0.64)

// drums · china
const china = s("cr").struct(`<
  ~ A ~ A ~@3 A ~@7 A ~@7 A ~@7 A ~@11 A ~@7 A ~@7 A ~@7 A ~@11 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7
>`.pickRestart({
  A: "x",
})).gain(0.5)

// drums · tambourine
const tambourine = s("tb").struct("<~ A B C@28 D@8 C@28 D@8 C@28 D@31 E>".pickRestart({
  A: "~@3 x", B: "x", C: "~ x ~ x", D: "~ x ~ x ~ x ~ x", E: "~ x ~ x ~@4",
})).gain(0.5)

// … 30 more lines

More by 883