Strudelify
New Year's Day cover art

War

New Year's Day

U2

KeyG♯ minorTempo132 bpm
0:00/0:00
// New Year's Day — U2
// 132 bpm, 4/4, key G# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 152 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(132/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.

// other · piano · "A.PIANO 2"
const piano = note(`<
  A B C@2 A B C@2 A B C@2 A B C@2 A B C@2 A B C@2 D@2 E@2 D@2 F@2 A B C@2 A B C@2 A B C@2 A B C@2 A B C@2 D@2 E@2 D@2
  F@2 D@2 E@2 D@2 F@2 A B C@2 A B C@2 G@4 H@4 I@2 J@2 K L M ~@16 N O P@2 Q O R@2 D@2 E@2 D@2 F@2 D@2 E@2 D@2 F@2 A B C@2
  A B S@2 T@4 U@4 V@4 ~
>`.pickRestart({
  A: "~@2 [g#3,g#4]@11 ~@3", B: "~@2 [b2,b3]@13 ~", C: "[~ [d#3,d#4]@12 ~@3]/2", D: "[[f#3,f#4]@29 ~@3]/2",
  E: "[[g#3,g#4]@29 ~@3]/2", F: "[[e3,e4]@7 ~]/2",
  G: "[~@10 g#4@2 c#5 ~@13 b4@2 c#5@2 ~@2 d#2@32, g#2 b1 ~@2, ~@7 d#5@6 ~@2 a#4@17]/4",
  H: "[~@10 g#4@2 c#5@2 ~@12 b4@2 c#5@2 ~@2 f#2@15 ~@9 b4@4 a#4@3 ~, g#2@8 b1@8 ~@8 f#2@7 ~, ~@7 d#5@6 ~@2 a#4@13 ~@4]/4",
  I: "[a#4@7 ~ a#4@4 b4@2 ~@10 d#5@2 c#5@2 b4@2 ~@2, e2@7 c#5@5 ~@4, ~ e2]/2",
  J: "[b4@3 ~ b4@4 a#4@3 ~ b4@2 ~@14 c#5@4, g#2@14 g#4@11 ~@7, ~ g#2]/2", K: "[f#2,a#4]@15 ~", L: "a#4 b4, f#2",
  M: "[e2,c#5]", N: "[f#4,d#5] g#4 f#4 [g#4,c#5]@3 ~@2", O: "[f#4,d#5] ~ [f#4,d#5] [g#4,c#5]@4 ~",
  P: "[[f#4,c#5]@2 ~ [a#4,d#5]@8 ~@5]/2", Q: "f#4 g#4 f#4 [g#4,c#5]@4 ~, d#5 ~@3",
  R: "[[f#4,c#5]@2 ~ [a#4,d#5]@9 ~@4]/2", S: "[~ d#4@12 ~@3]/2",
  T: "[~ g#4@4 g#4 c#5 ~@6 b4 c#5 ~@2 [d#3,d#4]@12 ~@3, ~@2 g#3@11 ~ d#5@10 ~@6 a#4@24 ~@10, ~@18 [b2,b3]@13 ~@33]/4", // D# B
  U: "[~ g#4@4 g#4 c#5 ~@6 b4 c#5 ~@2 [d#3,d#4]@12 ~@3, ~@2 g#3@11 ~ d#5@12 ~@4 a#4@16 ~@18, ~@18 [b2,b3]@13 ~@33]/4", // D# B
  V: "[~ g#4@4 g#4 c#5 ~@6 b4 c#5 ~@2 [d#3,d#4]@12 ~@3, ~@2 g#3@11 ~ d#5@10 ~@6 a#4@22 ~@12, ~@18 [b2,b3]@13 ~@33]/4", // D# B
})).s("gm_piano").gain(0.44).pan(0.4)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  A B C D A B C D A B C D A B C D A B C D A B C E F G H I F G J K A B C D A B C D A B C D A B C D A B C D F G H I F G J
  K F G H I F G J K A B C D A B C D L M N O P Q F G J K H I F G J A B C D A B C D A B C D A B C D A B C D A B C D F G H
  I F G J K F G H I F G J K A B C D A B C D A B C D A B C D A B C D R
>`.pickRestart({
  A: "g#2 ~ g#2@2 b2@2 g#2 ~ g#2 ~ g#2 ~ g#2@3 ~", B: "b1 ~ b1@2 d#2@2 b1@3 ~ b1 ~ b1@2 c#2@2",
  C: "d#2 ~ d#2@2 f#2@2 d#2@4 d#2 ~ d#2 ~ g#1@2", D: "d#2 ~ d#2@2 f#2@2 d#2@3 ~ d#2 ~ d#2 ~ f#2@2",
  E: "d#2 ~ d#2@2 f#2@2 d#2@3 ~ d#2 ~ d#2@4", F: "f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~",
  G: "f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2@2", H: "g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~",
  I: "g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2@2", J: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~",
  K: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2@2 f#2@2", L: "g#2 ~ g#2@2 b2@2 g#2@8 ~@2", M: "b1 ~ b1 ~ d#2@2 b1@5 ~ b1@4",
  N: "d#2 ~ d#2@2 f#2@2 d#2@4 d#2 ~ d#2@2 [g1,g#1] ~", O: "d#2 ~ d#2@2 f#2@2 d#2@9 ~",
  P: "g#2 ~ g#2@2 b2@2 g#2@3 ~ g#2 ~ g#2@2 g#1@2", Q: "b1 ~ b1@2 d#2@2 b1@3 ~ b1 ~ b1 ~ b1@2", R: "g#2@2 ~@2 g#1 ~@11",
})).s("gm_fretless_bass").gain(0.44)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  A B C D A B C D A B C D A B C D A B C D A B C D E F G H I J K L A B C D A B C D A B C D A B C D A B C D M F G H I J K
  L M F G H I J K L A B C D A B C D A B C D A N O P Q R S T U V W A B C D A B C D A B C D A B C D A B C D A B C D E F G
  H I J K L E F G H I J K L A B C D A B C D A B C D A B C D A B C D X
>`.pickRestart({
  A: "g#3@2 g#3@2 b3@2 g#3@2 g#3@2 g#3@2 g#3@2 g#3 ~", B: "b2!2 d#3 b2!5", C: "d#3!2 f#3 d#3!5",
  D: "d#3@2 d#3 ~ f#3@2 d#3@2 d#3@2 d#3@2 d#3@2 d#3@2", E: "[f#3,c#4] c#4!2 [f#3,c#4]!5, ~ f#3@2 ~@5",
  F: "[f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 ~ [g3,d4], ~@7 [f#3,c#4]", // F#5 G5 F#5
  G: "[g#3,d#4]!8", // G#5
  H: "[g#3,d#4]@2 [g#3,d#4]@2 [g#3,d#4]@2 [g#3,d#4]@2 [g#3,d#4]@2 [g#3,d#4]@2 [g#3,d#4]@2 [g#3,d#4] [c#4,d4]", // G#5 Dmaj7
  I: "c#4!2 [f#3,c#4]!6, f#3 ~@3", // F#5
  J: "[f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4] [e3,f3,b3,c4]", // F#5 Cmaj7
  K: "[e3,b3]!8", L: "[e3,b3]!5 b3!2 [e3,b3], ~@5 e3@2 ~", M: "c#4!3 [f#3,c#4]!5, ~ f#3@2 ~@5",
  N: "b2@2 b2@2 d#3@2 b2@2 b2@2 b2@2 b2@2 b2 ~", O: "f#3!4 [f#3,c#4]!3 f#3",
  P: "[f#3,c#4]@2 f#3@2 [f#3,c#4]@2 [f#3,c#4] ~ [f#3,c#4]@2 [f#3,c#4] ~ [f#3,c#4]@2 [f#3,c#4] [e3,f3,b3,c4]", // F#5 Cmaj7
  Q: "e3!2 [e3,b3] e3 [e3,b3] e3 [e3,b3]!2, b3 ~@3", // E5
  R: "[e3,b3]@2 [e3,b3]@2 [e3,b3]@2 [e3,b3]@2 b3@2 b3@2 [e3,b3]@2 e3 [f3,f#3], ~@2 e3 ~", // E5 F#maj7
  S: "[g3,g#3,d#4] ~ [g#3,d#4]@2 g#3 ~ g#3@2 [g#3,d#4]@2 [g#3,d#4]@2 [g#3,d#4]@2 [g#3,d#4]@2, ~ d#4 ~@2", // G#maj7 G#5
  T: "[g#3,d#4]@2 g#3 ~ [g#3,d#4]@2 g#3@2 [g#3,d#4]@2 g#3@2 [g#3,d#4]@2 [g#3,d#4] g3", // G#5
  U: "[f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4]@2 [f#3,c#4] ~ f#3 ~ f#3@2 f#3@2, ~@3 c#4", // F#5
  V: "[f#3,c#4]@2 f#3@2 [f#3,c#4]@2 [f#3,c#4]@2 f#3@2 f#3@2 [f#3,c#4]@2 [f#3,c#4] ~, ~@2 c#4 ~", // F#5
  W: "e3!2 [e3,b3]!6, b3 ~@3", X: "g#3@3 ~ g#2 ~@11",
})).s("gm_overdriven_guitar").gain(0.33).pan(0.6)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note(`<
  ~@2 A@2 ~@10 B C@4 D@2 E F G H@3 I@3 J@2 K@4 L M N O P@6 Q@2 R@4 S@2 T@2 U@2 V@2 W X Y Z AA AB AC AD AE AF AG@2 AH@2
  AI AJ AK ~@13 AL AM@2 AN AO@3 AP AQ AR AS@2 AT@3 AU@2 AV AW AX AY AZ BA BB BC S@2 T@2 U@2 V@2 W X Y Z AA AB AC AD BD
  AF AG@2 BE@2 BF N BG O BF BG O BF BG O BF BG O ~@2
>`.pickRestart({
  A: "[~@2 a#4@23 ~@7]/2", B: "~@13 g#5@2 ~", C: "[g#5@2 ~ a#5@6 ~@3 f#5@15 ~@5]/4",
  D: "[~@6 [f#4,a#4] [f#4,a#4]@5 ~ c#4 ~ c#4, ~@6 c#4@6 ~ f#3@3]/2", // F#
  E: "[f#3,c#4]@3 [g3,g#3,d4,d#4] [g#3,d#4]@4 [g#3,d#4]@3 [g3,c4,c#4,d4] ~@4, ~@4 e2 ~@11", F: "~@7 [g#3,c#4,f#4,a#4]",
  G: "[g#3,c#4,f#4,a#4]@2 [g#3,c#4,f#4] [g#3,c#4,f#4,a#4]@2 [c#4,f#4,a#4]@2 [g#3,c#4,f#4,a#4]", // F# C#sus4 F#
  H: "[~@28 c#4@3 ~@13 d#4@4, f#4@8 f#4@8 f#4@8 f#4@7 ~ g#4@8 g#4@8, ~@4 c#4@8 c#4@8 c#4@8 ~@3 d#4@4 ~ d#4@8 ~@4]/3",
  I: "[[d#4,g#4]@2 g#4 [d#4,g#4]@3 [d#4,g#4]@2 g#4 [d#4,g#4] [d#4,g#4]@2 [d#4,g#4]@3 [d4,g4] f#4@4 ~@23 c#4@4 ~, ~@15 c#4@4 ~ c#4@8 c#4@7 ~ c#4@7 ~@5, ~@3 f#4 f#4!2]/3", // G#5 G5
  J: "[~@28 f#4@2 ~ [b3,c#4,f#4], b3@12 b3@12 b3@7 ~, ~@4 f#4@11 ~ f#4@12 ~@4, ~@8 g#3@11 ~ g#3@10 ~@2]/2", // Bsus2
  K: "[[f#3,b3]@21 ~@8 f#4@3, [c#4,f#4]@35 ~@7 c#4@12 c#4@9 ~, ~@23 f#4@6 ~@3, ~@50 f#3@13 ~]/4", // B5 F#5
  L: "[c#4,f#4]@2 [d4,d#4,g4,g#4] ~ [d#4,g#4]@12", M: "g#3@2 ~ g#3!13", N: "g#3!9 ~ g#3 ~ g#3!4", O: "g#3!16",
  P: "[g#3@2 g#4!6 [g#3,g#4] ~@5 g#3@4 ~ g#4!6 ~@7]/2", Q: "[g#3@2 g#4!6 [g#3,g#4] ~@5 g#3@4 g#4!7 ~@7]/2",
  R: "[g#3@2 g#4!6 [g#3,g#4] ~@5 g#3@4 g#4!7 ~@6 g#3]/2", // G#
  S: "[~@7 c#4, f#4@8 f#4@8 f#4@8 f#4@7 ~, ~ c#4@2 c#4@2 c#4@2 ~]/2",
  T: "[d#4@4 ~@24 d#4@3 ~, g#4@7 ~ g#4@8 g#4@7 ~ g#4@7 ~, ~ d#4@2 d#4@2 d#4@2 ~]/2",
  U: "[c#4@4 ~@24 c#4@3 ~, f#4@8 f#4@8 f#4@8 f#4@7 ~, ~@4 c#4@8 c#4@8 c#4@7 ~@5]/2",
  V: "[~@8 f#4@4 [b3,f#4]@3 ~ f#4 [b3,f#4] [b3,f#4]@3 f#4 f#4@2 [b3,f#4]@4 [b3,f#4]@4, f#4 ~@3, ~@4 b3@8 ~@3 b3@2 ~@4 b3@3 ~@8]/2", // B5
  W: "f#4@3 f#4 f#4@2 ~ c#4@2 f#4 f#4@2 f#4@2 f#4@2, c#4@6 f#4@3 c#4@3 c#4@4",
  X: "[c#4,f#4]@3 [c#4,f#4] [c#4,f#4]@2 [c#4,f#4]@3 [c#4,f#4] c#4@2 [c#4,f#4]@4", // F#5
  Y: "[d#4,g#4]@3 [d#4,g#4] ~ g#4 [d#4,g#4]@3 [d#4,g#4] [d#4,g#4]@2 [d#4,g#4]@3 [d#4,g#4], ~@2 [d#4,g#4] ~@5", // G#5
  Z: "[d#4,g#4]@2 [d#4,g#4]@2 g#4 [d#4,g#4] [d#4,g#4]@2 [d#4,g#4]@3 [d#4,g#4] g#4@2 g#4 ~, ~@3 d#4", // G#5
  AA: "[c#4,f#4]@3 [c#4,f#4] [c#4,f#4]@2 [c#4,f#4]@3 [c#4,f#4] [c#4,f#4]@2 [c#4,f#4]@3 f#4", // F#5
  AB: "[c#4,f#4]@2 [c#4,f#4]@3 [c#4,f#4] f#4@2 f#4@3 [c#4,f#4] [c#4,f#4]@2 c#4 ~, ~@6 c#4@5 ~@5", // F#5
  AC: "b3@3 f#4 f#4@2 f#4@3 f#4 f#4@2 [b3,f#4]@3 [b3,f#4], f#4@2 ~@2 b3@5 b3@3 ~@4", // B5
  AD: "[b3,f#4]@2 [b3,f#4]@2 f#4!2 f#4@2 [b3,f#4]@3 f#4 [b3,f#4]@2 ~@2, ~@5 b3@3 ~@8", // B5
  AE: "[f#3,c#4,f#4]@2 [g3,d4,g4] [d#4,g#4] [g#3,d#4,g#4]@2 ~@2 [g#3,d#4,g#4]@5 [d4,g4] ~@2", // F#5 G5 G#5 G5
  AF: "~@10 [g#3,d#4,g#4]@2 g#4 ~@2 [f#3,c#4]", // G#5 F#5
  AG: "[[f#3,c#4,f#4]@4 [f#3,c#4,f#4]@4 [f#3,c#4,f#4]@4 ~@2 [f#3,b3,f#4]@14 ~@3 [c#4,f#4]]/2", // F#5 B5 F#5
  AH: "[[f#3,c#4,f#4]@2 [g3,d4,g4] ~ [d#4,g#4]@4 [g#3,d#4,g#4]@4 ~@2 [g#3,d#4,g#4]@4 [c#4,d4,g4] ~@10 [c#4,f#4] [f#3,c#4,f#4]@2, ~ g#3@3 ~@12, ~ [d#4,g#4] ~@14]/2", // F#5 G5 G#5 G F#5 G#5
  AI: "[f#3,c#4,f#4]@2 [f#3,c#4,f#4]@2 [f#3,c#4,f#4] ~@2 [f#3,c#4,f#4]", // F#5
  AJ: "~ [f#3,c#4,f#4] f#4 [c#4,f#4] [f#3,c#4,f#4] ~@2 [f#3,c#4] [f#3,c#4,f#4]@3 ~@2 [f#3,c#4,f#4] [f#3,c#4,f#4]@2", // F#5
  AK: "[f#3,c#4,f#4] ~ [g3,g#3,d4,d#4,g4,g#4]@2 [g#3,d#4,g#4]@4 [g#3,d#4,g#4]@3 [c#4,d4,f#4,g4] ~@4", AL: "~@3 a#5",
  AM: "[a#5@2 f#5@6 a5@6 d#5@6 f#5@5 ~ c#5@6]/2", AN: "d#5@5 ~ a#4@6 a#4@4",
  AO: "[a#4@2 a#4@2 a#4@8 a#5@6 g5@5 ~ g5@6 d5@5 ~ g5@6 c#5@6]/3", AP: "d#5@5 ~ a#4@10",
  AQ: "~@3 f#3, ~@2 g#2@3 ~@3, ~@8 c#3@7 ~", AR: "d#3@3 f#3@3 g#3@2",
  AS: "[~ c#3@3 d3@3 g#2@3 a#2@2 ~@2 f#3@2, ~@24 c#3@7 ~]/2",
  AT: "[d#3@3 [f3,g3,a3] b3@4 b3@3 ~ a#3@2 f#3@7 g#3 b3@6 ~ g3 d#3@9 [f3,g3,a3] b3@4 a#3@4, ~@14 a#3 ~@9]/3", // F
  AU: "[a#3@3 ~ b3@4 c#4@3 a#3@8 ~ a#3@4 a#3@4 a#3@4]/2", AV: "b3 ~",
  AW: "g#3 ~@2 g#3!2 g#3@2 g#3 g#3@2 ~@2 g#3 ~ g#3!2", AX: "g#3 ~@3 g#3 ~@2 g#3!9", AY: "g#3!5 ~ g#3!10",
  AZ: "g#3@2 g#3!7 ~ g#3!6", BA: "g#3 ~ g#3!14", BB: "g#3!9 ~ g#3!6", BC: "g#3!5 ~ g#3!8 g#3@2",
  BD: "[f#3,c#4,f#4]@2 [g3,d4,g4] [d#4,g#4] [g#3,d#4,g#4]@2 ~@2 [g#3,d#4,g#4]@5 d4 ~@2", // F#5 G5 G#5
  BE: "[[f#3,c#4,f#4]@2 [g3,d4,g4] ~ [d#4,g#4]@4 [g#3,d#4,g#4]@4 ~@2 [g#3,d#4,g#4]@4 [c#4,d4,g4] ~@13, ~ g#3@3 ~@12, ~ [d#4,g#4] ~@14]/2", // F#5 G5 G#5 G G#5
  BF: "g#3@2 ~ g#3!3 ~ g#3!9", BG: "g#3!11 ~ g#3!4",
})).s("gm_overdriven_guitar").gain(0.32).pan(0.6)

// chords · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note(`<
  ~@19 A@2 B ~@5 C ~@9 D E ~@2 F ~ F ~ F ~ G ~ H ~ H ~@9 I ~@3 C ~ J K C ~@3 L ~@2 M ~@25 N O ~@3 P Q R S ~ T ~ S ~@9 I
  ~@3 C ~ J U C ~@3 V D E W ~ D W ~ D W ~ D W ~@3
>`.pickRestart({
  A: "[~@14 g#3@10 [a2,c#4] ~ a2 ~@5]/2", B: "~@11 f#3 [f3,b3] ~@3", C: "~@15 f#4", D: "~@2 g#3 ~@13",
  E: "~@9 g#3 ~ g#3 ~@4", F: "~@2 g#4 ~ g#3 ~ g#3 ~@7 e4 g#3", G: "~@4 g#3 ~ g#3 ~@7 e4 g#3",
  H: "~@4 g#3 ~ g#3 ~@7 e4 ~", I: "~@5 f#4 ~@2", J: "~@15 c#4", K: "~@3 g#3 ~@9 [f#3,g3,c#4,f4,f#4] e4 ~",
  L: "~@2 [f#3,g3,c4,f4,f#4] ~@10 f#3 ~@2", M: "~@11 [c4,f4] [b3,d#4,e4] ~@3", N: "~@14 g3 ~", O: "~@14 e3 ~",
  P: "~@8 g#3 e3 ~@6", Q: "~@10 g#3!2 ~ g#3 ~@2", R: "~ g#3!3 ~ g#3!2 ~@9", S: "~@5 g#3 ~@10", T: "~ g#3 ~@14",
  U: "~@3 g#3 ~@9 [f#3,g3,c#4,f4,f#4,g4] e4 ~", V: "~@2 [f#3,g3,c4,f4,f#4] ~@13", W: "~@11 g#3 ~@4",
})).s("gm_overdriven_guitar").gain(0.16).pan(0.6)

// other · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note("<~@76 A@4 B@4 C@2 D@2 E F G@2 ~@47 A@12 ~>".pickRestart({
  A: "[~@12 c#5@2 d#5@11 ~ b4@2 c#5@2 a#4@28 ~@6, ~@5 g#4@2 ~@25]/4",
  B: "[~@10 g#4@2 c#5@2 d#5@11 ~ b4@2 c#5@2 a#4@24 ~@2 b4@3 ~ a#4@4]/4",
  C: "[a#4@8 a#4@3 ~ b4@2 c#5@8 ~@2 d#5@2 c#5 ~ b4@4]/2", D: "[b4@4 b4@4 a#4@3 ~ b4@2 g#4@13 ~ c#5@4]/2", E: "a#4@15 ~",
  F: "a#4 b4", G: "[c#5@7 ~]/2",
})).s("gm_electric_guitar_clean").gain(0.38)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_3 = note(`<
  ~@2 A@2 ~@11 B@4 ~ C@2 ~ D@5 E F@3 G@6 H I J K L K L K L M L M N M O@7 P Q R S T U V W X Y Z AA AB AC AD AE AF AG ~@14
  AH@3 AI AJ@5 AK@3 AL AM AN@2 AO AP AQ AR AS I AT I AU@7 P Q R S T U V W X Y Z AA AB AC AD AV H@2 I AW H I AW H I AW H
  I AX ~
>`.pickRestart({
  A: "[~@6 a#4@23 ~@3]/2", B: "[~ g#5@2 ~ g#5@4 ~@2 a#5@12 ~@6 f#5@30 ~@6]/4",
  C: "[[f#4,a#4]@2 [f#4,a#4]@10 ~@2 c#4@2 ~@2 c#4@2 [f#3,c#4]@3 [g3,g#3,d4,d#4] [g#3,d#4]@4 [g#3,d#4]@3 [g3,c4,c#4,d4], c#4@12 ~@2 f#3@6 ~@4 e2 ~@7]/2", // F# F#5 D#maj7 G#5 Gsus4
  D: "[~@2 [g#3,c#4,f#4,a#4]@2 [g#3,c#4,f#4,a#4]@4 [g#3,c#4,f#4]@2 [g#3,c#4,f#4,a#4]@4 [c#4,f#4,a#4]@4 [g#3,c#4,f#4,a#4]@2 ~@28 c#4@3 ~@13 d#4@4 [d#4,g#4]@2 g#4 [d#4,g#4]@3 [d#4,g#4]@2 g#4 [d#4,g#4] [d#4,g#4]@2, ~@20 f#4@8 f#4@8 f#4@8 f#4@7 ~ g#4@8 g#4@8 ~@12, ~@24 c#4@8 c#4@8 c#4@8 ~@3 d#4@4 ~ d#4@8 ~@16]/5", // F# C#sus4 F# G#5
  E: "[d#4,g#4]@3 [d4,g4] f#4@4 ~@4 f#4@4, ~@3 c#4@4 ~ c#4@8", // G#5 G5
  F: "[~@15 c#4@4 ~@25 b3@4, c#4@7 ~ c#4@7 ~@5 b3@12 b3@12 ~@4, ~@4 f#4@8 f#4@8 ~@4 f#4@11 ~ f#4@12, ~@28 g#3@11 ~ g#3@8]/3",
  G: "[f#4@2 ~ [b3,c#4,f#4] [f#3,b3]@42 ~@16 f#4@6 [c#4,f#4]@2 [d4,d#4,g4,g#4] ~ [d#4,g#4]@12 g#3@2 ~ g#3!9, ~@4 [c#4,f#4]@35 ~@7 c#4@12 c#4@9 ~@29, ~@25 f#4@6 ~@17, ~@54 f#3@13 ~@29]/6", // Bsus2 B5 F#5 D#maj7 G#5 F#5
  H: "g#3!15 ~", I: "g#3!16", J: "g#3!4 g#3@2 g#4!6 [g#3,g#4] ~@3", K: "~@2 g#3@4 ~ g#4!6 ~@3",
  L: "~@4 g#3@2 g#4!6 [g#3,g#4] ~@3", M: "~@2 g#3@4 g#4!7 ~@3", N: "~@3 g#3 g#3@2 g#4!6 [g#3,g#4] ~@3",
  O: "[~@3 g#3 ~@28 c#4@4 d#4@4 ~@24 d#4@3 ~ c#4@4 ~@24 c#4@3 ~@9 f#4@4, ~@4 f#4@8 f#4@8 f#4@8 f#4@7 ~ g#4@7 ~ g#4@8 g#4@7 ~ g#4@7 ~ f#4@8 f#4@8 f#4@8 f#4@7 ~ f#4@8 ~@4, ~@8 c#4@8 c#4@8 c#4@8 ~@8 d#4@8 d#4@8 d#4@8 ~@8 c#4@8 c#4@8 c#4@7 ~@9 b3@8]/7",
  P: "[b3,f#4]@3 ~ f#4 [b3,f#4] [b3,f#4]@3 f#4 f#4@2 [b3,f#4]@4, ~@3 b3@2 ~@4 b3@3 ~@4", // B5
  Q: "[b3,f#4]@4 f#4@3 f#4 f#4@2 ~ c#4@2 f#4 f#4@2, ~@4 c#4@6 f#4@3 c#4@3", // B5
  R: "f#4@2 f#4@2 [c#4,f#4]@3 [c#4,f#4] [c#4,f#4]@2 [c#4,f#4]@3 [c#4,f#4] c#4@2, c#4 ~@3", // F#5
  S: "[c#4,f#4]@4 [d#4,g#4]@3 [d#4,g#4] ~ g#4 [d#4,g#4]@3 [d#4,g#4] [d#4,g#4]@2, ~@4 [d#4,g#4] ~@3", // F#5 G#5
  T: "[d#4,g#4]@3 [d#4,g#4] [d#4,g#4]@2 [d#4,g#4]@2 g#4 [d#4,g#4] [d#4,g#4]@2 [d#4,g#4]@3 [d#4,g#4]", // G#5
  U: "g#4@2 g#4 ~ [c#4,f#4]@3 [c#4,f#4] [c#4,f#4]@2 [c#4,f#4]@3 [c#4,f#4] [c#4,f#4]@2, d#4 ~@3", // F#5
  V: "[c#4,f#4]@3 f#4 [c#4,f#4]@2 [c#4,f#4]@3 [c#4,f#4] f#4@2 f#4@3 [c#4,f#4], ~@10 c#4@5 ~", // F#5
  W: "[c#4,f#4]@2 c#4 f#4 b3@3 f#4 f#4@2 f#4@3 f#4 f#4@2, ~@4 f#4@2 ~@2 b3@5 b3@3", // F#5
  X: "[b3,f#4]@3 [b3,f#4] [b3,f#4]@2 [b3,f#4]@2 f#4!2 f#4@2 [b3,f#4]@3 f#4, ~@9 b3@3 ~@4", // B5
  Y: "[b3,f#4]@2 ~@2 [f#3,c#4,f#4]@2 [g3,d4,g4] [d#4,g#4] [g#3,d#4,g#4]@2 ~@2 [g#3,d#4,g#4]@4", // B5 F#5 G5 G#5
  Z: "~ [d4,g4] ~@12 [g#3,d#4,g#4]@2", AA: "g#4 ~@2 [f#3,c#4] [f#3,c#4,f#4]@4 [f#3,c#4,f#4]@4 [f#3,c#4,f#4]@4",
  AB: "~ [f#3,b3,f#4]@7", // B5
  AC: "~@3 [c#4,f#4] [f#3,c#4,f#4]@2 [g3,d4,g4] ~ [d#4,g#4]@4 [g#3,d#4,g#4]@4, ~@3 g#3@3 ~@2, ~@3 [d#4,g#4] ~@4", // F#5 G5 G#5
  AD: "~@2 [g#3,d#4,g#4]@4 [c#4,d4,g4] ~@9", // G#5 G
  AE: "~ [c#4,f#4] [f#3,c#4,f#4]@2 [f#3,c#4,f#4]@4 [f#3,c#4,f#4]@4 [f#3,c#4,f#4]@2 ~@2", // F#5
  AF: "~@2 [f#3,c#4,f#4]@2 ~ [f#3,c#4,f#4] f#4 [c#4,f#4] [f#3,c#4,f#4] ~@2 [f#3,c#4] [f#3,c#4,f#4]@3 ~", // F#5
  AG: "~ [f#3,c#4,f#4] [f#3,c#4,f#4]@2 [f#3,c#4,f#4] ~ [g3,g#3,d4,d#4,g4,g#4]@2 [g#3,d#4,g#4]@4 [g#3,d#4,g#4]@3 [c#4,d4,f#4,g4]", // F#5 D#maj7 G#5 Dmaj7
  AH: "[a#5@4 a#5@2 f#5@6 a5@6 d#5@6 f#5@5 ~ c#5@6 d#5@5 ~ a#4@6]/3", AI: "a#4@2 a#4!2 a#4@4",
  AJ: "[a#5@6 g5@5 ~ g5@6 d5@5 ~ g5@6 c#5@6 d#5@5 ~ a#4@10 ~@12 f#3@4 d#3@6 f#3@6, ~@28 g#2@3 ~@9, ~@60 c#3@7 ~@13]/5",
  AK: "[g#3@5 ~ c#3@6 d3@6 g#2@6 a#2@4 ~@4 f#3@4 d#3@3 [f3,g3,a3] b3@4 b3@3 ~, ~@28 c#3@7 ~@13]/3", // F
  AL: "a#3@2 f#3@7 g#3 b3@6", AM: "~ g3 d#3@9 [f3,g3,a3] b3@4, a#3 ~@7",
  AN: "[a#3@4 a#3@3 ~ b3@4 c#4@3 a#3@8 ~ a#3@4 a#3@4]/2", AO: "a#3 b3@2 ~", AP: "~@4 g#3 ~@2 g#3!2 g#3@2 g#3 g#3@2 ~@2",
  AQ: "g#3 ~ g#3!3 ~@3 g#3 ~@2 g#3!5", AR: "g#3!9 ~ g#3!6", AS: "g#3!4 g#3@2 g#3!7 ~ g#3!2", AT: "g#3!13 ~ g#3!2",
  AU: "[g#3!2 g#3@2 ~@28 c#4@4 d#4@4 ~@24 d#4@3 ~ c#4@4 ~@24 c#4@3 ~@9 f#4@4, ~@4 f#4@8 f#4@8 f#4@8 f#4@7 ~ g#4@7 ~ g#4@8 g#4@7 ~ g#4@7 ~ f#4@8 f#4@8 f#4@8 f#4@7 ~ f#4@8 ~@4, ~@8 c#4@8 c#4@8 c#4@8 ~@8 d#4@8 d#4@8 d#4@8 ~@8 c#4@8 c#4@8 c#4@7 ~@9 b3@8]/7",
  AV: "~@4 g#3@2 ~ g#3!3 ~ g#3!5", AW: "g#3!4 g#3@2 ~ g#3!3 ~ g#3!5", AX: "g#3!4 ~@12",
})).s("gm_overdriven_guitar").gain(0.08).pan(0)

// chords · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft_2 = note(`<
  ~@20 A B C ~@5 D ~@8 E F ~@2 G H G H G H I H I J I J ~@8 K ~@6 L M D ~@2 N O ~ P Q ~@25 R S ~@2 T U V W ~@13 K ~@6 L M
  D ~@2 N E F@2 ~ E F ~ E F ~ E F ~@3
>`.pickRestart({
  A: "~@2 g#3@10 [a2,c#4] ~ a2 ~", B: "~@15 f#3", C: "[f3,b3] ~@15", D: "~@3 f#4 ~@12", E: "~@6 g#3 ~@9", F: "~@15 g#3",
  G: "~@6 g#4 ~ g#3 ~ g#3 ~@5", H: "~@2 e4 g#3 ~@12", I: "~@8 g#3 ~ g#3 ~@5", J: "~@2 e4 ~@13", K: "~@7 f#4",
  L: "~@3 c#4 ~@3 g#3 ~@8", M: "~ [f#3,g3,c#4,f4,f#4] e4 ~@13", N: "~@6 [f#3,g3,c4,f4,f#4] ~@9", O: "~ f#3 ~@14",
  P: "~@15 [c4,f4]", Q: "[b3,d#4,e4] ~@15", R: "~@2 g3 ~@13", S: "~@2 e3 ~@13", T: "~@12 g#3 e3 ~@2", U: "~@14 g#3!2",
  V: "~ g#3 ~@3 g#3!3 ~ g#3!2 ~@5", W: "~@9 g#3 ~@6",
})).s("gm_overdriven_guitar").gain(0.05).pan(0)

// other · piano · "A.PIANO 2"
const piano_2 = note(`<
  A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 C@8 A B@3 A B@3 A B@3 A B@3 A B@3 C@16 A B@3 A B@3 D@8 E@8 ~@15 F G@3 H@4 C@16 A
  B@3 A B@3 I J@3 I K@3 I L@3 ~
>`.pickRestart({
// … 72 more lines

More by U2