Strudelify

Gentle On My Mind

Glen Campbell

KeyC majorTempo100 bpm
0:00/0:00
// Gentle On My Mind — Glen Campbell
// 100 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 76 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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 · acoustic bass · "Bass"
const bass = note(`<
  A B C D E F G H B A@2 E@2 I J K L M B A C D C N L M O B O C E J@2 P L M Q O C D C R G H O@2 S C E I@2 T L M Q@2 C D E
  U G H B A V C E I W X Y Z AA AB AC AD
>`.pickRestart({
  A: "c2@7 ~ g2@7 ~ c2@5 ~@3 c2@6 ~@2", B: "c2@5 ~@3 c2@6 ~@2 c2@5 ~@3 c2@6 ~@2", C: "d2@7 ~ a2@7 ~ d2@7 ~ a2@6 ~@2",
  D: "d2@7 ~ a2@7 ~ d2@7 ~ a2@5 ~@3", E: "d2@7 ~ a1@7 ~ d2@7 ~ a1@4 f1@4", F: "d2@5 ~@3 d2@6 ~@2 g2@5 ~@3 g2@6 ~@2",
  G: "c2@6 ~@2 g2@6 ~@2 c2@6 ~@2 g2@7 ~", H: "c2@8 g2@8 c2@3 ~ g1@3 ~ a1@2 ~@2 b1@2 ~@2",
  I: "d2@5 ~@3 d2@6 ~@2 d2@5 ~@3 d2@6 ~@2", J: "d2@5 ~@3 d2@6 ~@2 d2@7 ~ a2@7 ~", K: "d2@7 ~ d2@7 ~ g2@8 d2@4 b1@3 ~",
  L: "c2@7 ~ g2@7 ~ c2@7 ~ g2@6 ~@2", M: "c2@7 ~ g2@7 ~ c2@7 ~ g2@5 ~@3", N: "d2@5 ~@3 d2@6 ~@2 g2@7 ~ d2@7 ~",
  O: "c2@5 ~@3 c2@6 ~@2 c2@7 ~ g2@7 ~", P: "d2@5 ~@3 d2@7 ~ g2@7 ~ d2@7 ~", Q: "c2@7 ~ g2@7 ~ c2@7 ~ g2@7 ~",
  R: "d2@7 ~ a2@7 ~ g2@5 ~@3 g2@6 ~@2", S: "c2@7 ~ g2@7 ~ c2@5 ~@3 c2@4 c#2@3 ~", T: "d2@7 ~ d2@7 ~ g2@5 ~@3 g2@6 ~@2",
  U: "d2@5 ~@3 d2@6 ~@2 g2@8 d2@4 b1@3 ~", V: "c2@5 ~@3 c2@6 ~@2 c2@5 ~@3 c2@4 c#2@3 ~",
  W: "d2@7 ~ a2@7 ~ d2@7 ~ a2@7 ~", X: "d2@7 ~ d2@5 ~@3 g2@5 ~@3 g2@6 ~@2",
  Y: "c2@6 ~@2 g2@8 c2@3 ~ g1@3 ~ a1@3 ~ b1@3 ~", Z: "c2@7 ~ g2@7 ~ d2@7 ~ a2@7 ~",
  AA: "d2@7 ~ a2@7 ~ d2@5 ~@3 d2@6 ~@2", AB: "d2@5 ~@3 d2@5 ~@3 g2@5 ~@3 g2@6 ~@2",
  AC: "c2@6 ~@2 g1@7 ~ c2@7 ~ g1@5 ~@3", AD: "c2@3 ~@17 g1@3 ~ c2@3 ~@5",
})).s("gm_acoustic_bass").gain(0.24)

// chords · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel = note(`<
  A B C@2 D E F@2 G H I D@2 J K L M@2 N O P@2 Q R S@2 T U V W X J Y Z M@2 AA U AB@2 W AC M@2 AD AE AF X Q AG AH AI M@2
  AJ AK P@2 Q AL S@2 AF AM V AN D AO AP AQ AR AS AT AU AV AW
>`.pickRestart({
  A: "~@4 [g3,c4,e4]@7 ~ e4@2 e4@2 ~@4 e4@2 ~@6 [b3,e4]@2 e4@2, ~@4 c3@12 c3@7 ~ g2@8, ~@11 g3@5 ~@6 e4@6 ~@4, ~@11 c4@3 ~@5 b3@8 ~ g3@4", // C E5
  B: "g3@3 ~ e4@2 ~@6 [a3,e4]@2 e4@2 f3@3 ~@7 g3 ~@3 e4@2, c3@3 e4@3 ~@6 [e2,g2]@4, ~@3 a3@8 ~ g3@4 ~@4 [g3,b3,e4]@7 [g3,b3]@5, ~@2 [g2,c3]@2 c3@3 ~", // A5 Em G C5
  C: "[a3@3 ~ a4@2 ~@6 [a3,d4,a4]@2 ~@12 a3 ~ a4@2 ~@2 a3@4 ~@8 a4@2 ~@6 a4@2 ~@4 [a3,d4] ~ [a3,d4,a4]@2 ~ b3, d3@6 a4@6 ~@2 a4@6 ~@2 a4@5 ~@3 a4@8 a4@4 a3@6 a2@16, ~@3 d4@8 ~@4 a3@4 ~ [a3,d4]@8 d4@8 [a3,d4]@8 d4@8 ~@4 d3@4 d3@3 ~, ~@8 a2@16 a2@15 ~ a2@6 a4@6 ~@2 a4@6 ~@4, ~@8 d3@7 ~ d3@11 ~ [d3,a3]@4 d3@15 d3@4 ~ [d3,a3,d4]@6 ~@6]/2", // D5
  D: "~@4 [a3,d4]@8 ~@4 d3@4 ~@2 f4@5 ~ [f3,f4]@2 ~@2, d3@7 d4@3 [d3,f3,a3]@5 ~, ~@4 [f3,f4]@7 ~ [f3,a3,f4]@10 ~@6 a3@4", // D5 F Dm F
  E: "~@4 [a3,c4,f4]@7 ~ f4@2 f4@2 g3@3 ~ f4@2 ~@6 [b3,f4]@2 f4@2, ~@4 d3@12 g2@7 ~ [d2,g2]@8, ~@11 a3@5 ~@6 f4@6 ~@4, ~@11 c4@3 ~@5 b3@8 ~ g3@4", // F Bdim G5
  F: "[~@12 e4@2 ~@13 c3 [c4,e4]@2 ~@6 c4@2 ~@2 g2@4 ~@8 c4@2 ~@4 g3@2 [c4,e4]@2 a3 c4, e2@8 g2@16 ~@2 g3@9 ~@3 c4@6 [c3,g3,c4]@6 [c3,g3]@5 e4@5 ~@4, ~@4 c3@12 e2@8 e2@8 e2@16 e2@8 e2@5 ~@3, ~@4 [g3,c4,e4]@7 g3@3 c4@6 [c3,g3,c4]@8 c3@8 [c3,g3]@8 g2@14 c3 ~ [g2,c3]@4, ~@11 c4@3 e4@14 ~@2 [c4,e4]@5 ~@3 e4@16 c4@5 ~@5]/2", // C C5 C C5 C
  G: "~@6 e4 [c4,e4] ~@6 e4 [b3,e4], e2 g2 e2 g2, ~ c3@3 ~ c3@3, ~@4 [g3,c4,e4]@7 g3@5 ~@4 [g3,b3,e4]@7 b3@3 ~@2, ~@11 c4@3 ~@13 g3@5", // C E5 C Em
  H: "g3@3 ~ e4@2 ~@6 [a3,e4]@2 e4@2 ~@4 [g3,b3,e4]@7 ~ e4@2 ~@2, c3@6 e4@6 ~@15 b3@3 ~@2, ~@3 a3@8 ~ g3@4 ~@11 g3@5, ~@2 [g2,c3]@2 ~ c3@3", // A5 Em C5
  I: "~@4 [g3,c4,e4]@7 ~@3 e4@2 g3@3 ~ e4@2 ~@6 [b3,e4]@2 e4@2, c3@11 g3@5 c3@6 e4@6 ~@4, ~@19 b3@8 ~ g3@4, ~@3 [g2,c3]", // C E5 C5
  J: "~@12 a4@2 [d4,a4]@2 a3@3 ~ f4@2 ~@6 [c4,f4]@2 f4@2, f2 a2 ~ [a2,d3], ~@4 d3@12 d3@7 ~@9, ~@4 [a3,d4,a4]@7 a3@5 ~@6 f4@6 ~@4, ~@11 d4@3 ~@5 c4@8 ~ a3@4", // D5 F5 D5
  K: "a3@3 ~ f4@2 ~@6 [b3,f4]@2 f4@2 a3@3 ~ f4@2 ~@6 [c4,f4]@2 f4@2, d3@3 f4@3 ~@5 f4@3 ~@2, ~@3 b3@8 ~ a3@4 ~@3 c4@8 ~ a3@4, ~@8 [a2,d3]@8 d3@7 ~ [a2,d3]@8", // Bdim F5 D5
  L: "a3@3 ~ a4@2 a4@2 ~@4 [d3,a3,c4,f4]@4 g3@3 ~@7 g3 ~@3 f4@2, d3@7 ~@9 g2@11 [g3,b3]@5, ~@3 d4@4 ~@13 [g3,b3,f4]@8 ~@4, ~@3 [b1,d2]", // Dm7 G G7 Bm
  M: "[g3@3 ~ e4@2 ~@6 [g3,c4,e4]@2 ~@12 g3 ~ e4@2 ~@2 g3@4 ~@8 e4@2 ~@6 e4@2 ~@4 [g3,c4] ~ [g3,c4,e4]@2 ~ a3, c3@6 e4@6 ~@2 e4@6 ~@2 e4@5 ~ c4@8 [g3,c4]@6 g3@6 g2@16, ~@3 c4@8 ~@4 g3@4 ~ [g3,c4]@8 ~@2 e4@8 e4@5 ~ c4@8 ~@4 c3@4 c3@3 ~, ~@8 g2@16 g2@15 ~ g2@6 e4@6 ~@2 e4@6 ~@4, ~@8 c3@7 ~ c3@11 ~ [c3,g3]@4 c3@15 c3@4 ~ [c3,g3,c4]@6 ~@6]/2", // C C5 C C5
  N: "g3@3 ~ e4@2 ~@6 [c4,e4]@2 e4@2 ~@4 e4@2 ~@6 [b3,e4]@2 e4@2, c3@3 e4@3 ~@5 e4@3 ~@2, ~@3 c4@8 ~ g3@4 ~@3 b3@8 ~ g3@4, ~@8 [g2,c3]@8 c3@7 ~ g2@8", // C E5 C5
  O: "~@4 [g3,a3,e4]@7 ~ e4@2 e4@2 ~@4 e4@2 ~@6 [b3,e4]@2 e4@2, ~@4 c3@12 c3@7 ~ g2@8, ~@11 g3@5 ~@6 e4@6 ~@4, ~@11 a3@3 ~@5 b3@8 ~ g3@4", // A7 E5
  P: "[~@12 a4@2 ~@13 d3 [d4,a4]@2 ~@6 d4@2 ~@2 a2@4 ~@8 d4@2 ~@4 a3@2 [d4,a4]@2 b3 d4, f2@8 a2@16 ~@2 a3@9 ~@3 d4@6 [d3,a3,d4]@6 [d3,a3]@5 a4@5 ~@4, ~@4 d3@12 f2@8 f2@8 f2@16 f2@8 f2@5 ~@3, ~@4 [a3,d4,a4]@7 a3@3 d4@6 [d3,a3,d4]@8 d3@8 [d3,a3]@8 a2@14 d3 ~ [a2,d3]@4, ~@11 d4@3 a4@14 ~@2 [d4,a4]@5 ~@3 a4@16 d4@5 ~@5]/2", // D5
  Q: "[d3,f3,d4]@4 f4@2 ~@4 f3 ~ f4 ~@7 f4@2 ~@4 a3 [d4,f4]@2 ~ f4 ~, ~@4 a3@7 d4@11 ~ [d4,f4]@4 a3@5, ~@8 a2@7 ~ a2@14 ~@2, ~@11 f3@8 ~ [d3,f3,a3]@6 f3@3 ~@3, ~@12 a3@7 ~@5 d3@6 ~@2", // Dm
  R: "~@4 f4@2 ~@6 [c4,f4]@2 f4@2 g3@3 ~ f4@2 ~@6 [b3,f4]@2 f4@2, d3@3 f4@3 ~@5 f4@3 ~@2, ~@3 c4@8 ~ a3@4 ~@3 b3@8 ~ g3@4, ~@8 a2@8 g2@7 ~ [d2,g2]@8", // F5 Bdim G5
  S: "[~@4 [g3,c4,e4]@7 ~ e4@2 ~@6 [c3,g3,c4]@6 ~@2 [c4,e4]@2 [c4,e4]@5 ~ c4@2 ~@6 [c3,g3,c4]@6 ~@2 c4@2 ~ e4@5 [g2,c3]@4, ~ c3@4 ~@2 c3@2 [c3,g3]@2 g2@4 ~, ~@11 g3@8 ~@7 g3@9 ~@15 [c3,g3]@7 ~@7, ~@11 c4@3 e4@14 ~@10 e4@16 c4@5 ~ [c4,e4]@2 ~@2]/2", // C C5 C C5 C
  T: "~@12 e4@2 [c4,e4]@2 f3@3 ~@7 g3 ~@3 e4@2, e2 g2 ~ [e2,g2], ~ c3@3 c3@3 ~, ~@4 [g3,c4,e4]@7 g3@5 ~@4 [g3,b3,e4]@8 ~@4, ~@11 c4@3 ~@13 [g3,b3]@5", // C Em C Em G
  U: "~@4 [g3,a3,e4]@7 ~ e4@2 ~@6 e4@2 ~@6 [b3,e4]@2 e4@2, ~@4 c3@12 c3@7 ~ g2@8, ~@11 g3@5 ~@6 e4@6 ~@4, ~@11 a3@3 ~@5 b3@8 ~ g3@4", // A7 E5
  V: "g3@3 ~ e4@2 ~@6 [c4,e4]@2 e4@2 f3@3 ~@7 g3 ~@3 e4@2, c3@3 e4@3 ~@6 [e2,g2]@4, ~@3 c4@8 ~ g3@4 ~@4 [g3,b3,e4]@7 [g3,b3]@5, ~@2 [g2,c3]@2 c3@3 ~", // C Em G C5
  W: "[f3,a3]@2 ~@4 f4 ~ f3@2 ~@4 [d4,f4] ~, [d4,f4]@11 [d3,f3]@5 d3@14 ~@2, d3@4 a2@8 a2@3 ~, ~@4 a3@8 [a3,d4]@8 [f3,a3]@7 f3@3 ~@2, ~@7 f4@4 [d4,f4]@3 a3@2", // F Dm D5 F Dm
  X: "~@4 [a3,d4,f4]@8 d4@2 f4@5 ~ f4@2 f4@5 ~ [f3,f4]@2 ~@2, d3@9 ~ [f3,a3]@2 ~@2 a3@2, ~@2 f3@3 ~ [f3,a3]@4 d4@4 ~@2", // Dm F
  Y: "a3@3 ~ f4@2 ~@6 [b3,f4]@2 f4@2 ~@12 f4@2 [c4,f4]@2, d3@6 f4@6 ~@8 [a3,c4,f4]@7 a3@5, ~@3 b3@8 ~ a3@4 ~@4 d3@12, ~ [a2,d3] f2 a2, ~@27 c4@3 ~@2", // Bdim F5 F D5
  Z: "~@4 a4@2 a4@2 a3@3 ~ f4@2 f4@2 ~@4 [g3,b3,f4]@7 ~ f4@2 ~@2, d3@7 ~ d3@7 ~@5 g2@12, ~@3 d4@4 ~@4 c4@4 ~@12 g3@5, ~@27 b3@3 ~@2", // G7
  AA: "~@4 [g3,c4,e4]@7 ~@3 e4@2 ~@4 [g3,b3,e4]@7 ~ e4@2 e4@2, c3@11 g3@5 ~@4 c3@12, ~@27 g3@5, ~@27 b3@3 ~@2", // C Em
  AB: "[~@4 [a3,d4,a4]@7 ~ a4@2 ~@6 [d3,a3,d4]@8 [d4,a4]@2 ~@6 [d3,a3]@8 [d3,a3,d4]@8 d4@3 ~@5 [a2,d3]@4, ~ d3@4 ~@2 d3@2 ~@2 a2@4 ~, ~@11 a3@8 ~@45, ~@11 d4@3 ~@46 a4@2 ~@2]/2", // D5
  AC: "~@4 [a3,c4,f4]@7 ~ f4@2 ~@2 g3@3 ~@7 g3 ~@3 f4@2, ~@4 d3@12 g2@11 [g3,b3]@5, ~@11 a3@5 ~@4 [g3,b3,f4]@8 ~@4, ~@11 c4@3 ~@10 [b1,d2]@8", // F G G7 Bm
  AD: "~@4 [g3,c4,e4]@7 ~ e4@2 e4@2 g3@3 ~ e4@2 ~@6 [b3,e4]@2 e4@2, ~@4 c3@12 c3@7 ~ [g2,c3]@8, ~@11 g3@5 ~@6 e4@6 ~@4, ~@11 c4@3 ~@5 b3@8 ~ g3@4", // C E5 C5
  AE: "g3@3 ~ e4@2 ~@6 [a3,e4]@2 e4@2 ~@4 e4@2 ~@6 [b3,e4]@2 e4@2, c3@3 e4@3 ~@5 e4@3 ~@2, ~@3 a3@8 ~ g3@4 ~@3 b3@8 ~ g3@4, ~@8 [g2,c3]@8 c3@7 ~ g2@8", // A5 E5 C5
  AF: "g3@3 ~ e4@2 ~@6 [c4,e4]@2 e4@2 g3@3 ~ e4@2 ~@6 [b3,e4]@2 e4@2, c3@3 e4@3 ~@5 e4@3 ~@2, ~@3 c4@8 ~ g3@4 ~@3 b3@8 ~ g3@4, ~@8 [g2,c3]@8 c3@7 ~ [g2,c3]@8", // C E5 C5
  AG: "~@2 a4 ~@3 [d4,a4] a4 ~@2 f4 ~@3 [c4,f4] f4, d3@3 a4@3 ~@5 f4@3 ~@2, ~@3 d4@8 ~ a3@4 ~@3 c4@8 ~ a3@4, ~@8 a2@8 d3@7 ~ a2@8", // D5 F5
  AH: "g3@3 ~@7 a3 ~@3 f4@2 ~@4 [a3,c4,f4]@7 ~ f4@2 f4@2, d3@11 [a3,b3]@5 ~@4 d3@12, ~@4 [a3,b3,f4]@8 ~@15 a3@5, ~@8 [f2,a2]@8 ~@11 c4@3 ~@2", // F Asus2 Bm7b5 F
  AI: "~@4 [d3,a3,d4,a4]@4 a3@3 ~ f4@2 f4@2 g3@3 ~@7 g3 ~@3 f4@2, ~@8 d3@7 ~ g2@11 [g3,b3]@5, ~@11 c4@4 ~@5 [g3,b3,f4]@8 ~@4, ~@3 [b1,d2]", // D5 G G7 Bm
  AJ: "~@12 e4@2 [c4,e4]@2 ~@4 [g3,b3,e4]@7 ~ e4@2 ~@2, e2 g2 ~@2, ~ c3@3 ~ c3@3, ~@4 [g3,c4,e4]@7 g3@5 ~@11 g3@5, ~@11 c4@3 ~@13 b3@3 ~@2", // C Em C
  AK: "~@12 e4@2 [a3,e4]@2 g3@3 ~ e4@2 ~@6 [b3,e4]@2 e4@2, e2 g2 ~ [g2,c3], ~@4 c3@12 c3@7 ~@9, ~@4 [g3,a3,e4]@7 g3@5 ~@6 e4@6 ~@4, ~@11 a3@3 ~@5 b3@8 ~ g3@4", // A5 E5 C5 A7
  AL: "a3@3 ~ f4@2 ~@6 [c4,f4]@2 f4@2 ~@12 f4@2 [b3,f4]@2, d3@6 f4@6 ~@8 [g3,b3,f4]@7 g3@5, ~@3 c4@8 ~ a3@4 ~@4 g2@12, ~ [a2,d3] b1 d2, ~@27 b3@3 ~@2", // F5 Bdim G7 D5
  AM: "~@6 e4 [a3,e4] ~@2 e4 ~@3 [b3,e4] e4, e2 g2 ~ g2, ~@4 c3@12 c3@7 ~@9, ~@4 [g3,a3,e4]@7 g3@5 ~@6 e4@6 ~@4, ~@11 a3@3 ~@5 b3@8 ~ g3@4", // A5 E5 A7
  AN: "a4@4 f5@8 f5@2 ~@6 f5@2 ~@6 [a4,f5]@2 b4 ~, [d3,f3]@4 ~@2 a4@3 a3@3 d3@3 ~, ~ [a3,f4]@4 f4@2 f4, ~@14 f5@5 a4@8 a3@5, ~@8 d3@3 f5@3 ~@2", // Dm
  AO: "a3@3 ~ a4@2 ~@6 [d4,a4]@2 a4@2 ~@12 f4@2 [c4,f4]@2, d3@6 a4@6 ~@8 [a3,c4,f4]@7 a3@5, ~@3 d4@8 ~ a3@4 ~@4 d3@12, ~ [a2,d3] f2 a2, ~@27 c4@3 ~@2", // D5 F5 F D5
  AP: "~@4 [a3,b3,f4]@7 ~ f4@2 f4@2 ~@4 f4@2 ~@6 [c4,f4]@2 f4@2, ~@4 d3@12 d3@7 ~ a2@8, ~@11 a3@5 ~@6 f4@6 ~@4, ~@11 b3@3 ~@5 c4@8 ~ a3@4", // Bm7b5 F5
  AQ: "~@2 a4!2 ~@2 f4!2 ~@2 f4 ~@3 [b3,f4] f4, d3@7 ~ d3@7 ~ g2@6 f4@6 ~@4, ~@3 d4@4 ~@4 c4@4 ~@4 b3@8 ~ g3@4, ~@3 d2", // Bdim
  AR: "[c3,e3,c4]@4 e4@2 ~@4 e3 ~ e4 ~@7 e4@2 ~@4 g3 [c4,e4]@2 ~@3, ~@4 g3@7 c4@11 ~ [c4,e4]@4 g3@5, ~@8 g2@7 ~ g2@14 ~@2, ~@11 e3@8 ~ [c3,e3,g3]@6 e3@3 ~@3, ~@12 g3@7 ~@5 c3@6 ~@2", // C
  AS: "~@4 [g3,c4,e4]@7 ~ e4@2 e4@2 ~@4 f4@2 ~@6 [c4,f4]@2 f4@2, ~@4 c3@12 d3@7 ~ a2@8, ~@11 g3@5 ~@6 f4@6 ~@4, ~@11 c4@3 ~@5 c4@8 ~ a3@4", // C F5
  AT: "~@4 [a3,b3,f4]@7 ~ f4@2 ~@2 a3@3 ~ f4@2 ~@6 [c4,f4]@2 f4@2, ~@4 d3@12 d3@7 ~ [a2,d3]@8, ~@11 a3@5 ~@6 f4@6 ~@4, ~@11 b3@3 ~@5 c4@8 ~ a3@4", // Bm7b5 F5 D5
  AU: "~@2 [d3,a3,d4,a4]@2 ~@2 [d3,a3,c4,f4]@2 ~@2 f4 ~@3 [b3,f4] f4, ~@8 g2@3 f4@3 ~@2, ~@19 b3@8 ~ g3@4, ~@3 d2", // D5 Dm7 Bdim
  AV: "~@4 [g3,c4] ~ [c4,e4] ~ e3@4 [g3,c4] ~@7 [g3,c4,e4]@2 ~@6 [g3,e4] ~@3, c3@12 e4@3 ~ c3@7 ~ e3@8", // C5 C C5 C
  AW: "[c3,g3,c4,e4]@3 ~@17 g2@3 ~ [c3,g3,c4,e4]@5 ~@3", // C
})).s("gm_acoustic_guitar_steel").gain(0.16)

// chords · acoustic guitar steel · "Guitar" · soft notes
const acoustic_guitar_steel_2 = note(`<
  A ~@3 B C ~@4 D B@2 ~@2 E ~@2 F G ~@3 H I J ~ F ~@2 K ~@2 L ~@2 M F ~ N ~@4 O F ~ K ~ P Q ~@9 I J ~ F ~@2 B ~ R S ~ T
  ~ U V ~
>`.pickRestart({
  A: "e2@4 g2@3 c4 g3@2 ~@2 c3@4", B: "a2@8 ~@3 f3 ~@12 a2@6 ~@2, ~@8 a2@14 d4@7 ~@3", C: "f2@4 a2@3 c4 ~@8",
  D: "f3@3 ~@7 g3 c4@5 ~@16, ~ [e2,g2] ~@2", E: "~ f2 ~@2", F: "~@4 g3 ~ c3@2", G: "e2@4 g2@3 a3 g3@2 ~@2 c3@4",
  H: "a3 ~ d3@2 ~@4", I: "e2@8 ~@8 e2@8 ~@3 c3 ~@4, ~ g2@2 e2, ~@7 c4@3 ~@6",
  J: "~@8 g2@4 ~@4 e2@8 ~@2 g3@3 ~ a3 c4, e2@16 ~@8 e2@5 ~@3, ~@6 c4@6 ~@14 c3 ~@5",
  K: "g3 f3@3 ~@6 f3 ~@4 d4@4 d3@5 f3@2 f3 ~ d4@2 ~@2", L: "a3 ~@7",
  M: "f3@3 ~@7 g3 c4@5 e2@8 g2@6 b3@2, ~ [e2,g2] ~@2", N: "~@14 d4 ~", O: "e2@4 g2@3 c4 ~@8", P: "a3 ~ d3@2 a3 ~ d3@2",
  Q: "~@8 f2@4 a2@3 c4", R: "f2@4 a2@3 b3 a3@2 ~@2 d3@4", S: "a3 ~ a3 ~ g3 ~ g2@2", T: "e2@4 g2@3 c4 a3@2 ~@2 d3@4",
  U: "~@2 f2@2 g3 ~ g2@2", V: "~@4 e4 ~ g3 ~@21 c4 ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.12)

// chords · banjo · "Bango"
const banjo = note(`<
  A B C@2 D E F@2 G H I J@2 K L M N O P A Q@2 J R S O T U V J W X Y Z N O AA AB AC AD AE AF S O AG AH P AI@2 AJ AK AL
  F@2 AM AN AO AC W AP AQ AR AS AT AU J AV AW AX AY AQ AZ BA BB BC BD
>`.pickRestart({
  A: "~@8 g4@2 ~@2 a4@4 d#3 ~ e3@3 ~@9 d4@2, e4@6 a4@5 ~@10 g3@5 b3@4 ~@2, ~@4 c5@5 ~ c5@5 ~@9 d4@4 g3@4",
  B: "c3@4 e4@4 ~@4 c3@3 c4 d#3 ~ e3@3 ~@9 d4@2, ~@8 c4@5 ~@8 g3@5 b3@4 ~@2, ~@11 e4@4 ~@9 d4@4 g3@4",
  C: "[d4@4 ~@3 d4@4 ~@25 f4@2 a4@2 d4 ~@3 c#4@2 ~@2 d4@4 ~@2 d4@4 a4@2 d4@2 ~@2, ~@4 a4@5 ~@2 a4@3 f4@5 d4@8 ~ d4@5 ~@2 d4@4 ~@25, ~@12 d4@4 a4@4 f4@5 ~@2 f4@2 ~@2 f4@4 ~@29, ~@23 a4@8 ~ a4@5 ~@6 a4@3 a4@4 ~@2 a4@5 ~@7]/2",
  D: "~@8 b3@2 ~ a3 f3@2 ~ f4@5 ~@2 d4@2 ~@4 a3@3 f4, f4@4 d4@10 ~@10 f4@5 ~@3, ~ a3@2 f4@3 ~@4 a4@6, ~@27 d4@5",
  E: "d3@4 f4@4 ~@4 d3@3 d4 ~@8 e3@2 ~ d3 b2@2 ~ b3, ~@8 d4@5 ~@3 b3@4 g3@10 ~@2, ~@11 f4@4 ~@3 d3@4 b3@6 ~@4",
  F: "[~@8 a3@2 ~ g3 e3@2 ~ e4@5 ~@2 c4@2 ~@16 c4@3 ~@5 e4@2 c3@3 ~@3 d3@2 ~@2 e3@3 c4, e4@4 c4@10 ~@10 e4@4 g3@9 ~@2 g3@10 ~@4 f3@6 ~@5, ~@2 g3@4 e4@6 ~@8 g4@11 e4@4 ~ e4@5 ~@2 e4@4 ~@17, ~@27 c4@11 ~@9 c4@4 ~@3 c4@6 ~@4, ~@32 c3@10 ~@2 c3@5 ~@15]/2",
  G: "c4@4 g4@4 ~@2 g4@4 e4@2 e4@4 [g4,d5]@5 ~@3 b4@4, ~@8 e4@5 ~@13 d5@4 ~@2", // G5
  H: "d#3 ~ e3@3 ~@9 c4@2 ~@8 g4@2 ~@2 b4@4, ~@5 g3@5 a3@4 ~@2 e4@6 b4@5 ~@5, ~@8 c4@4 g3@4 ~@4 d5@5 ~ d5@5 ~",
  I: "c4@4 g4@4 ~@2 g4@4 e4@2 ~@4 e4@2 g4@2 c4@2 ~@2 b3@2 g4 ~, ~@8 e4@5 ~@3 [e4,g4]@5 ~@6 g4@3 ~@2, ~@19 b3@4 ~@9", // Em
  J: "a4@4 f5@5 ~@3 d5@4 ~@11 a4@3 ~@2, ~@5 f5@2 ~ f5@2 a4@2 d5@4, ~@18 d5@5 f5@6 ~@3",
  K: "f3 ~ f3@3 ~@3 d4@4 ~@2 d4 ~@9 a3@2 ~@2 c4@4, ~@5 a3@5 ~@2 a3@4 f3@6 c4@5 ~@5, ~@20 d4@5 ~ d4@5 ~",
  L: "~@8 b3@2 ~ a3 f3@2 ~ f4 ~@8 a3@2 ~@2 c4@4, f4@4 d4@10 ~@2 f3@6 c4@5 ~@5, ~@2 a3@4 f4@6 ~@8 d4@5 ~ d4@5 ~",
  M: "a4@4 ~@2 d5@2 f4@3 a4@3 f4@2 ~@8 d4@2 ~@2 f4@4, ~@4 f5@4 c4@8 b3@6 f4@5 ~@5, ~@20 g4@5 ~ g4@5 ~",
  N: "g4 ~@3 e4@4 g4@4 e4@2 ~@2 f4@4 ~@4 e4@4 g4@4, ~@3 g4@3 ~@8 g4@5 ~ g4@7 ~@5",
  O: "c4@2 g4@2 ~ g4@2 ~ g4@2 e4 ~ e4 ~ e4 g4, ~@8 e4@5 ~ e4@5 ~@3 g4@7 ~@3",
  P: "c3@4 e4@4 ~@4 c3@3 c4 ~@8 g4@2 ~@2 b4@4, ~@8 c4@5 ~@7 d5@5 ~ d5@5 ~, ~@11 e4@4 ~ e4@6 b4@5 ~@5",
  Q: "[d3@4 f4@4 ~@18 d4@2 ~@12 b3@2 ~ a3 f3@2 ~ f4@5 ~@8 a3@3 f4, ~@8 d4@4 d3@18 d4@4 ~@2 d4@10 ~@13 d4@5, ~@11 f4@4 d4@3 a3@6 a4@13 ~@15 a4@12, ~@16 f4@4 d4@5 ~@3 a3@5 ~ a3@4 ~@26, ~@23 f4@8 ~ f4@5 ~ f4@6 ~@12 f4@5 ~@3]/2",
  R: "~@8 a3@2 ~@2 c4@4 ~@4 b3@2 d4@2 g3@2 ~@2 f#3@2 d4 ~, f3@6 c4@5 ~@5 [b3,d4]@5 ~@6 d4@3 ~@2, ~@4 d4@5 ~ d4@5 ~@4 f3@4 ~@9", // Bm
  S: "~@2 e4@2 g4@2 e4 ~ f4@2 ~@2 e4@2 g4@2, ~@3 g4@3 ~@8 g4@5 ~ g4@7 ~@5",
  T: "c4@4 g4@4 ~@2 g4@4 e4@2 d#3 ~ e3@3 ~@9 d4@2, ~@8 e4@5 ~@8 g3@5 b3@4 ~@2, ~@6 d4 g3",
  U: "a3@4 ~@3 a3@4 ~@3 e4@2 e4@4 [g4,d5]@5 ~@3 b4@4, ~@4 g4@5 ~@2 g4@4 ~@11 d5@4 ~@2, ~@3 a3 ~@4", // G5
  V: "c3@4 e4@4 ~@4 c3@3 c4 ~@8 a3@2 ~ g3 e3@2 ~ e4, ~@8 c4@5 ~@5 g3@4 e4@6 ~@4, ~@11 e4@4 ~ e4@4 c4@10 ~@2",
  W: "d3@2 f4@2 ~@9 d4 ~ d4, ~@4 d4@2 d3@9 ~, ~@11 f4@4 d4@3 a3@6 a4@8, ~@16 f4@4 d4@5 ~@3 a3@4, ~@23 f4@8 ~",
  X: "a4@4 f5@5 ~@3 d5@4 d3@4 f4@4 ~@4 d3@3 d4, ~@10 f5@4 ~@10 d4@5 ~@3, ~@27 f4@4 ~",
  Y: "b3@4 ~@3 b3@4 ~@3 f4@2 ~@4 f4@2 a4@2 d4@2 ~@2 c#4@2 a4 ~, ~@4 a4@5 ~@2 a4@4 ~ [f4,a4]@5 ~@6 a4@3 ~@2, ~@12 b3@4 ~@3 c4@4 ~@9", // F
  Z: "d3@4 f4@4 a4 ~@3 f4@4 f4@4 [g4,d5]@5 ~@3 b4@4, ~@11 a4@3 ~@12 d5@4 ~@2", // G5
  AA: "e4@4 ~@4 c4@3 ~@3 e4 g4 c3@4 e4@4 ~@4 c3@3 c4, ~@4 g4@10 ~@13 e4@4 ~, ~@6 e4@7 ~@11 c4@5 ~@3",
  AB: "d#3 ~ e3@3 ~@9 c4@2 c3@4 e4@4 ~@4 c3@3 c4, ~@5 g3@5 a3@4 ~@10 c4@5 ~@3, ~@8 c4@4 g3@4 ~@11 e4@4 ~",
  AC: "a4@4 ~@4 a4@2 ~@2 d5@4 ~@2 d5@4 ~@5 a4@4 a4, ~@4 f5@5 ~ f5@5 ~ f5@5 ~ f5@8 ~@2, ~@6 d5@5 ~@13 d5@8",
  AD: "a4@5 ~@3 d4@3 ~@3 a4 ~@3 d4@6 ~@4 a4 ~ a4@2, ~@6 a4@7 ~@2 a4@5 ~@12",
  AE: "f3 ~ f3@3 ~@3 d4@4 ~@2 d4 ~ d4@3 ~ d4 ~ d4 ~@5 f3 ~ d3@2, ~@5 a3@5 ~@2 a3@4 ~@8 d4@5 ~@3, ~@27 a3@2 ~@3",
  AF: "~@8 a3@2 ~@2 c4@4 ~@4 c#4 ~ d4 ~ g4@4 e4@2 g4@2, f3@6 c4@5 ~@21, ~@4 d4@5 ~ d4@5 ~@17",
  AG: "c3@4 e4@4 ~@4 c3@3 c4 ~@4 e4@2 g4@2 c4@2 ~@2 b3@2 g4 ~, ~@8 c4@5 ~@6 b3@4 ~@9, ~@11 e4@4 ~ [e4,g4]@5 ~@6 g4@3 ~@2", // Em
  AH: "e4@4 [g4,c5]@5 ~@3 a4@4 b3@4 ~@3 b3@4 ~@3 e4@2, ~@10 c5@4 ~@6 g4@5 ~@2 g4@4 ~, ~@7 b3", // C5
  AI: "~@4 d4@4 a3@2 d4 ~ d4@3 ~ d4 ~ d4@3 ~ d4 ~@5 f3@3 a3, f3@7 ~@17 d4@7 ~, ~@27 a3@4 ~",
  AJ: "a4@4 f5@5 ~@3 d5@4 ~@8 a3@2 ~@2 c4@4, ~@10 f5@4 ~@2 f3@6 c4@5 ~@5, ~@20 d4@5 ~ d4@5 ~",
  AK: "f4@4 [a4,d5]@5 ~@3 b4@4 f3 ~ f3@3 ~@9 d4@2, ~@10 d5@4 ~@7 a3@5 c4@4 ~@2, ~@6 d4 a3", // D5
  AL: "d3@4 f4@4 ~@6 f4 ~ a#3 ~ b3@3 ~@9 g4@2, ~@8 f4@4 d4@4 ~@5 d4@5 f4@4 ~@2, ~@5 a3@2 ~@5 g4@2 d4@2",
  AM: "~@4 e4@4 g4@4 e4@2 g4@2 c3@4 e4@4 ~@4 c3@3 c4, ~@3 g4@3 ~@18 c4@5 ~@3, ~@27 e4@4 ~",
  AN: "~@8 g4@2 ~@2 a4@4 ~@4 e4@2 g4@2 c4@2 ~@2 b3@2 g4 ~, e4@6 a4@5 ~@5 [e4,g4]@5 ~@6 g4@3 ~@2, ~@4 c5@5 ~ c5@5 ~@4 b3@4 ~@9", // Em
  AO: "a4@3 a4@3 ~@2 a4@3 ~ a4 ~ a4@7 ~@5 a3@4 a4@2, d4@8 ~@16 a4@5 ~@3",
  AP: "d3@4 f4@4 ~@4 d3@3 d4 ~@8 d4@2 ~@2 f4@4, ~@8 d4@5 ~@3 b3@6 f4@5 ~@5, ~@11 f4@4 ~@5 g4@5 ~ g4@5 ~",
  AQ: "e4@3 g4@3 ~@2 g4@4 e4@2 ~@2 e4@5 ~@5 g3@4 e4@2, c4@6 e4@5 ~@3 g4@9 ~ e4@5 ~@3",
  AR: "~@8 g4@2 ~@2 a4@4 ~@2 a4@4 ~@6 e4@3 g4, e4@6 a4@5 ~@13 a4@8, ~@4 c5@5 ~ c5@5 ~ c5@5 ~ c5@8 ~@2, ~@27 g4@4 ~",
  AS: "e4@3 g4@3 ~@2 g4@4 e4@2 g4@2 ~@8 a3@2 ~ g3 e3@2 ~ e4, c4@6 e4@5 ~@5 e4@4 c4@10 ~@2, ~@9 g3@2 e4@3 ~@2",
  AT: "a3@4 ~@3 a3@4 ~@3 e4@2 ~@4 e4@2 g4@2 c4@2 ~@2 b3@2 g4 ~, ~@4 g4@5 ~@2 g4@4 ~ [e4,g4]@5 ~@6 g4@3 ~@2, ~@12 a3@4 ~@3 b3@4 ~@9", // Em
  AU: "~@4 e4@4 g4@4 e4@2 g4@2 ~@8 a3@2 ~ g3 e3@2 ~ e4, ~@3 g4@3 ~@10 e4@4 c4@10 ~@2, ~@9 g3@2 e4@3 ~@2",
  AV: "d4@4 ~@3 d4@4 ~@17 d4@3 f4, ~@4 a4@5 ~@2 a4@3 f4@5 d4@8 ~@5, ~@12 d4@4 a4@4 f4@5 ~@2 f4@2 ~@3, ~@23 a4@8 ~",
  AW: "a4@4 f5@5 ~@3 d5@4 ~@4 f4@2 a4@2 d4@2 ~@2 c#4@2 a4 ~, ~@10 f5@4 ~@2 [f4,a4]@5 ~@6 a4@3 ~@2, ~@19 c4@4 ~@9", // F
  AX: "f4@4 [a4,d5]@5 ~@3 b4@4 f4@4 [a4,d5]@5 ~@3 c5@4, ~@5 d5@2 ~@6 d5@2 ~", // D5
  AY: "d3@4 f4@4 ~@6 f4 ~@9 e3@2 ~ d3 b2@2 ~ b3, ~@4 f4@2 d4@2 ~ d3@2 b3@3 ~@2, ~@5 a3@2 ~ b3@2 g3@5 ~",
  AZ: "~@8 g4@2 ~@2 a4@4 c4@4 ~@3 c4@4 ~@3 f4@2, e4@6 a4@5 ~@9 a4@5 ~@2 a4@4 ~, ~@4 c5@5 ~ c5@5 ~@13 c4@4",
  BA: "f4@4 [a4,d5]@5 ~@3 b4@4 ~@8 a3@2 ~@2 c4@4, ~@10 d5@4 ~@2 f3@6 c4@5 ~@5, ~@20 d4@5 ~ d4@5 ~", // D5
  BB: "~@6 f4 ~@5 f4@4 ~@8 e3@2 ~ d3 b2@2 ~ b3, f4@4 d4@4 ~@3 a4@3 ~@4 d3@4 b3@6 ~@4, ~ a3@2 ~@5 b3@2 g3@5 ~",
  BC: "~@4 [g4,c5,e5] ~@7 [g4,c5,e5] ~@7 [g4,c5,e5] ~@7 [g4,c5,e5] ~@3", BD: "~@6 d#3 ~@3 g3 ~ a3 ~@3 c4@2 ~@14",
})).s("gm_banjo").gain(0.12)

// chords · banjo · "Bango" · soft notes
const banjo_soft = note(`<
  A B C D E F G H I J K L@2 M N O P Q R A F S L T P Q U V W L F X Y Z P Q AA AB AC AD AE AF P Q AG AH R AI@2 AJ AK AL G
  H AM AN AO AC F AP AQ AR AS AT AU L C AV AW AX AQ AY AZ BA ~ BB
>`.pickRestart({
  A: "~@3 g4 ~@10 g4@2 ~@7 e3@9", B: "~@3 e4 ~@2 g3@10 ~@7 e3@9", C: "~@5 f4@3 f4@4 ~@20",
  D: "~@7 d4 ~@12 f4@3 ~ f4@5 ~@3", E: "~@4 d4 ~@3", F: "~@3 f4 ~@2 a3@10 ~@16", G: "~@4 c4 ~@3",
  H: "~@24 c#3 ~@7, ~@19 a3@8 ~@5", I: "~@6 c4@4 ~@2 c4@4 ~@6 e4@9 g4", J: "~@7 e3@9 ~@3 g4 ~@10 g4@2",
  K: "~@6 c4@4 ~@2 c4@4 ~@7 c4 ~@8", L: "~@6 a4@2 ~@7 a4@4 ~@13", M: "~@7 f3@9 ~@3 a3 ~@10 a3@2",
  N: "~@19 a3 ~@10 a3@2", O: "~@19 d4 ~@10 d4@2", P: "c4@3 ~ c4@5 ~ c4@5 ~ c4@6 ~@2 c4@5 ~@3",
  Q: "~@6 c4@4 ~@2 c4@5 ~ c4@7 ~@2 c4@4 ~", R: "~@3 e4 ~@2 g3@10 ~@3 g4 ~@10 g4@2", S: "~@16 d4@4 ~@2 d4@3 ~@7",
  T: "~@3 a3 ~@10 a3@2 ~@7 g3 ~@8", U: "~@6 c4@4 ~@2 c4@4 ~@7 e3@9", V: "~@5 e4@3 e4@4 ~@10 e4@9 g4",
  W: "~@3 e4 ~@2 g3@10 ~@16", X: "~@6 a4@2 ~@7 a4 ~@3 f4 ~@2 a3@10", Y: "~@5 f4@3 f4@4 ~@11 d4 ~@8",
  Z: "~@3 f4 ~@2 a3@2 c4@3 ~ c4@4 ~@6 f4@9 g4", AA: "c4@6 ~@6 c4@4 ~@3 e4 ~@2 g3@10, ~@10 g3@5 ~@17",
  AB: "~@7 e3@9 ~@3 e4 ~@2 g3@10", AC: "~@14 a4@4 ~@2 a4@5 ~@7", AD: "d4@6 ~@6 d4@5 ~@5 a4@4 d4@5 ~, ~@10 a3@5 ~@17",
  AE: "~@18 a3@5 ~@9, ~@7 f3@18 ~@7", AF: "~@3 a3 ~@10 a3@2 d4@5 ~@11", AG: "~@3 e4 ~@2 g3@10 ~@7 c4 ~@8",
  AH: "~@6 e4@9 g4 ~@5 e4@3 e4@4 ~@4", AI: "~@3 a3 ~@10 a3@4 ~@2 a3@5 ~@7", AJ: "~@6 a4@2 ~@7 a4 ~@3 a3 ~@10 a3@2",
  AK: "~@6 f4@9 a4 ~@7 f3@9", AL: "~@3 f4 ~@2 a3@2 ~@15 b3@9", AM: "c4@3 ~ c4@5 ~ c4@5 ~@4 e4 ~@2 g3@10",
  AN: "~@3 g4 ~@10 g4@2 ~@7 c4 ~@8", AO: "~@10 d4@4 ~@6 d4@6 ~@2 d4@3 ~, ~@9 b3@2 ~@5",
  AP: "~@3 f4 ~@2 a3@10 ~@3 d4 ~@10 d4@2", AQ: "~@10 c4@4 ~@6 c4@6 ~@2 c4@3 ~, ~@9 a3@2 ~@5",
  AR: "~@3 g4 ~@10 g4@4 ~@2 g4@5 ~@7", AS: "~@5 c4@2 ~@9", AT: "~@5 e4@3 e4@4 ~@11 c4 ~@8",
  AU: "c4@3 ~ c4@5 ~ c4@5 ~@17", AV: "~@6 a4@2 ~@7 a4 ~@7 d4 ~@8", AW: "~@6 f4@9 a4 ~@6 f4@9 a4",
  AX: "~@3 f4 ~@2 a3@2 ~@24", AY: "~@3 g4 ~@10 g4@2 ~@5 f4@3 f4@4 ~@4", AZ: "~@6 f4@9 a4 ~@3 a3 ~@10 a3@2",
  BA: "~@8 c4@3 ~ c4@4 ~@16", BB: "~@8 e3 ~@23",
})).s("gm_banjo").gain(0.04)

// drums · kick
const kick = s("bd").struct(`<
  A B A C A@2 B C A B A B@2 A@2 C A B A B A@2 B@2 A B@6 A B C B A B A@2 C B A@3 B@2 A C B A@2 B A C B A@2 C A@2 B@2 A B
  A B@2 A@2 C B@3 C A D
>`.pickRestart({
  A: "x ~@7 x ~@3 x ~@2 x", B: "x ~ x!2", C: "x ~@3 x ~ x!2", D: "x ~@4 x!2 ~",
})).gain(0.16)

// drums · congas
const congas = s("conga:13").struct(`<
  A B@2 C D E F G B F H I A G J B G K L G M N O P J Q O P A R P A P G P S P T J U P@2 J V P@2 G W J E P C X Y P A E Z AA
  A G X E@2 F V X B O AB X AA G@2 W ~
>`.pickRestart({
// … 37 more lines

More by Glen Campbell