Strudelify
Ain't Goin' Down ('til the Sun Comes Up) cover art

Ain't Goin' Down ('til the Sun Comes Up)

Brooks Garth

KeyG majorTempo168 bpm
0:00/0:00
// Ain't Goin' Down ('til the Sun Comes Up) — Brooks Garth
// 168 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 47, 4/4 at bar 47, 2/4 at bar 88, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 130 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): GUITAR E.1.
setcpm(168/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.

// bass · electric bass finger · "BASS"
const bass = note(`<
  ~ A@3 B A@3 B A@4 C D A E F@2 G@2 A@8 C D A E F@2 A B A H C@2 A I C J@2 K ~ L A@3 M C N A O F P A Q R S T U@2 R V W
  A@3 M C N A O F P A X C Y A Z C AA AB AC AD A@3 B AE A@2 AF F@2 AG AH A@3 AI C AJ A AK F AL AM@2 C@2 A I C J@2 K ~
  AN@2 AO@5
>`.pickRestart({
  A: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~", B: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ e1@2 f1@2 f#1@2",
  C: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~", D: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ e1 ~",
  E: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ c2 ~", F: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~",
  G: "g1 ~ g1 ~ g1 ~ g1 ~ g1@2 ~@2 g1@2 ~@2", H: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ a#1@2 b1@2",
  I: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ a#1@6", J: "[c2 ~ c2 ~ c2 ~ c2 ~ c2@4 c3@6 a#2@6 f3@2 ~@2 e3@2 ~@2, ~@24 e3 ~@7]/2",
  K: "d3 a#2@3 g2 ~@3", L: "~@2 e1@2 f1@2 f#1@2 g1 ~ g1 ~ g1 ~ g1 ~", M: "g1 ~ g1 ~ a#1 ~ b1 ~ c2 ~ c2 ~ c2 ~ c2 ~",
  N: "c2 ~ e1@2 f1@2 f#1@2 g1 ~ g1 ~ g1 ~ g1 ~", O: "g1 ~ b1@2 c2@2 c#2@2 d2 ~ d2 ~ d2 ~ d2 ~",
  P: "d2 ~ e1@2 f1@2 f#1@2 g1 ~ g1 ~ g1 ~ g1 ~", Q: "g1 ~ e1@2 f1@2 f#1@2 g1@2 ~@6", R: "~@4 g1 ~@3", S: "~@4 c2 ~@3",
  T: "~@8 g1@3 ~@5", U: "~@4 d2 ~@3", V: "g1 ~@3 g1 ~ g1 ~", W: "g1 ~ e1@2 f1@2 f#1 ~ g1 ~ g1 ~ g1 ~ g1 ~",
  X: "g1 ~ g1 ~ a#1 ~ b1@2 c2 ~ c2 ~ c2 ~ c2 ~", Y: "c2 ~ c2 ~ c2 ~ c2 ~ g1 ~ g1 ~ g1 ~ g1 ~",
  Z: "g1 ~ a#1@6 c2 ~ c2 ~ c2 ~ c2 ~", AA: "c2@2 c3@3 a#2@3", AB: "f3 ~ e3 ~ d3 a#2@3, e3 ~@15", AC: "g2 ~@7",
  AD: "~@5 e1 f1 f#1", AE: "[g1,g#1] ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~",
  AF: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ b1 ~ c2@2 c#2 ~", AG: "g2 ~ g2 ~ g2 ~ g2 ~ a#2@2 g2 ~ a#2@3 ~", AH: "~@2 c3@3 ~@5 g3@6",
  AI: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1@2 a#1 ~ b1 ~", AJ: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ e1 ~ f1 ~ f#1 ~",
  AK: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ b1 ~ c2 ~ c#2 ~", AL: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2@2",
  AM: "[g2@6 f2@6 c2@6 a#1@5 ~ a#1@2 g1@2 a#1@2 b1@2, f2 ~@11 c#2 ~@19]/2",
  AN: "[~@8 [g1,g2]@6 ~@4 g2@2 ~@4 g1@2 ~ g1@2 ~ g1@2, ~@14 g2@2 g2@2 ~@4 g2@4 g2@3 g2@3, ~@15 g1@2 g1@2 ~ g1@4 ~@8]/2", // G
  AO: "[g2@2 ~@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1 ~@3 g1@2 g1@2 g1 g1@2 [g1,g2]@2 ~@7 g1@2 [g1,g2]@2 [g1,g2]@2 ~@3 g1@2 ~@3 g1@2 [g1,g2]@2 ~@6 g1@13 ~ g1@3 ~@5, g1@3 g3@12 g3@31 g1@2 ~@5 g1@5 ~@22, ~@2 d3@25 g2 g1 g2 g1 g2 g1 g2@2 ~@5 g2 g1 g2@2 ~ g2@2 g2@3 ~@2 g2@3 g2@17 ~@8, ~@2 g2@15 g4@32 ~@31, ~@15 g1 d4@32 ~@32]/5", // G
})).s("gm_electric_bass_finger").gain(0.52)

// chords · acoustic guitar steel · "GUITAR 12 A.2"
const acoustic_guitar_steel = note("<~@97 A@4 B ~@28>".pickRestart({
  A: "[~@16 [a4,d5]@15 ~@17 [g3,d4,g4]@8 ~ g3@7, ~@15 [d3,a3,d4,f#4]@16 [d3,a3,d4]@15 g2@9 ~ [g2,d3,b3,d4,g4]@8, ~@32 [f#4,a4,d5]@15 [d3,b3]@9 ~@8]/4", // D5 G5 D D5 G D G
  B: "[g2,d3,g3,b3,d4,g4]!2", // G
})).s("gm_acoustic_guitar_steel").gain(0.28)

// chords · overdriven guitar · "GUITAR DIST. L."
const overdriven_guitar = note(`<
  ~ A@2 B@2 A@2 B@2 A@2 B@2 C@2 D@2 E@2 F@2 G@2 B@2 A@2 B@2 C@2 D@2 E@2 A@2 B@2 H@2 I@2 J@4 ~ K L M L N O P L Q R S L T
  U V U W X Y Z AA L M L N O P L Q R S L AB O AC AD AE AF AG@2 AH ~@11 AI AJ A@2 B@2 C@2 D@2 E@2 AK@2 AL@2 I@2 J@4 ~
  AM@2 AN AO@4
>`.pickRestart({
  A: "[[g2,d3]@3 ~ [g2,d3]@2 ~@2 [g2,d3]@2 ~@4 [g2,d3]@5 ~ [g2,d3]@2 ~@2 [g2,d3]@2 ~@2 [g2,d3]@2 ~@2]/2", // G5
  B: "[[g2,d3]@3 ~ [g2,d3]@2 ~@2 [g2,d3]@2 ~@4 [g2,d3]@5 ~ [g2,d3]@2 ~@2 [g2,d3]@2 ~@2 g2@3 ~]/2", // G5
  C: "[[c3,g3]@3 ~ [c3,g3]@2 ~@2 [c3,g3]@2 ~@4 [c3,g3]@5 ~ [c3,g3]@2 ~@2 [c3,g3]@2 ~@2 [c3,g3]@2 ~@2]/2", // C5
  D: "[[g2,d3]@3 ~ [g2,d3]@2 ~@2 [g2,d3]@2 ~@4 [g2,d3]@5 ~ [g2,d3]@2 ~@2 [g2,d3]@2 ~@2 g2@2 c3@2]/2", // G5
  E: "[[d3,a3]@3 ~ [d3,a3]@2 ~@2 [d3,a3]@2 ~@4 [d3,a3]@5 ~ [d3,a3]@2 ~@2 [d3,a3]@2 ~@2 [d3,a3]@2 ~@2]/2", // D5
  F: "[[g2,d3]@3 ~ [g2,d3]@2 ~@2 [g2,d3]@2 ~@4 [g2,d3]@4 ~@2 [g2,d3]@2 ~@2 [g2,d3]@2 ~@2 g2@2 ~@2]/2", // G5
  G: "[~@4 [g2,d3]@2 ~@2 [g2,d3]@2 ~@4 [g2,d3]@5 ~ [g2,d3]@2 ~@2 [g2,d3]@2 ~@2 [g2,d3]@2 ~@2]/2", // G5
  H: "[g3@3 ~ [c3,g3]@2 ~@2 [c3,g3]@2 ~@4 [c3,g3]@5 ~ [c3,g3]@2 ~@2 g3@2 ~@6]/2", // C5
  I: "[[g2,d3]@3 ~ [g2,d3] ~@3 [g2,d3]@2 ~@4 [g2,d3]@4 ~@2 [g2,d3] ~@3 [g2,d3]@2 [a#2,f3]@5 ~, ~@26 d3 ~@5]/2", // G5 A#5
  J: "[[c3,g3]@2 ~@2 [c3,g3] ~@3 [c3,g3]@2 ~@4 [c3,g3]@4 ~@2 [c3,g3]@2 ~@2 g3@32 [g2,d3]@2 ~@6, ~@6 c3@7 ~@3]/4", // C5 G5
  K: "~@8 [g2,d3]@3 ~ [g2,d3]@2 ~@2", L: "[g2,d3]@2 ~@4 [g2,d3]@5 ~ [g2,d3]@2 ~@2",
  M: "[g2,d3]@2 ~@2 [g2,d3]@2 ~@2 [g2,d3]@3 ~ [g2,d3]@2 ~@2", N: "[g2,d3]@2 ~@2 g2@3 ~ [c3,g3]@3 ~ [c3,g3]@2 ~@2",
  O: "[c3,g3]@2 ~@4 [c3,g3]@5 ~ [c3,g3]@2 ~@2", P: "[c3,g3]@2 ~@2 [c3,g3]@2 ~@2 [g2,d3]@3 ~ [g2,d3]@2 ~@2",
  Q: "[g2,d3]@2 ~@2 g2@2 c3@2 [d3,a3]@3 ~ [d3,a3]@2 ~@2", R: "[d3,a3]@2 ~@4 [d3,a3]@5 ~ [d3,a3]@2 ~@2",
  S: "[d3,a3]@2 ~@2 [d3,a3]@2 ~@2 [g2,d3]@3 ~ [g2,d3]@2 ~@2", // D5 G5
  T: "[g2,d3]@2 ~@2 [g2,d3]@2 [a#4,d5] ~ [a#4,d5]@5 ~@3, ~@8 [g2,d3]@3 ~@5", U: "~@6 [a#4,d5] ~ [a#4,d5]@4 ~@4",
  V: "~@6 [a#4,d5] ~ d5@5 ~@3", W: "~@6 [a#4,c5,d5] ~ [a#4,d5]@4 ~@4", X: "~@6 [a#4,c5,d5] ~ [a#4,d5]@5 ~@3",
  Y: "~@6 [a#4,c5,d5] ~@3 g3@2 ~@2 g3@2", Z: "~ g3 ~ g3 ~ g3 ~ g3", AA: "~@2 g3@2 ~@2 g3@2 [g2,d3]@3 ~ [g2,d3]@2 ~@2",
  AB: "[g2,d3]@2 ~@2 [g2,d3]@2 ~@2 g3@3 ~ [c3,g3]@2 ~@2", AC: "g3@2 ~@6 [g2,d3]@3 ~ [g2,d3] ~@3",
  AD: "[g2,d3]@2 ~@4 [g2,d3]@4 ~@2 [g2,d3] ~@3", AE: "[g2,d3]@2 [a#2,f3]@5 ~ [c3,g3]@2 ~@2 [c3,g3] ~@3, ~@2 d3 ~@13",
  AF: "[c3,g3] ~@2 [c3,g3]@2 ~ [c3,g3] ~", AG: "[g3, c3@7 ~]/2", AH: "[g2,d3] ~@7", AI: "[g2,d3]!2",
  AJ: "d3@7 ~ [g2,d3]@7 ~", AK: "[g4@6 f4@6 c4@6 a#3@5 ~ a#3@2 g3@2 a#3@2 b3@2, f4 ~@11 c#4 ~@19]/2",
  AL: "[[g3,c4]@3 ~ [c3,g3]@2 ~@2 [c3,g3]@2 ~@4 [c3,g3]@5 ~ [c3,g3]@2 ~@2 g3@2 ~@6]/2", // C5
  AM: "[~@8 [f5,f#5] ~@10 f5 ~ [d5,f5] f5 d5 f5 d5 c#5 ~ [c#5,d5] d5 c#5 ~, ~@8 g5@11 ~ g5@2 ~@5 c5@2 ~@3]/2", // F#maj7 Dm Dmaj7
  AN: "a#4 c5 c#5 ~@2 c#5 a#4 ~ f4 g4 ~ g4 d4 c#4 ~@2, ~@3 a#4@2 ~@11, ~@2 c5 ~@5",
  AO: "[~ d4 ~@2 c4 ~@3 f3 g3 ~@2 g3@40 ~@12]/4",
})).s("gm_overdriven_guitar").gain(0.28).pan(0.2)

// chords · overdriven guitar · "GUITAR DIST. L." · soft notes
const overdriven_guitar_soft = note(`<
  ~ A ~@2 B A ~@2 B A ~@2 B C ~@2 B D ~@2 E@2 ~@2 B A ~@2 B C ~@2 B D ~ A ~@2 B ~ F ~@7 G ~@3 H ~@3 I ~ G ~@3 J ~@5 G
  ~@3 K ~@3 I ~ G ~@3 L ~@11 M N O N ~@3 P A ~@2 B C ~@2 B D ~@4 F ~@8 Q R S ~@3
>`.pickRestart({
  A: "~@2 a#2 ~@5", B: "~@12 d3@3 ~", C: "~@2 d#3 ~@5", D: "~@2 f3 ~@5", E: "[~@6 d3 [g2,d3]@2 ~ a#2 ~@5]/2",
  F: "~@4 c3 ~ [c3,g3] ~", G: "~@6 a#2 ~", H: "~@4 d3@3 ~@9", I: "~@4 d3@3 ~@5 f3@2 ~@2", J: "~@8 a#4@5 ~@3",
  K: "~@4 d3@3 ~@5 d#3@2 ~@2", L: "c3 ~ [c3,g3] ~@5", M: "~@4 [g2,d3] ~ d3 ~@5 [g2,d3] ~ d3 ~",
  N: "~@4 [g2,d3] ~ [g2,d3] ~@5 [g2,d3] ~ d3 ~", O: "~@4 [g2,d3] ~ [g2,d3] ~@5 [g2,d3] ~ [g2,d3] ~", P: "g2@7 ~@9",
  Q: "~@15 c5", R: "~@2 c5 ~ g4@2 ~ g4 ~@2 [d4,f4] ~ f4 ~ [c4,d4] c#4",
  S: "~ c#4 c4 a#3@2 [c4,c#4] a#3 g3 ~@2 f3 [d3,f3] ~@4", // C#maj7 Dm
})).s("gm_overdriven_guitar").gain(0.17).pan(0.2)

// chords · electric guitar clean · "GUITAR E.1"
const electric_guitar_clean = note("<~@98 A@2 ~@30>".pickRestart({
  A: "[~@14 d3@17 ~]/2",
})).s("gm_electric_guitar_clean").gain(0.64)

// chords · overdriven guitar · "GUITAR-DIST. R."
const overdriven_guitar_2 = note(`<
  ~ A B C D A B C D A B C D E F C G H I C J A B C D A B C D E F C G H I A B C D K L M N E O ~@3 P Q R S T U V S W X Y Q
  Z AA AB@4 AC AD AE Q R S AF U V S W X Y Q AG AH V AI AJ AH ~@8 AK@4 AL AM AN@2 A B C D E F C G H I AO@2 AP L M N E O
  ~@10
>`.pickRestart({
  A: "~@2 [g2,d3]@2 ~@8 [g2,d3]@3 ~", B: "~ [g2,d3] ~@3 [g2,d3] ~ [g2,d3]", C: "~@2 [g2,d3]@3 ~@7 [g2,d3]@2 ~@2",
  D: "~@2 [g2,d3]@3 ~@5 [g2,d3]@3 ~ [g2,d3]@2", E: "~@2 [c3,g3]@2 ~@8 [c3,g3]@3 ~",
  F: "~ [c3,g3] ~@3 [c3,g3] ~ [c3,g3]", G: "~@2 [g2,d3]@3 ~@5 [g2,d3]@3 ~ g2@2", H: "~@2 [d3,a3]@2 ~@8 [d3,a3]@3 ~",
  I: "~ [d3,a3] ~@3 [d3,a3] ~ [d3,a3]", J: "~@2 [g2,d3]@3 ~@11", K: "c2@2 [c3,g3]@3 ~@7 [c3,g3]@3 ~",
  L: "~@2 [c3,g3]@3 ~@5 [c3,g3]@2 ~@2 [c3,g3]@2", M: "~@2 [g2,d3]@3 ~@7 [g2,d3]@3 ~", N: "~@2 [g2,d3]@3 ~@5 [a#2,f3]@6",
  O: "~@2 [c3,g3]@3 ~@11", P: "~@5 [g2,d3] ~@2", Q: "~@4 [g2,d3]@3 ~@3 [g2,d3]@2 ~@4",
  R: "~@2 [g2,d3]@2 ~@2 [g2,d3]@3 ~ [g2,d3]@3 ~@3", S: "~@4 [g2,d3]@2 ~@4 [g2,d3]@3 ~@3",
  T: "~@2 [g2,d3]@3 ~ [c3,g3]@3 ~ [c3,g3]@2 ~@4", U: "~@4 [c3,g3]@3 ~@3 [c3,g3]@2 ~@4",
  V: "~@2 [c3,g3]@2 ~@2 [c3,g3]@3 ~ [g2,d3]@3 ~@3", W: "~@2 [g2,d3]@3 ~ g2@3 ~ [d3,a3]@2 ~@4",
  X: "~@4 [d3,a3]@3 ~@3 [d3,a3]@2 ~@4", Y: "~@2 [d3,a3]@2 ~@2 [d3,a3]@3 ~ [g2,d3]@2 ~@4",
  Z: "~@2 [g2,d3]@2 ~@2 [g2,d3]@2 [a#4,d5]@5 ~@3, ~@6 [a#4,d5] ~@9", AA: "~@6 [a#4,d5] ~ [a#4,d5]@5 ~@3",
  AB: "~@6 [a#4,d5] ~ [a#4,d5]@4 ~@4", AC: "~@3 [a#4,d5] g3 ~ g3 ~", AD: "g3 ~ g3 ~ g3 ~ g3 ~",
  AE: "g3 ~ g3 ~@2 [g2,d3] ~@2", AF: "~@2 [g2,d3]@3 ~ [g2,d3]@3 ~ [c3,g3]@2 ~@4",
  AG: "~@2 [g2,d3]@2 ~@2 [g2,d3]@3 ~ [c3,g3]@3 ~@3", AH: "~@4 [c3,g3]@3 ~@3 [c3,g3]@3 ~@3",
  AI: "~@4 [g2,d3]@3 ~@3 [g2,d3]@3 ~@3", AJ: "~ [a#2,f3]@3 ~ [c3,g3] ~@2", AK: "~@4 [g2,d3] ~@7 [g2,d3] ~@3",
  AL: "[d3,a3]@15 ~", AM: "[d3,a3]", AN: "[g3,d4]@7 ~ [g3,d4]@8",
  AO: "[g5@6 f5@6 c5@6 a#4@5 ~ a#4@2 g4@2 a#4@2 b4@2, f5 ~@11 c#5 ~@19]/2", AP: "c5@2 [c3,g3]@3 ~@7 [c3,g3]@3 ~",
})).s("gm_overdriven_guitar").gain(0.4).pan(0.8)

// other · overdriven guitar · "GUITAR-LEAD 1"
const overdriven_guitar_3 = note(`<
  A B C D@2 B C E F@2 ~@27 G H@2 I@2 J K L@2 M ~@21 N O P Q R@2 S T U V@2 W@2 ~ X ~ Y ~ Z AA AB ~@30 AC@2 AD ~@8
>`.pickRestart({
  A: "~@7 d4", B: "~@2 g4 ~ g4@2 d4@2 g4 ~ g4 ~ d4@2 g4 ~", C: "g4 ~ d4 ~ g4 ~ c4@4 a#3@2 g3 ~ g3@2, ~@6 d4 ~@9",
  D: "[~@3 g3 [a#4,d5] ~ [a#4,d5]@4 g3 ~ [a#4,d5] ~ [a#4,d5]@4 ~@2 [f4,g4]@2 d4 ~ f4@2 g4@2 ~@2 d4@2]/2", // A# Fsus2
  E: "~@4 g5@7 ~ g5@2 f5 ~, ~@4 f5 ~@11", F: "[g5 f5 d5@2 c5@2 a#4 ~ c5@3 a#4 g4@2 g5@17 ~]/2",
  G: "~@4 c4@8 a#3@2 g3 ~", H: "[c4 g3 a#3 g3 f3 d3 c#3 c3@6 ~@3]/2", I: "[~@4 c4@2 a#3 g3@3 ~@6]/2", J: "~@4 g3 a#3@3",
  K: "c4@3 ~@13", L: "[~@12 c4@6 a#3@5 ~ f4@3 ~ e4@3 ~, ~@12 d4 ~@19]/2", M: "d4@2 a#3@6 g3@3 ~@5", N: "~@5 a#3 g3 ~",
  O: "[a#3,c#4] g3 ~ a#3 g3 ~ a#3 g3", P: "~@2 a#3@2 g3@3 ~ a#3@2 g3@3 ~ a#3@2", Q: "g3@3 ~ a#3@2 g3@3 ~ a#3@2 g3@3 ~",
  R: "[a#3@2 g3@3 ~@3 d4@6 d4@6 d4@6 d4@5 ~, ~@7 a#3@2 ~@23]/2", S: "d4@8 c4@4 a#3@2 g3 ~",
  T: "a#3@2 g3 ~ c4@4 a#3@2 g3 ~ a#3@2 g3 ~", U: "~ a#3@2 ~ g3@3 ~@3 [f4,a4] ~ [f4,a4]@2 d4 ~, c4 ~@7",
  V: "[[f4,g#4,a4] ~ [f4,a4]@2 d4 ~ [f4,a4] ~ [f4,g#4,a4]@2 d4@2 c#4@2 c4@9 ~@3 [f5,a#5]@4 ~@2]/2", // F A#5
  W: "[[f5,a#5]@4 ~@2 [f5,a#5]@4 [g5,a#5]@2 f5@2 g5@9 ~@9]/2", X: "c4@2 a#3 g3@3 ~@2", Y: "g3@2 a#3@6 c4@3 ~@5",
  Z: "~@4 c4@6 a#3@5 ~, ~@4 d4 ~@11", AA: "f4@3 ~ e4@3 ~ d4@2 a#3@6", AB: "g3@3 ~@13",
  AC: "[~@6 c5@3 a#4@3 f5 ~ e5 ~]/2", AD: "d5@2 a#4@6 g4@3 ~@5",
})).s("gm_overdriven_guitar").gain(0.64)

// other · overdriven guitar · "GUITAR-LEAD 2"
const overdriven_guitar_4 = note("<~ A B ~@2 A B ~@65 C D E F G ~@53>".pickRestart({
  A: "~@2 d4 ~ d4@2 ~@2 d4 ~ d4 ~@3 d4 ~", B: "d4 ~ d4@2 ~@12", C: "~@10 g4 ~ g4@3 ~",
  D: "g4 ~ g4@2 ~@2 g4 ~ g4@3 ~ g4 ~ g4@2", E: "~@2 g4 ~ g4@2 ~@2 g3@4 f3@2 d3 ~",
  F: "f3@2 d3 ~ g3@4 f3@2 d3 ~ f3@2 d3 ~", G: "~ f3@2 ~ d3@3 ~@9, g3 ~@7",
})).s("gm_overdriven_guitar").gain(0.64)

// other · harmonica
const harmonica = note(`<
  ~@21 A B C@2 ~@2 D@4 E@4 ~ F@2 ~@10 G H I J@2 K L M N@3 O P ~@29 Q R S T@2 U@3 ~@14 V@2 W ~@8 X@2 ~@4 Y
>`.pickRestart({
  A: "f5!3 ~ [d5,f5] d5 [d5,f5] f5 d5 f5 [d5,f5] d5 f5 d5 [d5,f5] f5, d5 ~@7", // Dm
  B: "~ f5!2 d5 [d5,f5] f5 d5 f5 d5 [d5,f5] f5 d5 f5 [d5,f5] d5 f5, d5 ~@7", // Dm
  C: "[d5 [d5,f5] f5 d5 [d5,f5] f5 d5 f5 d5 f5!2 ~ [d5,f5] ~ [c#5,d5] ~@3 a#4@2 g4@2 f4@2 g4@2 f4@2 g4@4, ~@9 d5@2 ~@2 f5@2 ~@17, ~@7 c5@2 ~@7]/2", // Dm Dmaj7
  D: "[~@7 g4@24 ~]/4", E: "[~@15 a#4@15 d4@28 ~@6, d4@17 ~@47]/4",
  F: "[~@4 d5@4 c5@3 ~ g4@13 ~@7, ~@4 c5 ~@6 a#4@2 ~@19]/2", G: "~@8 [d5,f5] f5 [d5,f5] d5 [d5,f5] f5 d5 [d5,f5]",
  H: "f5 d5 [d5,f5] f5 d5 [d5,f5] f5 d5 f5!2 d5 [d5,f5] f5 d5 [d5,f5] f5", // Dm
  I: "d5 f5 [d5,f5] d5 f5 [d5,f5] d5 f5 d5 [d5,f5] f5 d5 [d5,f5] f5 d5 [d5,f5]", // Dm
  J: "[f5 d5 f5 [d5,f5]@3 g5@12 f5 d5@3 a#5@6 [g5,g#5] ~@3]/2", K: "~@6 g5@5 ~ f5@2 d5 ~, ~@6 f5 ~@5 g5 ~@3",
  L: "c#5@2 c5 ~ a#4@2 g4@6 a#4@2 ~@2", M: "~@6 c5@4 a#4 ~ c5@2 a#4 ~",
  N: "[c5@2 a#4@2 ~@2 a5@5 ~ a5@6 a5@5 a5@6 ~ a5@7 ~ a#5@5 ~ g5@3 ~, ~ g4 ~@10]/3", O: "f5@5 ~ c5@4 a#4 ~ c5@2 a#4 ~",
  P: "c5@3 a#4 g4@6 ~@6", Q: "[d5,f5] f5 [d5,f5] d5 f5 d5 [d5,f5] f5 d5 [d5,f5] f5 d5 [d5,f5] f5 d5 f5",
  R: "[d5,f5] d5 f5 d5 [d5,f5] f5 d5 f5 [d5,f5] d5 f5 [d5,f5] d5 f5 d5 f5", // Dm
  S: "[d5,f5] d5 f5 d5 [d5,f5] f5 d5 f5 [d5,f5] d5 f5 d5 [d5,f5] f5 d5 [d5,f5]", // Dm
  T: "[f5 d5 f5 d5 [d5,f5] f5 d5 f5 [d5,f5] d5 f5 d5 [d5,f5] f5 d5 f5@2 ~@3 g4 ~ [d4,g4] ~@5 [d4,g4] ~ [d4,g4] ~, ~@15 d5 ~@16]/2", // Dm G5
  U: "~@4 [d4,g4] ~ [d4,g4] ~@5 [d4,g4] ~ [d4,g4] ~", // G5
  V: "[g5@6 f5@6 c5@6 a#4@5 ~ a#4@2 g4@2 a#4@2 b4@2, f5 ~@11 c#5 ~@19]/2", W: "c5 ~@7",
  X: "[~@10 [f5,f#5] ~@21, ~@4 g5@5 ~@7]/2", Y: "~@8 g5@3 ~@5",
})).s("gm_harmonica").gain(0.56).pan(0.3)

// chords · percussive organ · "ORGAN 2"
const percussive_organ = note(`<
  ~ A@8 B@4 C@6 D@2 E@8 F@4 G@2 H@6 I@2 J@3 K ~ L@8 M@5 ~@7 N@6 O@4 P@6 Q@3 R S T@5 U@4 V W X Y Z@4 AA@2 AB@2 AC@2 AD AE
  AF@4 AG@3 AH ~ AI@3 AJ@4
>`.pickRestart({
  A: "[g5,d6,g6]/8", B: "[g4,d5]/4", C: "[[c5,g5]@32 g4@31 ~ a5@32, ~@32 d5@63 ~]/6",
  D: "[g4,d5]@8 [g4,d5]@3 ~ [g4,d5]@3 ~", E: "[g4,d5]/8", F: "[[c5,g5] [g4,d5]]/4", G: "[d5,a5]/2",
  H: "[[g4,g5]@61 ~@3 [c5,g5]@32, d5@11 ~@5]/6", I: "[[g4,d5]@13 [a#4,f5]@3]/2",
  J: "[[c5,g5]@34 a#4@6 f5@3 ~ e5@2 ~@2]/3", K: "d5@2 a#4@6 g4@3 ~@5",
  L: "[~@8 [g5,d6,g6]@63 ~ [c5,g5]@32 [g4,d5]@24, ~@8 c#6 ~@119]/8", // G5 C5 G5
  M: "[~@8 [d5,a5]@31 [g4,d5]@33 [g5,d6,g6]@2 ~@6]/5", N: "[~@8 [g5,d6,g6]@64 ~ c#5 ~@22, ~@3 [c5,g5]]/6",
  O: "[~ [g5,d6,g6]@4 [d5,a5]@3]/4", P: "[~@8 [g5,d6,g6]@31 ~ [c5,g5]@32 [g4,d5]@24]/6",
  Q: "[~@2 [a#4,f5]@6 c5@28 c6@6 a#5@5 ~, ~@4 g5@13 ~@7]/3", R: "f6@3 ~ e6@2 ~@2 d6@2 a#5@6", S: "g5@3 ~@13",
  T: "[~ g4@4, ~@15 d5@64 ~, ~@15 g5@61 ~@4, ~@8 a4 ~@31]/5", U: "[[f6,f#6] ~@63, g6]/4",
  V: "[d5,a5,d6]@15 ~, g#5 ~@15", W: "[d5,a5,d6], g#5 ~@15", X: "[g4,d5]@7 ~ [g4,d5]@8, [f#4,c#5] ~@7 [f#4,c#5] ~@7",
  Y: "[f#4,c#5] g4@6 c#5 [g4,d5]@8, d5@7 ~ f#4 ~@7", Z: "[[g4,d5,g5]@63 ~]/4", AA: "[c5,g5]/2", AB: "[g4,d5]/2",
  AC: "a5/2", AD: "g6@3 f6@3 c6@2, f6 ~@11 c#6 ~@3", AE: "~@2 a#5@5 ~ a#5@2 g5@2 a#5@2 b5@2",
  AF: "[[c5,g5]@32 [g4,d5]@23 ~ [g4,d5]@2 [a#4,f5]@6, c6@29 ~@35]/4", // C5 G5 A#5
  AG: "[g5@24 c5@4 [c5,c6]@6 [a#4,a#5]@6 [f5,f6]@3 ~ [e5,e6]@2 ~@2, c5@23 ~@25]/3", // C A# F E
  AH: "d5 [a#4,a#5]@3 [g4,g5]@2 ~@2, d6 ~@15", // A# G
  AI: "[~@9 f6 g6@29 [f6,f#6] ~@3 [f6,f#6] ~@2 [f#6,g6]@2, ~@10 f#6@3 ~@26 g6@3 ~ g6@3 f6 ~]/3", // F#maj7 Gmaj7
  AJ: "[~@2 [f#6,g6]@3 [f6,f#6] ~@3 [f6,f#6] ~@3 f#6@2 ~@2 f#6@2 ~ f#6@2 ~@3 f#6@2 ~@3 [f6,f#6] ~@5 g6@20 [g4,d5,g5,d6,g6]@3 ~@5, ~@2 f6 ~@2 g6@4 g6@4 g6@7 g6@9 g6@6 ~ f#6@2 ~@26, ~@13 f6 ~@3 f6 ~@2 f6 ~@4 f6 ~@10 f6 ~@27]/4", // Gmaj7 F#maj7 G5
})).s("gm_percussive_organ").gain(0.1)

// chords · epiano2 · "PIANO E.2"
const epiano2 = note("<~@91 A B C D@4 E@2 F@2 ~@28>".pickRestart({
  A: "~@6 [g4,d5,f5]@3 ~ [d5,f5] ~ [c5,f5] ~ d5@2, ~@6 [c#5,e5] ~@3 g4@5 ~, ~@12 e5@2 a#4 ~", // G7 Dm F5 C#m
  B: "b4@2 g4 ~ f4@2 g4@2 f4@2 d4@2 c4@2 a#3@2", C: "~ g4@6 ~, b3@7 ~",
  D: "[~@26 g3@2 [c4,f4]@2 [d4,g4]@23 ~ [d4,a#4]@2 ~@2 [d4,a#4]@2 g4@2 f4 ~, g2@31 ~, ~@13 d4@2 ~@17]/4", // F5 G5 Gm
  E: "[[d3,a3,d4,a4,d5]@15 ~ [a4,d5]@16, ~@15 d4@17]/2", F: "[g4,d5,g5]!2, c#5 ~@7 c#5 ~@7",
// … 86 more lines

More by Brooks Garth