Strudelify
KeyF majorTempo108 bpm
0:00/0:00
// Sela — Lionel Richie
// 108 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 8 "Strings" muted trumpet (copy of ch 4 "Melody 1" muted trumpet); ch 8 "Strings" electric guitar jazz (copy of ch 4 "Melody 1" electric guitar jazz); ch 9 "Strings" synth strings 1 (copy of ch 5 "Melody 2" piano); ch 9 "Strings" voice oohs (copy of ch 5 "Melody 2" voice oohs); ch 9 "Strings" piano (copy of ch 5 "Melody 2" piano)
// note: Full arrangement: all 145 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(108/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 · fretless bass · "Bass"
const bass = note(`<
  ~ A B C D E F G H I J K L M N O P Q R S T Q U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO C AP I AQ Z AR Q
  AS AT AU Q AV AL AW AX AK AY AZ BA BB Z BC BD BE AD BF BG BH BI BJ BK BL BM BN BO BP AH BF E BQ Z BR I BS BI BT BU BV
  C BR BW BX C BY BZ BH O CA CB CC AL CD CE CF Z CG CE CH AT AZ Q CI AT CJ E CK CL CM CN CO BM T CP CQ AY CA CR CS AD BR
  CB AC CT CU CV CW AT AR AF CX C CY
>`.pickRestart({
  A: "f2 ~ f2@2 a2@2 c3@2 f2 ~ f2@2 a2@2 ~ [f1,g1], ~@7 c3", B: "a1 a0 a1@2 c2@2 e2@2 a1 ~ a1@2 d2 ~ d2@2",
  C: "~@2 d2@2 f2@2 a1@2 d2 ~ d2@2 f2@2 a2@2", D: "d2 ~ d2 ~ d2 ~ d2@2 a1 ~ a1@2 bb1 ~ bb1@2",
  E: "bb1@2 ~ bb1 d2@2 f2@2 bb1 ~ bb1@2 d2@2 ~ bb0, ~@7 f2", F: "a1 a0 a1@2 c2@2 e2@2 a1 ~ a1@2 ~@2 d2@2",
  G: "d2 ~ d2 ~ d2 ~ d2@2 d2 ~ d2@2 gb2@2 a2@2", H: "d2 d1 d2@2 gb2@2 a2@2 ~@2 a1@2 bb1 ~ bb1 ~",
  I: "~@2 bb1@2 d2@2 f1@2 bb1 ~ bb1@2 d2@2 f2@2", J: "~@2 a1@2 c2@2 e2@2 ~@2 a1@2 d2 ~ d2@2",
  K: "d2 ~ d2 ~ d2 ~ d2@2 d2 ~ d2@2 f2@2 a2@2", L: "~@2 d2@2 f2@2 a1@2 ~@2 c2@2 bb1 ~ bb1@2",
  M: "~@2 bb1@2 d2@2 f2@2 bb1 ~ bb1@2 d2@2 f1@2", N: "a1 ~ a1@2 c2@2 a2@2 a1 a0 a1@2 d2 ~ d2@2",
  O: "d2 ~ d2@2 f2@2 a2@2 d2 ~ d2@2 f2@2 a2 a1", P: "d2 ~ d2@2 f2@2 a2@2 ~@2 c2@2 ~@2 bb1@2",
  Q: "bb1 bb0 bb1@2 d2@2 f2@2 bb1 ~ bb1@2 d2@2 f2@2", R: "a1 ~ a1@2 c2@2 e2@2 a1 ~ a1@2 d2 ~ d2@2",
  S: "~@2 d2@2 f2@2 a2@2 d2 ~ d2@2 f2@2 a2 ~", T: "d2 ~ d2@2 f2@2 a2@2 ~@2 c2@2 bb1 ~ bb1@2",
  U: "a1 ~ a1@2 c2@2 e2@2 a1 ~ a1 ~@3 d2@2", V: "d2 ~ d2@2 gb2@2 a2@2 d2 ~ d2@2 gb2@2 ~ [d1,e1], ~@7 a2",
  W: "~@2 d2@2 d2 ~ d2@2 c2 ~ c2@2 bb1 ~ bb1 ~", X: "bb1 bb0 bb1@2 f2@2 a2@2 bb1 ~ bb1@2 c2 ~ c2@2",
  Y: "c2@2 ~ c2 e2@2 g2@2 a1@2 ~ a1 d2 ~ d2@2", Z: "~@2 d2@2 f2@2 a2@2 d2 ~ d2@2 f2@2 a1@2",
  AA: "d2 ~ d2@2 f2@2 a2@2 c2 ~ c2 ~ bb1 ~ bb1@2", AB: "bb1 ~ bb1@2 d2@2 f2@2 ~@2 bb1@2 c2 ~ c2@2",
  AC: "~@2 c2@2 e2@2 g2@2 a1 ~ a1@2 d2 ~ d2@2", AD: "d2 ~ d2@2 f2@2 a2@2 d2 ~ d2@2 f2@2 ~ [d1,e1], ~@7 a2",
  AE: "d2 ~ d2 ~ d2 ~ d2@2 ~@2 c2@2 bb1 ~ bb1@2", AF: "bb1 bb0 bb1@2 d2@2 f2@2 bb1 ~ bb1@2 c2 ~ c2@2",
  AG: "~@2 c2@2 e2@2 g2@2 a1@2 ~ a1 d2 d1 d2@2", AH: "d2 ~ d2@2 f2@2 a2@2 d2 ~ d2@2 f2@2 a2@2",
  AI: "d2 ~ d2 ~ d2 ~ d2@2 c2 ~ c2 ~@3 bb1@2", AJ: "bb1@2 ~ bb1 d2@2 f2@2 bb1 ~ bb1@2 ~@2 c2@2",
  AK: "~@2 c2@2 e2@2 g2@2 a1 a0 a1@2 d2 d1 d2@2", AL: "d2 ~ d2@2 gb2@2 a2@2 d2 ~ d2@2 gb2@2 a2@2",
  AM: "d2 ~ d2@2 gb2@2 d3@2 ~@2 a1@2 bb1 bb0 bb1@2", AN: "bb1 ~ bb1 ~ bb1 ~ bb1@2 bb1 ~ bb1@2 d2@2 f2@2",
  AO: "a1 ~ a1@2 c2@2 e2@2 a1 ~ a1@2 d2 d1 d2@2", AP: "~@2 d2@2 f2@2 a2@2 c2 ~ c2@2 ~@2 bb1@2",
  AQ: "a1 ~ a1@2 c2@2 e2@2 a1 a0 a1@2 d2 ~ d2@2", AR: "~@2 d2@2 f2@2 a2@2 c2 ~ c2 ~@3 bb1@2",
  AS: "~@2 a1@2 c2@2 e1@2 a1 ~ a1@2 d2@2 ~ d2", AT: "d2@2 ~ d2 f2@2 a2@2 d2 ~ d2@2 f2@2 ~ d1, ~@7 a2",
  AU: "~@2 d2@2 f2@2 a1@2 c2 c1 c2@2 ~@2 bb1@2", AV: "~@2 a1@2 c2@2 e2@2 a1 ~ a1@2 ~@2 d2@2",
  AW: "d2 d1 d2@2 d2 ~ d2@2 c2 ~ c2@2 bb1 ~ bb1@2", AX: "bb1 ~ bb1 ~ bb1 ~ bb1@2 bb1 bb0 bb1@2 c2 c1 c2@2",
  AY: "d2 ~ d2@2 f2@2 d3@2 d2 ~ d2@2 f2@2 a1@2", AZ: "d2 ~ d2@2 f2@2 a2@2 c2 ~ c2@2 bb1 bb0 bb1@2",
  BA: "bb1 ~ bb1@2 d2@2 f2@2 bb1 ~ bb1@2 ~@2 c2@2", BB: "~@2 c2@2 e2@2 g2@2 a1 ~ a1@2 d2@2 ~ d2",
  BC: "d2 d1 d2@2 f2@2 a2@2 ~@2 c2@2 bb1 bb0 bb1@2", BD: "bb1 ~ bb1@2 d2@2 f2@2 bb1 ~ bb1@2 c2 ~ c2@2",
  BE: "~@2 c2@2 e2@2 g2@2 a1@2 ~ a1 d2 ~ d2@2", BF: "d2 ~ d2@2 f2@2 a2@2 c2 ~ c2@2 bb1 ~ bb1@2",
  BG: "~@2 bb1@2 d2@2 f2@2 bb1 bb0 bb1@2 c2 ~ c2 ~", BH: "~@2 c2@2 e2@2 g2@2 ~@2 a1@2 d2 ~ d2@2",
  BI: "~@2 d2@2 gb2@2 a2@2 d2 ~ d2@2 gb2@2 a2 ~", BJ: "~@2 d2@2 gb2@2 a1@2 ~@2 a1@2 bb1 ~ bb1 ~",
  BK: "bb1 ~ bb1@2 d2@2 f2@2 bb1 ~ bb1@2 d2@2 ~ [bb0,c1], ~@7 f2", BL: "a1 ~ a1@2 c2@2 a2@2 a1 ~ a1@2 ~@2 d2@2",
  BM: "d2 d1 d2@2 f2@2 a2@2 d2 ~ d2@2 f2@2 a2@2", BN: "d2 d1 d2@2 f2@2 a2@2 ~@2 c2@2 bb1 ~ bb1@2",
  BO: "bb1 ~ bb1@2 d2@2 f2@2 bb1 ~ bb1@2 d2@2 f2 f1", BP: "a1 ~ a1@2 c2@2 e2@2 a1 a0 a1@2 d2 d1 d2@2",
  BQ: "a1 ~ a1@2 c2@2 a2@2 a1 ~ a1@2 d2 d1 d2@2", BR: "d2 ~ d2@2 f2@2 a2@2 c2 c1 c2@2 bb1 ~ bb1@2",
  BS: "a1 ~ a1 ~ a1 ~ a1@2 a1@2 ~ a1 ~@2 d2@2", BT: "d2 ~ d2@2 d2 ~ d2@2 c2 c1 c2@2 ~@2 bb1@2",
  BU: "~@2 bb1@2 d2@2 f2@2 bb1 bb0 bb1@2 ~@2 c2@2", BV: "c2 ~ c2@2 e2@2 g2@2 a1 ~ a1 ~ d2 ~ d2@2",
  BW: "bb1 ~ bb1@2 d2@2 f2@2 ~@2 bb1@2 c2 c1 c2@2", BX: "c2 ~ c2@2 e2@2 g2@2 a1 a0 a1@2 ~@2 d2@2",
  BY: "d2 ~ d2@2 f2@2 d3@2 c2 c1 c2@2 ~@2 bb1@2", BZ: "bb1 bb0 bb1@2 d2@2 f2@2 bb1 ~ bb1@2 ~@2 c2@2",
  CA: "d2 d1 d2@2 f2@2 a2@2 c2 ~ c2@2 ~@2 bb1@2", CB: "bb1 bb0 bb1@2 d2@2 f2@2 bb1 ~ bb1@2 c2 c1 c2@2",
  CC: "c2 ~ c2@2 e2@2 c3@2 a1@2 ~ a1 d2 ~ d2@2", CD: "d2 d1 d2@2 gb2@2 a2@2 a1 ~ a1@2 bb1 ~ bb1@2",
  CE: "bb1 ~ bb1@2 d2@2 f2@2 bb1 ~ bb1@2 d2@2 f2@2", CF: "~@2 a1@2 c2@2 e2@2 a1 ~ a1@2 d2 d1 d2@2",
  CG: "d2 ~ d2@2 f2@2 a2@2 ~@2 c2@2 bb1 bb0 bb1@2", CH: "a1 ~ a1@2 c2@2 e2@2 a1 a0 a1@2 ~@2 d2@2",
  CI: "~@2 a1@2 c2@2 e2@2 a1 ~ a1@2 d2 ~ d2@2", CJ: "d2 ~ d2@2 f2@2 d3@2 ~@2 c2@2 bb1 ~ bb1@2",
  CK: "a1 ~ a1@2 c2@2 e2@2 a1 ~ a1@2 d2 ~ d2 ~", CL: "d2 ~ d2@2 gb2@2 a2@2 d2 ~ d2@2 gb2@2 a2 a1",
  CM: "d2 ~ d2@2 d2 d1 d2@2 c2 ~ c2@2 bb1@2 ~ bb1", CN: "bb1 bb0 bb1@2 d2@2 f2@2 bb1 bb0 bb1@2 c2 c1 c2@2",
  CO: "c2 ~ c2@2 e2@2 g2@2 a1 ~ a1@2 d2 ~ d2@2", CP: "bb1 ~ bb1@2 d2@2 f2@2 bb1 bb0 bb1@2 c2 c1 c2@2",
  CQ: "c2 c1 c2@2 e2@2 g2@2 a1 a0 a1@2 d2 ~ d2@2", CR: "~@2 bb1@2 d2@2 f1@2 bb1 ~ bb1@2 c2 ~ c2@2",
  CS: "~@2 c2@2 e2@2 g1@2 ~@2 a1@2 d2 ~ d2 ~", CT: "d2 d1 d2@2 gb2@2 a2@2 d2 ~ d2@2 gb2@2 a2@2",
  CU: "~@2 d2@2 d2@2 ~ d2 c2 ~ c2@2 ~@2 bb1@2", CV: "bb1 ~ bb1@2 f2@2 a2@2 bb1 ~ bb1@2 ~@2 c2@2",
  CW: "c2 ~ c2@2 e2@2 g2@2 a1 ~ a1@2 ~@2 d2@2", CX: "~@2 c2@2 e2@2 g1@2 a1 ~ a1@2 d2 ~ d2@2",
  CY: "d2 ~ d2@2 f2@2 a2@2 c2 ~ c2@2 ~@4",
})).s("gm_fretless_bass").gain(0.27)

// chords · electric guitar jazz · "Guitar"
const electric_guitar_jazz = note(`<
  ~ A B C D E F G H ~@63 I J K L M N O P Q R S T U E V W X Y Z L AA AB AC T AD AE Z AF AG AH AI AJ AK ~@40
>`.pickRestart({
  A: "~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  B: "~@2 [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~@4 e4 ~@2 d3@2, ~@9 g3@2 ~@5, ~@5 c4 ~@2", // Am7
  C: "~@2 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~@3 [a3,d4,f4] ~", // Dm
  D: "~@2 [a3,d4,f4]@2 [a3,d4,f4] ~ [a3,d4,f4] ~@2 g3 c4 e4 ~@3 f4, ~@13 a3@3, ~@7 d4", // Dm
  E: "~@2 [a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~", // Dm7
  F: "~@2 a2@2 [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~@3 [c4,e4,g4,a4] ~@3 [a3,d4,gb4] ~", // Am7 D
  G: "~@2 [a3,d4,gb4] ~ [a3,d4,gb4] ~ [a3,d4,gb4] ~ [a3,d4,gb4] ~ [a3,d4,gb4] ~@3 [a3,d4,gb4] ~", // D
  H: "~@2 gb4@2 a4@2 [gb3,a3,d4] ~@3 [c4,e4,g4,a4]@2 ~@2 bb2@2, d4@5 ~@11", I: "~@10 [c4,e4,g4,a4] ~@3 [d4,f4,a4,c5]@2",
  J: "~@2 [d4,f4,a4,c5]@2 [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~@3 [d4,f4,a4,c5] ~ [d4,f4,a4,c5]@2 [d4,f4,a4,c5] ~", // Dm7
  K: "~@2 [c4,e4,g4,a4] ~ [c4,e4,g4,a4] a2 [c4,e4,g4,a4] ~@3 c4@2 ~@2 [a3,d4,f4]@2, ~@2 g3 ~", // Am7 Dm
  L: "~@2 f4@2 a4@2 [a3,d4,f4] ~@3 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~, d4@5 ~@11", // Dm
  M: "~@2 [a3,d4,f4]@2 [a3,d4,f4] ~ [a3,d4,f4] ~@3 [g3,c4,e4] ~@3 [d4,f4,a4,c5] ~", // Dm C Dm7
  N: "~@2 d4@2 f4@2 [d4,f4,a4,c5] ~@3 [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~, a3@5 ~@11", // Dm7
  O: "~@2 [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~@3 [c4,e4,g4,a4]@2 ~@2 d3@2", // Am7
  P: "~@3 a4 [a3,d4,f4] ~ [a3,d4,f4] ~@3 [a3,d4,f4] ~ [a3,d4,f4]@2 [a3,d4,f4] ~, ~ d4@2 ~@13, ~ f4 ~@6", // Dm
  Q: "~@2 [a3,d4,f4] ~ [a3,d4,f4] d3 [a3,d4,f4] ~@3 [g3,c4,e4] ~@3 [d4,f4,a4,c5] ~", // Dm C Dm7
  R: "~@2 [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~", // Dm7
  S: "~@2 [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~@3 [c4,e4,g4,a4] ~@3 f4@2, ~@3 d4", // Am7
  T: "~@2 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~", // Dm
  U: "~@2 d3@2 [a3,d4,f4] ~ [a3,d4,f4] ~@3 [g3,c4,e4]@2 ~@2 d4@2, ~@3 a3", // Dm C
  V: "~@3 e4 [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~@2 g3 c4 e4 ~@2 [a3,d4,gb4] ~, ~ g3@2 ~@13, ~ c4 ~@6", // Am7 D
  W: "~@2 [a3,d4,gb4]@3 d3 [a3,d4,gb4] ~ [a3,d4,gb4] d3 [a3,d4,gb4] ~ [a3,d4,gb4]@2 [a3,d4,gb4] ~", // D
  X: "~@2 [a3,d4,gb4] ~@3 [a3,d4,f4]@2 ~@2 [g3,c4,e4] ~@3 [bb3,d4,f4] ~", // D Dm C Bb
  Y: "~@2 [bb3,d4,f4]@2 [bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [f3,bb3,d4]@2 ~ c4 e4 g4", // Bb
  Z: "~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~@3 [c4,e4,g4,a4] ~@3 [a3,d4,f4]@2", // C Am7 Dm
  AA: "~@2 d3@2 [a3,d4,f4] ~ [a3,d4,f4] ~@3 [g3,c4,e4] ~@4 f4, ~@13 bb3@3, ~@7 d4", // Dm C
  AB: "~@2 [f3,bb3,d4]@2 [f3,bb3,d4] ~ [f3,bb3,d4] ~@3 d4@2 ~@3 g4, ~@8 bb3@4 ~ c4@3, ~@7 e4", // Bb
  AC: "~@2 [g3,c4,e4]@2 [g3,c4,e4] ~ [g3,c4,e4] ~@3 a2@2 ~@2 d3@2", // C
  AD: "~@2 f4@2 a4@2 [a3,d4,f4] ~@3 [g3,c4,e4] ~@3 [bb3,d4,f4]@2, d4@5 ~@11", // Dm C Bb
  AE: "~@2 bb2@2 [bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [bb3,d4,f4] ~@3 [g3,c4,e4]@2", // Bb C
  AF: "~@2 [a3,d4,f4]@2 [a3,d4,f4] ~ [a3,d4,f4] ~@3 [a3,d4,f4] ~ [a3,d4,f4]@2 [a3,d4,f4] ~", // Dm
  AG: "~@2 [a3,d4,f4] ~ [a3,d4,f4] d3 [a3,d4,f4] ~@3 [g3,c4,e4]@2 ~@2 [bb3,d4,f4] ~", // Dm C Bb
  AH: "~@2 [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~@3 [bb3,d4,f4]@2 ~@2 [g3,c4,e4] ~", // Bb C
  AI: "~@2 [g3,c4,e4]@2 [g3,c4,e4] ~ [g3,c4,e4] ~@3 [c4,e4,g4,a4]@2 ~ d4 gb4 a4", // C Am7
  AJ: "~@2 [a3,d4,gb4] ~ [a3,d4,gb4] ~ [a3,d4,gb4] ~ [a3,d4,gb4] ~ [a3,d4,gb4] ~ [a3,d4,gb4] ~ [a3,d4,gb4] ~", // D
  AK: "~@2 [a3,d4,gb4]@2 [a3,d4,gb4] ~ [a3,d4,gb4] ~@9", // D
})).s("gm_electric_guitar_jazz").gain(0.14).pan(0.3)

// chords · acoustic guitar nylon · "Guitar"
const acoustic_guitar_nylon = note(`<
  ~@9 A B C D E F G H I J C K I L M N O P Q R S T U V W X C Y Z AA AB AC ~@104
>`.pickRestart({
  A: "~@2 d4@2 f4@2 [d4,f4,a4,c5] ~@3 [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~, a3@5 ~@11", // Dm7
  B: "~@2 [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~@3 [c4,e4,g4,a4] ~@3 [a3,d4,f4]@2", // Am7 Dm
  C: "~@2 [a3,d4,f4]@2 [a3,d4,f4] ~ [a3,d4,f4] ~@3 [a3,d4,f4] ~ [a3,d4,f4]@2 [a3,d4,f4] ~", // Dm
  D: "~@2 [a3,d4,f4]@2 [a3,d4,f4] ~ [a3,d4,f4] ~@3 [g3,c4,e4]@2 ~@2 [a3,c4,d4,f4] ~", // Dm C Dm7
  E: "~@2 bb2@2 [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5]@2 bb2@2", // Dm7
  F: "~@2 [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~@3 [c4,e4,g4,a4]@2 ~@2 [a3,d4,f4]@2", // Am7 Dm
  G: "~@2 d3@2 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4]@2 d3@2", // Dm
  H: "~@2 d3@2 [a3,d4,f4] ~ [a3,d4,f4] ~@3 [g3,c4,e4] ~@4 f4, ~@13 a3@3, ~@7 d4", // Dm C
  I: "~@2 [d4,f4,a4,c5]@2 [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~@3 [d4,f4,a4,c5] ~ [d4,f4,a4,c5]@2 [d4,f4,a4,c5] ~", // Dm7
  J: "~ g3 c4 e4 [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~@2 g3 c4 e4 ~@3 a4, ~@13 d4@2 ~, ~@7 f4", // Am7
  K: "~@2 [a3,d4,f4]@2 [a3,d4,f4] ~ [a3,d4,f4] ~@3 [g3,c4,e4] ~@3 [d4,f4,a4,c5] ~", // Dm C Dm7
  L: "~@2 [c4,e4,g4,a4]@3 a2 [c4,e4,g4,a4] ~@3 [c4,e4,g4,a4]@2 ~@2 [a3,d4,gb4] ~", // Am7 D
  M: "~@2 [a3,d4,gb4]@3 d3 [a3,d4,gb4] ~ [a3,d4,gb4] d3 [a3,d4,gb4] ~ [a3,d4,gb4]@2 [a3,d4,gb4] ~", // D
  N: "~@3 a4 ~@2 [a3,d4,f4]@2 ~@2 [g3,c4,e4]@2 ~@2 [a3,d4,f4] ~, ~ d4@2 ~@13, ~ gb4 ~@6", // Dm C Dm
  O: "~@3 a4 d5 ~ d5 ~@3 [a3,d4,f4]@2 ~@2 [g3,c4,e4] ~, ~ d4@6 ~@9, ~@2 f4@5 ~@9", // Dm C
  P: "~@2 e4@2 g4@2 [g3,c4,e4] ~@3 a2@2 ~@2 f4@2, c4@5 ~@7 d4@4", // C
  Q: "~@2 f4@2 a4@2 [a3,d4,f4] ~@3 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~, d4@5 ~@11", // Dm
  R: "~@2 f4@2 a4@2 [a3,d4,f4] ~@3 [g3,c4,e4]@2 ~@2 [bb3,d4,f4] ~, d4@5 ~@11", // Dm C Bb
  S: "~@2 bb2@2 [f3,bb3,d4] ~ [f3,bb3,d4] ~@3 [bb3,d4,f4]@2 ~@2 [g3,c4,e4]@2", // Bb C
  T: "~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~@3 [c4,e4,g4,a4]@2 ~@2 [a3,d4,f4]@2", // C Am7 Dm
  U: "~@2 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4]!4", // Dm
  V: "~@2 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~@3 [g3,c4,e4] ~@3 [bb3,d4,f4]@2", // Dm C Bb
  W: "~@2 [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [bb3,d4,f4] ~@4 g4, ~@13 c4@3, ~@7 e4", // Bb
  X: "~@2 [g3,c4,e4]@2 [g3,c4,e4] ~ [g3,c4,e4] ~@3 [c4,e4,g4,a4] ~@3 f4@2, ~@3 d4", // C Am7
  Y: "~@2 f4@2 a4@2 [a3,d4,f4] ~@2 c4 e4 g4 ~@2 [bb3,d4,f4] ~, d4@5 ~@11", // Dm Bb
  Z: "~@2 d4@2 f4@2 [bb3,d4,f4] ~@3 [f3,bb3,d4] ~@3 [g3,c4,e4]@2, bb3@5 ~@11", // Bb C
  AA: "~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~@3 [c4,e4,g4,a4] ~@4 a4, ~@13 d4@3, ~@7 gb4", // C Am7
  AB: "~@2 [a3,d4,gb4] ~ [a3,d4,gb4] ~ [a3,d4,gb4] ~ [a3,d4,gb4] ~ [a3,d4,gb4] ~ [a3,d4,gb4] ~ [a3,d4,gb4] ~", // D
  AC: "~@3 a4 [a3,d4,gb4] ~ [a3,d4,gb4] ~@9, ~ d4@2 ~@13, ~ gb4 ~@6", // D
})).s("gm_acoustic_guitar_nylon").gain(0.18).pan(0.3)

// chords · electric guitar muted · "Guitar"
const electric_guitar_muted = note(`<
  ~@40 A B C D E F G H I J K H L M N O P Q R S T U V D W X V Y Z AA AB AC AD ~@72
>`.pickRestart({
  A: "~@10 [c4,e4,g4,a4] ~@3 [d4,f4,a4,c5] ~", // Am7 Dm7
  B: "~@2 bb2@2 [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5]@2 bb2@2", // Dm7
  C: "~@2 [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~@3 [c4,e4,g4,a4] ~@3 [a3,d4,f4] ~", // Am7 Dm
  D: "~@2 [a3,d4,f4]@2 [a3,d4,f4] ~ [a3,d4,f4] ~@3 [a3,d4,f4] ~ [a3,d4,f4]@2 [a3,d4,f4] ~", // Dm
  E: "~@2 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~@3 [g3,c4,e4]@2 ~@2 [d4,f4,a4,c5]@2", // Dm C Dm7
  F: "~ a3 d4 f4 [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~@3 [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~", // Dm7
  G: "~@2 [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~@3 [c4,e4,g4,a4]@2 ~@2 [a3,d4,f4] ~", // Am7 Dm
  H: "~@2 d3@2 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4]@2 d3@2", // Dm
  I: "~@2 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~@3 [g3,c4,e4] ~@3 [d4,f4,a4,c5] ~", // Dm C Dm7
  J: "~@2 [d4,f4,a4,c5]@2 [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~@3 [d4,f4,a4,c5] ~ [d4,f4,a4,c5]@2 [d4,f4,a4,c5] ~", // Dm7
  K: "~@2 a2@2 [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~@3 [c4,e4,g4,a4]@2 ~@2 [a3,d4,f4]@2", // Am7 Dm
  L: "~@2 f4@2 a4@2 [a3,d4,f4] ~@3 [g3,c4,e4]@2 ~@2 [d4,f4,a4,c5] ~, d4@5 ~@11", // Dm C Dm7
  M: "~@2 [a3,c4,d4,f4]@3 bb2 [a3,c4,d4,f4] ~ [a3,c4,d4,f4] bb2 [a3,c4,d4,f4] ~ [a3,c4,d4,f4]@2 [a3,c4,d4,f4] ~", // Dm7
  N: "~@2 [c4,e4,g4,a4]@2 [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~@3 [c4,e4,g4,a4] ~@3 gb4@2, ~@3 d4", // Am7
  O: "~@2 [a3,d4,gb4]@2 [a3,d4,gb4] ~ [a3,d4,gb4] ~@3 [a3,d4,gb4] ~ [a3,d4,gb4]@2 [a3,d4,gb4] ~", // D
  P: "~@2 [a3,d4,gb4]@2 ~@2 [a3,d4,f4] ~@3 e4@2 ~@2 [bb3,d4,f4]@2, ~@2 c4 ~", // D Dm Bb
  Q: "~@2 bb2@2 [bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [bb3,d4,f4]@2 ~@2 [g3,c4,e4] ~", // Bb C
  R: "~@2 e4@2 g4@2 [g3,c4,e4] ~@3 [c4,e4,g4,a4] ~@3 [a3,d4,f4]@2, c4@5 ~@11", // C Am7 Dm
  S: "~@3 a4 d5 ~ d5 ~ [d4,f4,a4,d5] ~ [d4,f4,a4,d5]@2 [d4,f4,a4,d5]@2 [d4,f4,a4,d5] ~, ~ d4@6 ~@9, ~@2 f4@5 ~@9", // Dm
  T: "~@2 f4@2 a4@2 [a3,d4,f4] ~@3 [g3,c4,e4]@2 ~@2 [bb3,d4,f4]@2, d4@5 ~@11", // Dm C Bb
  U: "~@2 [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [bb3,d4,f4] ~@3 e4@2, ~@3 c4", // Bb
  V: "~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~@3 [c4,e4,g4,a4] ~@3 [a3,d4,f4] ~", // C Am7 Dm
  W: "~@3 a4 d5 ~ d5 ~@3 [g3,c4,e4]@2 ~@3 f4, ~ d4@6 ~@6 bb3@3, ~@2 f4@5 ~@7 d4@2", // C
  X: "~@3 f4 [bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [bb3,d4,f4] ~@3 c3@2, ~ bb3@2 ~@13, ~ d4 ~@6", // Bb
  Y: "~@2 [a3,d4,f4]@3 d3 [a3,d4,f4] ~ [a3,d4,f4] d3 [a3,d4,f4] ~ [a3,d4,f4]@2 [a3,d4,f4] ~", // Dm
  Z: "~@2 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~@3 [g3,c4,e4]@2 ~@2 [bb3,d4,f4]@2", // Dm C Bb
  AA: "~@2 [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~@3 [f3,bb3,d4] ~@4 g4, ~@13 c4@3, ~@7 e4", // Bb
  AB: "~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~@3 [c4,e4,g4,a4]@2 ~@2 [a3,d4,gb4] ~", // C Am7 D
  AC: "~@2 [a3,d4,gb4] ~ [a3,d4,gb4] d3 [a3,d4,gb4] ~ [a3,d4,gb4] ~ [a3,d4,gb4] ~ [a3,d4,gb4]@2 [a3,d4,gb4] ~", // D
  AD: "~@3 a4 [a3,d4,gb4] ~ [a3,d4,gb4] ~@9, ~ d4@2 ~@13, ~ gb4 ~@6", // D
})).s("gm_electric_guitar_muted").gain(0.1).pan(0.3)

// chords · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel = note(`<
  ~@104 A B C D E F G H I J K L M J N O P Q R S T U V W X Y Z H AA AB AC AD AE AF AG AH AI AJ AK AL AM
>`.pickRestart({
  A: "~@5 [c4,e4,g4,a4] ~ [d4,f4,a4,c5]", // Am7 Dm7
  B: "~@2 [d4,f4,a4,c5]@2 [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~@3 [d4,f4,a4,c5] ~ [d4,f4,a4,c5]@2 [d4,f4,a4,c5] ~", // Dm7
  C: "~@2 [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~@3 c4@2 ~@2 [a3,d4,f4]@2, ~@2 g3 ~", // Am7 Dm
  D: "~@2 [a3,d4,f4] ~ [a3,d4,f4] d3 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4]@2 [a3,d4,f4] ~", // Dm
  E: "~@2 [a3,d4,f4] ~ [a3,d4,f4] d3 [a3,d4,f4] ~@3 [g3,c4,e4]@2 ~@2 [d4,f4,a4,c5] ~", // Dm C Dm7
  F: "~@2 [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~", // Dm7
  G: "~@2 [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~@3 [c4,e4,g4,a4] ~@3 [a3,d4,f4]@2", // Am7 Dm
  H: "~@2 f4@2 a4@2 [a3,d4,f4] ~@3 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~, d4@5 ~@11", // Dm
  I: "~@2 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~@4 g4 ~@2 [a3,c4,d4,f4] ~, ~@9 c4@3 ~@4, ~@5 e4 ~@2", // Dm Dm7
  J: "~@2 [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5]!4", // Dm7
  K: "~@2 [c4,e4,g4,a4]@2 [c4,e4,g4,a4] ~ [c4,e4,g4,a4] ~@3 a2@2 ~@2 [a3,d4,f4] ~", // Am7 Dm
  L: "~ d4 f4 a4 [a3,d4,f4] ~ [a3,d4,f4] ~@3 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~", // Dm
// … 130 more lines

More by Lionel Richie