Strudelify
Desire cover art

1990 · Rattle And Hum

Desire

U2

KeyE♭ majorTempo104 bpm
0:00/0:00
// Desire — U2
// 104 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 78 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(104/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 · overdriven guitar · "The Edge"
const overdriven_guitar = note(`<
  A@2 B C D E F G H I J K L M N O P Q R S T S U V W X Y Z AA AB J AC L M N O AD V AD AE ~@3 AF AG AH AI AJ AK AL AM AN
  AO AP AQ J AC L M N O P Q R S T S L M N O P Q R S T AR@2
>`.pickRestart({
  A: "[[g3,bb3,eb4]!3 [bb3,eb4] [g3,bb3,eb4] eb4 [g3,bb3,eb4] ~ eb4@24, [bb2,eb3]@5 bb2@26 ~, ~@5 eb3@2 [eb3,g3,bb3]@25]/2", // Eb Eb5 Eb Eb5 Eb
  B: "[ab3,db4,f4] ~@2 [eb3,ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@3 [g3,bb3,eb4] [ab3,c4,eb4] ~ [eb3,g3,bb3,eb4]@2 [ab3,c4] ~", // Db Ab Eb Ab Eb Ab
  C: "[db3,ab3,db4,f4] ~@2 [eb3,ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@3 [bb3,eb4] [ab3,c4,eb4] ~ [eb3,g3,bb3,eb4]@2 ab3 ~", // Db Ab Eb Eb5 Ab Eb
  D: "[ab3,db4,f4] ~@2 [eb3,ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@3 [g3,bb3,eb4] [eb3,ab3,c4,eb4] ~ [bb2,eb3,g3,bb3,eb4]@2 [ab3,c4] ~", // Db Ab Eb Ab Eb Ab
  E: "[ab3,db4,f4]@2 ~ [eb3,ab3,c4,eb4] ~@2 [g3,bb3,eb4]@3 [g3,bb3,eb4] [eb3,ab3,c4,eb4]@2 [bb2,eb3,g3,bb3,eb4]@2 ab3 ~", // Db Ab Eb Ab Eb
  F: "[db3,ab3,f4]@2 ~ [ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@3 [g3,bb3,eb4] [eb3,ab3,c4,eb4] ~ [bb2,g3,bb3,eb4]@2 [eb3,ab3,c4] ~", // Db Ab Eb Ab Eb Ab
  G: "[db3,ab3,db4,f4]@2 ~ [eb3,ab3,c4,eb4] ~@2 [g3,bb3,eb4]@3 [bb3,eb4] [eb3,ab3,c4,eb4] ~ [eb3,g3,bb3,eb4]@2 [eb3,ab3,c4] ~", // Db Ab Eb Eb5 Ab Eb Ab
  H: "[db3,ab3,db4,f4]@2 ~ [eb3,ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@3 [bb3,eb4] [eb3,ab3,c4,eb4] ~ [eb3,g3,bb3,eb4]@2 [ab3,c4] ~", // Db Ab Eb Eb5 Ab Eb Ab
  I: "[db3,ab3,db4,f4]@2 ~ [eb3,ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@3 eb4 [eb3,ab3,c4,eb4] ~ [eb3,g3,bb3,eb4]@2 [eb3,ab3,c4] ~", // Db Ab Eb Ab Eb Ab
  J: "[ab3,db4,f4]@2 [db4,f4] [ab3,db4,f4]@2 [db4,f4] [db4,f4]@2 [db4,f4] [db4,f4]@2 [ab3,db4,f4]!2 [db4,f4] [ab3,db4,f4] eb4, ~@6 ab3@5 ~@5", // Db
  K: "[c4,eb4]@3 [c4,eb4]@2 [ab3,eb4] [eb3,ab3,bb3,eb4]@2 [eb3,ab3,c4,eb4]@2 [ab3,bb3,eb4]@2 [ab3,c4,eb4]@2 [eb3,ab3,bb3,eb4] ~, [eb3,g3]@3 ~@5", // Cm Ab5 Ebsus4 Ab Absus2 Ab Ebsus4 Eb
  L: "[db3,ab3,db4,f4] ~@2 [eb3,ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@3 [bb3,eb4] [eb3,ab3,c4,eb4] ~ [eb3,g3,bb3,eb4]@2 [ab3,c4,eb4] ~", // Db Ab Eb Eb5 Ab Eb Ab
  M: "[db3,ab3,db4,f4]@2 ~ [eb3,ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@3 [g3,bb3,eb4] [eb3,ab3,c4,eb4]@2 [eb3,g3,bb3,eb4]@2 [ab3,c4,eb4] ~", // Db Ab Eb Ab Eb Ab
  N: "[db3,ab3,db4,f4]@2 ~ [eb3,ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@3 [g3,bb3,eb4] [eb3,ab3,c4,eb4] ~ [eb3,g3,bb3,eb4]@2 [ab3,c4] ~", // Db Ab Eb Ab Eb Ab
  O: "[ab3,db4,f4]@2 ~ [ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@3 [bb3,eb4] [eb3,ab3,c4,eb4] ~ [eb3,g3,bb3,eb4]@2 [eb3,ab3,c4] ~", // Db Ab Eb Eb5 Ab Eb Ab
  P: "[db3,ab3,db4,f4]@2 ~ [eb3,ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@3 [bb3,eb4] [eb3,ab3,c4,eb4] ~ [eb3,g3,bb3,eb4]@2 [ab3,c4,eb4] ~", // Db Ab Eb Eb5 Ab Eb Ab
  Q: "[ab3,db4,f4]@2 ~ [eb3,ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@3 [g3,bb3,eb4] [ab3,c4,eb4] ~ [bb2,eb3,g3,bb3,eb4]@2 [eb3,ab3,c4] ~", // Db Ab Eb Ab Eb Ab
  R: "[db3,ab3,db4,f4]@2 ~ [eb3,ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@3 [bb3,eb4] [eb3,ab3,c4,eb4] ~ [eb3,g3,bb3,eb4]@2 [eb3,ab3,c4] ~", // Db Ab Eb Eb5 Ab Eb Ab
  S: "[ab3,db4,f4]@2 ~ [ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@3 [bb3,eb4] [ab3,c4,eb4] ~ [eb3,g3,bb3,eb4]@2 [ab3,c4,eb4] ~", // Db Ab Eb Eb5 Ab Eb Ab
  T: "[ab3,db4,f4]@2 ~ [ab3,c4] ~@2 [eb3,g3,bb3,eb4]@3 [bb3,eb4] [ab3,c4,eb4] ~ [eb3,g3,bb3,eb4]@2 [ab3,c4] ~", // Db Ab Eb Eb5 Ab Eb Ab
  U: "[db4,f4]@2 [db4,f4] [db4,f4]@2 [db4,f4] [db4,f4]@3 [db4,f4]@2 [db4,f4]!3 [ab3,f4] [bb3,eb4], db3, ab3@6 ab3@5 ~@5", // Db Eb5
  V: "[eb3,ab3,c4,eb4]@3 [ab3,c4,eb4]@2 [c4,eb4] [ab3,bb3,eb4]@2 c4!2 [ab3,bb3,eb4]@2 [ab3,c4,eb4]@2 [ab3,bb3,eb4]@2, ~@3 eb3@5 eb3@6 ~@2, ~@4 [ab3,eb4] ~@3", // Ab Cm Absus2 Ab Absus2 Ab5
  W: "[ab3,db4,f4] ~@2 [eb3,ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@3 [g3,bb3,eb4] [eb3,ab3,c4,eb4] ~ [eb3,g3,bb3,eb4]@2 [ab3,c4] ~", // Db Ab Eb Ab Eb Ab
  X: "[db3,ab3,db4,f4] ~@2 [ab3,c4,eb4] ~@2 [g3,bb3,eb4]@3 [bb3,eb4] [eb3,ab3,c4,eb4] ~ [eb3,g3,bb3,eb4]@2 [eb3,ab3,c4] ~", // Db Ab Eb Eb5 Ab Eb Ab
  Y: "[db3,ab3,db4,f4]@2 ~ [ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@3 [bb3,eb4] [eb3,ab3,c4,eb4] ~ [eb3,g3,bb3,eb4]@2 [eb3,ab3,c4] ~", // Db Ab Eb Eb5 Ab Eb Ab
  Z: "[db3,ab3,db4,f4] ~@2 [eb3,ab3,c4,eb4] ~@2 [eb3,g3,bb3,eb4]@2 ~@8", // Db Ab Eb
  AA: "d4@2 eb4 d4 eb4!2 d4 eb4!2 d4 eb4!2 db4@2 bb3 ~", AB: "d4@2 eb4 d4 eb4!2 d4 eb4!2 d4 eb4!2 db4 c4 bb3 ~",
  AC: "[c4,eb4]@3 [c4,eb4]@2 [ab3,eb4] [eb3,ab3,bb3,eb4]@2 [eb3,ab3,c4,eb4]@2 [ab3,bb3,eb4]@2 [ab3,c4,eb4]@2 [eb3,ab3,bb3,eb4] ~, [eb3,ab3]@3 ~@5", // Cm Ab5 Ebsus4 Ab Absus2 Ab Ebsus4 Ab5
  AD: "[db4,f4]@2 [db4,f4] [db4,f4]@2 [db4,f4] [db4,f4]@3 [db4,f4]@2 [db4,f4]!3 [ab3,f4] [bb3,eb4], ab3@6 ab3@5 ~@5", // Db Eb5
  AE: "[eb3,g3,eb4]", AF: "~@9 [eb3,g3,bb3] [eb3,g3,eb4] ~ [eb3,g3,bb3,eb4] eb4 [g3,bb3,eb4] [eb3,g3,bb3,eb4]",
  AG: "~@2 [g3,eb4] ~ [eb3,g3,bb3,eb4] eb4 [g3,bb3] eb4 [eb3,g3,bb3] ~ bb3 [eb3,bb3,eb4] [g3,bb3] [eb3,bb3,eb4] [eb3,g3,bb3,eb4] ~", // Cm Eb Gm Eb Eb5 Gm Eb5 Eb
  AH: "[eb3,g3] ~ [g3,bb3,eb4] [bb3,eb4] ~ g3 [g3,bb3,eb4] ~ [eb3,g3,bb3,eb4] [bb3,eb4] ~@2 [eb3,bb3,eb4] ~@3", // Eb Eb5 Eb Eb5
  AI: "[g3,bb3,eb4] ~ [g3,bb3,eb4] [bb3,eb4] ~ [g3,bb3,eb4] [eb3,bb3,eb4] ~@2 [g3,bb3,eb4] [eb3,g3,bb3,eb4] ~ [eb3,g3,bb3,eb4]!2 [bb3,eb4]!2", // Eb Eb5 Eb Eb5 Eb Eb5
  AJ: "[eb3,g3,bb3,eb4] ~ [eb3,g3,bb3,eb4]!2 ~@2 [g3,bb3,eb4] ~@2 [g3,bb3,eb4]!2 ~ [g3,bb3,eb4] [eb3,g3,bb3,eb4] [g3,bb3,eb4]!2", // Eb
  AK: "bb3 ~ [g3,bb3,eb4] [bb3,eb4] ~@2 [g3,bb3,eb4] ~@2 [eb3,g3] [g3,bb3,eb4] ~ [eb3,g3,bb3,eb4] [bb3,eb4] [g3,bb3] [bb3,eb4]", // Eb Eb5 Eb Eb5 Gm Eb5
  AL: "[eb3,g3,bb3] ~ [eb3,g3,bb3,eb4] [bb3,eb4] ~ bb3 [eb3,bb3,eb4] ~@2 [bb3,eb4] [g3,bb3,eb4] ~ [g3,bb3,eb4] [eb3,g3,bb3,eb4] [bb3,eb4] eb4", // Eb Eb5 Eb Eb5
  AM: "[eb3,g3,bb3,eb4] ~ [bb3,eb4]!2 [eb3,bb3,eb4] [bb3,eb4] ~ [bb3,eb4] [g3,bb3,eb4]!2 [eb3,bb3] [bb3,eb4] [eb3,g3,bb3,eb4] ~ [eb3,g3,bb3,eb4] ~", // Eb Eb5 Eb Eb5 Eb
  AN: "[eb3,g3,bb3,eb4] ~ [g3,bb3,eb4] [eb3,bb3,eb4] ~ [g3,bb3,eb4] [bb3,eb4] ~ [eb3,g3,bb3,eb4] [bb3,eb4] bb3 [bb3,eb4] [eb3,bb3,eb4] ~ [g3,bb3,eb4] [bb3,eb4]", // Eb Eb5 Eb Eb5 Eb Eb5 Eb Eb5
  AO: "[g3,bb3,eb4] [bb3,eb4] [g3,bb3,eb4] [bb3,eb4] ~ [eb3,g3] [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~ [g3,bb3,eb4] [bb3,eb4] [g3,bb3,eb4] eb4", // Eb Eb5 Eb Eb5 Eb Eb5 Eb
  AP: "[db3,g3,bb3,eb4] [db3,eb4] [eb3,g3,bb3] eb4 [g3,bb3,eb4] [bb3,eb4] [ab2,g3,bb3,eb4] [bb3,eb4] [db3,g3,bb3,eb4] [db3,bb3,eb4] [g3,bb3,eb4] [bb3,eb4] [eb3,g3,bb3,eb4] [bb3,eb4] [g3,bb3,eb4] [bb3,eb4]", // Eb7 Dbsus2 Eb Eb5 Eb Eb5 Eb7 Eb …
  AQ: "[db3,eb3,g3,bb3,eb4] [bb3,eb4] eb4 [bb3,eb4] [g3,bb3,eb4] [bb3,eb4] bb3 [bb3,eb4] [g3,bb3,eb4] [bb3,eb4]!2 [g3,bb3,eb4] [db3,bb3,eb4] [db3,eb3,g3,bb3,eb4] [db3,bb3,eb4]!2", // Eb7 Eb5 Eb Eb5 Eb Eb5 Eb Eb7
  AR: "[[ab3,db4,f4]@2 ~ [ab3,c4,eb4] ~@2 [eb3,g3,eb4]@22 ~@4, ~@3 bb3@10 ~@3]/2", // Db Ab Eb
})).s("gm_overdriven_guitar").gain(0.27).pan(0.2)

// chords · overdriven guitar · "The Edge" · soft notes
const overdriven_guitar_soft = note(`<
  ~@2 A B C D E ~ F ~ G H ~@2 I J ~@3 K I L M N F O ~@4 G H ~@2 I J P N M Q ~@3 R S T U V W X Y Z AA AB AC G H ~@2 I J
  ~@3 K I L ~@2 I J ~@3 K I K ~
>`.pickRestart({
  A: "~@10 eb3 ~@5", B: "~@9 eb3!2 ~@3 [c3,c4] ~", C: "db3 ~@15", D: "~@6 eb3@3 ~@7", E: "db4 ~@7", F: "~@14 eb3 ~",
  G: "~@14 db3 bb3", H: "~@2 eb4 ~@12 gb3", I: "~@14 eb4 ~", J: "~@3 eb3 ~@12", K: "db3@2 ~ eb3 ~@12",
  L: "db3@2 ~ eb3 ~@6 eb3 ~@5", M: "~@11 ab3@3 ~@2", N: "~@15 gb3, ~@7 eb3", O: "~@3 eb3 ~@2 eb3@3 ~@3 bb2@2 ~@2",
  P: "~@11 ab3 ~@4", Q: "bb3", R: "~@9 eb4 ~@6", S: "~@6 eb4 ~ eb4!2 [g3,eb4] g3 ~@4",
  T: "bb3 ~@11 g3 ~ [eb3,g3,bb3] ~", U: "~@3 eb3 ~@2 g3 ~@8 g3", V: "~@6 eb3 ~@2 eb3 ~@5 eb3",
  W: "[eb3,g3,eb4] ~@2 eb3 ~ g3 ~@10", X: "~@3 g3 ~ [eb3,g3] ~@3 g3 ~@6",
  Y: "~@2 g3!2 ~ g3 [eb3,g3,bb3] g3 ~ eb3 ~ eb3 ~@4", Z: "~@5 eb3 [eb3,g3] ~@2 eb3 g3!2 ~@2 eb3 g3",
  AA: "eb3 g3 ~@8 eb3 ~ eb3 [eb3,g3] ~@2", AB: "eb3 ~@2 bb3 eb3 ~@5 eb3 g3 ~@2 eb3 [ab2,g3]",
  AC: "~ db3 bb3 g3 ~ g3 [eb3,g3,eb4] g3 ~ [eb3,g3]!2 ~ g3 ~@3", // Eb
})).s("gm_overdriven_guitar").gain(0.16).pan(0.2)

// bass · electric bass finger · "Adam Clayton"
const bass = note("<~@2 A@5 B A@2 C D A@10 C D A@3 E ~@2 F G B H A I J K J L@2 A@14 C D A@17 M@2 N@2>".pickRestart({
  A: "db2@3 ab1@3 eb1@4 ab1@2 eb1@2 ab1@2", B: "db2@3 ab1@3 eb1@4 ab1@2 eb1@2 ab1 ~",
  C: "db2@3 db2@3 db2@4 db2@2 db2@3 ~", D: "ab1@3 ab1@3 ab1@4 ab1@2 ab1@3 ~", E: "db2@3 ab1@3 eb1@2 ~@8",
  F: "db2@3 db2@3 db2@4 db2@2 db2@2 db2@2", G: "ab1@3 ab1@3 ab1@4 ab1@2 ab1@2 ab1@2",
  H: "db2@3 ab1@2 eb1@4 ~ ab1@2 eb1@3 ~", I: "db2@3 ab1@3 eb1@4 ab1@2 eb1@2 eb1@2",
  J: "db2@3 db2 db2@2 db2@4 db2@2 db2@2 db2@2", K: "ab1@3 ab1 ab1@2 ab1@4 ab1@2 ab1@2 ab1@2",
  L: "[eb2@3 bb1 eb2@11 ~]/2", M: "[db2@3 ab1@2 eb1@26 ~]/2", N: "[db2@3 ab1@3 eb1@22 ~@4]/2",
})).s("gm_electric_bass_finger").gain(0.44)

// chords · acoustic guitar steel · "Bono"
const acoustic_guitar_steel = note(`<
  A@2 B C D E F G H I J K B C D E F G H I L M N O P Q R S ~@2 T U V W X Y Z AA AB AC@2 ~@14 AD AE AF AG AH@2 AI AJ@2 AK
  AL AM AN AO AP AQ AR AS AT AU AV AW@2
>`.pickRestart({
  A: "[[eb3,g3,bb3,eb4] eb4 [bb2,g3,bb3,eb4] [g3,bb3,eb4] [bb2,eb3,g3,bb3,eb4] [bb3,eb4] [bb2,g3,bb3,eb4] [bb2,g3,bb3,eb4]@25, ~@3 eb3@13]/2", // Eb Eb5 Eb
  B: "[ab3,db4,f4] [db4,f4] [bb3,eb4] [eb3,ab3,c4,eb4] ~ [g3,bb3,eb4] [bb2,eb3,g3,bb3,eb4]@2 eb4 [g3,bb3,eb4] [ab2,eb3,ab3,c4,eb4] [bb3,eb4] ~ eb4 [eb3,ab3,c4,eb4] eb4, ~@6 [eb3,g3,bb3,eb4] ~", // Db Eb5 Ab Eb Ab Eb5 Ab Eb
  C: "[db4,f4]!2 ~ [eb3,ab3,c4,eb4] [gb3,eb4] [eb3,g3,bb3,eb4] [bb3,eb4]@2 [bb3,eb4]!2 [eb3,ab3,c4,eb4] eb4 ~ eb4 [ab3,c4,eb4] [bb3,eb4], [db3,ab3]@3 ~@2 bb2@4 ~@7, ~@3 [eb3,g3]@2 ~ [eb3,g3,bb3,eb4] ~", // Db Ab Ebm Eb Eb5 Ab Eb5 Db5 …
  D: "[db3,ab3,db4,f4] [db4,f4] ~ [eb3,ab3,eb4] [c4,eb4] [g3,bb3,eb4] [g3,bb3,eb4]@2 [bb3,eb4] [g3,bb3,eb4] [eb3,ab3,c4,eb4] ~@2 [bb3,eb4] [eb3,ab3,c4,eb4] [gb3,bb3,eb4], ~@5 [bb2,eb3]@4 ~@3 [eb3,g3,bb3,eb4]@2 ~@2", // Db Ab5 Cm Eb Eb5 Eb Ab Eb5 …
  E: "[db4,f4]!2 ~ [eb3,ab3,c4,eb4] [c4,eb4] [eb3,g3,bb3,eb4] eb4!2 [bb3,eb4]!2 [eb3,ab3,c4,eb4] eb4 ~ eb4 [eb3,ab3,c4,eb4] eb4, [db3,ab3]@3 ~@3 [eb3,g3,bb3]@3 ~@3 [eb3,g3,bb3,eb4]@2 ~@2", // Db Ab Cm Eb Eb5 Ab Db5 Eb
  F: "[db4,f4]!2 ~ [ab3,c4,eb4] [c4,eb4] [eb3,g3,bb3,eb4] [eb3,g3,bb3,eb4]@3 [bb3,eb4] [ab2,eb3,ab3,c4,eb4] ~@2 eb4 [ab3,c4,eb4] ~, [db3,ab3]@3 ~@9 [eb3,g3,bb3,eb4]@2 ~@2", // Db Ab Cm Eb Eb5 Ab Db5 Eb
  G: "[db4,f4]!2 ~ [ab3,c4,eb4]!2 [g3,bb3,eb4] [g3,bb3,eb4]@2 [bb3,eb4]!2 [eb3,ab3,c4,eb4] ~ [bb2,eb3,g3,bb3,eb4] [bb3,eb4] [ab3,c4,eb4] ~, [db3,ab3]@3 ~@2 eb3@4 ~@7", // Db Ab Eb Eb5 Ab Eb Eb5 Ab …
  H: "[db4,f4]!2 ~ [ab3,c4,eb4] [c4,eb4] [bb3,eb4] [bb3,eb4]@2 [bb3,eb4]!2 [eb3,ab3,c4,eb4] eb4 ~ eb4 [eb3,ab3,c4,eb4]@2, [db3,ab3]@3 ~@2 eb3@4 ~@3 [bb2,eb3,g3,bb3,eb4]@2 ~@2, ~@3 g3@2 ~@3", // Db Ab Cm Eb5 Ab Db5 Eb
  I: "[db4,f4]!2 [ab3,db4,f4] [ab2,eb3,ab3,c4,eb4] ~ [eb3,g3,bb3,eb4] [bb3,eb4]@2 [bb3,eb4]!2 [c4,eb4] [eb3,ab3,eb4] [eb3,g3,bb3,eb4] eb4 [eb3,ab3,c4,eb4] [gb3,bb3,eb4], [db3,ab3]@3 ~@2 bb2@4 ~@7, ~@3 [eb3,g3]@2 ~@3", // Db Ab Eb Eb5 Cm Ab5 Eb Ab …
  J: "[db4,f4]!2 f4 f4@2 [ab3,db4,f4] [db4,f4]@3 [db4,f4]!2 [ab3,db4,f4] [db4,f4]!3 ~, [db3,ab3] ~@3, ~@2 db4@3 ~ ab3@5 ~ ab3@3 ~", // Db Db5
  K: "[ab3,c4,eb4] [c4,eb4] [ab3,c4,eb4] [eb3,ab3,c4,eb4]@2 [ab3,c4,eb4] [c4,eb4]@2 [c4,eb4]!4 ~ eb4 [ab3,c4,eb4] [bb3,eb4], ~@5 eb3@6 ~ [c4,eb4]@2 ~@2, ~@6 ab3@5 ab3@3 ~@2", // Ab Cm Ab Cm Ab Eb5 Cm
  L: "[db4,f4]!2 ~ [eb3,ab3,c4,eb4] [c4,eb4] [eb3,g3,bb3,eb4] [eb3,g3,bb3,eb4]@2 [bb3,eb4]!2 [eb3,ab3,c4,eb4] eb4 ~ eb4 [ab3,c4,eb4] eb4, [db3,ab3]@3 ~@2 bb2@4 ~@3 [eb3,g3,bb3,eb4]@2 ~@2", // Db Ab Cm Eb Eb5 Ab Db5 Eb
  M: "[ab3,db4,f4] [db4,f4] eb4 [eb3,ab3,c4,eb4] [c4,eb4] [bb2,eb3,g3,bb3,eb4] [bb2,eb3,g3,bb3]@2 [g3,bb3,eb4]!2 [eb3,ab3,c4,eb4] ~ [bb2,eb3,g3,bb3,eb4]@2 [eb3,ab3,c4,eb4] eb4, db3@3 ~@3 eb4 ~@9", // Db Ab Cm Eb Ab Eb Ab
  N: "f4!3 [ab3,db4,f4]@2 f4 [ab3,db4,f4]@3 [db4,f4] [ab3,db4,f4] [db4,f4]!3 [ab3,db4,f4] [bb3,eb4], [db3,ab3,db4]@3 ~@9 db3@4, ~@6 ab3 ~", // Db Eb5 Db5
  O: "[ab3,c4,eb4]@2 [c4,eb4] [ab3,c4]@2 [c4,eb4] [ab3,c4,eb4]@3 [ab3,c4,eb4]!2 [c4,eb4] [ab3,c4,eb4] [c4,eb4] [ab3,c4,eb4] [bb3,eb4], ~@3 eb4 ~@2 eb3@9 ~", // Ab Cm Ab Cm Ab Cm Ab Cm …
  P: "[ab3,db4,f4] [db4,f4] db4 [eb3,ab3,c4,eb4] eb4 [g3,bb3,eb4] [eb3,g3,bb3,eb4]@2 [g3,bb3,eb4]!2 [eb3,ab3,c4,eb4] ~@2 eb4 [eb3,ab3,c4,eb4] [bb3,eb4], ~@5 bb2@4 ~@3 [bb2,eb3,g3,bb3,eb4]@2 ~@2", // Db Ab Eb Ab Eb5 Eb
  Q: "[ab3,db4,f4]@2 [ab3,eb4] [eb3,ab3,c4,eb4] eb4 [bb2,eb3,g3,bb3,eb4] [bb2,eb3,g3,bb3,eb4]@3 [g3,bb3,eb4] [ab3,c4,eb4] eb4 ~ eb4 [ab3,c4,eb4] [bb3,eb4], ~@6 [eb3,g3,bb3,eb4] ~", // Db Ab5 Ab Eb Ab Eb5 Eb
  R: "[db4,f4]!2 [ab3,db4,f4] [eb3,ab3,c4,eb4] eb4 [eb3,g3,bb3,eb4] [eb3,g3,bb3,eb4]@2 [bb3,eb4] [ab3,bb3,eb4] [eb3,ab3,c4,eb4] eb4 [eb3,g3,bb3,eb4] eb4 [ab3,c4,eb4] eb4, [db3,ab3]@3 ~@13", // Db Ab Eb Eb5 Absus2 Ab Eb Ab …
  S: "[db4,f4]!2 ~ [ab3,c4,eb4] eb4 [eb3,g3,bb3,eb4] [eb3,g3,bb3,eb4]@2 ~@8, [db3,ab3]@3 ~@13", // Db Ab Eb Db5
  T: "[ab3,db4,f4]@3 [ab3,db4,f4]@2 [db4,f4] [ab3,db4,f4]@3 [db4,f4] [ab3,db4,f4]!3 [db4,f4] [ab3,db4,f4] eb4, db3@5 db3@3", // Db
  U: "[ab3,c4,eb4]@2 c4 [ab3,c4,eb4]@2 [c4,eb4] [ab3,c4,eb4]@3 [c4,eb4] ~ eb4 [ab3,c4,eb4]!3 ~, ~@3 eb3@6 ab3@3 ~@4, ~@5 [c4,eb4] ~@2", // Ab Cm Ab Cm Ab Cm
  V: "[db4,f4]!2 ~ [eb3,ab3,c4,eb4] eb4 [g3,bb3,eb4] [eb3,g3,bb3,eb4]@3 [bb3,eb4] [eb3,ab3,c4,eb4] ~ [eb3,g3,bb3,eb4]@2 [eb3,ab3,c4,eb4] eb4, [db3,ab3]@3 ~@13", // Db Ab Eb Eb5 Ab Eb Ab Db5
  W: "~ f4 eb4 [eb3,ab3,c4,eb4] [c4,eb4] [g3,bb3,eb4] eb4@2 eb4 [bb3,eb4] [eb3,ab3,c4,eb4] ~@2 eb4 [eb3,ab3,c4,eb4] gb3, [db3,ab3,db4,f4] ~@2 [bb2,eb3,g3,bb3]@2 ~ [eb3,g3,bb3,eb4] ~", // Ab Cm Eb Eb5 Ab Db Eb
  X: "[db4,f4]!2 [ab3,db4,f4] [ab3,c4,eb4] ~ [g3,bb3,eb4] [bb2,eb3,g3,bb3,eb4]@3 [g3,bb3,eb4] [eb3,ab3,c4,eb4] ~@2 eb4 [eb3,ab3,c4,eb4] [gb3,bb3], [db3,ab3]@3 ~@9 [eb3,g3,bb3,eb4]@2 ~@2", // Db Ab Eb Ab Gb Db5 Eb
  Y: "[ab3,db4,f4]!3 [eb3,ab3,c4,eb4] eb4 [g3,bb3,eb4] [bb2,eb3,g3,bb3,eb4]@3 [bb3,eb4] [eb3,ab3,c4,eb4] [g3,bb3,eb4] [bb2,eb3,g3,bb3,eb4] g3 [eb3,ab3,c4,eb4] ~, db3@3 ~@13", // Db Ab Eb Eb5 Ab Eb Ab
  Z: "[db3,ab3,db4,f4]@2 db4 [db3,ab3,db4,f4]@2 f4 [db3,ab3,db4,f4]@3 [ab3,db4,f4] [db4,f4]!2 [ab3,db4,f4]!3 eb4, ~@5 db3@3, ~@5 ab3 ~@2", // Db
  AA: "[ab3,eb4]!2 [ab3,c4] [ab3,c4,eb4]@2 eb4 [ab3,c4,eb4]@2 eb4 [c4,eb4] [c4,eb4]@2 eb4!2 [c4,eb4] ~, eb3@6 eb3@6 [eb3,ab3,c4]@3 ~, c4@2 ~@7 ab3@3 ~@4", // Ab5 Ab Cm Ab
  AB: "[db4,f4] [db4,f4]@2 f4!2 [db4,f4] [db3,ab3,db4,f4]@3 [db4,f4] [db3,ab3,db4,f4]@2 f4!2 [ab3,db4,f4] ~, db3@3 ~@3 db3@2, ab3@3 [ab3,db4]@3 ~@6 [ab3,db4]@2 ~@2", // Db Db5
  AC: "[eb3,g3,bb3,eb4]/2", // Eb
  AD: "[db4,f4]@2 [db4,f4] [db4,f4]@2 f4 [db4,f4]@3 [db4,f4]!3 ~ f4 [db3,ab3,db4,f4] eb4, db3@7 ~, ab3@3 ab3@3 [ab3,db4,f4] ~", // Db
  AE: "[eb3,c4,eb4]@3 [eb3,c4,eb4]@2 [ab3,c4,eb4] [eb3,ab3,c4,eb4]@2 [ab3,c4,eb4]!3 [c4,eb4]!3 [ab3,c4,eb4] [bb3,eb4], ab3@5 ~@4 eb3@6 ~, ~@11 ab3@3 ~@2", // Cm Ab Cm Ab Eb5
  AF: "[ab3,db4,f4] [db4,f4] ~ [ab3,c4,eb4] ~ [g3,bb3,eb4] [g3,bb3,eb4]@2 bb3 [g3,bb3,eb4] [eb3,ab3,c4,eb4] [c4,eb4] [bb2,eb3,g3,bb3,eb4] eb4 [eb3,ab3,c4,eb4] [gb3,bb3,eb4], ~@5 eb3@4 ~@7", // Db Ab Eb Ab Cm Eb Ab Ebm
  AG: "f4!3 [eb3,ab3,c4,eb4] [c4,eb4] [bb3,eb4]!3 [g3,bb3,eb4]!2 [eb3,ab3,c4,eb4] eb4 [bb2,eb3,g3,bb3,eb4] eb4 [ab3,c4,eb4] [gb3,bb3,eb4], [db3,ab3,db4]@3 ~@2 [bb2,eb3,g3]@4 ~@7", // Ab Cm Eb5 Eb Ab Eb Ab Ebm …
  AH: "[f4!2 ~ [eb3,ab3,c4,eb4] eb4 [g3,bb3,eb4] [bb2,eb3,g3,bb3,eb4]@2 [bb3,eb4] [g3,bb3,eb4] [eb3,ab3,c4,eb4] [ab3,eb4] ~ eb4 [eb3,ab3,c4,eb4] eb4 ~ f4 ~ [eb3,ab3,c4,eb4] [c4,eb4] [bb2,eb3,g3,bb3,eb4] [bb2,eb3,g3,bb3,eb4]@2 [g3,bb3,eb4] [bb3,eb4] [eb3,ab3,c4,eb4] eb4 [eb3,g3,bb3,eb4] eb4 [ab3,c4,eb4] [gb3,bb3,eb4], [db3,ab3,db4]@3 ~@9 [eb3,g3,bb3,eb4]@2 ab2@6 ~@12, ~@8 [ab3,db4,f4] ~@7]/2", // Ab Eb Eb5 Eb Ab Ab5 Ab Cm …
  AI: "f4!2 ~ [ab3,c4,eb4] ~ [eb3,g3,bb3,eb4] [eb3,g3,bb3,eb4]@2 [g3,bb3,eb4]!2 [eb3,ab3,c4,eb4] eb4 [g3,eb4] eb4 [ab3,c4,eb4] ~, [db3,ab3,db4]@3 ~@9 [bb2,bb3]@3 ~", // Ab Eb Ab Cm Ab Db5 Bb
  AJ: "[[ab3,db4,f4] [db4,f4] [bb3,eb4] [eb3,ab3,c4] eb4 [eb3,g3,bb3,eb4] eb4!2 [bb3,eb4]!2 [eb3,ab3,c4,eb4] ~ [bb2,eb3,g3,bb3,eb4] [bb3,eb4] [eb3,ab3,c4,eb4] [gb3,bb3,eb4] f4!2 [ab3,db4,f4] [eb3,ab3,c4,eb4] eb4 [eb3,g3,bb3,eb4] eb4!2 [g3,bb3,eb4] [gb3,bb3,eb4] [eb3,ab3,c4,eb4] eb4 ~ [bb3,eb4] [eb3,ab3,c4,eb4] ~, ~@6 [eb3,g3]@4 ~@4 ab2@5 ~@13, ~@6 bb3@2 ~@8 [db3,ab3,db4]@3 ~@3 [eb3,g3,bb3]@3 ~@3 [eb3,g3,bb3,eb4]@2 ~@2]/2", // Db Eb5 Ab Eb Eb5 Ab Eb Eb5 …
  AK: "db4!2 [ab3,db4,f4] [ab3,c4,eb4] ~ [eb3,g3,bb3,eb4] [eb3,g3,bb3,eb4]@2 [bb3,eb4] [gb3,bb3,eb4] [ab3,c4,eb4] ~@2 eb4 [ab3,c4,eb4] eb4, [db3,ab3,f4]@3 ~@2 bb2@4 ~@3 [eb3,g3,bb3,eb4]@2 ~@2", // Db Ab Eb Eb5 Ebm Ab Db Eb
  AL: "[db4,f4]!2 ~@2 [c4,eb4] [bb2,eb3,g3,bb3,eb4] [eb3,g3,bb3,eb4]@2 [bb3,eb4] [g3,bb3,eb4] [eb3,ab3,c4,eb4] [c4,eb4] ~ eb4 [ab3,c4,eb4] ~, [db3,ab3]@3 [ab3,c4,eb4]@2 ~@7 [g3,bb3,eb4]@2 ~@2", // Db Cm Eb Eb5 Eb Ab Cm Ab …
  AM: "[db4,f4]!3 [ab3,c4,eb4] [c4,eb4] [eb3,g3,bb3,eb4] eb4@2 eb4 [g3,bb3,eb4] [ab2,eb3,ab3,c4,eb4] c4 [bb2,eb3,g3,bb3,eb4] [g3,bb3,eb4] [eb3,ab3,c4,eb4] gb3, [db3,ab3]@3 ~@2 bb2@4 ~@7, ~@3 [eb3,g3,bb3]@2 ~@3", // Db Ab Cm Eb Ab Eb Ab Db5 …
  AN: "[ab2,db3,ab3,db4,f4]@2 ~ [eb3,ab3,c4,eb4] eb4 [eb3,g3,bb3,eb4] eb4!2 [g3,bb3,eb4]!2 [eb3,ab3,c4,eb4] eb4 ~ eb4 [ab3,c4,eb4] [bb3,eb4], ~@6 [eb3,g3,bb3]@3 ~@3 [eb3,g3,bb3,eb4]@2 ~@2", // Db Ab Eb Ab Eb5 Eb
  AO: "[ab3,db4,f4] [db4,f4] ~ [ab3,c4,eb4]!2 [g3,bb3,eb4] [bb3,eb4]!3 [g3,bb3,eb4] [ab3,c4,eb4] [bb3,eb4] ~ eb4 [ab3,c4,eb4] [gb3,bb3,eb4], ~@5 [bb2,eb3]@4 ~@7, ~@6 g3@3 ~@3 [eb3,g3,bb3,eb4]@2 ~@2", // Db Ab Eb Eb5 Eb Ab Eb5 Ab …
  AP: "~ f4 [db4,f4] [ab3,c4,eb4] eb4 [eb3,g3,bb3,eb4] [eb3,g3,bb3,eb4]@2 [g3,bb3,eb4]!2 [ab3,c4,eb4] eb4 [eb3,g3,bb3,eb4] [g3,bb3,eb4] [ab3,c4,eb4] [bb3,eb4], [ab3,db4,f4]@2 ~@3 bb2@4 ~@7", // Db Ab Eb Ab Eb Ab Eb5 Db
  AQ: "[ab3,db4,f4] [db4,f4] eb4 [ab3,c4,eb4] ~ [eb3,g3,bb3,eb4] ~ eb4 [eb3,g3,bb3,eb4] [bb3,eb4] [ab3,c4,eb4] eb4 ~ [bb3,eb4] [ab3,c4,eb4] eb4, ~@3 [eb3,g3,bb3,eb4] ~@2 [eb3,g3,bb3,eb4] ~", // Db Ab Eb Eb5 Ab Eb5 Ab Eb
  AR: "[db4,f4]!2 ~ [ab3,c4,eb4] ~ [g3,bb3,eb4] [g3,bb3,eb4]@3 [g3,bb3,eb4] [ab3,c4,eb4] eb4 ~ eb4 [eb3,ab3,c4,eb4] [bb3,eb4], [db3,ab3]@3 ~@9 [bb2,eb3,g3,bb3,eb4]@2 ~@2", // Db Ab Eb Ab Eb5 Db5 Eb
  AS: "[db4,f4]!2 ~ [ab3,c4,eb4] ~ [eb3,bb3,eb4] [bb3,eb4]@2 bb3 [g3,bb3,eb4] [eb3,ab3,c4,eb4] [bb3,eb4] ~ eb4 [eb3,ab3,c4,eb4] [bb3,eb4], [db3,ab3]@3 ~@2 g3@4 ~@7, ~@3 eb3@2 ~ [eb3,g3,bb3,eb4] ~", // Db Ab Eb5 Eb Ab Eb5 Ab Eb5 …
  AT: "[db4,f4]!2 ~ [ab3,c4,eb4] eb4 [g3,bb3,eb4] [eb3,g3,bb3,eb4]@2 [g3,bb3,eb4]!2 [eb3,ab3,c4,eb4] eb4 [eb3,g3,bb3,eb4] [bb3,eb4] [eb3,ab3,c4,eb4] eb4, [db3,ab3]@3 ~@13", // Db Ab Eb Ab Eb Eb5 Ab Db5
  AU: "[db4,f4]!2 f4 [eb3,ab3,c4,eb4] ~ [eb3,g3,bb3,eb4] [bb2,eb3,g3,bb3,eb4]@2 [g3,bb3,eb4]!2 [eb3,ab3,c4,eb4]@2 [bb2,eb3,g3,bb3,eb4] [bb3,eb4] [ab3,c4,eb4] [bb3,eb4], [db3,ab3]@3 ~@13", // Db Ab Eb Ab Eb Eb5 Ab Eb5 …
  AV: "~ f4 ~ [eb3,ab3,c4,eb4] ~ [bb3,eb4] [bb3,eb4]@2 bb3 [bb3,eb4] [eb3,ab3,c4,eb4] [bb3,eb4] ~ eb4 [eb3,ab3,c4,eb4] [gb3,eb4], [ab3,db4,f4] ~@2 [bb2,eb3,g3]@2 ~ [eb3,g3,bb3,eb4] ~", // Ab Eb5 Ab Eb5 Ab Ebm Db Eb
  AW: "[[db4,f4]!2 ~ [ab3,c4,eb4] ~ [g3,bb3,eb4] [bb2,eb3,g3,bb3,eb4]@22 ~@4, [db3,ab3]@3 ~@3 eb2@16 ~@10]/2", // Db Ab Eb Db5
})).s("gm_acoustic_guitar_steel").gain(0.38).pan(0.8)

// chords · acoustic guitar steel · "Bono" · soft notes
const acoustic_guitar_steel_2 = note(`<
  A ~ B C D E F G H I J K B C D E F G H I L M N O P Q R S ~@2 T U V W X Y Z AA AB AC@2 ~@13 AD T AE AF AG AH AI AJ AK AL
  AM AN AO AP AQ AR AS AT AU AV AW AX AY ~
>`.pickRestart({
  A: "~@2 eb3 ~@13", B: "~@4 g3 eb3 ~@3 eb3 ~ gb3 bb2@2 ~ db3", C: "~@4 bb3 ~@6 [db3,bb3] ~@2 eb3 gb3",
  D: "~ ab3 eb4 ~@12 db3", E: "~@2 eb4 ~ gb3 bb2@3 g3 gb3 ~@5 [gb3,bb3]",
  F: "~@2 [bb3,eb4] eb3 ~ bb2@3 [g3,eb4] gb3 ~@5 [gb3,bb3,eb4]", G: "~@3 eb3 bb3 ~ bb2@3 g3 ~@4 eb3 [bb3,eb4]",
  H: "~@2 eb4 eb3 ~ bb2@4 ~@2 bb3 ~@4", I: "~@12 bb2 ~@3", J: "~@5 db3@10 eb4", K: "~@11 eb3@3 ~@2",
  L: "~@2 eb4 ~@8 db3 ~@2 eb3 bb3", M: "~@4 bb3 ~@2 eb4 ~@5 eb4 ~ bb3", N: "~@2 db4 ~@13", O: "eb3@6 ~@9 gb3",
  P: "~@4 [ab3,c4] ~@6 [gb3,bb3] ~@3 gb3", Q: "db3@2 ~@11 g3 eb3 gb3", R: "~@5 bb2@4 eb3 ~ bb3 bb2 ~@2 bb3",
  S: "~@2 eb4 eb3 [eb3,bb3] bb2@3 ~@8", T: "~@15 [gb3,bb3]", U: "eb3@3 ~@6 eb3@6 [gb3,bb3]",
  V: "~@2 eb4 ~ [gb3,bb3] ~@8 g3 ~ g3", W: "~@5 eb3 ~@9 [bb3,eb4]", X: "~@2 eb4 ~@2 eb3 ~@2 eb4 ~@2 bb3 ~@4",
  Y: "~@4 [gb3,bb3] [bb2,eb3] ~@7 eb4 ~ bb3", Z: "~@2 ab3 ~@12 [gb3,bb3]", AA: "~@2 eb4 ~@12 bb3", AB: "~@15 gb3",
  AC: "bb2/2", AD: "~@15 [db3,gb3,bb3]", AE: "~@5 eb3 ~@9 gb3",
  AF: "~@2 [bb3,eb4] ~ [gb3,bb3] ~@3 eb4 ~@2 bb3 ~ g3 ~@2", AG: "~@4 gb3 ~@6 [db3,gb3,bb3] ~@4",
  AH: "~@4 gb3 eb3 ~@2 g3 ~@6 bb3", AI: "~@2 [bb3,eb4] ~ gb3 ~@6 bb3 bb2 ~@2 db3", AJ: "~@3 eb3 ~ bb2@4 db3 ~@6",
  AK: "~@2 gb3 ~@12 db3", AL: "~@4 gb3 ~@7 bb2@2 ~@2", AM: "~@2 gb3 eb3 ~@5 c4 ~ eb4 bb2@2 eb3 ~",
  AN: "~@3 eb3@2 ~ bb2@3 ~@2 bb3 eb3@2 ~@2", AO: "~@3 eb3 ~ eb2@4 ~@2 bb3 ~@4", AP: "~@4 gb3 bb2@4 ~@2 bb3 ~@2 eb3 gb3",
  AQ: "~@2 eb4 ~ [eb3,bb3] ~@5 eb3 [db3,gb3] ~@4", AR: "~@4 bb3 ~@7 bb2 ~ eb3 gb3",
  AS: "~@2 bb3 eb3 ~ bb2@4 ~@2 bb3 ~@2 eb3 [gb3,bb3]", AT: "~@3 eb3 ~ eb3@3 eb4 ~ eb3 [db3,bb3] ~@3 gb3",
  AU: "~@2 eb4 eb3 gb3 ~@3 eb4 ~@6 gb3", AV: "~@2 eb4 eb3 gb3 eb3 ~@2 eb3 ~@6 [gb3,bb3]",
  AW: "~@2 eb4 ~@2 bb2 ~@2 [bb2,eb3] ~@2 bb3 ~@2 eb3 gb3", AX: "~@4 gb3 ~@3 eb4 ~@6 bb3", AY: "~@3 eb3 gb3 ~@11",
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.8)

// other · overdriven guitar · "The Edge 2"
const overdriven_guitar_2 = note("<~@28 A B C D@2 ~@45>".pickRestart({
  A: "d4@2 eb4 d4 eb4!2 d4 eb4!2 d4 eb4!2 db4@2 bb3 ~", B: "d4@2 eb4 d4 eb4!2 d4 eb4!2 d4 eb4!2 db4@2 bb3@2",
  C: "eb4@2 ~ f4@2 ~@7 eb4@4, db4, ~@3 eb4@3 ~@2, ~@9 b4@7", D: "[~@2 db5@2 bb4@4 eb4!2 eb4@2 eb4!3 eb4@17, eb4 ~@3]/2",
})).s("gm_overdriven_guitar").gain(0.44).pan(0.6)

// chords · harmonica · "Bono Harmonica"
const harmonica = note("<~@65 A B C D ~@4 E F G H@2>".pickRestart({
  A: "[bb4,db5]@3 [ab4,c5]@3 [g4,bb4]@3 g4 eb4@2 [db4,eb4]@2 [eb4,f4,ab4] ~, a4 ~@5 gb4 ~@3 f4 ~@5", // Bbm Ab Gm Dbsus2 Fm7
  B: "[bb4,db5]@3 [ab4,c5]@3 [g4,bb4]@3 [f4,g4] eb4@2 [db4,eb4]@2 [eb4,f4,ab4] ~, a4 ~@5 gb4 ~@9", // Bbm Ab Gm Fsus2 Dbsus2 Fm7
  C: "[bb4,db5]@3 [ab4,c5]@2 gb4 [g4,bb4]@3 [f4,g4] eb4@2 [db4,eb4]@2 [eb4,f4,ab4] ~, a4 ~@15", // Bbm Ab Gm Fsus2 Dbsus2 Fm7
  D: "[bb4,db5]@3 [ab4,c5]@3 [g4,bb4]@3 [f4,g4] eb4@2 [db4,eb4] ~@3, a4 ~@5 gb4 ~@9", // Bbm Ab Gm Fsus2 Dbsus2
  E: "[bb4,db5]@3 [ab4,c5]@3 [g4,bb4]@3 eb4 eb4@2 [eb4,g4]@2 [eb4,ab4] a4, a4 ~@5 gb4 ~@9", // Bbm Ab Gm Eb Ab5
  F: "[bb4,db5]@3 [ab4,c5]@3 [g4,bb4]@3 eb4 eb4@2 [eb4,g4] ~ [eb4,ab4] ~, ~@6 gb4 ~@9", // Bbm Ab Gm Eb Ab5
  G: "[bb4,db5]@3 [ab4,c5]@2 gb4 [g4,bb4]@3 eb4!2 ~ [eb4,g4]@2 [eb4,ab4] ~, a4 ~@15", // Bbm Ab Gm Eb Ab5
  H: "[[bb4,db5]@3 [ab4,c5]@3 bb4@3 bb4 db5 bb4 db5 [bb4,db5]!3 db5 [bb4,db5]!2 bb4@9 ~@4, a4 ~@5 g4@19 ~@7, ~@6 gb4 ~@25]/2", // Bbm Ab Bbm
})).s("gm_harmonica").gain(0.44)

// drums · kick
const kick = s("bd").struct("<~@2 [x ~@2 x ~@2 x ~@3 x ~ x ~@3]!74 [x ~@2 x ~@2 x ~@9] ~>").gain(0.33)

// drums · rim
const rim = s("rim").struct("<~ [x!4] ~@76>").gain(0.38)

// drums · snare
const snare = s("sd").struct("<~@2 A@19 B A@7 C A@5 C A@4 D A ~@12 A@10 B A@10 D E ~>".pickRestart({
  A: "~@7 x", B: "~@13 x!2 ~", C: "~@12 x!4", D: "~@6 x!2", E: "~ x ~@6",
})).gain(0.55)

// drums · clap
const clap = s("cp").struct(`<
  ~@2
  [x ~@2 x ~@2 x ~@3 x ~ x ~@3]!39
  [~ x ~ x ~ x ~ x]!12
// … 44 more lines

More by U2