Strudelify

Help Is on the Way

Little River Band

KeyB majorTempo106 bpm
0:00/0:00
// Help Is on the Way — Little River Band
// 106 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 4 "Gtmel" acoustic guitar steel (copy of ch 5 "Gtmel" electric guitar clean)
// note: Full arrangement: all 111 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(106/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
const piano = note("<~@42 A@6 B@3 C D@3 ~@56>".pickRestart({
  A: "[~@20 g#5@6 a5@5 c#5@5 g#5@5 a5@5 ~ f#5@5 f5@5 g#5@5 ~ f#6@5 f6@5 c#6@5 g#5@4 ~ b5@5 c#6@4 ~@2 e5@5 a5@5 b5@5 c#6@6 b5@5 ~@6 f#5@4 e5@4 d5@4 c#5@4 b4@4 [c#4,f#4,g#4]@4 a4@4 f#4@4 ~ c#4@3 ~ [f#4,g#4]@3 a4@4 f#4@4 c#4@4 ~ c#4@3 f4@4 g#4@4 c#4@2, ~@83 a5@8 ~@32 b5@5 ~@64]/6", // C#sus4 F#sus2
  B: "[~@2 f5@4 c#4@3 ~ c#5@4 c#4@4 [b4,e5]@4 e4@8 a4@7 e4@4 a4@4 b4@4 c#5@4 ~@4 e4@3 ~@9 c#4@4 g#4@3 a4@3 ~@2 [c#4,f#4,g#4]@4 a4@3 f#4@4 c#4@2 ~@2, ~@53 d5@8 [f#4,b4]@12 ~@8 b3 ~@14]/3", // E5 C#sus4 B5
  C: "c#4@4 f#4@4 a4@3 ~ f#4@4 g#4@4 f4@4 g#4@4 f#5@4",
  D: "[~ c#4@4 f5@3 c#5@4 g#4@3 ~ c#5@4 b4@4 a4@4 ~@8 c#4@4 e4@3 a4@3 ~@2 c#5@3 d5@4 c#5@4 b4@4 a4@3 ~ g#4@4 f#4@4 e4@4 ~@17, ~@28 e4@11 ~@57]/3",
})).s("gm_piano").gain(0.55)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A B C D@4 E F G H@7 I J K@2 L M N O P Q R S T U V W@7 X Y Z AA ~@11 AB@7 AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ
  AR AS AT AU@2 AV@5 AW AX AY AZ@4 BA@6 BB BC BD@5 BE BF ~@3
>`.pickRestart({
  A: "~@31 a2", B: "~ b2@2 b1@5 ~@3 b1@4 ~@4 b1@4 ~@3 b1@3 ~ a2 ~", C: "b2@2 b1@4 ~@4 b1@4 ~@4 b1@4 ~@4 b1@4 a2 ~",
  D: "[b2@2 b1@4 ~@4 b1@4 ~@4 b1@4 ~@4 b1@4 a2 b2@2 b1@4 ~@4 b1@4 ~@4 b1@4 ~@4 e1@4 f1@4 f#1@4 ~@4 f#1@4 ~@4 f#1@4 ~@4 e1@4 f1@4 f#1@4 ~@4 f#1@4 ~@4 f#1@4 ~@4 f#1@3 ~ a2 b2@2]/4",
  E: "~ b1@4 ~@4 b1@4 ~@4 b1@4 ~@3 b1@3 ~ a2 ~ b2@2", F: "b1 ~ b1 ~ b1 ~ e1 f1",
  G: "f#1@4 ~@4 f#1@4 ~@4 f#1@4 ~@4 e1@3 f1@5",
  H: "[f#1@4 ~@4 f#1@4 ~@4 f#1@4 ~@3 f#1@3 ~ a2 ~ b2@2 b1@4 ~@4 b1@4 ~@4 b1@4 ~@4 b1@3 ~ a2 b2@2 ~ b1@4 ~@4 b1@4 ~@4 b1@4 ~@4 e1@3 f1@4 f#1@4 ~@4 f#1@4 ~@4 f#1@4 ~@5 e1@3 f1@4 f#1@4 ~@4 f#1@4 ~@4 f#1@4 ~@4 f#1@3 ~ a2 ~ b2@2 b1@4 ~@4 b1@4 ~@4 b1@4 ~@3 b1@3 ~@2 a2 b2@2 ~ b1@4 ~@4 b1@4 ~@3 b1@4 ~@4 e1@4 f1@4 f#1@3]/7",
  I: "~@5 f#1@4 ~@4 f#1@4 ~@4 e1@4 f1@4 f#1@3", J: "~@5 f#1@4 ~@4 f#1@4 ~@4 f#1@4 ~@4 c2@3",
  K: "c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4",
  L: "c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3!2 ~ c2@4 c3 ~ c3 ~ g1@4 g2",
  M: "~ g2 ~ g1@4 g2 ~ g2 ~ g1@4 g2 ~ g2 ~ g1@3 ~ g2 ~ g2 ~ c2@4 c3",
  N: "~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3!2 ~@2 c2@4 c3!2 ~@2 c2@3 c3 ~",
  O: "c3 ~ c2@4 c3 ~ c3 ~ c2@4 ~ c3!2 ~@2 c2@4 c3!2 ~@2 c2@3 ~ c3",
  P: "c3 ~@2 c2@3 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ g1@4 g2 ~",
  Q: "g2 ~ g1@4 g2 ~ g2 ~ g1@4 g2 ~ g2 ~ g1@4 a2 b2@2 b1@4 ~@3", R: "~ b1@4 ~@4 b1@4 ~@4 b1@4 a2 ~ b2@2 b1@4 ~@3",
  S: "~ b1@4 ~@4 b1@4 ~@4 e1@4 f1@4 f#1@4 ~@3", T: "~ f#1@4 ~@4 f#1@4 ~@4 e1@3 f1@4 f#1@4 ~@4",
  U: "~ f#1@4 ~@4 f#1@4 ~@3 f#1@3 ~ a2 ~ b2@2 b1@4 ~@4", V: "b1@4 ~@4 b1@4 ~@4 b1@3 ~ a2 b2@2 ~ b1@4 ~@4",
  W: "[b1@4 ~@4 b1@4 ~@4 e1@3 f1@4 f#1@4 ~@4 f#1@4 ~@4 f#1@4 ~@5 e1@3 f1@4 f#1@4 ~@4 f#1@4 ~@4 f#1@4 ~@4 f#1@3 ~@5 c2@4 c3!2 ~@2 c2@4 c3!2 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3!2 ~@2 c2@3 c3 ~ c3 ~@2 c2@3 c3 ~ c3 ~ g1@4 ~ g2 ~ g2 ~ g1@4 g2 ~ g2 ~ g1@4 g2 ~ g2 g1@3 ~ g2 ~ g2 ~ c2@4 c3 ~ c3 ~ c2@3]/7",
  X: "~ c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@3",
  Y: "~ c3!2 ~@2 c2@4 c3 ~ c3 ~ c2@4 c3!2 ~@2 c2@4 c3!2 ~@2 c2@3",
  Z: "c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 ~ c3!2 ~ g1@4 g2 ~ g2 ~ g1@4", AA: "g2 ~ g2 ~ g1@4 g2 ~ g2 ~ g1@4 g2@2 ~@14",
  AB: "[~@16 a1@31 b1@27 ~@5 g1@4 g2 ~ g2 ~ g1@4 g2 ~ g2 ~ g1@4 g2 ~ g2 ~ g1@4 g2!2 ~@2 g1@4 g2!2 ~ g1@4 ~ g2!2 ~@2 g1@4 g2!2 ~@2 g1@4 g2!2 ~ g1@4 g2 ~ g2 ~ g1@4 g2 ~ g2 ~ g1@4 g2 ~ g2 ~ g1@4 g2 ~ g2 ~ d2@4 d3 ~ d3 ~ d2@4 d3 ~ d3 ~ d2@4 d3 ~ d3 ~ d2@4 d3!2 ~@2 g1@4 g2 ~ g2 g1@4 ~ g2!2 ~ g1@3]/7",
  AC: "~@2 g2!2 ~ g1@3 ~@2 g2!2 ~ g1@3 ~ g2 ~ g2 ~ g1@3 ~ g2 ~ g2 ~ g1@3",
  AD: "~ g2 ~ g2 ~ g1@4 g2 ~ g2 ~ g1@3 ~ g2 ~ g2 ~ g1@4 g2 ~ g2 ~ g1@3",
  AE: "~ g2!2 ~@2 g1@3 ~ g2!2 ~@2 d2@4 ~@2 d3 ~ d2@4 d3!2 ~ d2@3 ~",
  AF: "d3 ~ d3 ~ d2@4 a2 ~ b2@2 b1@4 ~@4 b1@4 ~@4 b1@4", AG: "~@4 b1@4 a2 ~ b2@2 b1@4 ~@4 b1@4 ~@4 b1@4",
  AH: "~@4 e1@3 f1@4 f#1@4 ~@5 f#1@4 ~@4 f#1@4", AI: "~@3 e1@4 f1@4 f#1@4 ~@5 f#1@4 ~@3 f#1@4 ~",
  AJ: "~@3 f#1@3 ~ a2 ~ b2@2 b1@4 ~@4 b1@4 ~@4 b1@4 ~", AK: "~@3 b1@4 a2 b2@2 ~ b1@4 ~@4 b1@4 ~@4 b1@4 ~",
  AL: "~@3 e1@3 f1@4 f#1@4 ~@4 f#1@4 ~@4 f#1@4 ~@2", AM: "~ e1@2 f1@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~",
  AN: "~@2 f#1@3 ~@5 c2@3 c3 ~ c3 ~@2 c2@3 c3 ~ c3 ~ c2@4 c3 ~ c3",
  AO: "~ c2@4 c3 ~ c3@2 c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 c3@2",
  AP: "~ c2@4 c3!2 ~ c2@4 ~ c3!2 ~@2 c2@4 c3 ~ c3 ~ c2@4 c3!2 ~",
  AQ: "~ c2@4 c3 ~ c3 ~ g1@3 g2 ~ g2 ~ g1@4 g2 ~ g2@2 g1@4 ~ g2!2 ~",
  AR: "g1@4 g2 ~ g2 ~@2 c2@3 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~",
  AS: "c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~",
  AT: "c2@4 c3 ~ c3 ~ c2@3 c3 ~ c3 ~ c2@4 c3 ~ c3@2 c2@4 c3 ~ c3@2 ~",
  AU: "[c2@3 c3 ~ c3 ~ g1@4 g2 ~ g2 ~ g1@4 g2 ~ g2 ~ g1@4 g2 ~ g2 ~ g1@4 g2!2 ~@2 c2@4 c3 ~@3 c2@2 ~@2 c2@5 ~@8]/2",
  AV: "[~@6 c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~@2 c2@3 c3 ~ c3@2 c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3@2 g1@4 g2 ~ g2 ~ g1@4 g2 ~ g2@2 g1@4 g2 ~ g2 ~ g1@4 g2 ~ g2 ~ c2@4 c3 ~ c3 ~ c2@3 c3 ~ c3 ~@2 c2@3 c3 ~ c3 ~@2 c2@3 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3 ~ c2@4 c3 ~ c3@2 c2@3]/5",
  AW: "~ c3 ~ c3@2 c2@3 ~ c3!2 ~@2 c2@4 c3!2 ~@2 c2@4 c3 c3@2 ~ c2@3",
  AX: "c3 ~ c3@2 g1@4 ~ g2!2 ~ g1@4 g2 ~ g2 ~ g1@4 g2 ~ g2 ~ g1@4", AY: "a2 ~ b2@2 b1@4 ~@4 b1@4 ~@4 b1@4 ~@4 b1@4",
  AZ: "[a2@2 b2@2 b1@4 ~@4 b1@4 ~@3 b1@4 ~@4 e1@4 f1@4 f#1@4 ~@4 f#1@4 ~@4 f#1@4 ~@4 e1@4 f1@4 f#1@4 ~@4 f#1@4 ~@4 f#1@4 ~@4 f#1@3 ~ a2@2 b2@2 b1@4 ~@4 b1@4 ~@4 b1@4 ~@4 b1@4 a2]/4",
  BA: "[b2@2 b1@4 ~@4 b1@4 ~@4 b1@5 ~@3 e1@4 f1@4 f#1@4 ~@4 f#1@4 ~@4 f#1@4 ~@4 e1@4 f1@4 f#1@4 ~@4 f#1@4 ~@3 f#1@4 ~@4 f#1@3 ~ a2 ~ b2@2 b1@4 ~@5 b1@4 ~@3 b1@4 ~@4 b1@4 a2 ~ b2@2 b1@4 ~@4 b1@4 ~@4 b1@4 ~@4 e1@4 f1@4 f#1@4 ~@3 f#1@4 ~@4 f#1@4 ~@5 e1@3 f1@4]/6",
  BB: "f#1@4 ~@4 f#1@4 ~@4 f#1@4 ~@4 f#1@3 ~ a2@2 b2@2", BC: "b1@4 ~@4 b1@4 ~@4 b1@3 ~@5 b1@3 ~ a2 b2@2 ~",
  BD: "[b1@4 ~@4 b1@4 ~@3 b1@4 ~@4 e1@4 f1@4 f#1@4 ~@4 f#1@4 ~@4 f#1@4 ~@4 e1@4 f1@4 f#1@4 ~@4 f#1@4 ~@4 f#1@3 ~@5 f#1@3 a2@2 b2@2 ~ b1@4 ~@3 b1@4 ~@4 b1@3 ~@5 b1@3 ~ a2 ~ b2@2 b1@4 ~@4 b1@4 ~@4 b1@4 ~@4 e1@4 ~@3 f#1@3, ~@154 f1@5 ~]/5",
  BE: "~@6 f#1@4 ~@4 f#1@4 ~@4 e1@3 f1@4 f#1@3", BF: "~@5 f#1@4 ~@5 f#1@4 ~@3 f#1@3 ~ a2@2 b2@2 b1@3",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · acoustic guitar steel · "RymGt"
const acoustic_guitar_steel = note(`<
  ~@3 A B C D E F G H@8 I@7 J@2 K L M N O P Q R S T U V W X Y Z ~@11 AA@8 AB@3 AC@7 AD@8 AE AF@2 AG AH AI AJ AK AL AM AN
  AO AP AQ AR AS AT AU AV AW AX@7 AY@4
>`.pickRestart({
  A: "~@2 [e3,b3,e4]@7 ~@4 [d#3,b3,d#4]@9 [d#3,b3,d#4]@8 ~@2", // E5 G#m
  B: "~@2 [e3,b3,e4]@8 ~@4 [d#3,b3,d#4]@8 [d#3,b3,d#4]@7 ~@3", // E5 G#m
  C: "~ [f#3,c#4,f#4]@9 ~@3 [f#3,c#4,f#4]@8 [f#3,c#4,f#4]@8 ~@3", // F#5
  D: "~ [f#3,c#4,f#4]@8 ~@4 [c#4,f#4]@7 [f#3,c#4,f#4]@8 ~@4, ~@3 f#3@2 ~@3", // F#5
  E: "[e3,b3,e4]@9 ~@4 b3@7 [d#3,b3,d#4]@8 ~@4, ~@3 [d#3,d#4]@2 ~@3", // E5 G#m D#
  F: "[e3,b3,e4]@9 ~@3 [d#3,b3,d#4]@7 [d#3,b3,d#4]@8 ~@5", // E5 G#m
  G: "[f#3,c#4,f#4]@9 ~@3 [f#3,c#4,f#4]@7 [f#3,c#4,f#4]@8 ~@4 f#3", // F#5
  H: "[[c#4,f#4]@8 ~@3 [f#3,c#4,f#4]@8 [f#3,c#4,f#4]@7 ~@5 [e3,b3,e4]@9 ~@3 [d#3,b3,d#4]@7 [d#3,b3,d#4]@8 ~@4 [e3,b3,e4]@8 ~@4 [d#3,b3,d#4]@8 [d#3,b3,d#4]@9 ~@3 [f#3,c#4,f#4]@8 ~@4 [f#3,c#4,f#4]@8 [f#3,c#4,f#4]@8 ~@4 [f#3,c#4,f#4]@8 ~@4 [f#3,c#4,f#4]@8 [f#3,c#4,f#4]@8 ~@4 [e3,b3,e4]@8 ~@4 d#3@7 [d#3,b3,d#4]@8 ~@4 [e3,b3,e4]@8 ~@4 [d#3,b3,d#4]@8 [d#3,b3,d#4]@8 ~@4 [f#3,c#4,f#4]@8 ~@4 [f#3,c#4,f#4]@8 [f#3,c#4,f#4]@9 ~@3 [f#3,c#4,f#4]@3, ~@169 [b3,d#4]@8 ~@79]/8", // F#5 E5 G#m E5 G#m F#5 E5 G#m …
  I: "[~@9 [f#3,c#4,f#4]@8 [f#3,c#4,f#4]@4 ~@8 [g3,c4]@8 ~@3 [g3,c4]@15 ~@5 [g3,c4]@8 ~@4 [g3,c4]@16 ~@4 [g3,c4]@8 ~@4 [g3,c4]@15 ~@4 [d3,g3]@8 ~@4 [d3,g3]@16 ~@4 [g3,c4]@8 ~@4 [g3,c4]@16 ~@4 [g3,c4]@8 ~@3 [g3,c4]@16 ~@4 [g3,c4]@6]/7", // F#5 C5 G5 C5
  J: "[~@6 [g3,c4]@16 ~@4 [d3,g3]@9 ~@3 [d3,g3]@10 ~@10 [e3,b3,e4]@6]/2", // C5 G5 E5
  K: "~@6 [b3,d#4]@7 [d#3,b3,d#4]@8 ~@4 [e3,b3,e4]@7, ~@5 d#3@8 ~@19", // B G#m E5
  L: "~@5 [d#3,b3,d#4]@8 [d#3,b3,d#4]@8 ~@4 [f#3,c#4,f#4]@7", // G#m F#5
  M: "~@5 [f#3,c#4,f#4]@8 [f#3,c#4,f#4]@8 ~@4 [f#3,c#4,f#4]@7", // F#5
  N: "~@4 [f#3,c#4,f#4]@8 [f#3,c#4,f#4]@5 ~@7 [e3,b3,e4]@8", O: "~ [d#3,b3,d#4]@2 [d#3,b3,d#4]@2 ~ [e3,b3,e4]@2",
  P: "~@4 [d#3,b3,d#4]@7 ~ b3@7 ~@4 [f#3,c#4,f#4]@9, ~@11 [d#3,d#4]@7 ~@14", // G#m F#5 D#
  Q: "~@3 [f#3,c#4,f#4]@8 [f#3,c#4,f#4]@8 ~@4 [f#3,c#4,f#4]@8 ~", // F#5
  R: "~@3 [f#3,c#4,f#4]@7 ~ f#3@5 ~@7 [g3,c4]@8 ~, ~@10 [c#4,f#4]@5 ~@17", S: "~@2 [g3,c4]@15 ~@5 [g3,c4]@8 ~@2",
  T: "~ [g3,c4]@8 ~@2 [g3,c4]@4 ~", U: "~@2 [g3,c4]@15 ~@5 [d3,g3]@8 ~@2",
  V: "~@2 d3@15 ~@5 c4@8 ~@2, ~ g3@16 ~@4 g3@8 ~@3", W: "~@2 [g3,c4]@15 ~@4 [g3,c4]@8 ~@3",
  X: "~ [g3,c4]@16 ~@4 [g3,c4]@8 ~@3", Y: "~ [g3,c4]@16 ~@3 [d3,g3]@8 ~@4", Z: "[d3,g3]@13 ~@19",
  AA: "[~@15 [e3,a3]@28 ~@4 [f#3,b3]@26 ~@6 [e4,a4]@9 ~@4 d4@16 ~@3 [e4,a4]@9 ~@2 [d4,g4]@16 ~@4 [e4,a4]@9 ~@3 [d4,g4]@16 ~@4 [d4,f#4]@28 ~@4 [e4,a4]@8 ~@3 [d4,g4]@17 ~@3 [e4,a4]@9 ~@3 [d4,g4]@7, ~@91 g4@16 ~@149]/8", // A5 B5 A5 G5 A5 G5 D A5 …
  AB: "[~@13 [e4,a4]@9 ~@3 [d4,g4]@16 ~@4 d4@27 ~@4 [e3,b3,e4]@9 ~@3 [d#3,b3,d#4]@8, ~@11 f#4@7 ~@6]/3", // A5 G5 E5 G#m
  AC: "[[d#3,b3,d#4]@9 ~@3 [e3,b3,e4]@8 ~@4 d#3@7 [d#3,b3,d#4]@8 ~@5 [f#3,c#4,f#4]@8 ~@4 [f#3,c#4,f#4]@7 [f#3,c#4,f#4]@8 ~@4 [f#3,c#4,f#4]@9 ~@3 [f#3,c#4,f#4]@8 [f#3,c#4,f#4]@8 ~@4 [e3,b3,e4]@9 ~@3 [d#3,b3,d#4]@7 [d#3,b3,d#4]@9 ~@3 [e3,b3,e4]@9 ~@4 d#3@7 [d#3,b3,d#4]@8 ~@4 [f#3,c#4,f#4]@9 ~@3 [f#3,c#4,f#4]@8 [f#3,c#4,f#4]@8 ~@4 [f#3,c#4,f#4]@9 ~@3 [f#3,c#4,f#4]@7 [f#3,c#4,f#4]@3, ~@23 [b3,d#4]@8 ~@119 [b3,d#4]@8 ~@66]/7", // G#m E5 G#m F#5 E5 G#m E5 G#m …
  AD: "[~@10 [g3,c4]@8 ~@3 [g3,c4]@16 ~@4 [g3,c4]@8 ~@4 [g3,c4]@16 ~@4 [g3,c4]@8 ~@4 [g3,c4]@16 ~@3 [d3,g3]@8 ~@5 [d3,g3]@16 ~@3 [g3,c4]@8 ~@4 [g3,c4]@16 ~@4 [g3,c4]@8 ~@4 [g3,c4]@16 ~@3 [g3,c4]@8 ~@4 [g3,c4]@16 ~@4 [d3,g3]@8 ~@4 [d3,g3]@13]/8", // C5 G5 C5 G5
  AE: "~@7 [g3,c4]@8 ~@3 [g3,c4]@5 ~@9", AF: "~@3 [g3,c4]@4 ~@2 [g3,c4]@7", AG: "~@3 [d3,g3]@4 ~@2 g3@7, ~@17 d3@15",
  AH: "~@6 [g3,c4]@8 ~@3 [g3,c4]@15", AI: "~@5 [g3,c4]@8 ~@4 [g3,c4]@15", AJ: "~@4 [g3,c4]@8 ~@5 [g3,c4]@15",
  AK: "~@5 [d3,g3]@9 ~@3 [d3,g3]@10 ~@5", AL: "~ [e3,b3,e4]@2 ~ [d#3,b3,d#4]@2 [d#3,b3,d#4]@2",
  AM: "~@4 [e3,e4]@8 ~@3 [d#3,b3,d#4]@9 [d#3,b3,d#4]@6 ~@2, ~@3 b3@8 ~@21", // E G#m
  AN: "~@3 [f#3,c#4,f#4]@9 ~@4 f#3@7 [f#3,c#4,f#4]@8 ~, ~@15 [c#4,f#4]@8 ~@9", // F#5
  AO: "~@3 [f#3,c#4,f#4]@8 ~@4 [f#3,c#4,f#4]@8 [f#3,c#4,f#4]@8 ~", // F#5
  AP: "~@3 [e3,b3,e4]@9 ~@3 [d#3,b3,d#4]@7 [d#3,b3,d#4]@8 ~@2", // E5 G#m
  AQ: "~@2 [e3,b3,e4]@9 ~@3 [d#3,b3,d#4]@8 [d#3,b3,d#4]@8 ~@2", // E5 G#m
  AR: "~@2 [f#3,c#4,f#4]@8 ~@4 [f#3,c#4,f#4]@7 [f#3,c#4,f#4]@8 ~@3", // F#5
  AS: "~ [f#3,c#4,f#4]@8 ~@4 [f#3,c#4,f#4]@8 [f#3,c#4,f#4]@9 ~@2", // F#5
  AT: "~ [e3,b3,e4]@9 ~@3 [d#3,b3,d#4]@8 [d#3,b3,d#4]@8 ~@3", // E5 G#m
  AU: "~ e3@8 ~@3 [d#3,b3,d#4]@8 [d#3,b3,d#4]@8 ~@4, [b3,e4] ~@3", // G#m E5
  AV: "[f#3,c#4,f#4]@8 ~@5 [f#3,c#4,f#4]@7 ~ f#3@7 ~@4, ~@5 [c#4,f#4]@2 ~", // F#5
  AW: "[f#3,c#4,f#4]@8 ~@4 [f#3,c#4,f#4]@8 [f#3,c#4,f#4]@8 ~@3 [b3,e4]", // F#5 E5
  AX: "[e3@8 ~@4 [d#3,b3,d#4]@7 [d#3,b3,d#4]@8 ~@4 [e3,b3,e4]@8 ~@4 [d#3,b3,d#4]@8 [d#3,b3,d#4]@7 ~@5 [f#3,c#4,f#4]@8 ~@4 [f#3,c#4,f#4]@7 [f#3,c#4,f#4]@8 ~@5 [f#3,c#4,f#4]@9 ~@3 [f#3,c#4,f#4]@7 [f#3,c#4,f#4]@9 ~@4 [e3,b3]@8 ~@3 [d#3,b3,d#4]@8 [d#3,b3,d#4]@9 ~@3 [e3,b3,e4]@9 ~@3 [d#3,b3,d#4]@8 [d#3,b3,d#4]@7 ~@5 [f#3,c#4,f#4]@9 ~@3 [f#3,c#4,f#4]@7 [f#3,c#4,f#4]@9 ~@3 [f#3,c#4,f#4]@3, ~@63 e4@4 ~@45]/7", // G#m E5 G#m F#5 E5 G#m E5 G#m …
  AY: "[~@9 [f#3,c#4,f#4]@8 [f#3,c#4,f#4]@8 ~@4 [e3,b3,e4]@74 ~@25]/4", // F#5 E5
})).s("gm_acoustic_guitar_steel").gain(0.4)

// other · electric guitar clean · "Gtmel"
const electric_guitar_clean = note("<~@26 A@3 B C D E@3 ~@29 F G@8 ~@15 H@7 I J K L M@8 N ~@3>".pickRestart({
  A: "[~@26 b4@4 f#4@4 b3@3 b4@8 f#4@4 b3@4 f#4@4 b4@4 f#4@4 b3@4 b4@7 f#4@5 b3@4 f#4@4 a#4@4 f#4@3]/3",
  B: "~ c#4@4 a#4@8 f#4@4 c#4@3 f#4@4 a#4@4 f#4@4", C: "c#4 a#4@2 f#4 c#4 f#4 b4 f#4",
  D: "b3@4 b4@7 f#4@5 b3@4 f#4@4 ~@3 f#4@5, ~@24 b4@5 ~@3",
  E: "[b3@3 b4@8 f#4@4 b3@4 f#4@4 a#4@4 f#4@4 c#4@4 a#4@8 f#4@4 c#4@4 f#4@4 a#4@4 f#4@4 c#4@4 a#4@8 f#4@3 c#4@4 f#4@2 ~@12]/3",
  F: "~@3 b4 f#4 b3 b4@2",
  G: "[f#4@4 b3@4 f#4@3 b4@5 ~@3 b3@4 ~ b4@7 f#4@4 b3@4 f#4@3 ~ a#4@4 f#4@4 c#4@4 a#4@8 f#4@4 c#4@4 f#4@4 a#4@4 f#4@4 c#4@4 a#4@8 f#4@4 c#4@4 f#4@4 b4@4 f#4@4 b3@4 b4@7 f#4@5 b3@4 f#4@3 b4@4 f#4@4 b3@4 b4@8 f#4@4 b3@4 f#4@4 a#4@4 f#4@4 c#4@4 a#4@8 f#4@4 c#4@4 f#4@4 a#4@4 f#4@4 c#4@4 a#4@7 f#4@4 c#4@4 f#4@2 ~@25, ~@16 f#4@5 ~@235]/8",
  H: "[~@4 b4@4 f#4@4 b3@4 b4@7 f#4@4 b3@4 f#4@4 b4@4 f#4@4 b3@4 b4@8 f#4@4 b3@4 f#4@4 a#4@4 f#4@4 c#4@4 a#4@8 f#4@4 c#4@4 f#4@4 a#4@3 f#4@4 c#4@4 a#4@8 f#4@4 c#4@3 ~ f#4@4 b4@4 f#4@4 b3@4 b4@8 f#4@4 b3@4 f#4@4 b4@4 f#4@4 b3@4 b4@8 f#4@4 b3@4 f#4@4 a#4@4 f#4@4 c#4@4 a#4@7 f#4@4 c#4@4 f#4@3]/7",
  I: "~ a#4@4 f#4@4 c#4@4 a#4@8 f#4@4 c#4@3 ~ f#4@3", J: "~ b4@4 f#4@4 b3@4 b4@7 f#4@5 b3@3 f#4@4",
  K: "~ f#4 b3 b4@2 f#4 b3 f#4, ~ b4@5 ~@26", L: "a#4 f#4 c#4 a#4@2 f#4 c#4 f#4",
  M: "[a#4@4 f#4@4 c#4@4 a#4@7 f#4@5 c#4@3 f#4@4 b4@5 ~@3 b3@4 b4@7 f#4@5 b3@4 f#4@4 b4@4 f#4@4 b3@4 b4@7 f#4@5 b3@4 f#4@4 a#4@4 f#4@4 c#4@4 a#4@8 f#4@4 c#4@4 f#4@3 a#4@5 f#4@4 c#4@4 a#4@7 f#4@4 c#4@4 f#4@4 b4@4 f#4@4 b3@4 b4@8 f#4@4 b3@3 f#4@4 ~ b4@4 f#4@4 b3@4 b4@8 f#4@4 b3@4 f#4@4 a#4@4 ~@3 c#4@4 a#4@9 f#4@3 c#4@4 f#4@4 a#4@3, ~@36 f#4@5 ~@185 f#4@5 ~@25]/8",
  N: "~ f#4@4 c#4@4 a#4@8 f#4@4 c#4@4 f#4@2 ~@5",
})).s("gm_electric_guitar_clean").gain(0.21)

// chords · distortion guitar · "RymGt"
const distortion_guitar = note(`<
  ~@18 A@5 B C D E ~@7 F G H I J K L M N ~@11 O@4 P Q@2 R S T@2 ~@7 U V@2 W X Y Z AA AB AC@2 AD AE AF AG AH ~@23
>`.pickRestart({
  A: "[~@28 [g3,c4]@8 ~@4 [g3,c4]@11 ~@9 [g3,c4]@8 ~@3 [g3,c4]@12 ~@9 [g3,c4]@8 ~@3 [g3,c4]@11 ~@9 [d3,g3]@8 ~@4 [d3,g3]@10 ~@10 [g3,c4]@5]/5", // C5 G5 C5
  B: "~@6 [g3,c4]@11 ~@9 [g3,c4]@6", C: "~@3 [g3,c4]@5 ~@5 [g3,c4]@3", D: "~@6 [g3,c4]@11 ~@9 [d3,g3]@6",
  E: "~@5 [d3,g3]@11 ~@16", F: "~@23 [g3,c4]@8 ~", G: "~@2 [g3,c4]@10 ~@11 [g3,c4]@8 ~",
  H: "~ [g3,c4]@5 ~@5 [g3,c4]@4 ~", I: "~@2 [g3,c4]@11 ~@8 [d3,g3]@8 ~@3", J: "~ [d3,g3]@10 ~@10 [g3,c4]@8 ~@3",
  K: "~ [g3,c4]@10 ~@10 [g3,c4]@8 ~@3", L: "~ [g3,c4]@9 ~@11 [g3,c4]@8 ~@3", M: "~ g3@11 ~@8 [d3,g3]@8 ~@4, c4@11 ~@21",
  N: "[d3,g3]@11 ~@21", // G5
  O: "[~@16 a3@29 ~@2 [f#3,b3]@24 ~@8 [g4,c5]@6 [g4,c5]@2 [g4,c5] ~@3 [g4,b4]@8 [g4,b4]@6 ~@6 [g4,c5]@6 [g4,c5]@2 [g4,c5] ~@2 [g4,b4]@6, ~@15 e3@29 ~@84]/4", // B5 C5 G C5 G
  P: "~@2 [g4,b4]@4 ~@8 [g4,c5]@7 [g4,c5]!2 ~@3 [g4,b4]@6", // G C5 G
  Q: "[~@2 [g4,b4]@6 ~@6 [a3,d4]@25 ~@6 [g4,c5]@7 [g4,c5]@2 [g4,c5] ~@3 [g4,b4]@6]/2", // G D5 C5 G
  R: "~@2 [g4,b4]@6 ~@5 [g4,c5]@6 [g4,c5]@2 [g4,c5] ~@3 [g4,b4]@7", // G C5 G
  S: "~ [g4,b4]@5 ~@7 [g4,c5]@6 [g4,c5]@2 [g4,c5] ~@3 [g4,b4]@7", T: "[[g4,b4]@6 ~@6 [a3,d4]@25 ~@27]/2",
  U: "~@10 [g3,c4]@9 ~@3 [g3,c4]@10", V: "~@9 [g3,c4]@8 ~@4 [g3,c4]@10 ~", W: "~@8 [d3,g3]@8 ~@5 g3@11, ~@5 d3@3",
  X: "~@4 [g3,c4]@4 ~@2 [g3,c4]@5 ~", Y: "~@8 c4@8 ~@3 [g3,c4]@9 ~@4, ~@7 g3@8 ~@17",
  Z: "~@7 [g3,c4]@8 ~@4 [g3,c4]@11 ~@2", AA: "~@7 [d3,g3]@8 ~@4 [d3,g3]@11 ~@2", AB: "~@6 [g3,c4]@7 ~@5 [g3,c4]@4 ~@10",
  AC: "~@6 [g3,c4]@8 ~@4 [g3,c4]@11 ~@3", AD: "~@5 [d3,g3]@8 ~@5 g3@10 ~@4, ~@17 d3@11 ~@4",
  AE: "~@5 [g3,c4]@8 ~@4 [g3,c4]@11 ~@4", AF: "~@5 [g3,c4]@8 ~@3 [g3,c4]@11 ~@5",
  AG: "~@4 [g3,c4]@8 ~@4 [g3,c4]@11 ~@5", AH: "~@4 [d3,g3]@9 ~@3 [d3,g3]@12 ~@4",
})).s("gm_distortion_guitar").gain(0.66)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B C D@3 E@2 F G H I@2 J K L@2 M@3 N@2 O P@2 Q R S T U@2 V W X Y@3 Z@3 AA AB ~@11 AC AD AE AF J@2 AG K@2 AH AI M AJ
  AK N P AL@2 R@3 U@3 AM@2 AN Y@2 AO Z@2 AP AA@2 AQ AR AS AT AU AV D@2 AW AX E F G@2 J@2 I L K ~@3
>`.pickRestart({
  A: "~@3 x ~@6 x ~@7 x ~@7 x ~@5", B: "~ x ~@3 x ~@3 x ~@3 x ~@2", C: "~ x ~@7 x ~@6", D: "~ x ~@15 x ~@14", E: "x!2",
  F: "x ~@14 x ~@15 x", G: "~@15 x ~@11 x ~@3 x", H: "~@15 x ~@15 x", I: "~@7 x ~@5 x ~ x", J: "~@7 x ~@7 x",
  K: "~@13 x ~@15 x ~@2", L: "~@13 x ~@11 x ~@3 x ~@2", M: "~@3 x ~@3 x", N: "~@11 x ~@15 x ~@4",
  O: "~@11 x ~@14 x ~@5", P: "~@5 x ~@7 x ~@2", Q: "~@10 x ~@10 x ~@3 x ~@6", R: "~@9 x ~@15 x ~@6",
  S: "~@9 x ~@11 x ~@3 x ~@6", T: "~@9 x ~@10 x ~@3 x ~@7", U: "~ x ~ x", V: "~@8 x ~@10 x ~@3 x ~@8",
  W: "~@7 x ~@11 x ~@3 x ~@8", X: "~@7 x ~@3 x ~@7 x ~@3 x ~@8", Y: "~@3 x ~@7 x ~@4", Z: "~@5 x ~@15 x ~@10",
  AA: "~ x ~@3 x ~@2", AB: "~ x ~@6", AC: "~ x", AD: "~@15 x ~@3 x ~@3 x ~@3 x ~@3 x", AE: "~@3 x ~@11 x ~@15 x",
  AF: "~@15 x ~@14 x ~", AG: "~@14 x ~@14 x ~@2", AH: "~@13 x ~@14 x ~@3", AI: "~@2 x!2 ~@3 x",
  AJ: "~@8 x ~@3 x ~@14 x ~@4", AK: "~@7 x ~@3 x ~@15 x ~@4", AL: "~@3 x ~ x ~@7 x ~@2", AM: "~@7 x ~@15 x ~@8",
  AN: "~@7 x ~@7 x ~@3 x ~@12", AO: "~@6 x ~@14 x ~@10", AP: "~@5 x ~@14 x ~@11", AQ: "~@4 x ~@14 x ~@11 x",
  AR: "~@3 x ~@15 x ~@11 x", AS: "~@3 x ~@15 x ~@12", AT: "~@3 x ~@14 x ~@13", AU: "~ x ~@7 x ~@5 x",
  AV: "~@2 x ~@15 x ~@10 x ~@2", AW: "~ x ~@15 x ~@10 x ~@3", AX: "x ~@3 x ~@2 x",
})).gain(0.5)

// drums · snare
const snare = s("sd").struct(`<
  ~@3 A B@2 C D@2 E F G H I@2 J K@2 L@3 M@3 N@2 O P@2 Q R@2 S T U V@3 W@2 X Y Z ~@13 AA G I@3 K@2 AB AC L AD M@2 AE N@2
  AF P@2 R@2 AG T@2 AH V@2 AI W@2 Y AJ AK AL@3 AM@3 AN B C D@2 E G@2 AO I@2 K AP ~@3
>`.pickRestart({
  A: "~@10 x ~@14 x ~@6", B: "~@9 x ~@15 x ~@6", C: "~@9 x ~@14 x ~@7", D: "~ x ~ x", E: "~@8 x ~@14 x ~@8",
  F: "~@7 x ~@15 x ~ x ~@6", G: "~@7 x ~@15 x ~@8", H: "~@7 x ~@14 x ~@9", I: "~@3 x ~@7 x ~@4", J: "~@6 x ~@14 x ~@10",
  K: "~@5 x ~@15 x ~@10", L: "~ x ~@3 x ~@2", M: "~@3 x ~@15 x ~@12", N: "~ x ~@7 x ~@6", O: "~@2 x ~@14 x ~ x ~@12",
  P: "~ x ~@15 x ~@14", Q: "~ x ~@14 x ~@15", R: "x!2", S: "x ~@14 x ~@15 x", T: "~@15 x ~@15 x",
  U: "~@15 x ~ x ~@13 x", V: "~@7 x ~@7 x", W: "~@13 x ~@15 x ~@2", X: "~@13 x ~@14 x ~@3", Y: "~@3 x ~@3 x",
  Z: "~@3 x ~@4", AA: "~@7 x!2 ~@14 x ~@8", AB: "~@5 x ~@14 x ~@11", AC: "~@2 x!2 ~@6 x ~@5", AD: "~@4 x ~@14 x ~@12",
  AE: "~@3 x ~@14 x ~@13", AF: "~@2 x!2 ~ x ~ x ~@9 x ~@14", AG: "x ~@15 x ~@14 x", AH: "~@11 x ~@20",
  AI: "~@14 x ~@14 x ~@2", AJ: "~@6 x ~@7 x!2", AK: "x!2 ~@4 x ~@7 x ~", AL: "~@11 x ~@15 x ~@4", AM: "~@5 x ~@7 x ~@2",
  AN: "~@9 x ~@15 x ~ x ~ x ~ x", AO: "~@3 x ~@7 x!4 ~", AP: "~@5 x ~@15 x ~ x ~ x ~ x ~@4",
})).gain(0.5)

// drums · low tom
const low_tom = s("lt").struct("<~@2 [~@12 x!2 ~@2] ~@52 [~@19 x ~@3 x ~@3 x ~@3 x] [~@3 x ~@28] ~@54>").gain(0.35)

// drums · hihat
const hihat = s("hh").struct(`<
  A ~@2 B C@2 D E F G H I J K@2 L C M N F O I P Q K R S C@2 T F@2 U V W K@3 X C Y F Z ~@11 AA AB AC AD K@2 AE C@2 AF AG
  F AH I@2 AI K AJ AK C@2 F AL AM I@2 AN AO K AP AQ C AR AS AT AU I@2 AI K AV ~ AW AX F@2 AH I AY AZ K@2 M ~@4
>`.pickRestart({
  A: "~@3 x ~@7 x ~@7 x ~@7 x ~@4", B: "~@6 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@2",
  C: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2", D: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3",
  E: "~ x!7", F: "x!8", G: "x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~@4", H: "~@27 x ~@4",
// … 59 more lines

More by Little River Band