Strudelify

American Honky-Tonk Bar Association

Brooks Garth

KeyG majorTempo123 bpm
0:00/0:00
// American Honky-Tonk Bar Association — Brooks Garth
// 123 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 129 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123/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 · "FINGERDBAS"
const bass = note(`<
  A B@5 C@2 D C@3 E F G@2 H C@3 I J K L@5 C@2 D C@3 E F G@2 H C@3 I J M C N F O G@2 C@3 P Q R S T Q U C V F G@2 W C@3 X
  J Y L@5 C@2 D C@3 E F G@2 H C@3 I J Z C N F O G@2 C@3 P Q R S T Q U C AA J AB@5 AC C@2 D C@2 AD AE@3
>`.pickRestart({
  A: "~@11 f2",
  B: "[g2@32 ~@2 g2@2 a#2@4 g2@2 f2@4 g2@28 ~@2 d2@2 e2@3 ~ f2@2 e2@4 d2@2 a#1@3 ~ g1@4 ~@4 a#1@3 ~ b1 ~ d2@3 ~@3 e2@3 ~ d2@2]/5",
  C: "g1@3 ~@3 a#1@3 ~ b1@2 d2@3 ~@3 e2@3 ~ d2@2", D: "g1@3 ~@3 a#1@3 ~ b1@2 d2@3 ~ d2 ~ e2@3 ~ d2@2",
  E: "g1@4 g1 ~ a1@4 ~@2 a#1@4 ~@2 b1@4 ~@2", F: "c2@3 ~@3 d#2@3 ~ e2 ~ g2@3 ~@3 a2@3 ~ g2@2",
  G: "c2@3 ~@3 d#2@3 ~ e2@2 g2@3 ~@3 a2@3 ~ g2@2", H: "c2@4 c2 ~ c2@4 ~@2 a#1@4 ~@2 a1@4 ~@2",
  I: "g1@3 ~@3 a#1@3 ~ b1@2 d2@3 ~@3 e2@3 ~ e2 ~", J: "d2@3 ~@3 d2@3 ~@3 c2@3 ~ a1 ~ f1@5 ~", K: "d1@11 f1",
  L: "[g1@32 ~@2 g2@2 a#2@4 g2@2 f2@4 g2@28 ~@2 d2@2 e2@3 ~ f2@2 e2@4 d2@2 a#1@3 ~ g1@4 ~@4 a#1@3 ~ b1 ~ d2@3 ~@3 e2@3 ~ d2@2]/5",
  M: "d1@23 ~", N: "g2@4 g1 ~ f2@4 g1 ~ e2@4 a1 ~ d2@4 b1 ~", O: "c2@3 ~@3 d#2@3 ~ e2@2 g2@3 ~@3 a2@3 ~ c3@2",
  P: "g1@3 ~@3 a#1@3 ~ b1@2 c2@3 ~ c2@2 c#2@3 ~ c#2@2", Q: "d2@3 ~@3 f2@3 ~ f#2 ~ a2@3 ~ a2 ~ b2@3 ~ a2@2",
  R: "d2@3 ~ d2 ~ f2@3 ~ f#2@2 c2@5 ~ c#2@5 ~", S: "d2@3 ~@3 f2@3 ~ f#2 ~ a2@3 ~ a2 ~ b2@3 ~ d3@2",
  T: "d2@3 ~ d2 ~ f2@3 ~ f#2@2 c2@4 c2 ~ c#2@4 c#2 ~", U: "d2@3 ~ d2@2 c2@3 ~ c2@2 b1@3 ~ b1@2 a1@3 ~ a1@2",
  V: "g1@3 ~@13 a#1@3 ~ b1@3 ~", W: "c2@4 c2 ~ d#2@3 ~ e2@2 g2@3 ~@3 a2@3 ~ g2@2",
  X: "g1@3 ~@3 a#1@3 ~ b1@2 c2@3 ~ c2 ~ c#2@3 ~ c#2 ~", Y: "d1@21 ~ f1@2", Z: "d2@3 ~@3 c2@3 ~@3 a#1@3 ~@3 a1@5 ~",
  AA: "g1@3 ~@3 b1@3 ~@3 c2@3 ~@3 c#2@3 ~ c#2@2",
  AB: "[d1@22 g1@34 ~@2 g2@2 a#2@4 g2@2 f2@4 g2@28 ~@2 d2@2 e2@3 ~ f2@2 e2@4 d2@2 a#1@3 ~ g1@2]/5",
  AC: "g1@2 ~@4 a#1@3 ~ b1 ~ d2@3 ~@3 e2@3 ~ d2@2", AD: "g1@3 ~@3 a#1@3 ~ b1@2 d2@3 ~@3 e2@3 ~@3",
  AE: "[g2@4 b1 ~ a#1@4 g1@13 g2@37 ~@12]/3",
})).s("gm_electric_bass_finger").gain(0.56)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~ A@5 B@6 C D@4 B@3 C E ~ A@5 B@6 C D@4 B@3 C E ~ F C D@4 B@3 C G H I H I J B K D@4 B@3 C E ~ A@5 B@6 C D@4 B@3 C J@2
  F C D@4 B@3 C G H I H I J B@2 J L M@5 B@6 N@3
>`.pickRestart({
  A: "[~@4 d4@2 [d4,g4]@4 d4@2 [d4,g4]@4 d4@2 [d4,g4]@4 [b3,d4,g4]@5 ~ d4@2 [d4,g4]@4 d4@2 [d4,g4]@4 d4@2 [d4,g4]@4 [b3,d4,g4]@5 ~ d4@2 [d4,g4]@4 d4@2 [d4,g4]@4 d4@2 [d4,g4]@4 [b3,d4,g4]@5 ~ d4@2 [d4,g4]@4 d4@2 [d4,g4]@4 d4@2 [d4,g4]@4 [b3,d4,g4]@5 ~ [b3,d4]@2 [b3,d4,g4]@2 ~@2 [b3,d4]@2 [d4,g4]@4 [b3,d4]@2 [b3,d4,g4]@2 ~@2 [b3,d4]@2, ~@2 b3@2 ~ b3@2 ~ b3@2 ~@4 b3@2 ~ b3@2 ~ b3@2 ~@4 b3@2 ~ b3@2 ~ b3@2 ~@4 b3@2 ~ b3@2 ~ b3@2 ~@14]/5", // G5 G G5 G G5 G G5 G …
  B: "[d4,g4]@2 [b3,d4] [b3,d4,g4] ~ [b3,d4] [d4,g4]@2 [b3,d4] [b3,d4,g4] ~ [b3,d4]", // G5 Bm G Bm G5 Bm G Bm
  C: "[d4,g4]@2 [b3,d4] [b3,d4,g4] ~ [b3,d4] [d4,g4]@2 [b3,d4,g4] [d4,g4] ~ [b3,d4]", // G5 Bm G Bm G5 G G5 Bm
  D: "[e4,g4]@2 [c4,e4] [c4,e4,g4] ~ [c4,e4] [e4,g4]@2 [c4,e4] [c4,e4,g4] ~ [c4,e4]", E: "[d4,f#4,a4] ~@3",
  F: "g4@2 [b3,d4] [b3,d4,g4] ~ [b3,d4] [d4,g4]@2 [b3,d4] [b3,d4,g4] ~ [b3,d4]", // Bm G Bm G5 Bm G Bm
  G: "[f#4,a4]@2 [d4,f#4] [d4,f#4,a4] ~ [d4,f#4] [f#4,a4]@2 [d4,f#4] [d4,f#4,a4] ~ [d4,f#4]", // F#m D F#m D
  H: "[f#4,a4]@4 [d4,f#4]@2 [d4,f#4,a4]@2 ~@2 [d4,f#4]@2 [c4,e4,g4]@5 ~ [c#4,f4,g#4]@5 ~", // F#m D C C#
  I: "[d4,f#4,a4]@3 ~ [d4,f#4]@2 [d4,f#4,a4]@2 ~@2 [d4,f#4]@2 [f#4,a4]@4 [d4,f#4]@2 [d4,f#4,a4]@2 ~@2 [d4,f#4]@2", // D F#m D
  J: "[f#4,a4]@2 [d4,f#4] [d4,f#4,a4] ~ [d4,f#4] [f#4,a4]@2 [d4,f#4,a4] [f#4,a4] ~ [d4,f#4]", // F#m D F#m D F#m D
  K: "~ g4@3 ~@12 [a#3,d4,f4]@3 ~ [b3,d#4,f#4]@3 ~, [g3,b3,d4] ~@5", L: "[d4,f#4,a4]@7 ~",
  M: "[~@4 d4@2 [d4,g4]@4 d4@2 [d4,g4]@4 d4@2 [d4,g4]@4 [b3,d4,g4]@5 ~ d4@2 [d4,g4]@4 d4@2 [d4,g4]@4 d4@2 [d4,g4]@4 [b3,d4,g4]@5 ~ d4@2 [d4,g4]@4 d4@2 [d4,g4]@4 d4@2 [d4,g4]@4 [b3,d4,g4]@5 ~ d4@2 [d4,g4]@4 d4@2 [d4,g4]@4 d4@2 [d4,g4]@4 g4@2 g4@4 [b3,d4]@2 [b3,d4,g4]@2 ~@2 [b3,d4]@2 [d4,g4]@4 [b3,d4]@2 [b3,d4,g4]@2 ~@2 [b3,d4]@2, ~@4 b3@4 ~@2 b3@4 ~@2 b3@4 ~@8 b3@4 ~@2 b3@4 ~@2 b3@4 ~@8 b3@4 ~@2 b3@4 ~@2 b3@4 ~@8 b3@4 ~@2 b3@4 ~@2 b3@4 ~@2 [b3,d4]@5 ~@21]/5", // G5 G G5 G G5 G G5 Bm …
  N: "[[b3,d4,g4]@2 [b3,d4] [b3,d4,g4]@2 [b3,d4,g4]@25 ~@6]/3", // G Bm G
})).s("gm_acoustic_guitar_steel").gain(0.29).pan(0.3)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  A B C B C D@6 E F G@2 H@2 E I J@2 K@2 B C B C D@6 E F G@2 H@2 E I J@2 K@2 L@2 G@4 M N O P Q@2 R@2 S@4 T@8 U@3 C B C
  D@6 E V G@2 H@2 E I J@2 W@2 L@2 G@4 M N O P Q@2 R@2 X@4 K@2 Y C B C D@6 E Z@3
>`.pickRestart({
  A: "~@2 a3 a#3 a3 g3 e3@2 d3 a#2@2 b2", B: "g2@4 g3@2 e3@3 ~@3 d3@6 e3@4 g3@2",
  C: "~@4 g3@2 e3@5 ~ d3@4 e3@2 a#2@4 b2@2",
  D: "[g2@3 ~ g3 ~ e3@3 ~@3 d3@3 ~@3 e3@4 g3@6 g3 ~ e3@3 ~@3 d3@4 d3 ~ e3@4 g3 ~]/2",
  E: "g2@3 ~ g3 ~ e3@3 ~@3 d3@3 ~@3 e3@3 ~@3", F: "f3@3 ~@3 e3@3 ~@3 d3@3 ~ e3@2 d3@4 a#2 ~",
  G: "[g2@3 ~ c3 ~ a2@3 ~@3 g2@3 ~@3 a2@4 c3@6 c3 ~ a2@3 ~@3 g2@4 g2 ~ a2@4 c3 ~]/2",
  H: "[g2@3 ~ c3 ~ a2@3 ~@3 g2@3 ~@3 a2@4 c3@6 c3 ~ a2@3 ~@3 [a#2,a#3]@5 ~ [a2,a3]@5 ~]/2", // A# A
  I: "~@4 g3 ~ e3@3 ~@3 d3@4 d3 ~ e3@4 g3@2",
  J: "[~@4 g3 ~ e3@3 ~@3 d3@3 ~@3 e3@3 ~ g3@5 ~ g3 ~ e3@3 ~@3 d3@4 d3 ~ e3@5 ~]/2",
  K: "[d3@3 ~@3 d3@3 ~@3 c3@4 a2@2 f2@6 [d2,d3]@21 ~@3, a3@15 ~]/2", // D
  L: "[g2@3 ~ g3 ~ e3@3 ~@3 d3@3 ~@3 e3@3 ~ g3@5 ~ g3@2 f3@3 ~@3 e3@3 ~@3 d3@3 ~ g2 ~]/2",
  M: "g2@3 ~ [d4,g4]@2 ~@6 [d4,g4]@3 ~@9", N: "[d4,g4]@3 ~@7 [d4,g4]@3 ~@3 d3@2 e3@4 d3@2",
  O: "[g2,g3]@3 ~ [d4,g4]@2 ~@6 [d4,g4]@3 ~@9", P: "[d4,g4]@3 ~@3 b2@3 ~ b2@2 c3@3 ~@3 c#3@4 c#3@2, ~@4 c3 ~",
  Q: "[[d3,a3,d4]@34 ~@2 [c3,g3,c4]@4 ~@2 [c#3,g#3,c#4]@5 ~]/2", // D5 C5 C#5
  R: "[[d3,a3,d4]@35 ~ [c3,g3,c4]@6 [c#3,g#3,c#4]@5 ~]/2", // D5 C5 C#5
  S: "[[d3,a3,d4]@46 [g2,d3,g3]@28 ~@2 d4@4 f4@4 d4@3 ~@2 a#3@4 b3@3]/4", // D5 G5
  T: "[c3@11 ~ c3@4 ~@2 [c3,a4]@4 a#4@5 a4@2 g4 [c3,a4]@4 ~@2 c3@4 a4 ~ [c3,a4]@4 ~@14 c3@4 g4 ~ c3@4 a#4@2 g4@3 f4 ~ d#4 [c3,f4]@6 [c3,d#4]@3 f4 ~ d#4 [c3,c4]@3 ~ [g3,d4,g4]@47 ~ [d3,g3]@31 ~ b2@4 b2@2 c3@4 c3@2 c#3@4 c#3@2, c4@17 ~@5 c3@7 ~@5 a#4@6 ~@2 g4 ~@3 c3@13 ~@11 c3@7 ~@115, ~@47 c5@17 ~ c5@4 ~@123]/8", // F F5 Cm C G5
  U: "[d3@3 ~@3 d3@3 ~@3 c3@4 a2@2 f2@6 [d2,d3]@22 [g2,d3]@6 g3@2 e3@3 ~@3 d3@6 e3@4 g3@2, a3@5 ~@3]/3", // D G5
  V: "f3@3 ~@3 a2@3 ~@3 a#2@3 ~ a#2@2 b2@4 b2 ~",
  W: "[d3@3 ~@3 d3@3 ~@3 c3@4 a2@2 f2@6 d3@3 ~@3 c3@3 ~@3 a#2@4 ~@2 a2@6, a3@15 ~, ~@8 d2@7 ~]/2",
  X: "[[d3,a3,d4]@46 [g2,d3,g3]@47 ~@3]/4", Y: "~@4 g3@2 e3@3 ~@3 d3@6 e3@4 g3@2",
  Z: "[f3@3 ~@3 a#2@4 [g2,d3]@50 ~@12, ~@2 d3 ~@33, ~@5 c3@2 ~@65]/3", // G5
})).s("gm_overdriven_guitar").gain(0.4).pan(0.6)

// chords · piano · "A.PIANO 2"
const piano = note(`<
  A@5 B@7 C@5 D@4 E F@5 B@7 C@5 D@4 E G H@2 I@5 J K@2 L@4 M@2 N O P@5 Q R S T U@5 V@2 W@5 X@3 Y Z AA@4 AB@2 H@2 I@5 J
  K@2 L@4 M@2 AC@2 AD AE@5 V@2 AF@4 AG@4
>`.pickRestart({
  A: "[~@22 [f3,b3,d4]@44 ~@3 [f3,b3,d4]@44 ~@7]/5", // Bdim
  B: "[[b3,d4]@89 ~@2 d4@2 ~ [b3,d4]@74, f3@29 ~ f3@26, ~@30 b3 ~@25]/7", // Bm
  C: "[~@18 [f3,a3]@3 ~ [e3,g3,c4]@80 ~@6 [a#3,a#4]@6 [a3,a4]@4 ~@2]/5", D: "[[f3,b3,d4]@23 [f3,b3,d4]@24 ~]/4",
  E: "[f#3,a3,d4]@5 ~", // D
  F: "[[f#3,a3,d4]@21 ~ [f3,b3,d4]@44 ~@3 [f3,b3,d4]@38 ~@2 [e6,f6,g6] [b5,c6,d6] [e5,f5,g5,a5] [b4,c5,d5] ~@7]/5", // D Bdim Em Bm Fmaj7 Bm
  G: "[f#3,a3,d4]@23 ~", // D
  H: "[~@6 e4@2 ~@4 [b3,d4,g4]@4 g4@2 [d4,e4]@4 [d4,g4]@7 ~ [b3,d4,f4]@5 ~ [g3,b3,e4]@5 ~ [g3,b3,d4]@5 ~, ~@4 [b3,d4,g4]@4 ~@10 b3@9 ~@21]/2", // G Dsus2 G5 Bdim Em G
  I: "[[c4,e4,g4]@39 ~@3 [e4,g4]@3 ~ [c4,e4,g4]@41 ~@3 [e4,g4]@3 ~ [b3,d4,g4]@5 ~ [b3,d4,g4]@3 ~@5 [d4,g4]@6 b3@4 [d4,g4]@2, ~@40 c4@4 ~@44 c4@4 ~@14 b3@7 ~@7]/5", // C Em C Em G G5
  J: "~@6 [d4,g4]@4 [d4,g4]@13 ~, ~@4 b3@5 ~ b3@11 ~@3", // G5
  K: "[~@6 [d4,g4]@5 ~ [b3,d4,g4]@5 ~ b3@3 ~ [b3,d4,g4]@5 ~@3 [d4,g4]@3 ~ [b3,d4,g4]@11 ~@3, ~@4 b3@5 ~@19 b3@4 ~@16]/2", // G5 G G5 G
  L: "[[f#4,a4]@16 ~@2 [f#4,a4]@4 [d4,f#4,a4]@12 ~@2 [c4,e4,g4]@5 ~ [c#4,f4,g#4]@5 ~, d4@7 ~ d4@2 ~@14]/2", // F#m D C C#
  M: "[[d4,f#4,a4]@27 ~@3 [f#4,a4]@10 ~@2 [d4,f#4,a4]@4 ~@2, ~@7 d4@3 ~@2]/2", N: "[b3,d4], g3@11 ~",
  O: "[g3,b3,d4] ~@11", // G
  P: "[[c4,e4,g4]@40 ~@2 [c4,e4,g4]@4 [c4,e4,g4]@42 ~@2 [c4,e4,g4]@4 ~@6 a#5@5 ~@3 f5@2 ~@2 [d5,e5] ~@7, ~@94 [b3,d4,g4]@7 ~@5 f5@2 ~@12, ~@99 [d5,a5]@2 ~@4 a#5@2 e5@2 ~@11]/5", // C Dsus2 G D5
  Q: "~@4 a#5@5 ~@3 f5@2 ~@2 [a#4,d5]@4 ~@4, ~@3 [d5,a5]@2 ~@4 a#5@2 e5@2 ~@11, ~@5 f5 ~@6", // A# D5
  R: "~@4 [a5,c#6]@5 ~ [a5,d6] ~ [a5,d6]@3 ~ [a5,d6] ~ [a5,d6]@2 ~@2 d6@2, ~@22 a5 ~", // A D5
  S: "[a5,c#6]@3 ~ c6 ~ [g5,a#5] b5@2 ~ g5@2 f5@3 ~ g5@2 f5@3 ~ d5@2", T: "[f#3,a3,d4]",
  U: "[d2@22 [f3,b3,d4]@44 ~@4 a#4 ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ d5@2 [b4,d5]@3 ~ [f6,g6] [c6,d6,e6] [g5,a5,b5] ~ [f6,g6] [c6,d6,e6] [g5,a5,b5] ~@2 [e6,f6,g6] [b5,c6,d6] [e5,f5,g5,a5] [b4,c5,d5] ~@7, ~@69 g2@38 ~@13, ~@94 b4 ~@25]/5", // Bdim Bm Fsus2 C G Fsus2 C G …
  V: "[[f3,b3,d4]@39 ~ [b3,f4]@5 ~@3, ~@40 a#4@3 ~@5]/2", // Bdim
  W: "[[b3,d4,g4]@27 ~ d6@5 ~ e6@2 a#5@2 b5 e6@2 b5 g5@3 ~ [d5,g5]@3 ~@27 a#5 ~ a#5 ~ [b5,d6] ~ [b5,d6] ~ [b5,d6]@2 ~@2 [b5,e6] ~@31, ~@28 c#6@2 ~@6 g5@5 ~@5 [b3,g4]@66 ~@8, ~@19 d6 ~@10]/5", // G G5 Bm E5 Em
  X: "[~@4 [f6,g6] [c6,d6,e6] [g5,a5,b5] ~ [f6,g6] [c6,d6,e6] [g5,a5,b5] ~@2 [e6,f6,g6] [b5,c6,d6] [e5,f5,g5,a5] [b4,c5,d5] ~ [f3,a3]@3 ~ [e3,g3,c4]@50]/3", // Fsus2 C G Fsus2 C G Em Bm …
  Y: "~@4 d5@2 d#5@4 e5@2 [g5,c6]@3 ~@7 d5@2", Z: "d#5@3 ~ e5 ~ [g5,c6]@3 ~@3 [a#3,a#4]@6 [a3,a4]@4 ~@2",
  AA: "[~@4 [g5,b5]@3 ~@5 [e5,a5]@2 ~@4 [b4,e5] ~@9 [g5,b5]@3 ~@5 [e5,a5]@2 ~@4 [b4,e5] ~@9 [g5,b5]@2 ~@6 [e5,a5] ~@5 [b4,e5] ~@9 b5@4 ~@2 d5 ~ [d5,g5,b5]@2 ~@10, [f3,b3,d4]@23 [f3,b3,d4]@24 ~, ~@38 g5 ~@9]/4", // G A5 E5 G A5 E5 G A5 …
  AB: "[~@4 [f#3,d4] ~@23 [f#3,d4] ~@7 [f#3,a3,d4]@11 ~, d2 ~ d2 ~, ~@4 a3@2 ~@6 [f#3,a3,d4]@15 ~ a3@2 ~@18]/2", // D
  AC: "~@4 [b3,d4,g4]@5 ~@7 [b3,d4,g4]@5 ~@3", AD: "[d4,f#4,a4]@23 ~",
  AE: "[[d4,f#4,a4]@20 ~@2 [b3,d4,g4]@37 ~@41 [f6,g6] [c6,d6,e6] [g5,a5,b5] ~ [f6,g6] [c6,d6,e6] [g5,a5,b5] ~@2 [e6,f6,g6] [b5,c6,d6] [e5,f5,g5,a5] [b4,c5,d5] ~@7, ~@35 [a3,b3,f4]@18 ~@7]/5", // D G Fsus2 C G Fsus2 C G …
  AF: "[[b3,d4,g4]@27 ~ d6@5 ~ e6@2 a#5@2 b5 e6@2 b5 g5@3 ~ [f3,b3,d4]@41 ~ [b3,f4]@5 ~@3, ~@28 c#6@2 ~@6 g5@5 ~@5 [d5,g5]@9 ~@33 a#4@3 ~@5]/4", // G Bdim G5
  AG: "[[b3,d4,g4]@27 ~@3 [b3,f4,a#4]@3 ~ [g3,b3,g4]@50 ~@12]/4", // G A# G
})).s("gm_piano").gain(0.42).pan(0.7)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  A@5 ~@17 A@5 ~@20 B@4 C D C E ~@17 A@5 ~@20 B@4 C D C E ~@9 F@5 ~@10
>`.pickRestart({
  A: "[~@22 [g3,d4]@22 ~@2 [d4,g4]@6 [d4,g4] ~@17 [g3,d4]@22 ~@2 [d4,g4]@6 [d4,g4] ~@19]/5", // G5
  B: "[[g3,c4]@21 ~ [g3,c4]@22 ~@2 [g3,c4]@23 ~ [g3,c4]@25 ~]/4", C: "~@2 [g3,d4] ~@3 [g3,d4] ~@5",
  D: "[g3,d4]@2 ~@8 [g3,d4]@9 ~@5", E: "[g3,d4]@2 ~@8 [g3,d4]@13 ~",
  F: "[~@22 [b3,g4]@22 ~@2 [d4,g4]@6 [d4,g4] ~@17 [b3,f4]@22 ~@2 [d4,g4]@6 [d4,g4] ~@19]/5", // Em G5 Bdim G5
})).s("gm_electric_guitar_clean").gain(0.26).pan(0.3)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~ A@2 B@2 ~@22 C@2 ~ D@2 ~ E F@2 G@2 ~ H I J@2 K L ~ M N ~@48 M N ~@16 O ~@4 P@2 Q@2 P@2 Q@2 ~@2
>`.pickRestart({
  A: "[~ [g4,b4]@41 d5@6]/2", B: "[[b4,b5]@7 ~]/2", C: "[[d5,g5]@5 ~]/2",
  D: "[~@4 [g4,a#4]@6 [e4,g4]@3 ~@3 [d4,f4]@5 ~ [a#3,d4]@25 ~]/2", // Gm Em Dm A#
  E: "~@4 [g4,a#4]@6 ~@2 [e4,g4]@3 ~@3 [f4,a4]@3 ~ [g4,a#4]@2", // Gm Em F Gm
  F: "[~@4 [a#4,d5]@6 g4 ~ [a#4,d5]@4 g4 ~ [a4,c5]@3 ~ [g4,c5]@24 ~@2]/2", // A# Am C5
  G: "[~@4 [c5,e5]@2 [d5,f5]@4 c5@2 [c5,e5]@2 [d5,f5]@2 [b4,d5] [c5,e5] ~ [d5,f5]@3 [c5,e5]@6 ~@20]/2", // C Dm C Dm Bm C Dm C
  H: "~@4 [f4,a4]@7 ~ [e4,g4]@3 ~@3 [d4,f4]@2 ~@4", I: "[f4,a4]@2 ~@4 [e4,g4]@3 ~ [d4,f4]@14",
  J: "[~@4 a#4@6 g4@6 g5@13 ~ d5@3 ~ a#4@8 g4@5 ~]/2", K: "[d4,a4]@23 ~", L: "d4@23 ~",
  M: "c5@2 b4@2 a#4 ~ a4@4 g4@2 e5@2 g4@2 f5@2 d5@3 ~ b4 ~, g4 f4 e4 ~", N: "[g4,c5]", O: "d5@11 ~",
  P: "[g#4@2 a4 ~@3 g#4@2 a4@11 ~@5]/2", Q: "[g#4@4 a4@2 ~@4 d4@2 [c4,e4]@4 f4@15 ~@17]/2",
})).s("gm_electric_guitar_jazz").gain(0.33).pan(0.8)

// chords · electric guitar jazz · "JAZZ GTR" · soft notes
const electric_guitar_jazz_2 = note("<~@44 A ~ B ~@49 B ~@24 C@2 ~@2 C@2 ~@2>".pickRestart({
  A: "a4@23 ~", B: "~@3 d4", C: "[~@6 d4@2 ~@2 b3@3 ~@3 d4@15 ~@17]/2",
})).s("gm_electric_guitar_jazz").gain(0.22).pan(0.8)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@5 A@7 B C@3 D A@3 E F ~@5 A@7 B C@3 D A@3 E F ~ A G C@3 D A@3 H I J I J I K A L C@4 A@3 M N O ~@4 A@7 B C@3 D A@3 E
  P Q A G C@3 D A@3 H I J I J I K A R S ~@5 A@6 T U ~@2
>`.pickRestart({
  A: "g2@2 ~@2 g2@2 a#2@3 ~ b2@2 d3@3 ~ g2 ~ e3@4 d3@2", B: "g2@2 ~@2 g2@2 a2@3 ~ a2@2 a#2@3 ~ g2 ~ b2@4 g2@2",
  C: "c3@2 ~@2 c3@2 d#3@3 ~ e3@2 g3@3 ~ c3 ~ a3@4 g3@2", D: "c3@2 ~@2 c3@2 d#3@3 ~ e3@2 a#3@3 ~ c3 ~ a3@4 c3@2",
  E: "g2@2 ~@2 g2@2 a#2@3 ~ b2@2 d3@3 ~ g2 ~ e3@4 g2@2", F: "d3 ~@7",
  G: "g3@2 ~@2 g3@2 f3@3 ~ f3@2 e3@3 ~ g2 ~ d3@4 g2@2", H: "g2@2 ~@2 g2@2 a#2@3 ~ b2@2 c3@3 ~ g2 ~ c#3@4 g#2@2",
  I: "d3@2 ~@2 d3@2 f3@3 ~ f#3@2 a3@3 ~ d3 ~ b3@4 a3@2", J: "d3@2 ~@2 d3@2 f3@3 ~ f#3@2 c3@3 ~ c3 ~ c#3@4 c#3@2",
  K: "d3@2 ~@2 d3@2 c3@3 ~ c3@2 b2@3 ~ b2 ~ a2@4 a2@2", L: "g2 ~@7 a#2 ~ b2 ~",
  M: "g2@2 ~@2 g2@2 a#2@3 ~ b2@2 c3@3 ~ c3 ~ c#3@4 c#3@2", N: "d3@3 ~@3 d3@3 ~@3 c3@3 ~ a2 ~ f2@5 ~", O: "d3@7 ~",
  P: "d3@3 ~@3 d3@3 ~@3 c3@3 ~@3 f2@5 ~", Q: "d3@3 ~@3 c3@3 ~@3 a#2@3 ~ a#2 ~ a2@5 ~",
  R: "g2@2 ~@4 b2@3 ~ b2@2 c3@3 ~ c3@2 c#3@3 ~ c#3 ~", S: "d3 ~ d3 ~@5",
  T: "g2@2 ~@2 g2@2 a#2@3 ~ b2@2 d3@3 ~ g2 ~ e3@4 e3@2", U: "g3@2 ~@2 b2@2 a#2@3 ~ g2@3 ~@11",
})).s("gm_electric_guitar_muted").gain(0.4).pan(0.8)

// other · fiddle
const fiddle = note(`<
  ~@23 A@2 B C D ~@19 E@2 F@2 G H I J ~ K L@2 M@2 ~@12 A@2 B C D ~@19 E@2 F@2 G H I J ~ K L@2 M@2 N O P ~ Q@2 ~@12
>`.pickRestart({
  A: "[~@2 d5@7 ~@7]/2", B: "~@5 g5 e5 d5 e5 f5 e5 d5",
  C: "a4@2 c5@2 a4@2 b4@2 a4 ~ g4@2 d4@2 e4@2 d4@2 b3@2 a#3@2 a3@2", D: "g3@7 ~@17", E: "[~@6 c6@22 g5@19 ~]/2",
  F: "[g4@31 ~@17]/2", G: "~@4 g4@3 ~@5 g4@4 ~@8", H: "g4@2 ~@8 g4@13 ~", I: "~@4 g4@4 ~@4 g4@3 ~@9",
  J: "g4@3 ~@7 g4@12 ~@2", K: "~@12 c5@5 ~ c#5@5 ~", L: "[d5@32 ~@4 c5@5 ~ c#5@5 ~]/2", M: "[d5@5 ~@3]/2",
  N: "c6@9 ~ b5@6 e5@2 g5@2 e5@2 d5@2", O: "f5 e5 d5 a#4 a4 g4 f4 e4 d4 b3 d4 b3", P: "d5@7 ~", Q: "[~@6 d5@25 ~@17]/2",
})).s("gm_fiddle").gain(0.31).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B A@18 C D A@3 E A@16 C D A E A@15 F A B A C A@3 C@2 D A B A E A@16 C@2 A E A@16 C D A B A E A@7 G ~@2
>`.pickRestart({
  A: "x!2", B: "x ~@5 x ~@4 x", C: "x ~@2 x!2 ~", D: "x ~ x", E: "x!2 ~ x", F: "x ~@3 x!2", G: "x ~ x!2 ~ x ~@6",
})).gain(0.68)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@4 A ~@11 B ~@7 A ~ A ~@3 A ~@7 B ~ A ~@5 C ~@3 D ~@17 A ~@7 A ~@11 B ~ A ~@5 C ~@3 D ~@17 A ~@10
>`.pickRestart({
  A: "~@11 x", B: "~ x ~@4", C: "~@5 x ~@5 x", D: "~@2 x",
})).gain(0.38)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@4 A ~@15 B ~@5 C ~@15 B ~@3 D ~@7 A ~@7 E ~@13 C ~@15 B ~@3 D ~@7 A ~@13 C ~@10
// … 39 more lines

More by Brooks Garth