Strudelify

Standing Outside the Fire

Brooks Garth

KeyA majorTempo114 bpm
0:00/0:00
// Standing Outside the Fire — Brooks Garth
// 114 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 103 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(114/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(`<
  ~@20 A B C D E@4 F G F H G I J K F G F H G I J K A B C L M N L N L N O P Q M N R S T U V W X Y Z ~@9 AA AB AC AB AD AE
  AF AG AH AB AC AB AD AE AF AG AH AB AC AB AD AE AF AG AI@2
>`.pickRestart({
  A: "f#2@3 f#2 g#2@4", B: "d2@6 d2@2 a2@7 ~", C: "f#2@5 ~ f#2@2 g#2@7 ~", D: "d2@5 ~ d2@2 e2@6 e2@2", E: "a1@2 ~ a2@5",
  F: "a1@5 ~ a1@9 ~", G: "d2@5 ~ d2@9 ~", H: "f#1@5 ~ f#1@9 ~", I: "b1@5 ~ b1@9 ~", J: "e2@3 e2 d2@4",
  K: "c#2@3 c#2 b1@2 e1@2", L: "d2@5 ~ d2@2 e2@4 e1@4", M: "a1@2 ~ a1!2 ~ a1@2 a1@3 ~ e1@2 f#1@2",
  N: "a1 ~@2 a1!2 ~ a1@2 a1@7 ~", O: "f#1@6 f#1@2 g#1@7 ~", P: "a1@3 b1@3 c#2@2 d2@4 c#2@4", Q: "b1@5 ~ b1@2 e2@4 e1@4",
  R: "d3", S: "c#3@3 a3", T: "b2", U: "a2@3 c#3 c#3@2 a2@2", V: "d2", W: "c#2", X: "b1@3 b1 c#2@4",
  Y: "d2@6 d2@2 e2 ~ e2 ~ e2 ~ e2 ~", Z: "e2 ~ e2 ~ e2 ~ e2 ~@9", AA: "~@8 d2@5 ~ d2@2",
  AB: "e2@4 e1@4 a1 ~@2 a1!2 ~ a1@2", AC: "a1@7 ~ d2@5 ~ d2@2", AD: "a1@7 ~ f#1@6 f#1@2", AE: "g#1@7 ~ a1@3 b1@3 c#2@2",
  AF: "d2@4 c#2@4 b1@5 ~ b1@2", AG: "e2@4 e1@4 a1@2 ~ a1!2 ~ a1@2", AH: "a1@3 ~ e1@2 f#1@2 d2@5 ~ d2@2",
  AI: "[a1@3 ~ e1@2 f#1@2 a1@24]/2",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B C B A B C D E F G@2 A B C D E F G@2 H I H J K L K L M N O P Q R G S M N O P Q R T U V W X Y K@2 Y K Y K V Z AA K@2
  AB ~@17 AC AD AE AD AF AG AH AD AE AD AE AD AF AG AH AD AE AI AJ AI AK AG AH AI AL@2
>`.pickRestart({
  A: "[e3,a3,c#4]@2 a3 ~ a3 ~ [e3,a3,c#4]@2 a3 ~ a3 ~ [e3,a3,c#4]@2 [e3,a3] ~", // A A5
  B: "[f#3,a3,d4]@2 a3 ~ a3 ~ [f#3,a3,d4]@2 ~ [f#3,a3,d4] ~ [f#3,a3] [f#3,a3,d4]@2 ~@2", // D F#m D
  C: "[e3,a3,c#4]@2 a3 ~ a3 ~ [e3,a3,c#4]@2 ~ [e3,a3,c#4] ~@2 [e3,a3,c#4]@2 ~ [e3,a3]", // A A5
  D: "[f#3,a3,c#4]@2 a3 ~ a3 ~ [f#3,a3,c#4]@2 ~ [f#3,a3,c#4] ~ [f#3,a3] [f#3,a3,c#4]@2 ~@2", // F#m
  E: "[f#3,a3,d4]@2 a3 ~ a3 ~ [f#3,a3,d4]@2 a3 ~ a3 ~ [f#3,a3,d4]@2 [f#3,a3] ~", // D F#m
  F: "[f#3,b3,d4]@2 b3 ~ b3 ~ [f#3,b3,d4]@2 ~ [f#3,b3,d4] ~ [f#3,b3] [f#3,b3,d4,f#4]@2 ~@2", // Bm B5 Bm
  G: "[g#3,b3,e4]@2 b3 [g#3,b3,e4]@2 b3 [g#3,b3,e4]@2 [g#3,b3,e4]@2 b3 [g#3,b3,e4]@2 b3 [g#3,b3,e4]@2", // E
  H: "[f#3,a3,c#4]@2 a3 [f#3,a3,c#4]@2 a3 [f#3,a3,c#4]@2 [g#3,b3,e4]@2 b3 [g#3,b3,e4]@2 b3 [g#3,b3,e4]@2", // F#m E
  I: "[a3,d4,f#4]@2 d4 [a3,d4,f#4]@2 d4 [a3,d4,f#4]@2 [a3,c#4,e4]@2 [a3,c#4] [a3,c#4,e4]@2 [a3,c#4] [a3,c#4,e4]@2", // D A
  J: "[a3,d4,f#4]@2 d4 [a3,d4,f#4]@2 d4 [a3,d4,f#4]@2 [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2", // D E G#m E G#m E
  K: "[e3,a3,c#4]@3 a3 [e3,a3]@2 [e3,a3,c#4]@3 a3 [e3,a3]@2 [e3,a3,c#4]@2 [e3,a3]!2", // A A5 A A5 A A5
  L: "[f#3,a3,d4]@3 a3 [f#3,a3]@2 [f#3,a3,d4]@3 a3 [f#3,a3]@2 [f#3,a3,d4]@2 [f#3,a3]!2", // D F#m D F#m D F#m
  M: "[e3,a3,c#4]@2 [e3,a3] a3!2 ~ [e3,a3,c#4]@2 [e3,a3] a3!2 ~ [e3,a3,c#4]@2 [e3,a3] a3", // A A5 A A5 A A5
  N: "[f#3,a3,d4]@2 [d3,a3] a3!2 ~ [f#3,a3,d4]@2 ~ [f#3,a3,d4] ~ [f#3,a3] [f#3,a3,d4]@2 ~@2", // D D5 D F#m D
  O: "[e3,a3,c#4]@2 [e3,a3] a3!2 ~ [e3,a3,c#4]@2 ~ [e3,a3,c#4] ~@2 [e3,a3,c#4]@2 ~ [e3,a3]", // A A5 A A5
  P: "[f#3,a3,c#4]@2 [f#3,a3] a3!2 ~ [f#3,a3,c#4]@2 ~ [f#3,a3,c#4] ~ [f#3,a3] [f#3,a3,c#4]@2 ~@2", // F#m
  Q: "[f#3,a3,d4]@2 [f#3,a3] a3!2 ~ [f#3,a3,d4]@2 [f#3,a3] a3!2 ~ [f#3,a3,d4]@2 [f#3,a3] a3", // D F#m D F#m D F#m
  R: "[f#3,b3,d4]@2 [d3,b3] b3!2 ~ [f#3,b3,d4]@2 ~ [f#3,b3,d4] ~ [f#3,b3] [f#3,b3,d4,f#4]@2 ~@2", // Bm G Bm B5 Bm
  S: "[g#3,b3,e4]@2 b3 [g#3,b3,e4]@2 b3 [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2", // E G#m E G#m E
  T: "[g#3,b3,e4]@2 b3 [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2 [g#3,b3,e4]@2 b3 [g#3,b3,e4]@2 b3 [g#3,b3,e4]@2", // E G#m E
  U: "[g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2", // E G#m E G#m E G#m E G#m …
  V: "[f#3,a3,c#4]@2 [f#3,a3] [f#3,a3,c#4]@2 [f#3,a3] [f#3,a3,c#4]@2 [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2", // F#m E G#m E G#m E
  W: "[a3,d4,f#4]@2 [a3,d4] [a3,d4,f#4]@2 [a3,d4] [a3,d4,f#4]@2 [a3,c#4,e4]@2 [a3,c#4] [a3,c#4,e4]@2 [a3,c#4] [a3,c#4,e4]@2", // D D5 D D5 D A
  X: "[f#3,a3,c#4]@2 [f#3,a3] [f#3,a3,c#4]@2 [f#3,a3] [f#3,a3,c#4]@2 [g#3,c#4,e4]@2 [g#3,c#4] [g#3,c#4,e4]@2 [g#3,c#4] [g#3,c#4,e4]@2", // F#m C#m C#5 C#m C#5 C#m
  Y: "[a3,d4,f#4]@2 [a3,d4] [a3,d4,f#4]@2 [a3,d4] [a3,d4,f#4]@2 [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2", // D D5 D D5 D E G#m E …
  Z: "[a3,c#4,e4]@2 [a3,c#4] [a3,c#4,e4]@2 [a3,c#4] [a3,c#4,e4]@2 [a3,d4,f#4]@2 [a3,d4] [a3,d4,f#4]@2 [a3,d4] [a3,d4,f#4]@2", // A D D5 D D5 D
  AA: "[b3,d4,f#4]@2 [b3,d4] [b3,d4,f#4]@2 [b3,d4] [b3,d4,f#4]@2 [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2", // Bm E G#m E G#m E
  AB: "[d3,f#3,a3]@15 ~", AC: "~@8 [a3,d4,f#4]@2 [a3,d4] [a3,d4,f#4]@2 [a3,d4] [a3,d4,f#4]@2",
  AD: "[g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2 [e3,a3,c#4]@3 a3 [e3,a3]@2 [e3,a3,c#4]@2", // E G#m E G#m E A A5 A
  AE: "~ a3 [e3,a3]@2 [e3,a3,c#4]@2 [e3,a3]!2 [a3,d4,f#4]@2 [a3,d4] [a3,d4,f#4]@2 [a3,d4] [a3,d4,f#4]@2", // A5 A A5 D D5 D D5 D
  AF: "~ a3 [e3,a3]@2 [e3,a3,c#4]@2 [e3,a3]!2 [f#3,a3,c#4]@2 [f#3,a3] [f#3,a3,c#4]@2 [f#3,a3] [f#3,a3,c#4]@2", // A5 A A5 F#m
  AG: "[g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2 [a3,c#4,e4]@2 [a3,c#4] [a3,c#4,e4]@2 [a3,c#4] [a3,c#4,e4]@2", // E G#m E G#m E A
  AH: "[a3,d4,f#4]@2 [a3,d4] [a3,d4,f#4]@2 [a3,d4] [a3,d4,f#4]@2 [b3,d4,f#4]@2 [b3,d4] [b3,d4,f#4]@2 [b3,d4] [b3,d4,f#4]@2", // D D5 D D5 D Bm
  AI: "[g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2 [g#3,b3] [g#3,b3,e4]@2 [e3,a3,c#4]@3 [e3,a3] [e3,a3]@2 [e3,a3,c#4]@2", // E G#m E G#m E A A5 A
  AJ: "~ [e3,a3] [e3,a3]@2 [e3,a3,c#4]@2 [e3,a3]!2 [a3,d4,f#4]@2 [a3,d4] [a3,d4,f#4]@2 [a3,d4] [a3,d4,f#4]@2", // A5 A A5 D D5 D D5 D
  AK: "~ [e3,a3] [e3,a3]@2 [e3,a3,c#4]@2 [e3,a3]!2 [f#3,a3,c#4]@2 [f#3,a3] [f#3,a3,c#4]@2 [f#3,a3] [f#3,a3,c#4]@2", // A5 A A5 F#m
  AL: "[~ [e3,a3] [e3,a3]@2 [e3,a3,c#4]@2 [e3,a3]!2 ~ c#4@23, ~@8 [a2,e3,a3]@23 ~]/2", // A5 A A5
})).s("gm_acoustic_guitar_steel").gain(0.32).pan(0.4)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  A B C B A B C D E F G@2 A B C D E F G@2 H I H I J K J K L M N O P M G Q L M N O P M R ~@5 J@2 ~ J ~ J ~@3 J@2 ~@19 S T
  S T ~@2 S T S T S T ~@2 S T ~@9
>`.pickRestart({
  A: "~@2 e3 [e3,a3] e3 ~@3 e3 [e3,a3] e3 ~@4 [e3,a3]", B: "~@2 d3 [d3,a3] d3 ~@11", C: "~@2 e3 [e3,a3] e3 ~@11",
  D: "~@2 f#3 [f#3,a3] f#3 ~@11", E: "~@2 f#3 [f#3,a3] f#3 ~@3 f#3 [f#3,a3] f#3 ~@4 [f#3,a3]",
  F: "~@2 d3 [d3,b3] d3 ~@11", G: "~@2 g#3 ~@2 g#3 ~@4 g#3 ~@2 g#3 ~@2", H: "~@2 f#3 ~@2 f#3 ~@4 g#3 ~@2 g#3 ~@2",
  I: "~@2 a3 ~@2 a3 ~@10", J: "~@3 e3 ~@5 e3 ~@6", K: "~@3 f#3 ~@5 f#3 ~@6", L: "~@3 e3!2 ~@4 e3!2 ~@4 e3",
  M: "~@3 d3!2 ~@11", N: "~@3 e3!2 ~@11", O: "~@3 f#3!2 ~@11", P: "~@3 f#3!2 ~@4 f#3!2 ~@4 f#3",
  Q: "~@2 g#3 ~@2 g#3 ~@10", R: "~@2 g#3 ~@7 g#3 ~@2 g#3 ~@2", S: "~@11 e3 ~@4", T: "~ e3 ~@14",
})).s("gm_acoustic_guitar_steel").gain(0.21).pan(0.4)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A@7 B C D E F A@3 G H D E F I J I K L ~@3 A@3 B C D E F A@3 G H D E F I J I K L ~ K L K L I M N L ~@19 O P O P Q R S P
  O P O P Q R S P O P O P Q R S P ~@2
>`.pickRestart({
  A: "a2 ~@2 a2 ~ a2!2 ~@2 a2 ~ a2!2 ~ a2!2", B: "f#2 ~@2 f#2 ~ f#2!2 ~@2 f#2 ~ f#2!2 ~ c#3@2",
  C: "d3 ~@2 d3 ~ d3!2 ~@2 d3 ~ d3!2 ~ d3!2", D: "b2 ~@2 b2 ~ b2!2 ~@2 b2 ~ b2!2 ~ b2!2",
  E: "e3 ~ e3!2 ~ e3!2 ~ d3 ~ d3!2 ~ d3!2 ~", F: "c#3 ~ c#3!2 ~ c#3!2 ~ b2 ~ b2!2 ~ b2!2 ~",
  G: "f#2 ~ f#2!2 a2 ~ f#2 ~@2 f#2 ~ f#2!2 ~ c#3@2", H: "d3 ~@2 d3 ~ d3!2 ~@2 d3 ~ d3!2 ~ a2 ~",
  I: "f#2 ~ f#2!2 ~ f#2!2 ~ g#2 ~ g#2!2 ~ g#2!2 ~", J: "d3 ~ d3!2 ~ d3!2 ~ a2 ~ a2!2 e2 ~ f2 ~",
  K: "d3 ~ d3!2 ~ d3!2 ~ e3 ~ e3!2 ~ e3!2 ~", L: "a2 ~@7", M: "a2 ~ a2!2 ~ a2!2 ~ d3 ~ d3!2 ~ d3!2 ~",
  N: "b2 ~ b2!2 ~ b2!2 ~ e3 ~ e3!2 ~ e3!2 ~", O: "~@8 d3 ~ d3!2 ~ d3!2 ~", P: "e3 ~ e3!2 ~ e3!2 ~ a2@2 ~@6",
  Q: "~@8 f#2 ~ f#2!2 ~ f#2!2 ~", R: "g#2 ~ g#2!2 ~ g#2!2 ~ a2 ~ a2!2 ~ a2!2 ~",
  S: "d3 ~ d3!2 ~ d3!2 ~ b2 ~ b2!2 ~ b2!2 ~",
})).s("gm_electric_guitar_muted").gain(0.27).pan(0.7)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@10 A B C@3 ~@3 D E F G H I J K L M ~@6 A N C@3 ~@3 D E F O F I J P I L I L F Q R S T ~@5 U V W X ~@4 Y@6 Z@2 AA@2 AB
  AC AD@2 Z@2 AA@2 AB AC AE@3 AF AG@2 AH AI AJ@3
>`.pickRestart({
  A: "e3@6 d3 e3 d3@8", B: "c#3@6 b2 c#3 b2@7 ~", C: "[a2,e3,a3]/3", D: "e3@3 e3 d3@3 d3", E: "c#3@3 c#3 b2@2 e2 f2",
  F: "f#2@3 f#2 g#2@4", G: "[a2,d3]@3 d3 [e2,a2]@2 e2 f2", H: "f#2@6 f#2@2 g#2@7 ~", I: "[a2,d3]@3 d3 [b2,e3]@4",
  J: "[e3,a3]@4 ~@2 [e3,a3]@9 ~", K: "[d3,a3]@5 ~ a3@8 d3!2, ~@6 d3@7 ~@3", L: "[e3,a3]@5 ~ [e3,a3]@8 ~@2",
  M: "[d3,a3]@5 ~ [d3,a3]@10", N: "c#3@6 b2 c#3 b2@6 ~@2", O: "[a2,d3]@3 d3 [e2,a2]@2 a2 g#2",
  P: "e3@3 e3!2 ~ [e3,a3]@8 e3!2, a3@5 ~@11", Q: "a2@3 b2@3 c#3@2 d3@4 c#3@4", R: "[f#2,b2]@3 b2 [b2,e3]@4",
  S: "[e3,a3]@5 ~ [e3,a3]@8 e3!2", T: "e3@3 e3!2 ~ [e3,a3]@9 ~, a3@5 ~@11", U: "~@3 e3",
  V: "[f#2,b2]@3 [f#2,b2] [a2,c#3]@3 [a2,c#3]", W: "[a2,d3]@6 [a2,d3]@2 [b2,e3]@2 [b2,e3] ~ [b2,e3] ~ [b2,e3] ~",
  X: "[b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [b2,e3] ~@9", Y: "[~@4 a5@40 [a2,d3]@3 d3]/6",
  Z: "[[b2,e3]@8 [e3,a3]@5 ~ [e3,a3]@8 ~@2 [a2,d3]@6 d3@2]/2", // E5 A5 D5
  AA: "[[b2,e3]@8 [e3,a3]@5 ~ [e3,a3]@8 ~@2 f#2@6 f#2@2]/2", AB: "g#2@8 a2@3 b2@3 c#3@2",
  AC: "d3@2 c#3@2 [f#2,b2]@3 b2", AD: "[[b2,e3]@8 [e3,a3]@5 ~ [e3,a3]@8 e3!2 [a2,d3]@6 d3@2]/2",
  AE: "[[b2,e3]@8 [e3,a3]@5 ~ [e3,a3]@8 e3!2 c#4@24]/3", AF: "~@2 f#4@2 a4@2 b4@2 c#5@3 d5@5",
  AG: "[c#5@6 b4 a4 b4@2 a4@3 f#4 a4@9 ~ f#4@6 f#4@2]/2", AH: "g#4@6 f#4 g#4 a4@3 b4@2 ~ c#5@2",
  AI: "d5@4 c#5@4 f#5@3 e5@2 ~ d5@2", AJ: "[c#5@2 d5 c#5 b4@2 a4@2 c#5@4 b4@2 a4@10 [a2,e3,a3]@24]/3",
})).s("gm_overdriven_guitar").gain(0.42).pan(0.6)

// chords · fiddle
const fiddle = note(`<
  ~@20 A B A C D@3 E F ~@15 A G A C H I J K L M J N O H P F ~@17 Q R@3 S T U V W X Y X Z AA AB AC AD AE AF AE Z AA AB AC
  AG@2
>`.pickRestart({
  A: "f#4 g#4", B: "a4@7 ~ a4@8", C: "a4@8 b4@7 ~", D: "a5@3 a5@2 ~ a5!2 [d#5,g#5] a5!3 g#5 a5!3",
  E: "a5@3 a5@2 ~ a5!3 g#5 f#5 e5 d5 c#5 b4 c#5", F: "a4@3 ~", G: "a4@7 ~ a4@4 a4@2 g#4@2",
  H: "[d#5,g#5] a5 [e5,a5] a5 [d#5,g#5] a5 [e5,a5] a5 [d#5,g#5] a5 [e5,a5] a5 [d#5,g#5] a5 [e5,a5] a5", // G#5 A5 G#5 A5 G#5 A5 G#5 A5
  I: "[d#5,g#5] a5 [e5,a5] a5 [d#5,g#5] a5 [e5,a5] a5 [e5,a5] g#5 f#5 e5 d5 c#5 b4 c#5", J: "a4 b4",
  K: "a5@2 e5@2 c#5 b4 a4@2 e4@2 d4@2 c#4@2 b3@2", L: "a3 b3", M: "a5 a5@2 e5 e5@2 c#5@4 a4@2 f#4@2 a4@2",
  N: "c#5@3 d5@2 e5@3 d5@8", O: "b4!2", P: "[e5,c#6]@2 [e5,a5]@4 e5 ~ a5 g#5 f#5 e5 d5 c#5 b4 c#5",
  Q: "~@8 [d#4,g#4] a4 [e4,a4]!2 [d#4,g#4] a4 [e4,a4]!2", // G#5 A5 G#5 A5
  R: "[d#4,g#4] a4 [e4,a4]!2 [d#4,g#4] a4 [e4,a4]!2 [d#4,g#4] a4 [e4,a4]!2 [d#4,g#4] a4 [e4,a4]!2", // G#5 A5 G#5 A5 G#5 A5 G#5 A5
  S: "[d#4,g#4] a4 [e4,a4]!2 [d#4,g#4] a4 [e4,a4]!2 a4@8", T: "b4@8 c#5@3 d5@2 e5@3", U: "d5 b4",
  V: "b4@8 a3 b3 c#4 d4 e4 f#4 a4 b4",
  W: "c#5 d5 e5!2 [a#4,d#5] e5 [b4,e5] e5 [d#5,g#5] a5 [e5,a5] a5 [d#5,g#5] a5 [e5,a5] a5", // D#5 E5 G#5 A5 G#5 A5
  X: "[d#5,g#5] a5 [e5,a5] a5 [d#5,g#5] a5 [e5,a5] a5 [e5,c#6]@2 [e5,a5]@4 e5 ~", // G#5 A5 G#5 A5 C#m A5
  Y: "a5 g#5 f#5 e5 d5 c#5 b4 a4 [d#5,g#5] a5 [e5,a5] a5 [d#5,g#5] a5 [e5,a5] a5", // G#5 A5 G#5 A5
  Z: "a5 g#5 f#5 e5 d5 c#5 b4 c#5 a4@6 a4@2", AA: "b4@6 b4@2 c#5@3 d5@2 e5@3", AB: "d5@4 b4@3 b4",
  AC: "b4@6 b4@2 a3 b3 c#4 d4 e4 f#4 a4 b4", AD: "c#5 d5 e5!2 [a#4,d#5] e5 [b4,e5] e5 [d#5,g#5] a5!3 g#5 a5!3",
  AE: "[d#5,g#5] a5!3 g#5 a5!3 [e5,c#6]@2 a5@4 e5 ~", AF: "a5 g#5 f#5 e5 d5 c#5 b4 a4 [d#5,g#5] a5!3 g#5 a5!3",
  AG: "[c#5 d5 e5!2 d#5 e5!3 a5@23 ~]/2",
})).s("gm_fiddle").gain(0.21).pan(0.4)

// chords · fiddle · soft notes
const fiddle_soft = note("<~@24 A@3 B ~@20 C D ~@7 C ~@19 E F@3 G ~@3 H D I D ~@4 J K L K ~@4 M@2>".pickRestart({
  A: "e5@3 e5@2 ~ e5!2 ~ e5!3 d#5 e5!3", B: "e5@3 e5@2 ~ e5!3 ~@7", C: "~ e5 ~ e5 ~ e5 ~ e5 ~ e5 ~ e5 ~ e5 ~ e5",
  D: "~ e5 ~ e5 ~ e5 ~ e5 ~@8", E: "~@9 e4 ~@3 e4 ~@2", F: "~ e4 ~@3 e4 ~@3 e4 ~@3 e4 ~@2", G: "~ e4 ~@3 e4 ~@10",
  H: "~@5 b4 ~ b4 ~ e5 ~ e5 ~ e5 ~ e5", I: "~@9 e5 ~ e5 ~ e5 ~ e5", J: "~@5 b4 ~ b4 ~ e5!3 d#5 e5!3",
  K: "~ e5!3 d#5 e5!3 ~@2 e5@4 ~@2", L: "~@9 e5!3 d#5 e5!3", M: "[~@4 a#4 b4!3 e5@23 ~]/2",
})).s("gm_fiddle").gain(0.13).pan(0.4)

// other · guitar harmonics · "GTHARMONIC"
const guitar_harmonics = note("<~@10 A@2 ~@22 B@2 ~@26 C@3 ~@38>".pickRestart({
  A: "[~ e4@3]/2", B: "[~ e3@3]/2", C: "[~ a3@4 ~]/3",
})).s("gm_guitar_harmonics").gain(0.11).pan(0.3)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  ~@24 A B C D E F G H I J K L M F N H I O P Q R S T U V W X Y X Y R Z U A Y ~@3 AA E ~ AB AC AD ~@9 AE AF@2 AG@2 AH AI
  AJ@2 AF@2 AG@2 AH AI AK@2 AF@2 AG@2 AH AI AL@3
>`.pickRestart({
  A: "[a3,c#4,e4]@4 ~@2 [c#4,e4]@6 a3@2 e4 ~, ~@6 a3@5 ~@5", // A C#m
  B: "[a3,d4,e4,f#4,b4]@3 a4@3 [a3,d4]@6 a3@2 d4 ~, ~@3 [e4,f#4]@4 ~", // Bm7 D5 Esus2
  C: "[a3,c#4,e4]@5 ~ [a3,c#4]@6 a3@2 c#4 ~, ~@6 e4@9 ~", // A
  D: "b4@3 a4@3 d4@6 a3@2 d4@2, [a3,d4,e4,f#4]@5 ~ [e4,f#4]@10, ~@6 a3@5 ~@5", E: "[a3,c#4,e4]@11 ~@5",
  F: "[d4,f#4,a4]@11 ~@5", G: "[e4,a4,c#5]@2 ~ [e4,a4,b4]@2 ~ [e4,a4]@6 ~@3 g#2", H: "[f#2,a3,c#4,f#4] ~",
  I: "[a3,d4,f#4]@2 ~ [a3,d4,e4]@2 ~ [a3,d4]@9 ~", J: "[f#3,b3,d4]@11 ~@5",
  K: "~@2 e5 b5@2 ~ e4@2 ~@2 e5 b5@2 ~ d4@2, e4@5 e5@2 ~ d4@5 e5@2 ~",
  L: "~@2 e5 b5@2 ~ c#4@2 ~@2 e5 b5@2 ~ b3@2, c#4@5 e5@2 ~ b3@5 e5@2 ~", M: "[c#4,e4,a4]@11 ~@5",
  N: "[e4,a4,c#5]@2 ~ [e4,a4,b4]@2 ~ [e4,a4]@6 ~@3 g#2, b4 ~@15", O: "[f#3,b3,d4,f#4]@11 ~@5",
  P: "~ b4 e5 b5@2 ~ e4@2 ~ b4 e5 b5@2 ~ d4@2, e4@5 e5@2 ~ d4@5 e5@2 ~",
  Q: "~ b4 e5 b5@2 ~ c#4@2 ~ b4 e5 b5@2 ~ b3@2, c#4@5 e5@2 ~ b3@5 e5@2 ~", R: "[f#3,a3,c#4]@7 ~ [g#3,b3,e4]@7 b3",
  S: "[a3,d4,f#4]@7 ~ [a3,c#4,e4]@3 ~ [a3,e4]@2 [g#3,c#4] ~, ~@11 e3@2 ~@3", // D A A5 C#5
  T: "[f#3,a3,c#4]@3 f#3 [b3,e4]@3 g#3, ~@8 g#3@5 ~@3", // F#m E5
  U: "[a3,d4,f#4]@3 ~ f#4@2 d4@2 [g#3,b3,e4]@8, ~@3 a3@2 ~ a3 ~@9, ~@4 d4 ~@11", // D E
  V: "a2!14 [a2,e4] a2, [a3,c#4,e4]@4 ~@2 [c#4,e4]@7 ~@3, ~@6 a3@5 ~ a3@3 ~", // A5 A C#m
  W: "a2!14 [a2,e4] a2, [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@9 ~", // A5 A
  X: "[a3,d4,f#4]@3 ~ f#4@2 d4@2 [g#3,b3,e4]@8, d3@7 ~@9, ~@3 a3@2 ~ a3 ~@9, ~@4 d4 ~@11", // D E
  Y: "[a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@8 e4 ~", Z: "a3@3 b3@3 c#4@2 [a3,d4,f#4]@3 ~ [a3,c#4]@4, e4@7 ~@9, c#4@5 ~@11",
  AA: "~@6 a3 d4", AB: "[d3,f#3,b3]@3 b3 [e3,a3,c#4]@3 ~",
  AC: "[f#3,a3,d4]@7 ~ [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4]@2", AD: "[g#3,b3,e4]!4 ~@4",
  AE: "~@8 [a3,d4,f#4]@3 ~ f#4@2 d4@2, ~@8 d3@7 ~, ~@11 a3@2 ~ a3 ~, ~@12 d4 ~@3", // D
  AF: "[[g#3,b3,e4]@8 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@8 e4 ~ [a3,d4,f#4]@3 ~ f#4@2 d4@2, ~@24 d3@7 ~, ~@27 a3@2 ~ a3 ~, ~@28 d4 ~@3]/2", // E A D
  AG: "[[g#3,b3,e4]@8 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@8 e4 ~ [f#3,a3,c#4]@7 ~]/2", // E A F#m
  AH: "[g#3,b3,e4]@7 b3 a3@3 b3@3 c#4@2, ~@8 e4@7 ~, ~@8 c#4@5 ~@3", // E
  AI: "[a3,d4,f#4]@3 ~ [a3,c#4]@4 [a3,d4,f#4]@3 ~ f#4@2 d4@2, ~@11 a3@2 ~ a3 ~, ~@12 d4 ~@3", // D A D
  AJ: "[[g#3,b3,e4]@8 [a3,c#4,e4]@4 ~@2 [c#4,e4]@6 a3@2 e4 ~ [a3,d4,f#4]@3 ~ f#4@2 d4@2, ~@14 a3@5 ~@5 d3@7 ~, ~@27 a3@2 ~ a3 ~, ~@28 d4 ~@3]/2", // E A C#m D
  AK: "[[g#3,b3,e4]@8 ~@2 e5 a5 e6 a5 e5 a5 e6 a5 e5 a5 e6 a5 [e4,e5] ~ [a3,d4,f#4]@3 ~ f#4@2 d4@2, ~@8 [a3,c#4,e4]@4 ~@2 [c#4,e4]@7 ~@6 a3@2 ~ a3 ~, ~@14 a3@5 ~ a3@3 ~ d3@7 ~, ~@28 d4 ~@3]/2", // E D A C#m
  AL: "[[g#3,b3,e4]@8 ~@2 e5 a5 e6 a5 e5 a5 e6 a5 e5 a5 e6 a5 [e4,e5] ~ [a2,a3,c#4,e4,a4]@24, ~@8 [a3,c#4,e4]@4 ~@2 [c#4,e4]@7 ~@27, ~@14 a3@5 ~ a3@3 ~@25]/3", // E A C#m
})).s("gm_piano").gain(0.5).pan(0.7)

// chords · pad bowed · "BOWEDGLASS"
const pad_bowed = note("<~@59 A B C D A B E F@2 ~@35>".pickRestart({
  A: "[d3,a3,d4,f#4,e5]", B: "b4@3 a4, [c#3,a3,c#4,e4]", C: "[b2,a3,d4,f#4,b4]", D: "[a2,b3,c#4,e4,a4]",
  E: "[b2,a3,d4,f#4,b4] [c#3,a3,e4,a4,c#5]", F: "[[d3,a3,f#4,a4,d5]@8 [e3,b3,g#4,b4,e5]@15 ~@9]/2",
})).s("gm_pad_bowed").gain(0.4)

// drums · kick
const kick = s("bd").struct(`<
// … 128 more lines

More by Brooks Garth