Strudelify

Little Girl

Raf

KeyB♭ majorTempo88 bpm
0:00/0:00
// Little Girl — Raf
// 88 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 86 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(88/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.

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A@2 B C D E F G@2 ~@7 H I J K L M N O P Q R Q R S@2 Q T ~@7 U I J K L M N V P W@2 S@2 W@2 Q X Q Y W@2 Z@2 AA@2 A@2 B C
  AB@2 AC AD@2 B C AE AF AG@2 AH@2 AI@4
>`.pickRestart({
  A: "[g3@3 ~ [g3,bb3]@4 [f3,a3] ~ a3@4 g3 ~ g3@3 ~ eb3@2 g3 ~ [eb3,g3] ~ g3 ~ g3@2 [f3,a3]@2, ~@10 f3@2 ~@2 eb3@4 ~@2 g3 ~@5 eb3@4 ~@2]/2", // Gm F Eb F
  B: "g3@2 bb3 ~ [g3,bb3]@4 [f3,a3] ~ [f3,a3]@4 [eb3,g3]@2, bb3 ~@15", // Gm F Eb
  C: "eb3@2 g3 ~ [eb3,g3]@3 ~ [f3,a3] ~ [f3,a3]@3 ~ [f3,a3] ~, g3 ~@15", // Eb F
  D: "[g3,bb3] ~ [g3,bb3] ~ [g3,bb3]@3 ~ [f3,a3] ~ [f3,a3]@4 [eb3,g3] ~", // Gm F Eb
  E: "[eb3,g3]@2 g3 ~ [eb3,g3]@3 ~ [eb3,g3] ~ [eb3,g3]@5 ~", // Eb
  F: "[c3,g3] ~ [c3,g3] ~ [c3,g3]@2 c3 [c3,g3] ~ [c3,g3]!2 ~ [c3,g3] ~ [c3,g3] ~", G: "[[f3,a3]@2 ~ [f3,a3]@27 ~@2]/2",
  H: "g3@2 ~@3 g4@4 ~@4 d4@3, ~@2 bb3@5 ~@2 c4@7, ~@3 d4@6 ~ d4@3 ~@3, ~@11 g4@5",
  I: "[bb3,d4,f4]!2 ~ [bb3,d4,f4] ~@2 [bb3,d4,f4] d4@2 [bb3,d4,f4] ~ d4 [bb3,d4,f4]!2 d4 [bb3,d4,f4]", // Bb
  J: "[a3,c4,f4] [a3,f4] c4 [a3,c4,f4]@2 ~ [bb3,d4,f4] ~@2 [bb3,d4,f4] d4 ~ [bb3,d4,f4]!2 ~ [bb3,d4,f4]", // F Dm F Bb
  K: "[bb3,d4,f4] [bb3,f4] d4 [bb3,d4,f4] d4!2 [g3,bb3,d4] ~ d4 [g3,bb3,d4] ~ d4 [g3,bb3,d4]!2 ~ [g3,bb3,d4], ~@7 d4@2 ~@7", // Bb Bb5 Bb Gm
  L: "[f3,bb3,d4]@2 [bb3,d4] [f3,bb3,d4]@2 ~ [f3,a3,c4] c4@2 [f3,a3,c4] c4!2 [f3,a3,c4]!2 ~ [f3,a3,c4]", // Bb F
  M: "[g3,bb3,d4] [bb3,d4] ~ [g3,bb3,d4] ~@2 [f3,bb3,d4] d4 ~ [f3,bb3,d4] ~ d4 [f3,bb3,d4]!2 d4 [f3,bb3,d4]", // Gm Bb Gm Bb
  N: "[f3,a3,c4] [f3,a3] c4 [f3,a3,c4] ~@2 [f3,bb3,d4] ~@2 [f3,bb3,d4] d4 ~ [f3,bb3,d4]!2 ~ [f3,bb3,d4]", // F Bb
  O: "[g3,bb3,d4] bb3 d4 [g3,bb3,d4] d4!2 [g3,d4] ~@2 [g3,d4,f4] ~ f4 [g3,d4,f4]!2 ~ [g3,d4]", // Gm G5 G7 G5
  P: "[g3,c4,d4]@2 c4 [g3,c4,d4]@2 ~ [f3,a3,c4] c4@2 [f3,a3,c4] c4!2 [f3,a3,c4]!2 ~ [f3,a3,c4]", // Gsus4 F
  Q: "[f3,bb3,d4]!8 [f3,a3,c4] [f3,c4] [f3,a3,c4] [f3,c4] [f3,a3,c4] [f3,c4] [eb3,g3,bb3]@2", // Bb F F5 F F5 F F5 Eb
  R: "bb3!2 [eb3,g3,bb3] [eb3,bb3] [eb3,g3,bb3] [eb3,g3] bb3 ~ g3 [eb3,g3,bb3]@2 [eb3,g3,bb3]!2 [eb3,bb3] [eb3,g3,bb3] [eb3,bb3], ~@7 [eb3,g3,bb3]@2 ~@7", // Eb Eb5 Eb Eb5 Eb Eb5 Eb
  S: "[[f3,bb3,d4]!8 [f3,a3,c4] [f3,c4] [f3,a3,c4] [f3,c4] [f3,a3,c4] [f3,c4] bb3@2 bb3!2 [eb3,g3] [eb3,bb3] [eb3,g3,bb3] [eb3,g3] bb3 ~ g3 [eb3,g3,bb3]@2 [eb3,g3,bb3]!2 [eb3,bb3] [eb3,g3,bb3] [eb3,bb3], ~@14 [eb3,g3]@4 ~@5 [eb3,g3,bb3]@2 ~@7]/2", // Bb F F5 F F5 F F5 Eb …
  T: "[eb3,g3,bb3]@15 ~", U: "~@5 d4@4 ~@4 d4@3, g3@6 ~@5 g4@5, ~@2 d4@3 ~@4 c4@7, ~@3 f4@5 ~@2 d4@3 ~@3",
  V: "[g3,bb3,d4] bb3 d4 [g3,bb3,d4] d4!2 [g3,d4] ~ f4 [g3,d4,f4] ~ f4 [g3,d4,f4]!2 ~ [g3,d4]", // Gm G5 G7 G5
  W: "[[f3,bb3,d4]!8 [f3,a3,c4] [f3,c4] [f3,a3,c4] [f3,c4] [f3,a3,c4] [f3,c4] bb3@2 bb3!2 [eb3,g3,bb3] [eb3,bb3] [eb3,g3,bb3] [eb3,g3] bb3 ~ g3 [eb3,g3,bb3]@2 [eb3,g3,bb3]!2 [eb3,bb3] [eb3,g3,bb3] [eb3,bb3], ~@14 [eb3,g3]@4 ~@5 [eb3,g3,bb3]@2 ~@7]/2", // Bb F F5 F F5 F F5 Eb …
  X: "[g3,bb3]@2 [g3,bb3]@2 [g3,bb3]@2 [g3,bb3]@2 [g3,bb3]@2 [g3,bb3] ~ [g3,bb3]@2 [g3,bb3]@2", // Gm
  Y: "bb3!2 [eb3,g3,bb3] [eb3,bb3] [eb3,g3,bb3] [eb3,g3] bb3 [eb3,g3,bb3] g3 [eb3,g3,bb3]@2 [eb3,g3,bb3]!2 [eb3,bb3] [eb3,g3,bb3] [eb3,bb3]", // Eb Eb5 Eb Eb5 Eb Eb5
  Z: "[[f3,bb3,d4]!8 [f3,a3,c4] [f3,c4] [f3,a3,c4] [f3,c4] [f3,a3,c4] [f3,c4] c4@2 c4!2 [c3,g3,c4] [c3,c4] [c3,g3,c4] [c3,g3] c4 ~ g3 [c3,g3,c4]@2 [c3,g3,c4]!2 [c3,c4] [c3,g3,c4] [c3,c4], ~@14 [c3,g3]@4 ~@5 [c3,g3,c4]@2 ~@7]/2", // Bb F F5 F F5 F F5 C5 …
  AA: "[[eb3,g3,bb3]!8 [eb3,bb3] ~ [d3,a3] ~ [db3,ab3]@2 [c3,g3]@17 ~]/2", // Eb Eb5 D5 Db5 C5
  AB: "[[g3,bb3] ~ [g3,bb3] ~ [g3,bb3]@4 [f3,a3] ~ [f3,a3]@4 [eb3,g3]@4 [eb3,g3] ~ [eb3,g3]@3 ~ [eb3,g3] ~ [eb3,g3]@5 ~]/2", // Gm F Eb
  AC: "[c3,g3] ~ [c3,g3] ~ [c3,g3]@2 c3 [c3,g3] [f3,a3] ~ [f3,a3]@4 [g3,bb3]!2", // C5 F Gm
  AD: "[[g3,bb3]@4 [g3,bb3]@4 [f3,a3] ~ a3@4 [eb3,g3]@5 ~ eb3@2 g3 ~ [eb3,g3] ~ g3 ~ g3@2 [f3,a3]@2, ~@10 f3@2 ~@8 g3 ~@5 eb3@4 ~@2]/2", // Gm F Eb F
  AE: "[g3,bb3] ~ [g3,bb3] ~ [g3,bb3]@4 [f3,a3] ~ [f3,a3]@4 [eb3,g3]@2", // Gm F Eb
  AF: "~@2 [eb3,g3] ~ [eb3,g3]@3 ~ [eb3,g3]@2 ~ [eb3,g3] ~ eb3 [eb3,g3]!2, ~@6 [eb3,g3] ~", // Eb
  AG: "[[c3,g3]@4 [c3,g3]@3 c3 [c3,g3] ~ [c3,g3]@4 [f3,c4]@17 ~]/2", // C5 F5
  AH: "[~@6 c3@4 ~@12 [f2,c3]@3 ~@7, g2@3 f2@4 f3@2 d3@2 ~@5, ~@2 d3@4 ~@6 a3@4 g2@5 ~@11, ~@2 f3@3 bb3@3 ~@2 f3@2 ~@4]/2", // F5
  AI: "[~@10 bb3@2 ~@13 d3@28 ~@11, g2@6 f2@10 ~ g2@37 ~@10, ~@2 d3@4 c3@7 ~@2 f3@7 f3@30 ~@12, ~@4 f3@6 ~@2 a3@5 ~@3 d3@5 ~@39]/4",
})).s("gm_acoustic_guitar_steel").gain(0.32).pan(0.7)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@5 A ~@11 B C D E F G H I ~ J ~ J ~ K ~@10 B C D E F G L I ~ J ~ K ~ J ~@3 J ~ J ~ M ~@7 A ~@6 N ~@8
>`.pickRestart({
  A: "~@14 g3 ~", B: "~@7 [bb3,f4]@2 ~@2 [bb3,f4] ~@2 [bb3,f4] ~",
  C: "~@7 [bb3,f4] d4 ~@2 [bb3,d4,f4] ~@2 [bb3,d4,f4] ~", D: "~@7 [g3,bb3]@2 ~@2 [g3,bb3] ~@2 [g3,bb3,d4] ~",
  E: "~@5 c4 ~@2 c4 ~@2 [f3,a3] ~@2 [f3,a3] ~, ~@7 a3@2 ~@7", F: "~ g3 ~@5 [f3,bb3] ~@3 [f3,bb3] ~@2 [f3,bb3] ~",
  G: "~@7 [f3,bb3] d4 ~@2 [f3,bb3,d4] ~@2 [f3,bb3,d4] ~", // Bb5 Bb
  H: "~ g3 ~@6 f4 ~@2 [g3,d4] ~@2 [g3,d4,f4] ~, ~@7 [g3,d4]@2 ~@7", // G5 G7 G5
  I: "~@2 d4 ~@2 c4 ~@2 c4 ~@2 [f3,a3] ~@2 a3 ~, ~@7 a3@2 ~@7", J: "~@6 [eb3,g3] ~@3 g3 ~@5",
  K: "~@2 bb3 ~@3 [eb3,g3] ~@3 g3 ~@5", L: "~ g3 ~@5 [g3,d4]@2 ~@2 [g3,d4] ~@2 [g3,d4,f4] ~",
  M: "~@6 [c3,g3] ~@3 g3 ~@5", N: "~@10 g3 ~@5",
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.7)

// bass · electric bass finger
const bass = note(`<
  A@2 B@2 C@2 D E@2 ~@7 F G H I J K L M N O P O Q R S R T ~@7 F U V W X Y Z AA AB O AC O Q R S R AD AE@2 AF AG AH AI
  AJ@2 AK@2 AL@2 AM@2 AN AO@2 AP@2 AQ AR AS@2 ~@6
>`.pickRestart({
  A: "[g1@3 ~ g1@2 ~ c2 f2 ~ f2@3 ~ eb2@6 eb2@3 d2 eb2 ~ eb2@4 f2@2]/2",
  B: "[g2@3 ~ g2@4 f2 ~ f2@3 ~ eb2@6 eb2@3 c2 f2 ~ f2@2 d2@2 f2@2]/2",
  C: "[g1@3 ~ g1@3 c2 f2 ~ f2@3 ~ eb2@6 eb2@3 bb1 eb2 ~ eb2@4 f2 g2]/2", D: "c2@3 ~ c2@2 ~ g1 c2 ~ c2@6",
  E: "[f1@2 ~ f1@27 ~@2]/2", F: "g2 c2", G: "eb2@4 ~@2 bb1@4 bb1@2 g2 f2 d2 c2", H: "f2@4 ~@2 bb1@5 ~ bb1 bb2 ~ d2",
  I: "g2@4 ~@2 eb2@4 eb2@4 bb1!2", J: "bb1@4 ~@2 f1!2 ~@2 g3 f3 c3 d3 f3 d2", K: "eb2@4 ~@2 bb1@3 ~ bb1@4 bb1@2",
  L: "f1@5 ~ g1@7 ~ f2@2", M: "eb2@5 ~ g1@4 g1@4 g1!2", N: "c2@5 ~ f1@6 f1@4", O: "bb1@2 bb1@2 f2 f2@2 eb2",
  P: "eb2@2 eb2@3 eb2@2 f1", Q: "eb2@2 eb2 eb2@2 eb2@2 f1", R: "g1@2 g1@2 c2 f2@2 eb2", S: "eb2@2 eb2@3 eb2@2 eb2",
  T: "eb2@10 eb1 ~@5", U: "eb2@5 ~ bb1@4 bb1@2 ~ f2 bb1 g1", V: "f1@5 ~ bb1@4 ~@2 bb1@2 ~ d2",
  W: "g1@5 ~ eb1@3 ~ eb1@3 ~ bb1!2", X: "bb1@3 c2@3 f2@4 g3 f3 c3 d3 f3 d2", Y: "eb1@5 ~ bb1@3 ~ bb1@4 bb1@2",
  Z: "f1@5 ~ g1@7 ~ f1@2", AA: "eb1@4 ~@2 g1@4 g1@4 g1!2", AB: "c2@5 ~ f2@3 c3 g3 f2 f3 c3 d3 f3",
  AC: "eb2@3 ~ eb2@6 eb2@4 f1@2", AD: "eb2@2 eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2@2 g1 d2",
  AE: "[bb3 a3 f3 c3@2 f3 c3@2 f2 ~@3 c3@2 ~@2 eb2@4 eb2@3 eb2@3 eb2@5 d2, ~@5 f2@2 bb2@9]/2",
  AF: "g2@3 ~ g2@3 f2!2 ~ f2@4 f2@2", AG: "eb2@3 d2 d2@2 c2 c2@2 bb1 bb1@2 g1@2 f1@2",
  AH: "bb1@4 bb1@2 c2@2 f2 ~ f2@3 ~ f2 g2", AI: "c2@4 c3@3 bb2 c3 bb2 g2@2 ~ bb2 g2 bb1",
  AJ: "[eb2@3 ~ eb2@3 ~ eb2 ~ d2 ~ db2 ~ c2@9 ~@9]/2",
  AK: "[g1@3 ~ g1@2 bb1 c2 f2 ~ f2@3 ~ eb2@6 eb2@2 eb2 d2 eb2 ~ eb2@4 f1@2]/2",
  AL: "[g1@3 ~ g1@2 bb1 c2 f2 ~ f2@3 ~ eb2@4 eb2@2 bb2@2 eb2 ~ f2 c2 f2@4 d2 f2]/2",
  AM: "[g1@3 ~ g1@2 bb1 c2 f2 ~ f2@3 ~ eb2@6 eb2@3 eb2 f2 g2 bb2 g2 bb2 g2 f2 eb2]/2",
  AN: "c2@3 ~ c2@2 ~ f1!2 ~ f1@5 ~", AO: "[g1@3 ~ g1@2 bb1 c2 f2 ~ f2@3 ~ eb2@6 eb2@2 eb2 d2 eb2 ~ eb2@2 eb2@2 f1@2]/2",
  AP: "[g1@3 ~ g1@2 bb1 c2 f2 ~ f2@3 ~ eb2@4 eb2@3 bb2 eb2@2 f2 c3 f2@3 f1 d2 f2]/2",
  AQ: "g1@3 ~ g1@2 bb1 c2 f2 ~ f2@3 ~ eb2@2", AR: "~@2 eb2 ~ eb2@2 ~ eb2 ~ eb2 eb2@2 g2@2 bb2@2",
  AS: "[c2@3 ~ c2@2 bb1 g1 c2 ~ c2@3 ~ f1@17 ~]/2",
})).s("gm_electric_bass_finger").gain(0.72)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  A@2 B@2 C@2 D E@2 F@6 G@2 H I J K L M N O P@2 Q R S T U V F@6 G@2 H I J K L M N O P@2 Q R S T U W X@2 Y@2 Z@2 AA@2 A@2
  AB@2 AC@2 AD AE@2 AF@2 AG@2 AH@2 F@2 AI@4
>`.pickRestart({
  A: "[[g3,d4]@2 g3@2 d4@2 g3@2 [a3,f4] ~ [a3,f4]@4 bb3@3 ~ bb3@2 bb3 ~ bb3@2 [bb3,eb4] ~ [bb3,eb4]@4 [g3,d4]@2, ~@4 g3 ~@9 eb4@9 ~@9]/2", // G5 Dm Eb5 G5
  B: "[[g3,d4]@3 ~ d4@2 g3 ~ [a3,f4] ~ [a3,f4]@4 bb3@2 bb3 ~ bb3@2 [bb3,eb4]@2 bb3 eb4 a3@2 bb3@2 ~@2 f3@2, ~@4 g3 ~@9 eb4@5 ~@9 a3@4]/2", // G5 Dm Eb5
  C: "[[g3,d4]@3 ~ [g3,d4]@4 [a3,f4] ~ f4@4 ~@2 bb3@4 [bb3,eb4]@4 [bb3,eb4] ~ [bb3,eb4]@4 [bb3,d4]@2, ~@5 a3@3 ~@8, ~@14 eb4@5 ~@13]/2", // G5 Dm Eb5 Bb
  D: "g3 ~@3 c4@3 ~ g3@2 ~@2 c4@4, c4 ~ c4 ~, ~@2 g3@5 ~@3 g3@6", E: "[[f3,f4]@3 [f3,f4]@28 ~]/2",
  F: "[~@22 [f2,c3]@3 ~@7, g2@3 [f2,c3]@5 g2@3 ~@5, ~ d3@2 ~@3 a3@2 ~@2 f3@2 ~@4, ~@2 f3@3 bb3@3 ~@8, ~@7 f3@2 d3@2 ~@5]/2", // F5
  G: "[~@18 d3 [f3,bb3]@5 ~@3 c4@2 c4@2 ~, g2@6 [f2,c3]@10 g2@8 c3@7 ~, ~ d3@2 ~@3 a3@2 ~@5 g3@3, ~@2 f3@3 bb3@3 ~@8, ~@7 f3@2 ~@7]/2", // Bb5 F5
  H: "[bb3,d4]@3 [bb3,c4]@5", I: "~@2 bb3@2 ~@2 f3@5 ~@3 f4@2, f4@3 ~@3 c4 ~, ~@4 a3@7 bb2@2 d4@3",
  J: "bb3@3 c4@3 ~@3 bb3@7, f4@9 ~@7, ~@6 d4@9 ~", K: "[bb3,d4]@6 [f3,c4]@9 ~", L: "[g3,d4]@6 [g3,c4]@3 [f3,bb3]@6 ~",
  M: "~@6 f4@3 ~ f4@2 d3 [g3,f4]@2 eb3, c4@3 ~@5, ~@3 bb3@6 g3@3 ~@4", N: "[g3,d4]@3 [g3,c4]@5",
  O: "[g3,c4]@4 g3@2 [f3,c4]@6 [f3,c4] [f3,c4]@2 [f3,c4]", // C5 F5
  P: "[[f3,bb3]@4 [f3,bb3]@3 ~ [f3,c4] ~ [f3,c4]@3 ~ [eb3,bb3]@5 ~ [eb3,bb3]@3 [eb3,bb3] ~ [eb3,bb3] ~@2 [eb3,bb3]@3 ~]/2", // Bb5 F5 Eb5
  Q: "[f3,bb3]@3 ~ [f3,bb3]@4 [f3,c4] ~ [f3,c4]@4 ~@2", R: "[eb3,bb3]@3 ~ [eb3,bb3]@5 [eb3,bb3]@2 ~ [eb3,bb3]@4",
  S: "[g3,bb3]@3 ~ [g3,bb3]@4 [f3,a3] ~ [f3,a3]@4 [eb3,bb3]@2", T: "[eb3,bb3]@4 [eb3,bb3]@5 [eb3,bb3]@3 [eb3,bb3]@4",
  U: "[bb3,d4]@3 ~ [bb3,d4]@3 ~ [a3,c4] ~ [a3,c4]@6", V: "[f3,bb3]@15 ~",
  W: "[eb3,bb3]@4 [eb3,bb3]@3 ~ [eb3,bb3] ~ [eb3,bb3]@2 [eb3,bb3] ~ [eb3,bb3]@2", // Eb5
  X: "[g3@3 ~ [g2,g3]@3 ~ [f2,f3] ~ [f2,f3]@3 ~ [eb2,eb3]@8 ~ [eb2,eb3] ~@2 [eb2,eb3]@4 [f2,f3]@2]/2", // G F Eb F
  Y: "[[g2,g3]@3 ~ g3@2 g2 ~ [f2,f3] ~ [f2,f3]@4 [eb2,eb3]@9 [eb2,eb3] ~@2 [eb2,eb3]@4 f2@2, ~@4 g2 ~@27]/2", // G F Eb
  Z: "[[bb2,f3]@3 ~ [bb2,f3]@3 ~ [c3,f3] ~ [c3,f3]@4 [c3,g3]@5 ~ [c3,g3]@3 [c3,g3] ~@2 [c3,g3]@4 [d3,a3]@2]/2", // Bb5 F5 C5 D5
  AA: "[[eb3,bb3]@7 ~ [eb3,bb3]@2 [d3,a3]@2 [db3,ab3]@2 [c3,g3]@17 ~]/2", // Eb5 D5 Db5 C5
  AB: "[[g3,d4]@3 ~ d4@2 g3 ~ [a3,f4] ~ [a3,f4]@4 bb3@2 bb3@2 bb3@2 [bb3,eb4]@2 bb3 ~ a3@2 bb3@2 ~@2 f3@2, ~@4 g3 ~@9 eb4@5 ~@9 a3@4]/2", // G5 Dm Eb5
  AC: "[[g3,d4]@3 ~ [g3,d4]@4 [a3,c4] ~ c4@4 ~@2 bb3@4 [bb3,eb4]@4 [bb3,eb4] ~ [bb3,eb4]@4 [bb3,d4]@2, ~@5 a3@3 ~@8, ~@14 eb4@5 ~@13]/2", // G5 Am Eb5 Bb
  AD: "g3 ~@3 c4@3 f3 [f3,c4] ~ [f3,c4]@4 ~ [g3,d4], c4 ~@3, ~@2 g3@5 ~@9", // F5 G5
  AE: "[g3@2 g3@2 [g3,d4]@3 ~ [f3,a3] ~ [f3,a3]@4 g3@4 g3@2 [eb3,g3]@3 eb3 g3 ~ g3@4 [f3,a3]@2, d4@4 ~@10 eb3@6 ~@5 eb3@5 ~@2]/2", // G5 F Eb F
  AF: "[[g3,bb3]@3 ~ [g3,bb3]@4 [f3,a3] ~ [f3,a3]@4 g3@6 g3@3 eb3 g3 eb3 a3@5 ~, ~@14 eb3@9 ~@9]/2", // Gm F
  AG: "[[g3,bb3]@3 ~ [g3,bb3]@3 ~ [f3,a3] ~ [f3,a3]@4 [eb3,g3]@9 eb3 g3 ~ g3@4 c3 [c3,g3], ~@25 eb3@6 ~]/2", // Gm F Eb C5
  AH: "[[c3,g3]@4 [c3,g3]@3 c3 [c3,g3] ~ [c3,g3]@4 [f2,c3,f3]@16 ~@2]/2", // C5 F5
  AI: "[~@25 d3@29 ~@10, g2@6 [f2,c3]@11 g2@38 ~@9, ~@2 d3@4 ~@6 a3@5 ~@3 d3@5 ~@39, ~@4 f3@6 bb3@7 ~@47, ~@15 f3@7 f3@32 ~@10]/4", // F5
})).s("gm_electric_guitar_clean").gain(0.39).pan(0.6)

// chords · guitar harmonics
const guitar_harmonics = note(`<
  A B C@2 D E F@3 ~@8 G H@2 I J K@2 L M N O P Q R S T ~@8 G U V W@2 X@2 L M N O P Q R Y Z AA@4 AB@4 A B C@2 AC AD AE AF
  AG@2 AH AI AJ AK@2 ~@6
>`.pickRestart({
  A: "[a4,bb4] a4 g4 f4 g4 f4 d4 c4", B: "~ d4 bb3@12 bb3@2", C: "[bb4@2 a4@2 g4@2 f4@2 g4@2 f4@4 f4@17 ~]/2",
  D: "bb4 a4 g4 f4 g4 f4 d4 c4", E: "~ d4 bb3@9 ~ d4@3 [bb3,c4]", F: "[c4@15 ~]/3", G: "~@3 bb3@5",
  H: "[f3@3 a3@3 f3@5 ~ c4 ~ f4@7 ~ bb3@10, ~@11 bb2@2 d4@3 ~@16]/2",
  I: "[bb2,f3]@6 [f3,c4]@5 ~ [bb3,f4,bb4] [f4,bb4] [bb3,f4,bb4]!2", J: "[bb3,f4,bb4]@15 ~",
  K: "[[f3,bb4]@6 g3@3 ~ f4@3 ~ c4 ~@10 f4@3 d4@4, ~@13 f4@2 d4@6 ~ g3@6 ~@4, ~@2 bb3 ~]/2", // Bb5
  L: "[c3,g3,c4]@3 [c4,f4]@4 ~, ~@3 f3@5", M: "[f3,bb3]@4 [f3,d4]@4 ~ d4 [f3,c4]@4 bb3@2, ~@4 [f3,eb4] ~@3",
  N: "eb3@9 ~ eb3@4 f3@2, bb3", O: "[f3,d4]@4 [f3,d4]@4 [f3,eb4] d4 [f3,c4]@4 bb3@2",
  P: "bb3@2 bb3@3 [eb3,bb3]@2 c4, eb3@9 ~@7", Q: "[g3,d4]@4 [g3,d4]@4 ~ d4 [f3,c4]@4 bb3@2, ~@4 eb4 ~@3",
  R: "[eb3,bb3]@4 [eb3,bb3]@5 bb3@3 bb3@2 c4@2", S: "[g3,d4]@4 [g3,d4]@4 [f3,eb4] d4 [f3,c4]@4 ~@2",
  T: "eb3@13 ~@3, bb3@11 ~@5", U: "f3@3 a3@3 f3@4 [bb4,d5] [c5,eb5] [d5,f5] [c5,eb5] ~ g4, ~@7 [bb4,d5]",
  V: "[bb4,d5]@15 ~", W: "[bb2@3 bb2@2 ~ c4@2 eb4 ~ bb3 bb2@2 d4 ~@2 bb3@6 bb3@9 ~, f3@6 f3@3 d4@3 ~@2 f4@17 ~]/2",
  X: "[[f3,bb4]@6 g3@2 [c5,f5] [d5,f5] ~ d5 c5 bb4 ~@11 f4@3 d4@4, ~@5 [d5,f5] ~ g4@4 g3@3 ~@2, ~@2 bb3 ~]/2", // Bb5 F5 Dm
  Y: "[g3,d4]@4 [g3,d4]@4 [f3,eb4] d4 f3@4 ~@2, ~@5 c4 ~@2", Z: "[eb3,bb3]@15 ~",
  AA: "[[g4,g5]@6 ~@2 [a4,a5]@6 [bb4,bb5]@17 ~]/2", AB: "[[bb4,bb5]@7 ~ [a4,a5]@6 [g4,g5]@45 ~@5]/4",
  AC: "g4 d4 g3 f4 d4 g3 e4 c4 a3 g4 d4 c4 a4 f4 c5 bb4", AD: "f4 c4 c5 c4 d5@2 ~ d5@5 d5@3 [bb4,c5], ~@3 f5@3 ~@2",
  AE: "c5@8 a4 g4@7", AF: "~@2 f4@2 f4@2 bb3 c4 f4 g4 d4 g3 [f4,bb4]@2 g4@2",
  AG: "[~@2 bb4!2 f4 g4@2 f4 eb5 [eb5,f5] d5 c5 ~ g4 bb4 g4@2 ~ g4@2 [g4,bb4] [g4,c5] bb4 [g4,a4] [d4,f4] [c4,a4] [f4,g4] [c4,d4] bb3 c4 c4@2, ~ g3@3 ~@8 bb4@2 ~@18]/2", // Ebsus2 Gm C5 Gsus2 Dm F Fsus2 Csus2
  AH: "[c4,db4] bb3 g3 bb3 g3@2 bb3 g3 ~@2 g4@3 ~ f4 g4, ~@8 a3@5 ~@3", // Dbmaj7
  AI: "[g3,g4] [a3,a4]@2 [a3,a4] [bb3,bb4]@2 [bb3,bb4] [c4,c5]@2 [c4,c5] [db4,db5]@2 [db4,db5] [d4,d5]@2 [db4,db5]", // G A Bb C Db D Db
  AJ: "[d4,d5]@3 [d4,d5]@2 [f4,db5] d5 [d4,d5]!5 d5@3 c5, ~@12 c5 ~@3", // D Db D
  AK: "[c5@4 c5@3 c5 d5 [bb4,c5] g4@4 c5@17 ~, bb4 ~@31]/2", // Bbsus2
})).s("gm_guitar_harmonics").gain(0.28).pan(0.3)

// chords · guitar harmonics · soft notes
const guitar_harmonics_soft = note(`<
  ~@17 A ~@4 B C ~ D ~ D E F G H ~@9 A ~@2 I ~ J C ~ D ~ D E F G H ~@7 K@2 ~@12 L ~@8
>`.pickRestart({
  A: "eb3@3 ~@5", B: "~@6 g4@3 ~@7", C: "~@3 g3", D: "~@7 eb3", E: "~@7 f3", F: "~@4 f3 ~@2 eb3", G: "~@5 eb3@3",
  H: "~@7 [eb3,bb3]", I: "~@12 c4 ~@3", J: "~@3 g4 ~@4", K: "[~@14 d5@13 ~@5]/2", L: "~@6 d4 ~@9",
})).s("gm_guitar_harmonics").gain(0.17).pan(0.3)

// chords · distortion guitar
const distortion_guitar = note(`<
  A@2 B@2 C@2 D E@2 F G F G F G H I J@3 K L@2 M N O P Q R S T S U F G F G F G H I J@3 K V@2 M N O P Q R S T S W X@2 Y@2
  Z@2 AA@2 AB@2 AC@2 AD@2 AE AF@2 AG@2 AH@2 AI@2 F G AJ@4
>`.pickRestart({
  A: "[[g2,d3,g3]@4 [g2,d3,g3]@3 ~ [f2,c3,f3] ~ [f2,c3,f3]@4 [bb2,eb3]@6 [bb2,eb3]@3 ~@3 [eb2,eb3]@4 [f2,c3,f3]@2, ~@14 eb2@9 bb2@2 bb2@5 ~@2, ~@12 [eb2,eb3] ~@3]/2", // G5 F5 Eb5 Eb F5 Eb
  B: "[[g2,d3,g3]@4 [g2,d3,g3]@4 [f2,c3,f3] ~ [f2,f3]@4 [eb2,eb3]@9 bb2 [f2,c3,a3] ~ [f2,bb3]@2 a3@2 [f2,f3]@2, ~@10 c3 ~@3 bb2@8 ~@4 c3@6]/2", // G5 F5 F Eb F Bb5 F
  C: "[[g2,d3,g3]@4 [g2,d3,g3]@4 [f2,c3,f3] ~ [f2,c3,f3]@4 eb3@6 eb3@3 bb2 [eb2,eb3] ~ eb3@6, ~@14 [eb2,bb2]@9 ~@2 bb2@7, ~@13 eb2@2 ~]/2", // G5 F5 Eb Eb5
  D: "[c3,g3]@7 [c3,g3]@2 ~@3 c3@4, c2@9 c3@2 ~@5, ~@5 [c2,g3]@3", E: "[[f2,c3,f3]@3 [f2,c3,f3]@27 ~@2]/2",
  F: "~@2 f3 ~@2 bb3 a3 f3, g2@3 f2@4 ~, ~ d3@2 c3@5", G: "~@2 f3 [f2,c3] ~@4, g2@5 ~@11, ~ d3@2 ~@5",
  H: "~@2 f3 ~@2 bb3 a3 f3, g2@3 [f2,c3]@5, ~ d3@2 ~@5", I: "~@2 f3 bb3@5 ~@3 c4@2 c4@3, g2@8 c3@7 ~, ~@5 g3@3",
  J: "[[bb3,f4]@6 f4@9 ~@3 bb3@2 a3@2 [f3,d4]@5 ~@5 bb3@3 c4@3 ~@3 bb3@7, ~@6 c4@12 ~@9 bb2@2 d4@2 g3@3 ~@4 d4@9 ~, ~@16 f4@6 ~@6 c4@2 f4@2 f4@9 ~@7]/3", // Bb5 Dm
  K: "[f3,bb3]@6 [f3,c4]@9 ~", // Bb5 F5
  L: "[[g3,d4]@6 c4@3 ~@13 f4@4 [c4,f4]!5 [d4,f4], ~@3 f3@5 f3@3 ~@5, ~@9 bb3@9 ~ bb3@6 ~@7]/2", // G5 F5 Dm
  M: "[bb3,d4]@6 c4@4 c4!6, ~@3 g3@5", N: "c3@3 c3@3 [f3,c4]@6 [f3,c4] [f3,c4]@2 [f3,c4], g3@5 ~@11",
  O: "[bb2,f3,bb3]@4 [bb2,f3,bb3]@3 ~ [f2,f3,c4]@2 [f2,c4]@2 [f2,c4]@2 [eb2,eb3,bb3]@2, ~@5 f3@2 ~", // Bb5 F5 Eb5
  P: "[eb3,bb3]@4 eb3@3 ~ eb3@2 [eb3,bb3]@4 [f3,bb3]@2, eb2@9 ~ eb2@6, ~@2 bb3@3 ~@3", // Eb5 Bb5
  Q: "[bb2,f3,bb3]@2 [bb2,f3,bb3]@2 [f2,f3,c4] f2 [f2,c4] [eb2,eb3,bb3], ~@5 f3@2 ~, ~@10 c4 ~@5", // Bb5 F5 Eb5
  R: "[eb3,bb3]@4 [eb3,bb3]@5 ~@3 eb3@4, eb2@15 ~, ~@9 eb3@2 ~@5, ~@5 bb3@3", // Eb5
  S: "[g2,d3,g3]@4 [g2,d3,g3]@4 [f2,f3,c4]@2 c4 ~ [f2,c4]@2 [eb2,eb3,bb3]@2, ~@5 f3@2 ~", // G5 F5 Eb5
  T: "[eb3,bb3]@4 bb3@4 eb3 ~ [eb3,bb3]@4 [f3,bb3]@2, eb2@9 ~@7, ~@4 eb3@3 ~@3 bb2@6", U: "[eb3,bb3]@5 ~@3, eb2@3 ~",
  V: "[[g3,d4]@6 c4@3 ~@13 f4@10, ~@3 f3@5 f3@3 ~@5, ~@9 bb3@9 ~ bb3@11 ~@2]/2", // G5
  W: "[eb2,eb3,g3] ~ [eb2,eb3,g3] ~ [eb2,eb3,g3] ~ [eb2,eb3,g3] ~ [eb2,eb3,g3] ~ [eb2,eb3,g3] ~ [eb2,eb3,g3] ~ [eb2,eb3,g3] ~", // Eb
  X: "[d4@3 ~ d4@4 [f2,f3,c4] ~ [f2,f3,c4]@4 bb3@3 ~ bb3 ~ bb3@2 ~ bb3 ~ bb3 bb3@4 [f2,c4]@2, [g2,g3]@4 ~@3 eb2@8 ~, ~@14 eb3@11 eb3@6 ~]/2", // F5 G
  Y: "[[g2,g3,d4]@4 [g2,g3,d4]@4 [f2,c4] ~ [f2,c4]@4 bb3@4 bb3@2 bb3@2 ~ bb3 ~ [eb2,bb3] eb2!2 ~@2 bb3@2, ~@8 f3@6 eb3@17 ~, ~@14 eb2@11 ~ bb3@3 eb2@3]/2", // G5 F5 Eb5
  Z: "[[bb2,bb3,f4]@7 ~ f2 ~ f2@4 [c3,g3,c4]@17 ~, ~@8 [f3,c4]@5 ~@19]/2", // Bb5 C5 F5
  AA: "[[bb3,eb4]@4 [bb3,eb4]@3 ~ [eb3,bb3,eb4]@2 [d3,a3,d4] ~ [db3,ab3,db4]@2 [c3,g3,c4]@9 ~@9, eb3 ~@3]/2", // Eb5 D5 Db5 C5
  AB: "[[d3,g3,d4]@4 [d3,g3,d4]@3 ~ [c3,f3,c4] ~ [c3,f3,c4]@4 [bb2,eb3,bb3]@6 [bb2,eb3]@3 ~@3 [c4,d4] ~ bb3@2 [c3,f3,c4] [f3,c4], ~@10 bb3@3 ~@3, ~@23 bb2@2 bb2@5 ~@2, ~@12 eb3 eb3@2 ~]/2", // G5 F5 Eb5 Csus2 F5
  AC: "[[d3,g3,d4]@4 [d3,g3,d4]@4 [c3,f3,c4] ~ [f3,c4]@4 [eb3,bb3]@9 bb2 [c3,a3,c4] ~ [bb3,c4]@2 a3@2 [f3,c4]@2, ~@10 c3 ~@3 d4@8 ~@4 c3@6]/2", // G5 F5 Eb5 F Bbsus2 F5
  AD: "[[d3,g3,d4]@3 ~ [d3,g3,d4]@2 ~ [c3,f3,c4]!2 ~ [c3,f3,c4]@4 eb3@6 eb3@3 bb2 ~@2 [eb3,bb3]@2 [eb3,bb3]@2 [eb3,bb3]@2, ~@14 [bb2,bb3]@9 ~ [eb3,bb3]@2 ~@6, ~@25 bb2@7]/2", // G5 F5 Eb5 Bb Eb5
  AE: "[c3,g3,c4]@4 c3@2 f2!2 [f2,c4,f4] ~ [f2,f3,c4,f4]@4 [g2,g3,d4]@2, ~ [g3,c4] ~@2", // C5 F5 G5 C5
  AF: "[[g3,d4,g4]@4 [g3,d4,g4]@3 [f3,c4,f4]!2 ~ [f3,c4,f4]@2 [f3,c4,bb4] ~ [eb3,bb3,eb4]@4 [eb3,bb3,eb4]!2 [eb3,bb3,eb4]@3 [eb3,bb3,eb4] [eb3,bb3] ~ eb3@2 eb3@2 [f3,c4,f4]@2, ~@13 [bb3,eb4]@2 ~]/2", // G5 F5 Fsus4 Eb5 F5 Eb5
  AG: "[[g3,d4,g4]@4 [g3,d4,g4]@3 [c3,f3,c4] [f3,c4,f4] ~ [f3,c4,f4]@4 [eb3,bb3]@4 [g3,bb3]@5 bb2 [f3,a3,c4] ~ [f3,bb3,c4]@2 a3@2 [f3,c4]@2, ~@14 d4@9 ~@9]/2", // G5 F5 Eb5 Gm F Fsus4 F5
  AH: "[[g3,bb3,d4]@3 ~ [g3,bb3,d4]@2 ~ [f3,c4,f4]!2 ~ [f3,c4,f4]@4 eb3@6 eb3@2 eb3 ~ bb3@2 [eb3,bb3]@2 [eb3,bb3] ~ [c3,g3,c4]!2, ~@14 [bb3,eb4]@9 ~ eb4@5 ~@3, ~@24 eb3 ~@7]/2", // Gm F5 Eb5 C5 Eb5
  AI: "[[c3,g3,c4]@4 [c3,g3,c4]@2 [c3,g3,c4]!3 ~ [c3,g3,c4]@4 [f2,f3,f4]@17 ~]/2", // C5 F
  AJ: "[~@4 f3@2 ~@4 bb3@2 a3@3 ~@10 d3@28 ~@11, g2@6 f2@8 ~ f3@5 d3@5 ~@39, ~@2 d3@4 c3@11 g2@37 ~@10, ~@22 f3@29 ~@13]/4",
})).s("gm_distortion_guitar").gain(0.37).pan(0.6)
// … 104 more lines

More by Raf