Strudelify
Rainy Day cover art

1997 · Forgiven, Not Forgotten

Rainy Day

The Corrs

KeyE majorTempo127 bpm
0:00/0:00
// Rainy Day — The Corrs
// 127 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 128 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Muted/Driven guitar - L, Muted/Distorted guitar - R.
setcpm(127/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.

// other · recorder · "Backup I (recorder)"
const recorder = note(`<
  ~@36 A@2 ~@2 A@2 ~@18 A@2 ~@2 B ~@27 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@2 C@2 ~@2 A@2 ~@14
>`.pickRestart({
  A: "[g#4 ~ g#4@2 f#4@2 e4@2 d#4@2 c#4@3 ~ c#4@8 d#4@6 ~@4]/2", B: "g#4 ~ g#4@2 f#4@2 e4@2 d#4@2 c#4@5 ~",
  C: "[g#4 ~ g#4@2 f#4@2 e4@2 d#4@2 c#4@3 ~ c#4@8 d#4@8 ~@2]/2",
})).s("gm_recorder").gain(0.64).pan(0.4)

// other · epiano2 · "Backup II (chor. piano)"
const epiano2 = note(`<
  ~@36 A@2 ~@2 A@2 ~@18 A@2 ~@2 B ~@27 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@14
>`.pickRestart({
  A: "[g#4 ~ g#4@2 f#4@2 e4@2 d#4@2 c#4@3 ~ c#4@8 b3@6 ~@4]/2", B: "g#4 ~ g#4@2 f#4@2 e4@2 d#4@2 c#4@4 ~@2",
})).s("gm_epiano2").gain(0.56).pan(0.4)

// chords · synth strings 1 · "Syn strings"
const synth_strings_1 = note(`<
  ~@2 A B C@2 A B C@2 A B C@2 A D C@2 A B C@2 A B C@2 E@6 F@2 G@2 H@2 A B C@2 A I@3 A B J@2 K@4 L@2 F@2 A B C@2 A B M@2
  N@8 ~ O P Q R Q R Q S@6 F@2 A B C@2 A B C@2 A B C@2 G@2 T@2 A B U@2 A B T@2 V@2 W@2 V@2 X@8
>`.pickRestart({
  A: "[b3,e4,g#4] [b3,d#4,f#4]", B: "[a3,c#4,e4] [b3,d#4,f#4]",
  C: "[[c#4,e4,g#4]@4 [b3,d#4,f#4]@3 [a3,c#4,e4]@4 [b3,d#4,f#4]@5]/2", D: "[a3,c#4,e4]@3 [b3,d#4,f#4]@5",
  E: "[[g#3,b3,d#4]@3 [a3,c#4,e4]@4 [g#3,c#4,e4]@2 [g#3,b3,d#4]@2 [a3,c#4,e4]@5]/2", // G#m A C#m G#m A
  F: "[[g#3,b3,d#4]@3 [a3,c#4,e4]@9 [b3,d#4,f#4]@4]/2", // G#m A B
  G: "[[b3,e4,g#4]@8 [b3,d#4,f#4]@7 [a3,c#4,e4]@9 [b3,d#4,f#4]@8]/2", // E B A B
  H: "[[c#4,e4,g#4]@4 [b3,d#4,f#4]@3 [a3,c#4,e4]@4 [b3,f#4]@5, ~@11 d#4@3 ~@2]/2", // C#m B A B5
  I: "[[a3,c#4,e4]@7 [b3,d#4,f#4]@8 ~ [c#4,e4]@8 [b3,d#4,f#4]@6 [a3,c#4,e4]@9 [b3,d#4,f#4]@9, ~@5 g#4@3 ~@8]/3", // A B C#m B A B
  J: "[[c#4,e4,g#4]@8 [b3,d#4,f#4]@6 [a3,c#4,e4]@9 ~ [b3,d#4]@8, ~@23 f#4@8 ~]/2", // C#m B A B
  K: "[[g#3,b3,d#4]@6 [a3,c#4,e4]@8 [g#3,c#4,e4]@4 [g#3,b3,d#4]@5 [a3,c#4,e4]@9]/2", // G#m A C#m G#m A
  L: "[[g#3,b3,d#4]@3 [a3,c#4,e4]@4 [g#3,c#4,e4]@2 [g#3,b3,d#4]@3 [a3,c#4,e4]@4]/2", // G#m A C#m G#m A
  M: "[[c#4,e4,g#4]@4 [b3,d#4,f#4]@3 [a3,c#4,e4]@9]/2", N: "[b3@5 c#4 b3@2, f#4]/8", O: "c#4", P: "b3",
  Q: "[b3,e4] [a3,e4]", R: "[b3,f#4]", S: "[[b3,f#4]@91 ~@5]/6",
  T: "[[c#4,e4,g#4]@8 [b3,d#4,f#4]@6 [a3,c#4,e4]@9 ~ [b3,d#4,f#4]@8]/2", // C#m B A B
  U: "[[c#4,e4,g#4]@4 [b3,d#4,f#4]@3 [a3,c#4,e4]@5 [b3,d#4,f#4]@4]/2", // C#m B A B
  V: "[[b3,e4,g#4]@4 [b3,d#4,f#4]@3 [a3,c#4,e4]@3 ~ [b3,d#4,f#4]@5]/2", // E B A B
  W: "[[b3,e4,g#4]@4 [b3,d#4,f#4]@2 ~ [a3,e4]@5 [b3,d#4,f#4]@4, ~@7 c#4@3 ~@6]/2", // E B A5 B
  X: "[[b3,e4,g#4]@8 [b3,d#4,f#4]@6 [a3,c#4,e4]@9 [a3,b3,d#4,f#4]@10 [g#3,a3,c#4,e4]@83 ~@12]/8", // E B A B7 Amaj7
})).s("gm_synth_strings_1").gain(0.36)

// other · violin · "Violin - L"
const violin = note(`<
  ~@2 A B@3 A C@3 ~@36 D@2 E@2 F@2 E@2 F@2 G@2 A B@3 A C@3 H I H I H I H I H I J K J L J K ~@8 A B@3 A M@3 A B@3 A N@3 A
  B@3 A O@3 ~@14
>`.pickRestart({
  A: "g#5 ~ g#5@2 f#5@2 e5@2 d#5@2 b4@4 c#5@2", B: "[~@2 c#5 ~ c#5 ~ c#5 ~ c#5@2 b4@3 ~ b4@27 ~ b4 c#5 e5@2 f#5@2]/3",
  C: "[~@2 c#5 ~ c#5 ~ c#5 ~ c#5@2 d#5@4 e5@31 ~@3]/3", D: "[b4@7 e5]/2", E: "[b5@10 a5 g#5 f#5@2 g#5@2]/2",
  F: "[f#5@6 e5@21 ~ e5@4]/2", G: "[b5@31 ~]/2", H: "f#5@3 a5@3 f#5@2 g#5@3 e5@3 f#5@2",
  I: "~ f#5@3 a5 ~ f#5 ~ g#5 ~ e5 ~ f#5@2 ~@2", J: "f#5@2 b5 ~ b5@6 a5 ~ a5 g#5 f#5 e5, ~@11 g#5@2 ~@3",
  K: "f#5@2 e5 ~ e5@2 d#5@2 e5@2 d#5@2 b4@3 ~", L: "f#5@2 e5 ~ e5@2 d#5@2 e5@2 f#5 ~ f#5@2 ~@2",
  M: "[~@2 c#5 ~ c#5 ~ c#5 ~ c#5@2 d#5@4 e5@27 ~ b4 c#5 e5@2 f#5 ~]/3",
  N: "[~@2 c#5 ~ c#5 ~ c#5 ~ c#5@2 d#5@4 e5@27 ~ b4 c#5 e5@2 f#5@2]/3",
  O: "[~@2 c#5 ~ c#5 ~ c#5 ~ c#5@2 d#5@4 e5@27 ~@7]/3",
})).s("gm_violin").gain(0.48).pan(0.3)

// other · violin · "Violin - R"
const violin_2 = note("<~@73 A@3 ~ B C ~@49>".pickRestart({
  A: "[~ f#5 g#5 d#6 ~@2 d#6 ~ d#6 ~ d#6 ~ d#6!3 ~ d#6@2 ~ b5@15 ~@14, ~@15 e6@2 ~@31]/3",
  B: "~@2 b5 d#6!2 ~ d#6 ~ d#6 ~ d#6 ~ d#6!4", C: "d#6 b5@4 ~@3",
})).s("gm_violin").gain(0.48).pan(0.7)

// other · piano
const piano = note("<~@66 A B A B A B A B A C D E D F D E ~@40 G H@2 ~@3>".pickRestart({
  A: "f#5@3 a5@3 f#5@2 g#5@3 e5@3 f#5@2", B: "~ f#5 ~@2 a5 ~ f#5 ~ g#5 ~ e5 ~ f#5 ~@3",
  C: "~ f#5@2 ~ a5 ~ f#5 ~ g#5 ~ e5 ~ f#5@2 ~@2", D: "f#5@2 b5 ~ b5@4 ~@2 a5 g#5 a5 g#5 f#5 e5",
  E: "f#5@2 e5 ~ e5@2 d#5@2 e5@2 d#5@2 b4@2 ~@2", F: "f#5@2 e5 ~ e5@2 d#5@2 e5@2 f#5 ~ f#5@2 ~@2", G: "~@13 c#5@3",
  H: "[e5@4 f#5@3 g#5@3 b5@4 ~ c#6@5 f#6@12]/2",
})).s("gm_piano").gain(0.48).pan(0.7)

// chords · accordion
const accordion = note("<~@2 A@8 ~@24 A@7 ~@17 A@7 ~@25 A@7 ~ A@15 ~ A@7 ~@7>".pickRestart({
  A: "~@4 [e4,b4]@3 ~@5 [e4,b4]@3 ~", // E5
})).s("gm_accordion").gain(0.44).pan(0.8)

// bass · electric bass finger · "Fingered bass"
const bass = note(`<
  ~@2 A B C@2 D@2 E@2 F G H@2 F I J@2 F G H@2 F I K@2 L M L M N O P@2 Q@2 R@2 S@2 H@2 F G H@2 F G T@2 N M N M N U V W
  S@2 J@2 X@2 Y@2 Z AA Z AA AB AC Z AA AD AE AB AF AG AH AB AI AJ AC AB AC AB AE AK AL S@2 AM@2 S@2 R@2 S@2 AM@2 S@2
  AN@2 S@2 AM@2 S@2 AN@2 AO ~@13
>`.pickRestart({
  A: "e2@6 ~@2 b1 ~ b1@4 ~@2", B: "a1@6 b1 ~ b1@4 ~@2 b1@2", C: "[c#2@5 ~@3 b1@4 ~@2 a1@6 ~@2 b1 ~ b1@4 b1@3 ~]/2",
  D: "[e2@6 b1 ~ b1@5 ~ a1@6 ~@2 b1 ~ b1@5 ~ b1@2]/2", E: "[c#2@5 ~@3 b1@4 ~@2 a1@6 ~@2 b1 ~ b1@5 ~ b1@2]/2",
  F: "e2@4 ~@2 e2@2 b1@5 ~ b1@2", G: "a1@5 ~ b1@6 ~@2 b1@2", H: "[c#2@5 ~ c#2@2 b1@4 ~@2 a1@6 ~@2 b1@6 ~@2 b1@2]/2",
  I: "a1@4 ~@2 b1 ~ b1@4 ~@2 b1@2", J: "[c#2@5 ~@3 b1@4 ~@2 a1@6 ~@2 b1@6 ~@2 b1@2]/2",
  K: "[c#2@5 ~@3 b1@4 ~@2 a1@6 a1@2 b1@5 ~ b1@3 ~]/2", L: "g#1@4 ~@2 a1 ~ a1@5 ~ c#2@2", M: "~@2 g#1@3 ~ a1@7 ~ a1@2",
  N: "g#1@5 ~ a1@7 ~ c#2@2", O: "~@2 g#1@3 ~ a1@2 a1@6 ~@2", P: "[g#1@5 ~ a1@6 ~@2 a1@7 ~ a1@2 b1@5 ~ b1@2]/2",
  Q: "[e2@5 ~ b1 ~ b1@5 ~ a1@7 ~ a1@2 b1@5 ~ b1@2]/2", R: "[c#2@6 ~@2 b1@5 ~ a1@6 ~@2 b1@6 ~@2 b1@2]/2",
  S: "[e2@4 ~@2 e2@2 b1@5 ~ a1@6 ~@2 a1@2 b1@5 ~ b1@2]/2", T: "[c#2@5 ~ c#2@2 b1@4 ~@2 a1@6 ~@2 b1@5 ~ b1@4]/2",
  U: "~@2 g#1@3 ~ a1@6 a1@3 ~", V: "g#1@5 ~ a1@7 ~ a1 ~", W: "a1@5 ~ a1@2 b1@4 ~@2 b1 ~",
  X: "[e2@4 ~@2 e2@2 b1@5 ~ a1@6 ~@4 b1@4 ~@2 b1@2]/2", Y: "[c#2@5 ~@3 b1@4 ~@2 a1@6 ~@2 a1 ~ a1@4 ~@4]/2",
  Z: "b1@5 ~ b1@7 ~@3", AA: "b1@5 ~ b1 ~ b1@5 ~@3", AB: "b1@5 ~ b1@7 ~ b1@2", AC: "c#2@5 ~ c#2@7 ~ c#2@2",
  AD: "b1@5 ~ b1@6 b1@3 ~", AE: "c#2@5 ~ c#2@5 ~ c#2@3 ~", AF: "c#2@3 ~ a1@2 a1 ~", AG: "b1@4 ~@2 b1@7 ~ b1 ~",
  AH: "c#2@2 c#2@3 ~ c#2 ~ a1@3 ~ a1@3 ~", AI: "c#2@2 ~ c#2 a1@3 ~", AJ: "b1@4 ~@2 b1 ~ b1@5 ~ b1@2",
  AK: "g#1@4 ~@2 a1 ~ a1@4 ~@2 a1 ~", AL: "a1@5 ~ a1@2 b1@4 ~@2 b1@2",
  AM: "[c#2@5 ~@3 b1@4 ~@2 a1@6 ~@2 a1@2 b1@5 ~ b1@2]/2", AN: "[c#2@5 ~ c#2@2 b1@4 ~@2 a1@6 ~@2 a1@2 b1@5 ~ b1@2]/2",
  AO: "e2 ~",
})).s("gm_electric_bass_finger").gain(0.64).pan(0.4)

// chords · overdriven guitar · "Muted/Driven guitar - L"
const overdriven_guitar = note(`<
  ~@9 A ~@19 B C ~ D@2 ~@3 E ~@3 F ~@24 G@4 H I J@3 I K L K L K L ~@7 M ~@15 M ~@3 M ~@3 M ~@14
>`.pickRestart({
  A: "~@2 e4 ~@5", B: "~@7 [a3,c#4,e4]", C: "~@5 e4@9 ~@2", D: "[~@7 [a3,c#4,e4]@5 ~@4]/2", E: "~@7 b3",
  F: "~@6 [b3,d#4,f#4]@7 ~@3", G: "[[b3,d#4,f#4]@15 ~]/4", H: "[b3,d#4,f#4]", I: "[c#4,e4,g#4]",
  J: "[[b3,d#4,f#4]@43 ~@5]/3", K: "[b3,f#4]", L: "[a3,e4] [b3,f#4]", M: "~ [b3,d#4,f#4]",
})).s("gm_overdriven_guitar").gain(0.39).pan(0.4)

// other · electric guitar muted · "Muted/Driven guitar - L"
const electric_guitar_muted = note("<~@10 A B C D A B C D A B C D A B E@2 ~@16 A B C D A B C ~@79>".pickRestart({
  A: "b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~", B: "c#3 ~ c#3 ~ c#3 ~ c#3 ~ d#3 ~ d#3 ~ d#3 ~ d#3 ~",
  C: "e3 ~ e3 ~ e3 ~ e3 ~ d#3 ~ d#3 ~ d#3 ~ c#3 ~", D: "c#3 ~ c#3 ~ c#3 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~",
  E: "[e3 ~ e3 ~ e3 ~ e3 ~ d#3 ~ d#3 ~ d#3 ~ [a3,c#4]@4 b3@2 [a3,c#4]@2 [b3,d#4]@7 ~@3, ~@14 c#3 ~@17]/2", // A B
})).s("gm_electric_guitar_muted").gain(0.39).pan(0.4)

// other · electric guitar muted · "Muted/Distorted guitar - R"
const electric_guitar_muted_2 = note("<~@10 A B C D E B C D E B C D E B C D ~@16 E B C D E B C D ~@78>".pickRestart({
  A: "~@6 e4 ~ d#4 ~ b3 ~ f#3 ~ b3 ~", B: "e4 ~ b3 ~ b3 ~ b3 ~ d#4 ~ b3 ~@3 b3 ~", C: "e4 ~ b3 ~@3 b3 ~ d#4 ~ b3 ~@5",
  D: "c#4 ~ b3 ~@3 e4 ~ d#4 ~ b3 ~ f#3 ~ b3 ~", E: "~@2 f#3 ~@3 e4 ~ d#4 ~ b3 ~ f#3 ~ b3 ~",
})).s("gm_electric_guitar_muted").gain(0.43).pan(0.7)

// chords · distortion guitar · "Muted/Distorted guitar - R"
const distortion_guitar = note("<~@69 A@2 ~@5 B ~@11 C@2 ~@38>".pickRestart({
  A: "[~@7 [b2,f#3]@9]/2", B: "d#3", C: "[~@3 e4@5]/2",
})).s("gm_distortion_guitar").gain(0.5).pan(0.7)

// chords · acoustic guitar steel · "Steel guitar"
const acoustic_guitar_steel = note(`<
  A@2 B@2 C@2 D@2 E@2 ~@2 F@2 ~@2 G@2 ~@2 H@2 ~@2 G@2 I@2 J@2 K@2 L M B@2 C@2 D@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@2 V W
  B@2 C@2 D@2 N@2 ~@24 B@2 C@2 D@2 E@2 B@2 C@2 D@2 E@2 B@2 C@2 D@2 E@2 X@4 Y@2 Z@4 ~@4
>`.pickRestart({
  A: "[~@20 c#5@2 d#5@2 g#5@3 ~@5, ~@3 g#3@4 f#4 g#4 b4@2 ~@5, ~@4 a3@7 ~@5, ~@5 c#4@6 ~@5, ~@6 d#4@5 ~@5]/2",
  B: "[[b3,e4,g#4]@2 [b3,e4,g#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] [a3,c#4,e4]@2 [a3,c#4,e4] [a3,c#4,e4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2]/2", // E B A B
  C: "[[c#4,e4,g#4]@4 [c#4,e4,g#4]@3 ~ [b3,d#4,f#4]@6 ~@6 [a3,c#4]@2 [b3,d#4,f#4]@6 [b3,d#4,f#4]@4, ~@14 e4@9 ~@9, ~@7 [a3,c#4]@3 ~@6, ~@9 b3@2 ~@5]/2", // C#m B A B A
  D: "[[b3,e4,g#4]@4 [b3,e4,g#4]@4 [b3,d#4,f#4]@4 [b3,d#4,f#4]@2 [a3,c#4,e4]@6 [a3,c#4,e4]@4 [b3,d#4,f#4] ~@3 [b3,d#4,f#4]@4]/2", // E B A B
  E: "[[c#4,e4,g#4]@2 [c#4,e4,g#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] a3@2 a3 [a3,c#4] [b3,d#4,f#4]@3 [b3,d#4,f#4] ~, ~@7 e4@4 ~@5, ~@7 c#4@3 ~@6, ~@9 b3@2 ~@5]/2", // C#m B A B
  F: "[~@10 [a3,c#4] [b3,d#4,f#4]@3 [b3,d#4,f#4] ~, ~@7 e4@4 ~@5, ~@7 [a3,c#4]@3 ~@6, ~@9 b3@2 ~@5]/2", // A B A
  G: "[~@20 [a3,c#4]@2 [b3,d#4,f#4]@3 ~@7, ~@7 e4@4 ~@5, ~@7 [a3,c#4]@3 ~@6, ~@9 b3@2 ~@5]/2", // A B A
  H: "[~@10 c#4 [b3,d#4,f#4]@3 ~@2, ~@7 [a3,e4]@4 ~@5, ~@7 c#4@3 ~@6, ~@9 b3@2 ~@5]/2", // B A5
  I: "[[g#3,b3,d#4]@3 [a3,c#4,e4]@4 [g#3,c#4,e4]@2 [g#3,b3,d#4]@2 [a3,c#4,e4]@2 [a3,c#4,e4] [a3,c#4,e4]@2]/2", // G#m A C#m G#m A
  J: "[[g#3,b3,d#4]@3 [a3,c#4,e4]@4 [g#3,c#4,e4]@2 ~@2 [a3,c#4,e4] [a3,c#4,e4]@2 [a3,c#4,e4]@2, ~@9 [g#3,b3,d#4]@7]/2", // G#m A C#m A G#m
  K: "[[g#3,b3,d#4]@6 [a3,c#4,e4]@8 [g#3,c#4,e4]@4 ~@4 [a3,c#4,e4]@4 [a3,c#4,e4]@2 [a3,c#4,e4]@3 ~, ~@18 [g#3,b3,d#4]@13 ~]/2", // G#m A C#m A G#m
  L: "[g#3,b3,d#4]@3 a3@2 a3 [a3,c#4,e4]@2, ~@3 [c#4,e4]@3 ~@2", // G#m A C#m
  M: "[a3,c#4,e4]@4 [a3,c#4,e4]@2 [a3,c#4,e4]@2 [b3,d#4,f#4]@4 [b3,d#4,f#4]@2 [b3,d#4,f#4] ~", // A B
  N: "[[c#4,e4,g#4]@2 [c#4,e4,g#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] [a3,c#4,e4]@4 ~@5]/2", // C#m B A
  O: "[[b3,e4,g#4]@2 [b3,e4,g#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] [a3,c#4,e4]@3 [a3,c#4,e4] [b3,d#4,f#4]@3 [b3,d#4,f#4]@2]/2", // E B A B
  P: "[[c#4,e4,g#4]@2 [c#4,e4,g#4]@2 [b3,d#4,f#4] [b3,d#4,f#4]@2 a3@2 a3 [a3,e4] [b3,d#4,f#4]@2 [b3,d#4,f#4] [b3,d#4,f#4]@2, ~@7 c#4@4 ~@5, ~@7 e4@3 ~@6, ~@9 d#4@2 ~@5]/2", // C#m B A5 B
  Q: "[[b3,e4,g#4]@2 [b3,e4,g#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] [a3,c#4,e4]@2 [a3,c#4,e4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] [b3,d#4,f#4]@2]/2", // E B A B
  R: "[[c#4,e4,g#4]@2 [c#4,e4,g#4]@2 [b3,d#4,f#4] [b3,d#4,f#4]@2 ~@3 [a3,c#4] [b3,d#4,f#4]@3 [b3,d#4,f#4] ~, ~@7 e4@4 ~@5, ~@7 [a3,c#4]@3 ~@6, ~@9 b3@2 ~@5]/2", // C#m B A B A
  S: "[[g#3,b3,d#4]@3 a3@3 a3 [g#3,c#4,e4]@2 g#3 ~ [a3,c#4,e4]@2 [a3,c#4,e4] [a3,c#4,e4]@2, ~@3 [c#4,e4]@4 ~@2 [b3,d#4]@7]/2", // G#m C#m A C#m B
  T: "[[g#3,b3,d#4]@3 [a3,e4]@3 [a3,e4] [g#3,c#4,e4]@2 ~@2 [a3,c#4,e4] [a3,c#4,e4]@2 [a3,c#4,e4]@2, ~@3 c#4@4 ~@2 [g#3,b3,d#4]@7]/2", // G#m A5 C#m A G#m
  U: "[[g#3,b3,d#4]@3 [a3,e4]@3 [a3,e4] [g#3,c#4,e4]@2 [g#3,b3,d#4]@2 [a3,c#4,e4]@2 [a3,c#4,e4] [a3,c#4,e4]@2, ~@3 c#4@4 ~@9]/2", // G#m A5 C#m G#m A
  V: "[g#3,b3,d#4]@2 [g#3,b3,d#4] [a3,c#4,e4]@2 [a3,c#4,e4]!3", // G#m A
  W: "[a3,c#4,e4]@4 [c#4,e4]@2 [c#4,e4]@2 [b3,f#4]@4 [b3,f#4]@2 [b3,d#4,f#4] ~, ~@2 a3@2 d#4@3 ~", // A C#m B5 B
  X: "[~@4 f#4@3 a4@3 g#4@2 f#4@4, e4, ~@2 b4@5 ~@9]/2", Y: "[~@2 b4@2 f#4@3 a4@3 g#4@2 f#4@4, e4]/2",
  Z: "[~@8 f#4@6 ~ [a3,e4]@8 ~ [b3,d#4,f#4]@10 ~ e4@27 ~@2, e4@9 ~@5 c#4@9 ~@11 [a3,c#4]@28 ~@2, ~@2 b4@5 ~@25]/4", // A5 B A
})).s("gm_acoustic_guitar_steel").gain(0.48).pan(0.6)

// chords · electric guitar clean · "Clean guitar"
const electric_guitar_clean = note("<~@82 A@2 B C@2 D E@2 ~@38>".pickRestart({
  A: "[~@6 b3 ~@2 e3@2 c#4@2 b3 c#4@2, e3@4 e3@3 b2@4 ~@5, ~@2 b3@4 ~@2 c#3@3 ~@5]/2",
  B: "~@6 b3 b2, e3@4 e3@3 ~, ~ b3@2 ~",
  C: "[c#3@2 e3@3 ~ c#4@4 e3@2 ~@16 b3@2 b2@2, ~@3 b3@2 b3@2 ~, ~@8 e3@3 e3@4 ~]/2",
  D: "c#3@2 e3@3 ~ c#4@4 b3@2 c#4@2 ~@2", E: "[~@12 b3@6 b3@5 ~@9, e3@6 e3@17 ~@9, ~ b3@2 ~@5]/2",
})).s("gm_electric_guitar_clean").gain(0.48).pan(0.6)

// other · pad halo · "Halo"
const pad_halo = note("<~@124 A@4>".pickRestart({
  A: "[~@11 b5@3 c#6@5 e6@30 ~@15]/4",
})).s("gm_pad_halo").gain(0.32).pan(0.7)

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

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

// … 27 more lines

More by The Corrs