Strudelify
For a Few Dollars More cover art

Collections

For a Few Dollars More

Smokie

KeyG majorTempo115 bpm
0:00/0:00
// For a Few Dollars More — Smokie
// 115 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 7 electric bass pick (copy of ch 9 electric guitar clean)
// note: Full arrangement: all 107 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(115/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, A@4 for four bars: edit a riff to change every repeat.

// chords · piano
const piano = note(`<
  ~@8 A B C D@2 E F G H I J K@2 L M N O P Q R@3 S T U V W X@2 Y@2 Z AA AB AC AD AE@2 AF@2 U AG AH AI AJ AK AL@2 AM AN AO
  AP@2 AQ AR AS AT@3 AU@3 AV AW AX AY AZ BA BB@2 BC@2 BD BE BF BG BH@3 BI BJ BK@3 BL@2 BM BN BO BP BQ@2 BR BS@2 BI BT BU
  ~
>`.pickRestart({
  A: "~ d4@7 ~@4 [d4,b4]@7 ~ d4@2 ~@6 d4@3 ~, g4@10 ~@10 g4@11 ~, g3@2 ~@2 g3@11 ~", // G
  B: "e4@2 ~@6 e4@3 ~ [e4,c5]@8 ~@4 c5@2 a4@2 e4@4, a3@15 ~@5 a3@8 ~@4, a4@11 ~@21", // C
  C: "~@8 [e4,c5] ~@3 e4@6 ~@6 e4@3 ~@5, c3@31 ~, ~@12 c5@19 ~, ~@5 g4@3", // C
  D: "[~ d4@5 ~@2 g3@4 d4@4 ~@4 g3@4 ~ d4@3 d4 ~@31 [d4,b4]@4, g4@11 ~ a4@11 ~ b4@5 ~@3 b4@27 ~@5, g3@6 ~@22 g3@9 ~@3 g3@9 ~@3 g3@12, ~@32 d4@11 ~ [d4,g4]@15 ~@5]/2", // G G5
  E: "~ e4@10 ~ [e4,c5]@14 [e4,a4]@5 ~, a3@7 ~, a4@11 ~@21", // C A5
  F: "b4 e4@11 ~ e4@6 ~@2 e4@6 ~ [e4,g4]@4, [c3,c5]@11 ~ [c3,c5]@6 ~@2 [c3,c5]@12", // Em C
  G: "d3@4 [d4,f#4]@2 ~@6 d4@11 ~ d4 ~@3 d4@3 ~, ~@3 a4@5, ~@3 d3@4 ~, ~@24 f#4@7 ~", // D
  H: "~@12 d4@7 ~ d4@3 ~ d4@5 ~@3, d4@10 ~@10 g4@11 ~, g3@5 ~@3 g3@21 ~@3, ~ g4@11 b4@18 ~@2",
  I: "~@8 e4@2 ~@14 [e4,c5]@3 ~@2 e4@3, a4@23 ~@5 [a4,c5]@3 ~, e4@3 ~@9 e4@11 ~@9, ~ a3@17 ~@2 a3@8 ~@4", // C Am
  J: "~ e4@7 ~@4 e4@4 ~@4 d4@3 ~ a4@3 ~ [d4,f#4]@3 ~, c3@14 ~@2 d3@13 ~@3, c5@7 ~ e4@2 ~@14 d4 ~@7, ~@9 [g4,c5]@8 ~@15", // D C5
  K: "[~ g3@4 ~@7 [g4,b4]@6 ~@2 [g4,d5]@8 ~@4 [d4,b4]@10 ~@2 d4@6 ~@10 d4@3 ~, [d4,g4]@8 g3@14 ~@6 g3@13 ~@3 [g3,b4]@19 ~, ~@52 g4@11 ~]/2", // G G5 G G5 G
  L: "~@12 [e4,c5]@7 ~ [a4,c5]@11 ~, e4@5 ~@11, a3@5 ~@3 a3@17 ~@7, ~ a4@11 ~@20", // C Am
  M: "[c3,c5]@9 [e4,g4] ~@3 [d3,f#4]@17 ~@2, e4@6 ~@3 c5@2 ~@2 d4@13 ~@6", // C Em D
  N: "~ [c3,c5]@8 [e4,g4,c5] ~@3 [d4,f#4]@7 ~ f#4@6 ~@2 [d4,f#4]@3, ~ e4@6 ~@6 d3@18 ~, ~@10 d4@3 ~@3", // C D
  O: "~ g3@4 ~@8 [g4,b4]@6 ~@2 d5@6 [g4,b4,d5]@5, ~ [d4,g4]@10 ~@9 g4@6 ~@6, ~@4 g3@11 ~", // G G5
  P: "~@9 [e4,a4]@2 ~@2 [e4,a4]@14 ~@2 a4@3, ~ a3@27 e4@4", // A5
  Q: "~@13 g4@4 c3 ~@3 d4@4 d4@3 ~ d4@3, ~ c3@13 ~@3 d3@13 ~@2, ~@8 e4@3 ~@17 f#4@3 ~, ~@9 c5@8 ~@8 a4@7",
  R: "[~ [d4,g4]@8 g3@4 [g4,b4]@8 g3@4 ~@8 d5@7 ~@5 [d5,g5]@5 ~@3 [d5,g5]@6 ~@2 d5@4 ~@12 [a4,c5]@15 ~@4, ~ g3@4 ~@20 [g4,d5]@6 ~@2 g4@3 ~@24 g5@5 ~@31, ~@28 g3@12 ~@5 g3@19 ~ a3@22 ~@9]/3", // G5 G G5 Am G5
  S: "~ [e4,c5]@7 ~ [e4,g4]@2 ~@2 [d3,f#4]@17 ~@2, ~@8 c5@2 ~@3 d4@14 ~@5", // C Em D
  T: "~ e4@6 ~@2 g4@3 ~ [d3,d4,f#4]@15 ~ d4@2 ~, ~ [c3,c5]@11 ~@16 f#4@2 ~@2", // D C
  U: "~ g3@6 ~@6 [d4,b4]@19, ~ [d4,g4]@11 ~@20, ~@9 g3@22 ~", // G G5
  V: "~@9 e4@3 ~ c5@8 ~@4 c5@2 a4@2 e4@3, ~ a3@12 e4 ~@7 a3@9 ~@2",
  W: "~@9 e4@3 ~ [e4,c5]@4 ~@4 [e4,c5]@4 c3@4 [e4,c5]@3, ~ c3@18 ~@13", // C
  X: "[~@9 [d4,g4] ~@3 [d4,g4]@5 ~@3 d4@6 ~@18 [d4,g4]@7 ~@9 g4@3, ~ g3@23 ~@3 g3@11 ~@3 g3@23, ~@21 a4@12 [d4,b4]@12 ~@8 [d4,b4]@11]/2", // G5 G
  Y: "[~ [e4,a4]@8 ~@4 [e4,c5]@13 ~ [a4,c5]@2 e4@2 ~@2 e4@8 ~@4 e4@6 ~@2 [e4,c5]@7 ~ [e4,g4,c5]@3, ~ a3@4 ~@4 a3@18 ~@4 c3@20 ~@2 c3@11, ~@33 c5@19 ~@12, ~@41 g4@10 ~@13]/2", // A5 C Am C
  Z: "~ [g3,d4,g4]@10 ~@2 [g3,d4,g4]@19", AA: "~ [e4,a4]@8 ~@4 [e4,c5]@19, ~ a3@7 ~ a3@21 ~@2",
  AB: "~ [d4,g4]@8 g3@4 [d4,b4]@8 ~@4 b4@2 g4@2 d4@2 ~, ~ g3@5 ~@15 g3@8 ~@3", // G5 G
  AC: "~ [e4,a4]@8 ~@4 [e4,c5]@19, ~ a3@5 ~@3 a3@21 ~@2", // A5 C
  AD: "~ [g3,d4,g4]@10 ~@2 [g3,d4,g4] ~@3 [d4,g4]@4 a4 ~@3 d4@4 b4@3, ~@17 g3@15, ~@25 a4@3 ~@4", // G5
  AE: "[~ a4@8 e4@3 ~ e4@7 ~ a4@6 ~@4 a4@2 ~@12 d4@2 d4@4 ~@2 [g4,b4]@6 ~@2 [d4,g4,b4]@3, ~ a3@28 ~@4 g3@28 ~@3, ~ e4@5 ~@7 c5@14 ~@2 c5@4 ~@12 b4@7 ~@12]/2", // G
  AF: "[~@5 [d4,a4]@6 ~@2 [d4,a4] ~@3 [d3,d4,a4]@18 ~@2 [d3,d4,f#4,a4]@5 ~@3 [d4,a4]@6 ~@2 [d4,a4]@6 ~@2 [d4,f#4,a4]@3, ~@5 d3@8 ~@32 d3@17 ~@2]/2", // D5 D D5 D
  AG: "~@5 e4@6 ~@2 [e4,c5]@8 ~@4 c5@2 a4@2 e4@3, ~ a3@15 ~@5 a3@9 ~@2", // C
  AH: "~@9 [e4,c5]@10 ~@10 e4@3, ~ c3@28 ~@3, ~@21 [g4,c5]@11", // C C5
  AI: "~@5 [d4,g4]@6 ~@2 g4@2 ~@2 [d4,g4]@4 a4@2 ~@2 [d4,a4]@4 b4@2 ~, ~ g3@12 d4 ~@3 g3@10 ~@5", // G5 D5
  AJ: "~ g3@6 ~@6 [d4,g4,b4]@8 ~@8 g4@3, ~ [d4,b4]@11 ~@13 [d4,b4]@7, ~@9 g3@7 ~@5 g3@7 ~@4", // G
  AK: "~@9 e4@2 ~@2 [e4,c5]@8 ~@6 a4@2 e4@3, ~ a3@18 ~@2 a3@7 ~@4, ~@25 c5@4 ~@3", // C
  AL: "[~@4 [e4,c5]@6 ~@3 [e4,c5]@7 ~ [e4,c5]@6 ~@2 [e4,g4,c5]@4 d3@4 [d4,a4]@4 ~@4 [d3,d4,a4]@6 ~@2 [d4,a4]@6 ~@2 [d4,a4]@3, ~ c3@8 ~@4 c3@18 ~@22 d3@8 ~@3]/2", // C D5
  AM: "~ g3@5 ~@7 [d4,b4]@8 ~@4 d4@2 g4@2 d4@3, ~ [d4,g4]@11 ~@13 b4@5 ~@2, ~@9 g3@9 ~@3 g3@7 ~@4", // G G5
  AN: "~ a3@4 ~@4 a3@4 [e4,c5]@8 ~@4 [e4,a4,c5]@6 ~, ~@5 [e4,a4]@7 ~@9 a3@7 ~@4", // C Am A5
  AO: "~ [e4,g4,c5]@8 ~@4 [e4,c5]@6 ~@2 [f#4,b4]@3 ~ d3@4 [d4,f#4]@2 ~, ~@9 c3@12 d4 ~@10", // C B5 D
  AP: "[~ [d4,g4]@8 g3@4 [g4,b4]@6 ~@2 [g4,d5]@8 ~@4 [d5,g5]@3 ~@13 [d5,b5]@4 [d5,g5,b5]@6 ~ [d5,g5,b5]@4, ~@29 g3@12 ~@4 g3@16 ~@3, ~@19 [d5,g5]@5 ~@8]/2", // G5 G G5 G G5
  AQ: "~ a3@20 [a4,c5]@4 a3@4 [a4,c5] ~@2", // Am
  AR: "~ [e4,c5]@6 ~@2 [e4,c5]@2 ~@2 d3@5 ~ d3@10 [d4,f#4]@3, ~@9 g4 ~@3 [d4,f#4]@16 ~@3", // C D
  AS: "~ [e4,c5]@6 ~@2 [g4,c5]@2 ~@2 [d4,f#4]@7 ~ f#4@8 d4@2 ~, ~ c3@8 ~@4 d3@8 d4@7 ~@4", // C C5 D
  AT: "[~ g3@6 ~@6 [d4,b4]@7 ~@9 d4@4 a3@9 ~@3 [e4,c5]@6 ~@2 e4@5 ~@5 e4@2 ~@4 [e4,c5]@7 ~ e4 ~ e4 ~@5 [d4,f#4]@5 ~@3 [d4,f#4]@3, ~ [d4,g4]@11 ~@9 b4@14 ~@18 c5@11 ~@17 d3@10 ~@5, ~@9 g3@9 ~@3 [g3,d4]@8 ~@16 a3@11 ~@9 c3@17 ~@14, ~@25 g4@9 ~@27 a4@4 ~@12 [g4,c5]@5 ~@14]/3", // G C D G5 C5
  AU: "[~ [d4,g4]@8 ~@4 [g4,b4]@6 ~@2 [g4,d5]@8 ~@4 [d5,g5]@4 ~@8 g3@4 [d5,g5]@6 ~@2 [d5,g5]@2 ~@2 [d5,g5]@4 ~@12 [a4,e5]@6 ~@2 [c5,e5]@7 ~ [a4,c5,e5]@3, ~ g3@4 ~@4 g3@13 ~@7 g3@8 ~ [d5,g5]@10 ~@17 a3@25 ~@6]/3", // G5 G G5 A5 C Am G5
  AV: "~ c3@8 c5@2 ~@2 [d3,f#4]@14 ~@2 c3 ~@2, ~@9 e4 ~@3 d4@11 ~@8", // D
  AW: "~ [c3,e4,c5]@6 ~@2 [c3,e4,c5] ~@3 [d4,a4]@10 d4 ~@5 d4@3, ~@9 g4@2 ~@2 d3@18 ~, ~@25 [f#4,a4]@7", // C D5 F#m
  AX: "~ [g3,d4,g4]@25 ~@6", AY: "~ [a3,e4,a4]@25 ~@6", AZ: "~ [c3,e4,c5]@30 ~",
  BA: "~ [d4,g4]@20 ~@4 b4@2 g4@2 d4@2 ~, ~ g3@15 ~@5 g3@10 ~", // G5
  BB: "[~ [g3,d4,b4]@10 ~@2 d4@11 ~@5 d4@4 ~@4 [e4,a4]@4 ~@8 [e4,a4]@7 ~ [e4,c5]@3 ~ [e4,a4,c5]@3, ~@13 b4@22 ~@29, ~@13 g3@18 ~@2 a3@8 ~@8 a3@13 ~@2, ~@25 g4@9 ~@30]/2", // G A5 C Am
  BC: "[~ [c3,e4,c5]@9 ~@3 [c3,e4,c5] ~@3 [e4,c5]@7 ~@5 e4@4 d3@2 ~@2 [d3,d4,a4]@5 ~@7 [d3,a4]@9 ~@6, ~@17 c3@14 ~@18 c3 ~@14, ~@25 [g4,c5]@10 ~@14 d4@6 ~@9]/2", // C D5 C5
  BD: "~@5 [d3,d4,a4]@5 ~@3 [d3,d4,a4] ~@3 [d3,d4,a4]@6 ~@2 [d3,a4]@4 f#4@2 ~, ~@17 c3 ~@7 d4@3 ~ d4 ~@2", // D5
  BE: "~ g3@7 ~@5 [d4,b4]@11 ~ [d4,g4,b4]@7, ~ [d4,g4]@11 ~@20, ~@9 g3@22 ~", // G G5
  BF: "~@5 e4@2 ~@2 [e4,c5]@2 a3@6 ~@8 c5@2 a4@2 e4@3, ~ a3@9 ~ e4@2 ~@4 [e4,a4]@7 ~ e4 ~@6, ~@21 a3@9 ~@2", // C A5
  BG: "~ e4@7 ~@5 e4@4 ~@4 [d4,f#4]@2 ~@2 [d4,a4]@4 f#4@2 ~, ~ c5@15 ~@16, ~@9 g4@8 d3@11 ~@4", // D D5
  BH: "[~ [d4,g4]@8 ~@4 [g4,b4]@6 ~@2 [g4,d5]@8 ~@4 [d5,g5]@3 ~@9 g3@4 ~@8 [d5,g5]@3 ~ [d5,g5]@4 ~@12 [a4,c5]@7 ~ [a4,e5]@6 ~@2 [c5,e5] ~@2, ~ g3@3 ~@5 g3@12 ~@8 g3@9 [d5,g5]@10 ~ [d5,b5]@7 ~@37 a4@2 ~, ~@53 g3@9 ~@3 a3@28 ~@3]/3", // G5 G G5 Am A5 C G5 G
  BI: "~ [e4,c5]@6 ~@2 [e4,g4,c5]@2 ~@2 [d4,f#4]@7 ~ [d4,f#4]@6 ~@2 f#4@2 ~, ~ c3@8 ~@4 d3@16 d4 ~@2", // C D
  BJ: "~ [c3,c5]@8 [e4,g4]@2 ~@2 [d4,f#4]@6 ~@2 [d4,f#4]@6 ~@2 [d4,f#4]@2 ~, ~ e4@6 ~@2 c5 ~@3 d3@18 ~", // C Em D
  BK: "[~ [d4,g4]@8 ~@4 [g4,b4]@6 ~@2 [g4,d5]@7 ~ [g4,b4,d5]@4 ~@4 [e4,a4]@6 ~@2 e4@7 ~ e4@2 ~@6 e4@4 ~@4 e4@4 e4@3 ~ [e4,g4]@4 ~@4 d4@2 ~@2 d4@3 ~ [d4,f#4]@2 ~, ~ g3@4 ~@4 g3@22 ~@2 a3@30 ~@2 c3@13 ~@3 d3@11 ~@4, ~@45 c5@20 ~@8 c5@8 ~@15, ~@53 a4@13 ~@23 a4@7]/3", // G5 G G5 G A5 Em D
  BL: "[~ [d4,g4]@8 ~@4 [g4,b4]@6 ~@2 [g4,d5]@8 ~@4 [d5,g5]@4 ~ [d5,g5]@7 g3@4 [d5,b5]@4 ~@4 g5@4 d5@3, ~ g3@3 ~@5 g3@13 ~@7 g3@12 ~@12 g3@9 ~@2, ~@57 d5@2 ~@5]/2", // G5 G G5 G
  BM: "~@5 [a4,c5]@6 ~@2 a4@6 ~@2 a4@3 ~ [a4,e5]@6 ~, ~@13 a3@16 ~@3, ~@13 c5@11 ~@8", // Am A5
  BN: "~ [e4,c5]@7 ~ [e4,g4,c5]@2 ~@2 [d3,f#4]@18 ~, ~@13 d4@15 ~@4", // C D
  BO: "~ [e4,c5]@7 ~ g4@2 ~@2 [d3,d4,a4]@7 ~ d4@6 ~@2 f#4@3, ~ c3@8 c5 ~@11 [d3,a4]@11", // C D5
  BP: "~ g3@5 ~@7 b4@6 ~@2 [g4,b4]@3 ~ g4@3 ~ [g4,b4]@3, ~ [d4,g4]@11 ~ d4@3 ~@9 d5@7, ~@9 g3@20 ~@3", // G G5
  BQ: "[~@13 e4@16 a3@2 e4@2 ~@8 [e4,c5]@4 g4@3 ~@5 [d4,f#4]@3 ~ a4@2 f#4@2 d4@3, ~ a3@24 ~@8 c3@14 ~@2 d3@12 ~@3, ~@13 a4@19 ~@25 d4 ~@6]/2", // C D
  BR: "~@5 [d4,g4]@4 g3@4 [g4,b4]@8 ~@4 d5@2 b4@2 g4@3, ~ g3@7 ~@13 g3@7 ~@4", // G5 G
  BS: "[~ g3@4 [d4,b4]@4 ~@4 [d4,g4]@7 ~ [d4,b4]@6 ~@2 [g4,b4]@4 ~@4 [e4,a4]@6 ~@2 [e4,a4]@7 ~ [e4,c5]@5 ~@3 e4@2 ~, ~@9 g3@20 d4@2 ~@2 a3@9 ~@3 a3@16 c5 ~@2]/2", // G G5 G A5 C
  BT: "~ [e4,c5]@6 ~@2 [e4,c5] ~@3 [d4,f#4]@6 ~@2 [d4,f#4]@10 ~, ~ c3@8 g4@2 ~@2 d3@18 ~", // C D
  BU: "~ [g3,d4,g4]@5 ~@3 [g3,d4,g4] ~@3 [g3,d4,g4]@19", // G5
})).s("gm_piano").gain(0.24).pan(0.4)

// bass · fretless bass
const bass = note(`<
  ~@8 A B C D E B C F A B G H A B I J A K G H A B L J A B C H A B C M K A N A N O P Q A R C S T K C Q O B U H A K L V O
  B W H X K Y@2 Z AA AB AC O AD AE AF AG A B W AH X K AI AJ AK AL W AM X AN AJ AO AP AN W AM X AN AQ AO AR@2
>`.pickRestart({
  A: "g1@9 ~@3 g1 ~@3 g1@9 ~@7", B: "a1@9 ~@3 a1 ~@3 a1@9 ~@7", C: "c2@9 ~@3 c2 ~@3 c2 ~@3 c2@5 ~@3 c2 ~@3",
  D: "g1@9 ~@3 g1 ~@3 g1@6 ~@2 b1@8", E: "g1@9 ~@3 g1 ~@3 g1 ~@3 g1@4 ~@4 d2@2 ~@2",
  F: "d2@9 ~@3 d2@5 ~@3 d2@5 ~@3 a1@2 ~@2", G: "c2@9 ~@3 c2 ~@3 d2 ~@3 d2@6 ~@2 d2@2 ~@2",
  H: "g1@9 ~@3 g1@6 ~@2 d2@6 ~@2 b1@4", I: "c2@4 g1@4 c2@3 ~ d2@7 ~ d2@7 ~ a1@3 ~",
  J: "c2@4 g1@3 ~ c2@3 ~ d2@7 ~ d2@5 ~@3 d2@4", K: "a1@9 ~@3 a1 ~@3 a1@9 ~@3 a1 ~@3",
  L: "c2@3 ~ g1@3 ~ c2@3 ~ d2@7 ~ d2@5 ~@3 d2 ~@3", M: "g1@9 ~@3 g1@5 ~@3 g1@5 ~@3 g1@2 ~@2",
  N: "a1@9 ~@3 a1 ~@3 a1 ~@3 a1@5 ~@3 a1 ~@3", O: "g1@9 ~@3 g1 ~@3 g1@9 ~@3 g1 ~@3",
  P: "d2@9 ~@3 d2 ~@3 d2 ~@3 d2@5 ~@3 a1@4", Q: "d2@9 ~@3 d2 ~@3 d2 ~@3 d2@6 ~@2 d2@2 ~@2",
  R: "a1@9 ~@3 a1 ~@3 a1@12 ~@4", S: "g1@9 ~@3 g1 ~@3 g1@3 ~ d2@5 ~@3 b1@4",
  T: "g1@9 ~@3 g1 ~@3 g1 ~@3 g1@5 ~@3 g1 ~@3", U: "c2@9 ~@3 c2 ~@3 d2@2 ~@2 d2@5 ~@3 d2 ~@3",
  V: "c2@4 g1@3 ~ c2@3 ~ d2@6 ~@2 d2@4 ~@4 d2@3 ~", W: "~ c2@9 ~@3 c2 ~@3 d2@2 ~@2 d2@5 ~@3 d2@2 ~",
  X: "~ g1@9 ~@3 g1 ~@3 g1 ~@3 g1@5 ~@3 g1 ~@2", Y: "~ c2@3 g1@4 ~ c2@3 d2@7 ~@2 d2@5 ~@3 d2@2 ~", Z: "~ g1@25 ~@6",
  AA: "~ a1@25 ~@6", AB: "c2@25 ~@7", AC: "~ g1@9 ~@2 g1@6 ~@3 g1@5 ~@3 g1 ~@2",
  AD: "a1@9 ~@3 a1 ~@4 a1 ~@3 a1@5 ~@3 e1 ~@2", AE: "c2@9 ~@3 c2 ~@4 c2@15", AF: "d2@9 ~@3 d2@6 ~@3 d2@6 ~@2 a1@3",
  AG: "d2@2 ~@3 d2@6 ~@2 d2@6 ~@2 d2@7 ~ a1@3", AH: "~ g1@9 ~@3 g1@6 ~@2 d2@5 ~@3 b1@2 ~",
  AI: "~ c2@3 ~ g1@3 ~ c2@3 ~ d2@6 ~@2 d2@8 a1@2 ~", AJ: "~ c2@3 ~ g1@3 ~ c2@3 ~ d2@6 ~@2 d2@5 ~@3 a1@2 ~",
  AK: "~ g1@9 ~@3 g1 ~@3 g1@9 ~@3 g1@3", AL: "~ a1@2 ~@2 a1@5 ~@3 a1@4 a1@2 ~@2 a1@6 ~@2 a1 ~@2",
  AM: "~ g1@9 ~@3 g1@5 ~@3 d2@5 ~@3 b1@3", AN: "~ a1@9 ~@3 a1 ~@3 a1@9 ~@3 a1 ~@2",
  AO: "~ c2@4 g1@3 ~ c2@3 ~ d2@6 ~@2 d2@5 ~@3 d2 ~@2", AP: "~ g1@9 ~@3 g1 ~@3 g1@9 ~@3 g1 ~@2",
  AQ: "~ c2@3 ~ g1@4 c2@3 ~ d2@6 ~@2 d2@5 ~@3 d2@2 ~", AR: "[~ g1@3 ~ g2@4 d2@4 g1@29 ~@22]/2",
})).s("gm_fretless_bass").gain(0.36)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@8 A B C D@2 B E F A B G D@2 B H I A B G D@2 B H@2 A B E J@2 B C A B A B A B K L@2 A B E J@2 B C F A B G D@2 B H@2 A
  B G D@2 B M I N O P D@2 B C L@2 A B G D@2 B H@2 A B G D@2 B H@2 A B G D@2 B H I Q@2
>`.pickRestart({
  A: "[d4,g4,b4]@15 ~", B: "[e4,a4,c5]@15 ~", C: "[e4,g4,c5]@29 ~@3", D: "[[d4,g4,b4]@31 ~]/2", E: "[e4,g4,c5]@31 ~",
  F: "[d4,f#4,a4]@29 ~@3", G: "[e4,g4,c5]@7 ~ [d4,f#4,a4]@7 ~", H: "[e4,g4,c5]@10 ~@2 [d4,f#4,a4]@17 ~@3",
  I: "[e4,g4,c5]@5 ~ [d4,f#4,a4]@9 ~", J: "[[d4,g4,b4]@61 ~@3]/2", K: "[d4,g4,b4]@31 ~", L: "[[d4,f#4,a4]@31 ~]/2",
  M: "[e4,g4,c5]@10 ~@2 [d4,f#4,a4]@15 ~@5", N: "[d4,g4,b4]@25 ~@7", O: "[e4,a4,c5]@25 ~@7", P: "[e4,g4,c5]@25 ~@7",
  Q: "[[d4,g4,b4]@5 ~@7 [d4,g4,b4]@29 ~@23]/2", // G
})).s("gm_synth_strings_1").gain(0.09)

// chords · pan flute
const pan_flute = note(`<
  A B C D E F G@2 H I J K L M N O P Q R S T U V W P X R Y Z U AA AB AC AD AE AF A AG AH AI ~@8 AJ AK AL AM AN AO AP@2 AQ
  AR R AS AT@2 AU AV AW AX AY AS AZ BA BB BC ~@8 BD BE BF BG AS AT@2 BB AV BE BH BI AS AZ BA BB BJ BE BF BK AS AT@2 BB
  BL ~@2
>`.pickRestart({
  A: "~@12 e5@6 ~@2 d5@5 ~@3 b4@3 ~", B: "a4@5 ~@3 b4@3 ~ a4@15 ~@5", C: "~@10 g4 ~ g4@2 ~ a4@4 ~ g4@5 ~@2 e4@4 ~",
  D: "d4@5 ~@3 e4@4 ~ d4@19", E: "~@12 e5@7 ~ d5@5 ~@2 b4@3 ~@2", F: "a4@3 ~ a4@2 ~ b4@10 ~@3 g4@2 ~@2 g4@4 e4@2 ~@2",
  G: "[g4@9 ~@3 g4 ~@3 g4@4 f#4@3 ~ a4@4 g4@20 ~@16]/2", H: "~@4 d5 ~@3 d5@3 ~ d5@2 ~@2 e5@4 ~@2 d5@7 ~@3",
  I: "~@4 a4@4 ~@3 b4@4 ~ a4@13 ~@3", J: "~@4 g4@3 ~ g4@4 g4@2 ~@2 a4@3 ~@2 g4@3 ~@3 e4@3 ~@2",
  K: "d4@5 ~@3 e4@3 ~ d4@18 ~@2", L: "~@8 d5 ~ d5 ~ e5@5 ~@3 d5@4 ~@3 b4@3 ~@2", M: "a4@5 ~@3 b4@4 a4@9 ~@11",
  N: "~@4 g4@2 ~@2 g4@4 g4@3 ~ g4@3 ~@9 g4@3 ~", O: "e5@3 ~ e5@2 ~@2 e5@4 d5@9 ~@3 [b4,d5]@3 ~ [c5,e5]@3 ~",
  P: "[d5,g5]@3 ~ [d5,g5] ~ [d5,g5] ~ [d5,g5]@2 [e5,g5] ~ [d5,g5]@2 [b4,d5]@2", // G5 Em G5 Bm
  Q: "[a4,c5]@2 ~@2 [a4,c5]@4 ~ d5@3 ~ c5@9 ~@6 [b4,d5]@2 ~@2, ~@8 b4@3 ~ a4@9 ~@11", // Am Bm
  R: "[c5,e5]@6 ~@2 [c5,e5]@3 ~ [c5,e5]@2 ~@2 [c5,e5]@3 ~ [c5,e5]@2 ~@2 [b4,d5]@4 [a4,c5]@3 ~", // C Bm Am
  S: "[g4,b4]@3 ~ [g4,b4]@2 ~@2 [a4,c5]@2 ~@3 [b4,d5]@13 ~@2 [d5,g5]@2 ~@2", // G Am Bm G5
  T: "~ [d5,g5]@3 ~@2 [e5,g5]@3 ~@3 [d5,g5]@2 ~@2 [d5,g5]@4 ~@2 [e5,g5]@4 ~@2 [d5,g5]@2 [b4,d5]@2", // G5 Em G5 Em G5 Bm
  U: "[a4,c5]@3 ~ [a4,c5]@3 ~@2 d5@3 [a4,c5]@12 ~@4 [b4,d5]@3 ~, ~@8 b4@3 ~@21", // Am Bm
  V: "[c5,e5]@3 ~ [b4,d5]@3 ~ [c5,e5]@2 ~@3 d5@7 ~ d5@2 ~ [c5,e5]@3 ~ [b4,d5]@2 ~@2, ~@12 f#5@7 ~ b4@3 ~@9", // C Bm C Bm
  W: "[c5,e5]@4 [b4,d5]@2 ~@2 [c5,e5]@2 ~@2 [d5,f#5]@10 ~@2 [b4,d5]@3 ~ [c5,e5]@2 ~@2", // C Bm C D Bm C
  X: "[a4,c5]@2 ~@2 [a4,c5]@2 ~@2 [b4,d5]@3 ~@2 [a4,c5]@9 ~@2 [a4,c5]@3 ~ [b4,d5]@2 ~@2", // Am Bm Am Bm
  Y: "[g4,b4]@3 ~ [g4,b4]@2 ~@2 [a4,c5]@3 ~ [b4,d5]@12 ~@5 [d5,g5]@2 ~", // G Am Bm G5
  Z: "~ [d5,g5]@3 ~@2 [e5,g5]@3 ~@2 [d5,g5]@3 ~@2 [g5,b5]@4 ~@2 e5@4 ~ [d5,g5]@2 ~ [b4,d5]@2, ~@21 a5@3 ~@8", // G5 Em G5 G G5 Bm
  AA: "[c5,e5]@3 ~ [b4,d5]@3 ~ [c5,e5]@2 ~@3 [d5,f#5]@7 [b4,d5]@2 ~@2 [c5,e5]@3 ~ [b4,d5]@2 ~@2", // C Bm C D Bm C Bm
  AB: "[c5,e5]@3 ~ [b4,d5]@2 ~@2 [c5,e5]@2 ~@2 [d5,f#5]@15 ~@5", AC: "~@16 e5@5 ~ d5@3 ~@2 b4@4 ~",
  AD: "a4@4 a4@2 ~@2 b4@3 ~ a4@15 ~@5", AE: "~@8 g4@2 ~@2 g4@3 ~ a4@4 ~@2 g4@3 ~@2 e4@3 ~@2",
  AF: "d4@4 d4@2 ~@2 e4@3 ~ d4@18 ~@2", AG: "a4@4 a4@3 ~ b4@4 ~ a4@17 ~@2",
  AH: "~@5 g4@4 ~@3 g4@2 ~@2 a4@3 ~ g4@6 ~@2 g4@3 ~", AI: "b4@4 ~ b4@2 ~ a4@3 ~ g4@13 ~@7",
  AJ: "~@8 d5@4 d5@2 ~@2 e5@4 ~@2 d5@3 ~@2 b4@4 ~", AK: "a4@6 ~@2 b4@4 ~ a4@15 ~@4",
  AL: "~@5 g4@2 ~ g4@3 ~ g4@2 ~@3 a4@4 ~ g4@3 ~@2 e4@3 ~@2", AM: "~ d4@3 d4@2 ~@2 e4@3 ~ d4@16 ~@4",
  AN: "~@4 d5@6 ~@2 d5@2 ~@3 e5@4 ~@2 d5@3 ~@2 b4@3 ~", AO: "~ a4@5 ~ b4@4 ~ a4@14 ~@2 g4@2 ~@2",
  AP: "[~ g4@6 ~ g4@3 ~ e4@2 ~@2 g4@3 ~@2 g4@5 ~@3 e5@7 ~ e5@2 ~@2 c5@3 d5@10 ~@2 [b4,d5]@3 ~ [c5,e5]@4]/2", // Bm C
  AQ: "[d5,g5]@6 ~@3 g5@2 ~ [d5,g5]@2 ~@3 [d5,g5]@3 ~ g5@2 ~ [d5,g5]@4 ~ d5@3, ~@4 d5 ~@5 e5 ~@3 b4@2", // G5
  AR: "~ c5@2 ~@2 c5@3 ~ [b4,d5]@3 ~ [a4,c5]@9 ~@6 [b4,d5]@2 ~@2, a4 ~ a4@2 ~@12", // Bm Am Bm
  AS: "~ [g4,b4]@3 ~ [g4,b4]@2 ~@2 [a4,c5]@2 ~@2 [b4,d5]@13 ~@3 [d5,g5]@2 ~", // G Am Bm G5
  AT: "[~ [d5,g5]@3 ~@2 [e5,g5]@3 ~@3 [d5,g5]@2 ~@3 [d5,g5]@4 ~ [e5,g5]@4 ~@2 [d5,g5]@2 ~ [b4,d5]@2 [a4,c5]@3 ~ [a4,c5]@3 ~ [b4,d5]@3 ~ [a4,c5]@12 ~@4 [b4,d5]@3]/2", // G5 Em G5 Em G5 Bm Am Bm …
  AU: "[c5,e5]@3 ~@2 [b4,d5]@3 ~ [c5,e5]@2 ~@2 [d5,f#5]@8 [b4,d5]@2 ~@2 [c5,e5]@3 ~ [b4,d5]@2 ~", // C Bm C D Bm C Bm
  AV: "~ e5@3 ~ d5@2 ~@2 e5@2 ~@2 f#5@10 ~@2 [b4,d5]@3 ~ [c5,e5]@2 ~, c5@2 b4 ~ c5 ~ d5@5 ~@5", // Bm C
  AW: "~ [d5,g5]@6 ~@2 d5@2 ~@2 g5@2 ~@2 g5@3 [e5,g5]@2 ~@2 [d5,g5]@4 ~ d5@3, ~@9 g5 ~@2 d5@2 ~@2 d5@4 ~@8 b4@4", // G5 Em G5
  AX: "~ c5@2 ~@2 c5@2 ~@2 d5@3 ~ [a4,c5]@9 ~@3 c5@3 ~ d5@2 ~, a4@2 ~@2 a4@2 ~@2 b4@3 ~@13 a4@3 ~ b4@2 ~@2", // Am
  AY: "[c5,e5]@6 ~@3 c5@2 ~ [c5,e5]@2 ~@2 [c5,e5]@3 ~ [c5,e5]@2 ~@2 [b4,d5]@3 ~ [a4,c5]@3 ~, ~@4 e5 ~@11", // C Bm Am
  AZ: "~ [d5,g5]@3 ~@2 [e5,g5]@3 ~@2 [d5,g5]@3 ~@2 [g5,b5]@4 ~@2 [e5,a5]@4 ~ [d5,g5]@2 ~ [b4,d5]@2", // G5 Em G5 G A5 G5 Bm
  BA: "~ [a4,c5]@3 ~ [a4,c5]@3 ~ [b4,d5]@3 ~ [a4,c5]@12 ~@4 [b4,d5]@3", // Am Bm Am Bm
  BB: "~ [c5,e5]@3 ~ [b4,d5]@3 ~ [c5,e5]@2 ~@2 [d5,f#5]@7 ~ [b4,d5]@2 ~@2 [c5,e5]@2 ~@2 [b4,d5]@2 ~", // C Bm C D Bm C Bm
  BC: "~ [c5,e5]@3 ~ [b4,d5]@2 ~@2 [c5,e5]@2 ~@2 [d5,f#5]@15 ~@4", BD: "~@25 [b4,d5]@3 ~ [c5,e5]@3",
  BE: "~ [d5,g5]@6 ~@2 [d5,g5]@2 ~@2 g5@2 ~@2 [d5,g5]@4 [e5,g5]@2 ~@2 [d5,g5]@4 [b4,d5]@3, ~@6 d5 ~@9", // G5 Em G5 Bm
  BF: "~ [a4,c5]@2 ~@2 [a4,c5]@4 [b4,d5]@3 ~ [a4,c5]@9 ~@7 d5@2 ~, ~@14 b4 ~", // Am Bm Am
  BG: "[c5,e5]@6 ~@3 e5@3 [c5,e5]@2 ~@3 e5@3 ~ e5@2 ~ [b4,d5]@4 [a4,c5]@3 ~, ~@8 c5@3 ~@5 c5@3 ~ c5@2 ~@10", // C Bm Am
  BH: "~ [a4,c5]@2 ~@2 [a4,c5]@2 ~@2 [b4,d5]@3 ~ [a4,c5]@9 ~@3 [a4,c5]@3 ~ [b4,d5]@2 ~", // Am Bm Am Bm
  BI: "~ [c5,e5]@6 ~@2 [c5,e5]@2 ~ [c5,e5]@2 ~@3 [c5,e5]@3 ~ c5@2 ~@2 [b4,d5]@3 [a4,c5]@3 ~, ~@10 e5 ~@5", // C Bm Am
  BJ: "~ [c5,e5]@3 ~ [b4,d5]@2 ~@2 [c5,e5]@2 ~@2 [d5,f#5]@12 [b4,d5]@3 ~ [c5,e5]@3", // C Bm C D Bm C
  BK: "[c5,e5]@6 ~@3 [c5,e5]@3 ~ e5@2 ~@2 [c5,e5]@3 ~ [c5,e5]@2 ~@2 d5@3 ~ c5@3, ~@12 c5@2 ~@10 b4@4 a4@3 ~", // C
  BL: "~ [c5,e5]@4 [b4,d5]@2 ~@2 [c5,e5]@2 ~@2 [d5,f#5]@10 ~@9", // C Bm C D
})).s("gm_pan_flute").gain(0.46)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@8 A B C D E F G H I J K D L J M N O J K D L J M@2 A B P Q A B P Q B A B A B A R@2 A B P Q S T U V W X Y Z AA X AB@2
  AC X AD Z AA X AB@2 AE AF AG AH AI AJ AK AL AM AN X AD Z AA X AB@2 AN X AD Z AA X AB@2 AN X AD Z AA X AB@2 AO@2
>`.pickRestart({
  A: "~ [g3,b3,g4]@7 [d3,g3] [b3,g4] ~@3 [g3,b3,g4]@7 ~ [g3,b3,g4]@7 ~ [g3,b3,g4]@2 ~, d3@4 ~@2 d3@4 d3@4 d3 ~", // G G5 Em G
  B: "~ [a3,c4,e4]@7 [e3,a3] [c4,e4] ~@3 [a3,c4,e4]@7 ~ [a3,c4,e4]@3 [e3,a3] [c4,e4] ~@3 [a3,c4,e4]@2 ~, e3@8 ~@4 e3@8 e3@3 ~@5 e3@2 ~@2", // Am A5 C Am A5 C Am
  C: "~ e4@3 ~ e4@3 [e3,g3,c4] e4 ~@3 e4@7 ~ [c4,e4]@7 ~ [c4,e4]@2 ~, [e3,g3,c4]@4 [e3,g3,c4]@3 ~@5 [e3,g3,c4]@8 [e3,g3]@8 [e3,g3]@2 ~@2", // C Em
  D: "~ [g3,b3,g4]@7 [d3,g3] [b3,g4] ~@3 [g3,b3,g4]@7 ~ [b3,g4]@3 [d3,g3] [b3,g4] ~@3 [b3,g4]@3, d3@2 ~ d3@2 [d3,g3] ~ [d3,g3]", // G G5 Em G Em G5 Em G5
  E: "~ [b3,g4]@3 ~ [b3,g4]@3 [d3,g3,b3] g4 ~@3 [g3,b3,g4]@7 ~ [b3,g4]@7 ~ [g3,b3,g4]@2 ~, [d3,g3]@4 [d3,g3]@3 ~@5 d3@8 [d3,g3]@8 d3@2 ~@2", // Em G Em G G5
  F: "~ [a3,c4,e4]@7 [e3,a3,c4] e4 ~@3 [a3,c4,e4]@7 ~ [c4,e4]@7 ~ e4@2 ~, e3@4 ~@2 e3@4 [e3,a3]@4 [e3,a3,c4] ~", // Am C A5 Am
  G: "~ [c4,e4]@7 [e3,g3,c4] e4 ~@3 [g3,c4,e4]@3 ~ e4@3 ~ [g3,c4,e4]@7 ~ [c4,e4]@2 ~, [e3,g3]@4 ~@2 e3@2 [e3,g3,c4]@2 e3@4 [e3,g3] ~", // C Em C Em
  H: "~ [d4,f#4]@3 ~ [d4,f#4]@3 [d3,a3] [d4,f#4] ~@3 [a3,d4,f#4]@7 ~ [a3,d4,f#4]@3 ~ f#4@3 ~ [d4,f#4]@2 ~, [d3,a3]@4 [d3,a3]@3 ~@5 d3@7 ~ d3@4 [d3,a3,d4]@4 [d3,a3]@3 ~", // D D5 D D5
  I: "~ [b3,g4]@7 [d3,g3,b3] g4 ~@3 [g3,b3,g4]@7 ~ g4@3 [d3,g3,b3] g4 ~@3 [b3,g4]@3, [d3,g3]@4 ~@2 d3@4 [d3,g3,b3]@2 ~@2 [d3,g3] ~", // Em G Em G5 G G5
  J: "~ [c4,e4]@7 [e3,a3,c4] e4 ~@3 [c4,e4]@7 ~ [c4,e4]@7 e3 [a3,c4,e4] ~@2, [e3,a3]@2 ~ [e3,a3]@2 [e3,a3]@2 ~", // C Am C Am A5
  K: "~ [c4,e4]@7 ~ [c4,e4]@2 ~@2 [c4,e4]@3 ~ [d4,f#4]@3 ~ [a3,d4,f#4]@3 [d3,a3,d4] f#4 ~@3 [a3,d4,f#4]@2 ~, [e3,g3]@8 [e3,g3]@2 ~@2 [e3,g3]@3 ~ [d3,a3]@4 d3@4 ~@4 d3@3 ~", // C D D5 D Em D5
  L: "~ [b3,g4]@3 ~ g4@3 [d3,g3,b3] g4 ~@3 [g3,b3,g4]@7 ~ [b3,g4]@3 [d3,g3,b3] g4 ~@3 [b3,g4]@3, [d3,g3]@4 [d3,g3,b3]@4 ~@4 d3@8 [d3,g3]@4 ~@4 [d3,g3]@3 ~", // Em G Em G Em G5 G G5
// … 113 more lines

More by Smokie