Strudelify
KeyE majorTempo119 bpm
0:00/0:00
// When — Shania Twain
// 119 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 105 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(119/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(`<
  ~@2 A B@2 C@2 ~@14 D@2 E F G H I J K L K M@4 N O P Q P R ~@14 S T S T S T U S T S T S T V W@6 X@2 Y@2 ~@6 Z AA AB@4
  AC@2 AD AE AF AG AH AI AJ AK AL AK AM
>`.pickRestart({
  A: "~@13 [b3,e4,g#4]@4 [b3,e4,g#4]@4 [b3,e4,g#4]@2 ~@2 [b3,e4,g#4]@7", // E
  B: "[~@4 [g#4,b4] e5 [g#4,b4,e5] ~ [g#4,b4,e5] ~ [g#4,b4,e5] ~ [g#4,b4,e5]@30 ~@2 [b3,e4,g#4]@4 [b3,e4,g#4]@4 [b3,e4,g#4]@2 ~@2 [b3,e4,g#4]@7 ~]/2", // G#m E
  C: "[~@3 [g#4,b4] e5 [g#4,b4,e5] ~ [g#4,b4,e5] ~ e5 [g#4,b4] [g#4,b4,e5]@30 ~@2 [b3,e4,g#4]@4 [b3,e4,g#4]@4 [b3,e4,g#4]@2 ~@2 [b3,e4,g#4]@7 ~@2]/2", // G#m E G#m E
  D: "[~@7 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@2 ~@2 g#4@3 ~@5 [b3,g#4,b4]@3 ~@5 [b3,g#4]@3 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2, ~@38 [b3,e4,b4]@3 ~@5 e4@3 ~@5 [e4,b4]@2 ~@8]/2", // E E5
  E: "~@2 [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2", // E
  F: "~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2", // E
  G: "~@2 [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 g#4@2, ~@29 [b3,e4,b4]@3", // E E5
  H: "~@2 [b3,e4,g#4,b4]@2 ~@2 g#4@3 ~@4 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3, ~@5 [b3,e4,b4]@3 ~@24", // E E5
  I: "~ [b3,e4,g#4,b4]@3 ~ [b3,d#4,f#4,b4]@3 ~@5 [b3,d#4,f#4,b4]@4 ~@4 [b3,d#4,f#4,b4]@3 ~ [b3,d#4,f#4,b4]@2 ~@2 [b3,d#4,f#4,b4]@2 ~", // E B
  J: "~ [b3,d#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@3 ~@5 g#4@2 ~ [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~, ~@10 [b3,e4,b4] ~@5", // B E E5
  K: "[b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~", // E
  L: "[b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~", // E
  M: "[[b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 g#4@2 ~ [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@3 ~ [b3,d#4,f#4,b4]@3 ~@5 [b3,d#4,f#4,b4]@4 ~@4 [b3,d#4,f#4,b4]@3 ~ [b3,d#4,f#4,b4]@2 ~@2 [b3,d#4,f#4,b4]@2 ~@2 [b3,d#4,b4]@2 ~@2 [b3,e4,g#4]@3 ~@5 [b3,e4,g#4]@3 ~ b4@3 ~ [b3,e4,g#4]@3 ~@5 [b3,e4]@3 ~@2, ~@27 [b3,e4,b4]@3 ~@85 b4@4 g#4@9]/4", // E B E E5
  N: "~@3 [b3,e4,g#4]@3 ~@5 [b3,e4,g#4]@3 ~@5 [b3,e4,g#4]@3 ~@10", // E
  O: "~@2 [b3,e4,g#4]@4 ~ g#4@3 [b3,e4,g#4]@2 ~@3 [b3,e4,g#4]@7 ~@4 [g#4,b4,e5] ~ [g#4,b4,e5] ~ [g#4,b4,e5] ~, ~@3 [b3,e4]@2 ~@11", // E E5
  P: "[g#4,b4,e5] ~ [g#4,b4,e5]@30", // E
  Q: "~@2 [b3,e4,g#4]@4 [b3,e4,g#4]@4 [b3,e4,g#4]@2 ~@2 [b3,e4,g#4]@7 ~@5 [g#4,b4,e5] ~ [g#4,b4,e5] ~ [g#4,b4,e5] ~", // E
  R: "~@2 [b3,e4,g#4]@4 [b3,e4,g#4]@4 [b3,e4,g#4]@2 ~@2 [b3,e4,g#4]@7 ~@11", // E
  S: "[b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@2 ~@2", // E
  T: "[b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@3 ~", // E
  U: "[b3,d#4,f#4,b4]@3 ~@5 [b3,d#4,f#4,b4]@4 ~@4 [b3,d#4,f#4,b4]@3 ~ [b3,d#4,f#4,b4]@2 ~@2 [b3,d#4,f#4,b4]@2 ~@2 [b3,d#4,b4]@2 ~@2", // B
  V: "[b3,d#4,f#4,b4]@3 ~@4 [b3,d#4,f#4,b4]@4 ~@5 [b3,d#4,f#4,b4]@3 ~ [b3,d#4,f#4,b4]@2 ~@2 [b3,d#4,f#4,b4]@2 ~@2 [b3,d#4,b4]@2 ~@2", // B
  W: "[[b3,e4,g#4]@3 ~@4 [b3,e4,g#4]@3 ~ b4@3 ~ [b3,e4,g#4]@3 ~@5 [b3,e4]@3 ~@5 [b3,e4,g#4]@3 ~@5 [b3,e4,g#4]@3 ~@5 [b3,e4,g#4]@3 ~@13 [b3,e4,g#4]@4 [b3,e4,g#4]@4 [b3,e4,g#4]@2 ~@2 [b3,e4,g#4]@7 ~@4 [g#4,b4,e5] ~ [g#4,b4,e5] ~ [g#4,b4,e5] ~ [g#4,b4,e5] ~ [g#4,b4,e5]@30 ~@2 [b3,e4,g#4]@4 [b3,e4,g#4]@4 [b3,e4,g#4]@2 ~@2 [b3,e4,g#4]@7 ~@5 [g#4,b4,e5] ~ [g#4,b4,e5] ~ [g#4,b4,e5] ~ [g#4,b4,e5] ~ [g#4,b4,e5]@30 ~ [b3,e4,g#4]@3, ~@15 b4@4 g#4@11 ~@162]/6", // E E5 E
  X: "[~ [b3,e4,g#4]@4 [b3,e4,g#4]@2 ~@2 [b3,e4,g#4]@7 ~@5 [g#4,b4,e5] ~ [g#4,b4,e5] ~ [g#4,b4,e5] ~ [g#4,b4,e5] ~ [g#4,b4,e5]@30 ~ [b3,e4,g#4]@4]/2", // E
  Y: "[[b3,e4,g#4]@4 [b3,e4,g#4]@2 ~@2 [b3,e4,g#4]@7 ~@5 [g#4,b4,e5] ~ [g#4,b4,e5] ~ [g#4,b4,e5] ~ [g#4,b4,e5] ~ [g#4,b4,e5]@30 ~@6]/2", // E
  Z: "~@25 [b3,e4,g#4,b4]@3 ~@4", // E
  AA: "[b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~@5", // E
  AB: "[[b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,g#4,b4]@2 ~ [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@3 ~@2 [b3,e4,b4]@3 ~@4 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 g#4@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 g#4@3 ~@4 [b3,e4,g#4,b4]@2, ~@11 e4@2 ~@10 g#4@3 ~@84 [b3,e4,b4]@3 ~@5 [b3,e4,b4]@3 ~@7]/4", // E E5 E E5
  AC: "[~@6 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@3 ~ [b3,d#4,f#4,b4]@3 ~@5 [b3,d#4,f#4,b4]@4 ~@4 [b3,d#4,f#4,b4]@3 ~ [b3,d#4,f#4,b4]@2 ~@2 [b3,d#4,f#4,b4]@2 ~@2 [b3,d#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2]/2", // E B E
  AD: "~@6 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@2", // E
  AE: "~@6 [b3,e4,g#4,b4]@2 ~@2 [b3,g#4,b4]@2 ~ [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@3 ~@2 [b3,e4,g#4,b4]@3 ~@4 [b3,e4,g#4,b4]@3, ~@9 e4@2 ~@21", // E
  AF: "~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@3", // E
  AG: "~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@3 ~@5 [b3,e4,g#4,b4]@3", // E
  AH: "~@5 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~@5 [b3,g#4,b4]@3, ~@28 e4@3 ~", // E
  AI: "~@5 [b3,e4,g#4,b4]@2 ~ [b3,e4,g#4,b4]@2 ~@2 [b3,e4,g#4,b4]@3 ~ [b3,e4,g#4,b4]@3 ~@2 [d#4,f#4]@3 ~@4 [b3,d#4,f#4,b4]@4, ~@20 [b3,b4]@3 ~@9", // E D#m B
  AJ: "~@4 [b3,d#4,f#4,b4]@3 ~@2 [b3,d#4,f#4,b4]@2 ~ [b3,d#4,f#4,b4]@2 ~@3 [b3,d#4,b4]@2 ~ [b3,e4,g#4]@3 ~@6 [b3,e4,g#4]@3", // B E
  AK: "~ b4@3 ~ [b3,e4,g#4]@3 ~@5 [b3,e4]@3 ~@5 [b3,e4,g#4]@3 ~@5 [b3,e4,g#4]@3, ~@5 b4@4 g#4@11 ~@12", // E E5 E
  AL: "~@5 [b3,e4,g#4]@3 ~@13 [b3,e4,g#4]@3 ~@5 [b3,e4,g#4]@3", AM: "~@6 [b3,e4,g#4]@3 ~@23",
})).s("gm_acoustic_guitar_steel").gain(0.07).pan(0.3)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@14 A B@2 C D@3 E@7 F@7 G H ~@12 I J K L M N O P@2 Q@2 R@2 S P@2 Q@2 R@2 S T@2 ~@7 U@7 V@7 W@7 X@5
>`.pickRestart({
  A: "~@2 d#3@3 e3@3", B: "[f#3@7 ~ d#3@11 ~ e3@18 ~@2 d#3@12 e3@11 ~]/2", C: "f#3@7 d#3@11 ~ e3@13",
  D: "[~@7 [f#2,c#3]@32 [b2,f#3]@30 ~@2 [b2,f#3,b3]@8 [b2,f#3,b3]@4 [b2,f#3,b3]@3 ~ [b2,f#3,b3]@4 [b2,f#3,b3]@4 [b2,f#3,b3]]/3", // F#5 B5
  E: "[~@3 [b2,f#3,b3]@4 [e2,b2,e3]@63 ~ [e3,g#3,e4]@62 ~ [e3,a3,e4]@62 ~ [b2,f#3,b3]@27]/7", // B5 E5 E A5 B5
  F: "[~@5 [e2,b2,e3]@62 ~ [e3,g#3,e4]@62 ~@2 [e3,a3,e4]@62 ~ [b2,f#3,b3]@29]/7", G: "~@3 [e3,b3,e4]@29",
  H: "~@3 [e3,b3,e4]@7 ~ [e3,b3,e4]@6 ~@2 [e3,b3,e4]@8 ~@5", I: "~ d#3@6 e3@6 f#3@3", J: "~@2 d#3@11 e3@18 ~",
  K: "~ d#3@12 e3@11 ~ f#3@7", L: "~ d#3@11 ~ e3@18 ~", M: "~ [f#2,c#3]@31", N: "~ [b2,f#3]@30 ~",
  O: "[b2,f#3,b3]@31 ~", P: "[[e2,b2,e3]@63 ~]/2", Q: "[~ e3@62 ~, [g#3,e4]@31 ~]/2", R: "[[e3,a3,e4]@31 ~]/2",
  S: "[b2,f#3,b3]@15 ~", T: "[[e3,b3,e4]@30 ~ [e3,b3,e4]@7 ~ [e3,b3,e4]@6 ~@2 [e3,b3,e4]@8 ~@9]/2",
  U: "[~@28 d#3@11 e3@12 f#3@7 ~ d#3@11 ~ e3@18 ~@2 d#3@12 e3@11 ~ f#3@7 d#3@11 ~ e3@18 ~@2 [f#2,c#3]@32 [b2,f#3]@30 ~ [b2,f#3,b3]@7]/7", // F#5 B5
  V: "[~ [b2,f#3,b3]@4 [b2,f#3,b3]@3 ~ [b2,f#3,b3]@4 [b2,f#3,b3]@4 [b2,f#3,b3]@3 [b2,f#3,b3]@4 ~ [e2,b2,e3]@62 ~ [e3,g#3,e4]@62 ~ [e3,a3,e4]@62 ~ [b2,f#3,b3]@10]/7", // B5 E5 E A5 B5
  W: "[~@22 [e2,b2,e3]@63 ~ [e3,g#3,e4]@62 ~ [e3,a3,e4]@62 ~ [b2,f#3,b3]@12]/7", // E5 E A5 B5
  X: "[~@20 [e3,b3,e4]@64 ~ [e3,b3,e4]@30 ~@2 [e3,b3,e4]@7 ~ [e3,b3,e4]@6 ~@3 [e3,b3,e4]@8 ~@18]/5", // E5
})).s("gm_distortion_guitar").gain(0.13).pan(0.4)

// other · distortion guitar
const distortion_guitar_2 = note(`<
  ~@5 A B@2 ~@6 C D E@6 ~@18 F@3 ~@2 G ~ H ~ I J K L M N O ~@23 P Q@3 R S T@2 ~@18
>`.pickRestart({
  A: "~@15 f#2@7 ~ f#2@2 ~@2 f#2@5", B: "[~@3 f#2@4 e2@4 e2@48 ~@5]/2", C: "~@4 d#4 ~ d#4 ~ d#4 ~ e4 ~ e4 ~ e4 ~",
  D: "f#4 ~ f#4 ~ d#4 ~ d#4 ~ d#4 ~ e4 ~ e4 ~ e4 ~",
  E: "[e4@2 ~@2 e4@2 ~@2 d#4@2 ~@2 d#4@2 ~@2 d#4@2 ~@2 e4@2 ~@2 e4@2 ~@2 e4@2 ~ f#4@2 ~@3 f#4@2 ~ d#4@2 ~@2 d#4@2 ~@2 d#4@2 ~@2 e4@3 ~ e4@3 ~ e4@3 ~ e4@3 ~ e4@3 ~ d#4@2 ~@2 d#4@2 ~@2 d#4@2 ~@2 e4@2 ~@2 e4@2 ~@2 e4@2 ~@2 f#4@2 ~@2 f#4@2 ~@2 g#4@3 ~ g#4@3 ~ g#4@3 ~ f#4@2 ~@2 f#4@2 ~@2 f#4@3 ~ f#4@3 ~ f#4@3 ~ [b3,e4,f#4]@3 ~@3 [b3,e4,f#4]@2 [b3,d#4,f#4] ~@3 [b3,e4,f#4]@2 ~@2 [b3,e4,f#4]@2 [e4,f#4] ~ [b3,d#4]@2 ~@2 [b3,e4,f#4]@4 ~@29]/6", // Bsus4 B Bsus4 Esus2 B Bsus4
  F: "[~@14 f#2@2 ~@2 f#2@7 ~ f#2@4 e2@4 e2@49 ~@13]/3", G: "~@9 f#3@2 e3@3 ~@2",
  H: "~@6 e3@4 f#3@3 ~ d#3@4 f#3@4 e3@3 ~ e3@4 ~@2", I: "~ d#4 ~ d#4 ~ d#4 ~ e4 ~ e4 ~ e4 ~ f#4 ~ f#4",
  J: "~@2 d#4@2 ~@2 d#4@2 ~ d#4@2 ~@2 e4@2 ~@2 e4@2 ~@2 e4@2 ~@2 e4@2 ~@2 e4@2 ~",
  K: "~ d#4@2 ~@2 d#4@2 ~@2 d#4@2 ~@2 e4@2 ~@2 e4@2 ~@2 e4@2 ~@2 f#4@2 ~@2 f#4@2 ~",
  L: "~ d#4@2 ~@2 d#4@2 ~@2 d#4@2 ~@2 e4@3 ~ e4@3 ~ e4@3 ~ e4@3 ~ e4@3",
  M: "~ d#4@2 ~@2 d#4@2 ~@2 d#4@2 ~@2 e4@2 ~@2 e4@2 ~ e4@2 ~@2 f#4@2 ~@2 f#4@2 ~@2",
  N: "g#4@3 ~ g#4@3 ~ g#4@3 ~ f#4@2 ~@2 f#4@2 ~@2 f#4@2 ~@2 f#4@2 ~@2 f#4@2 ~@2",
  O: "[b3,e4,f#4]@3 ~@3 [b3,e4,f#4]@2 [b3,d#4,f#4] ~@3 [b3,e4,f#4]@2 ~@2 [b3,e4,f#4]@2 [e4,f#4] ~ [b3,d#4]@2 ~@2 [b3,e4,f#4]@4 ~@4", // Bsus4 B Bsus4 Esus2 B Bsus4
  P: "~@8 b3@3 ~ b3@4 a3@4 g#3@4 e3@4 d#4@2 ~@2",
  Q: "[d#4@2 ~@2 d#4@2 ~ e4@2 ~@2 e4@2 ~@2 e4@2 ~@2 f#4@2 ~@2 f#4@2 ~@2 d#4@2 ~@2 d#4@2 ~@2 d#4@2 ~@2 e4@2 ~@2 e4@2 ~@2 e4@2 ~@2 e4@2 ~@2 e4@2 ~@2 d#4@2 ~@2 d#4@2 ~@2 d#4@2 ~@2 e4@2 ~@2 e4@2 ~@2 e4@2 ~ f#4@2 ~@3 f#4@2 ~ d#4@2 ~@2 d#4@2]/3",
  R: "~@3 d#4@2 ~ e4@3 ~ e4@3 ~ e4@3 ~ e4@3 ~ e4@3 ~ d#4@2 ~@2 d#4@2",
  S: "~@2 d#4@2 ~@2 e4@2 ~@2 e4@2 ~@2 e4@2 ~@2 f#4@2 ~@2 f#4@2 ~ g#4@3 ~@2 g#4@2",
  T: "[~ g#4@3 ~ f#4@2 ~@2 f#4@2 ~@2 f#4@2 ~@2 f#4@2 ~@2 f#4@2 ~@2 [b3,e4,f#4]@3 ~@3 [b3,e4,f#4]@2 [b3,d#4,f#4] ~@3 [b3,e4,f#4]@2 ~@2 [b3,e4,f#4]@2 [e4,f#4] ~ [b3,d#4]@2 ~@2 [b3,e4,f#4]@4 ~@11]/2", // Bsus4 B Bsus4 Esus2 B Bsus4
})).s("gm_distortion_guitar").gain(0.16).pan(0.1)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@2 A@2 B@4 ~@13 C D E F E G H I J K L K M@4 N ~ O@2 P@2 Q R S ~@10 T U V W V X Y Z U V AA V X AB AC AD@8 AE ~@20 AF@5
>`.pickRestart({
  A: "[~@13 [b2,e3,b3]@10 ~@2 [b2,e3,b3] ~ [b2,e3,b3] ~ [b2,e3,b3]@14 ~@21]/2", // E5
  B: "[~@28 f#3@8 e3@8 a2@11 b2@2 ~@2 b2@4 c#3@4 b2@4 a2@3 ~ b2@44 ~@9]/4", C: "~@7 e4@4 ~@4 e4@4 ~@4 b3@4 e4@5",
  D: "~@3 e4@2 ~@2 e4@5 ~@3 f#4@4 ~@3 d#4@4 e4@4 ~@2", E: "~@6 e4@8 e4@4 e4@4 d#4@4 e4@3 ~@3",
  F: "~@2 e4@4 e4@3 ~@5 f#4@3 ~@5 d#4@4 e4@3 ~@3", G: "~@2 e4@4 e4@3 ~@4 f#4@3 ~@5 d#4@4 e4@3 ~@4",
  H: "~ e4@4 f#4@4 ~@4 g#4@4 ~@4 e4@5 ~@3 f#4@3", I: "~ d#4@3 ~ e4@4 ~@4 e4@4 ~@3 b3@4 e4@6 ~@2",
  J: "e4@2 ~@2 e4@5 ~@3 f#4@4 ~@4 d#4@4 e4@4 ~@4", K: "~@4 e4@8 e4@4 e4@4 d#4@4 e4@3 ~@5",
  L: "e4@4 e4@4 ~@4 f#4@3 ~@5 d#4@4 e4@3 ~@5",
  M: "[e4@3 e4@3 ~@5 f#4@3 ~@5 d#4@4 e4@3 ~@5 e4@4 f#4@4 ~@4 g#4@4 ~@4 e4@6 ~@2 f#4@4 d#4@3 ~ e4@4 ~@8 e4@4 b3@4 e4@3 ~@5 b3@4 e4@4 ~@4 e4@4 ~@4 e4@3 ~@10]/4",
  N: "~@2 [b2,e3,b3]@10 ~@2 [b2,e3,b3] ~ [b2,e3,b3] ~ [b2,e3,b3]@14", // E5
  O: "[~@9 f#3@4 e3@4 a2@6 b2 ~ b2@2 c#3@2 b2@2 a2]/2", P: "[~ b2@27 ~@4]/2",
  Q: "~@6 b3 ~ b3 ~ b3@4 b3 ~ b3 ~ a#3@4 b3@6 ~@2 b3 ~", R: "b3 ~@31", S: "~@22 [e3,b3]@5 ~@5",
  T: "e4@4 ~@4 e4@4 ~@4 b3@4 e4@6 ~@2 e4@3 ~", U: "e4@5 ~@3 f#4@4 ~@4 d#4@4 e4@4 ~@8",
  V: "e4@8 e4@4 e4@4 d#4@4 e4@3 ~@5 e4@4", W: "e4@3 ~@5 f#4@3 ~@5 d#4@4 e4@3 ~@9",
  X: "e4@4 ~@4 f#4@3 ~@5 d#4@4 e4@3 ~@5 e4@4", Y: "f#4@4 ~@4 g#4@4 ~@4 e4@6 ~@2 f#4@4 d#4@3 ~",
  Z: "e4@2 ~@2 e4@2 ~@2 b3@2 e4@3 ~ e4 ~", AA: "e4@4 ~@4 f#4@3 ~@5 d#4@4 e4@3 ~@9",
  AB: "f#4@4 ~@4 g#4@4 ~@4 e4@6 ~@2 f#4@3 d#4@3 ~@2", AC: "e4@4 ~@7 e4@4 b3@4 e4@3 ~@5 b3@4 e4",
  AD: "[~@7 e4@4 ~@4 e4@3 ~@13 [b2,e3]@31 a2@11 ~ b2@3 ~ b2@4 c#3@7 ~ g#2@4 [b2,e3]@32 a2@11 ~ b2@3 ~ b2@3 c#3@7 ~ g#2@4 [b2,e3]@32 a2@11 ~ b2@3 b2@4 c#3@7 ~ g#2@4 [b2,e3]@32 a2@4]/8", // E5
  AE: "~@8 b2@3 ~ b2@4 c#3@3 ~ c#3@5 ~@7", AF: "[~@20 [e3,b3]@64 ~ [e3,b3]@52 ~@23]/5",
})).s("gm_overdriven_guitar").gain(0.25).pan(0.1)

// chords · drawbar organ
const drawbar_organ = note(`<
  ~@20 A@2 B C@2 D E F G H@3 I J K L M ~@5 N ~ N ~ N ~ O ~@6 P Q@4 R@2 S Q@4 R@2 T U@2 V W X Y Z AA AB AC ~@5 AD AE AF
  AG AH AI AJ AK AL C@2 AM AN AO AP AQ AR AS AT AU
>`.pickRestart({
  A: "[~@7 [f#4,b4,e5]@4 ~@4 [f#4,b4,e5]@5 ~@3 [f#4,b4,e5]@4 ~@4 [f#4,b4,e5]@4 ~@4 [b4,e5,g#5]@4 ~@12 [b4,e5,g#5]@4 ~@5]/2", // Esus2 E
  B: "~@7 [b4,e5,g#5]@4 ~@11 [b4,e5,g#5]@4 ~@6", C: "~@3 [b4,e5,g#5]@2 ~@6 [b4,e5,g#5]@2 ~@3",
  D: "~@3 [c#5,e5,a5]@2 ~@6 [c#5,e5,a5]@2 ~@3", E: "~@6 [c#5,e5,a5]@4 ~@11 [c#5,e5,a5]@4 ~@7",
  F: "~@5 [b4,d#5,f#5]@4 ~@12 [b4,d#5,f#5]@4 ~@7", G: "~@5 [b4,e5,g#5]@4 ~@11 [b4,e5,g#5]@4 ~@8",
  H: "~ [b4,e5,g#5] ~@3 [b4,e5,g#5] ~@2", I: "~ [c#5,e5,a5] ~@3 [c#5,e5,a5] ~@2",
  J: "~@4 [c#5,e5,a5]@4 ~@11 [c#5,e5,a5]@4 ~@9", K: "~@3 [b4,d#5,f#5]@4 ~@12 [b4,d#5,f#5]@4 ~@9",
  L: "~@3 [g#4,b4,e5]@4 ~@12 [g#4,e5]@4 ~@9, ~@9 b4@2 ~@5", // E C#m
  M: "~@3 [g#4,b4,e5]@4 ~@4 [e4,b4,f#5]@4 ~@4 [g#4,b4,e5]@4 ~@9", N: "~@13 [e4,e5]@2 ~, ~@25 b4@4 ~@3",
  O: "~@26 [e4,e5]@2 d5 [b4,c5] a4 g#4, ~@25 b4@3 ~@4", // E Cmaj7
  P: "[f#4,b4,e5]@4 ~@4 [f#4,b4,e5]@5 ~@3 [f#4,b4,e5]@4 ~@4 [f#4,b4,e5]@4 ~@4", Q: "[b4,e5,g#5] ~@3 [b4,e5,g#5] ~@3",
  R: "[c#5,e5,a5] ~@3 [c#5,e5,a5] ~@3", S: "[b4,d#5,f#5]@5 ~@11 [b4,d#5,f#5]@4 ~@12",
  T: "[b4,d#5,f#5] ~@3 [b4,d#5,f#5] ~@3", // B
  U: "[[g#4,b4,e5]@4 ~@11 [g#4,b4,e5]@4 ~@12 [g#4,b4,e5]@4 ~@4 [e4,b4,f#5]@4 ~@4 [g#4,b4,e5]@4 ~@13]/2", // E Esus2 E
  V: "~@7 [e5,g#5,b5]@4 ~@11 [e5,g#5,b5]@3 ~@7", W: "~@5 [e5,b5,e6]@4 ~@13 [e5,b5,e6]@4 ~@6",
  X: "~@6 [e5,g#5,b5]@4 ~@12 [e5,g#5,b5]@3 ~@7", Y: "~@5 [e5,b5,e6]@4 ~@12 [e5,b5,e6]@4 ~@7",
  Z: "~@5 [e5,g#5,b5]@4 ~@12 [e5,g#5,b5]@3 ~@8", AA: "~ [e5,b5,e6] ~@3 [e5,b5,e6] ~@2",
  AB: "~@4 [e5,g#5,b5]@4 ~@12 [e5,g#5,b5]@3 ~@9", AC: "~@3 [e5,b5,e6]@4 ~@13 [e5,b5,e6]@4 ~@8",
  AD: "~@25 [f#4,b4,e5]@4 ~@3", AE: "~ [f#4,b4,e5]@5 ~@3 [f#4,b4,e5]@4 ~@4 [f#4,b4,e5]@4 ~@4 [b4,e5,g#5]@4 ~@3",
  AF: "~@2 [b4,e5,g#5] ~@3 [b4,e5,g#5] ~", AG: "~@2 [b4,e5,g#5] ~@3 e5 ~, ~@23 [b4,g#5]@4 ~@5",
  AH: "~@7 [b4,e5,g#5]@4 ~@12 [b4,e5,g#5]@4 ~@5", AI: "~@7 [b4,e5,g#5]@4 ~@12 [c#5,e5,a5]@4 ~@5",
  AJ: "~@7 [c#5,e5,a5]@4 ~@12 [c#5,e5,a5]@4 ~@5", AK: "~@3 [c#5,e5,a5]@2 ~@6 [b4,d#5,f#5]@2 ~@3",
  AL: "~@3 [b4,d#5,f#5]@2 ~@6 [b4,e5,g#5]@2 ~@3", AM: "~@5 [b4,e5,g#5]@4 ~@12 [b4,e5,g#5]@4 ~@7",
  AN: "~@5 [b4,e5,g#5]@4 ~@12 [c#5,e5,a5]@4 ~@7", AO: "~@5 [c#5,e5,a5]@4 ~@12 [c#5,e5,a5]@4 ~@7",
  AP: "~@5 [c#5,e5,a5]@4 ~@11 [b4,d#5,f#5]@4 ~@8", AQ: "~@4 [b4,d#5,f#5]@4 ~@13 [g#4,b4,e5]@4 ~@7",
  AR: "~@5 g#4@4 ~@12 [g#4,b4,e5]@4 ~@4 [e4,b4,f#5]@3, ~ [b4,e5] ~@6", // E Esus2 E5
  AS: "~@5 [g#4,b4,e5]@4 ~@13 g#4@4 ~@6, ~@21 [b4,e5]@4 ~@7", // E E5
  AT: "~@5 [g#4,b4,e5]@4 ~@12 [g#4,b4,e5]@4 ~@4 [e4,b4,f#5]@3", AU: "~@3 [g#4,b4,e5]@2 ~@11",
})).s("gm_drawbar_organ").gain(0.17).pan(0)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note("<~@2 A@2 B@4 ~@28 C@2 D@2 E F ~@29 G@2 H@5 I J ~@2 K ~@20 L@2>".pickRestart({
  A: "[~@9 b3@4 f#4@4 [b3,g#4]@26 ~@5 [a3,a4]@4 [a3,a4]@4 [a3,a4]@3 ~ [a3,a4]@4, ~ f#4@12 ~@51, ~@5 e4@8 ~@51]/2", // E A
  B: "[g#4@4 f#4@4 e4@4 [e4,f#4]@8 e4@4 [b3,e4]@19 ~@4 [b3,f#4]@4 f#4@3 ~ [b3,f#4]@4 b3@4 a3@4 b3@4 c#4@3 ~ [b3,e4]@31 ~@22, a3@9 ~@50 f#4@15 ~@54]/4", // Esus2 E5 B5 E5
  C: "[~@15 b3@2 f#4@2 [b3,g#4]@13, ~@11 f#4@6 ~@15, ~@13 e4@4 ~@15]/2", // E
  D: "[~@6 [a3,a4]@4 [a3,a4]@4 [a3,a4]@3 ~ [a3,a4]@4 g#4@4 f#4@4 e4@4 [e4,f#4]@8 e4@4 [b3,e4]@18, ~@22 a3@9 ~@33]/2", // A Esus2 E5
  E: "~@3 [b3,f#4]@2 f#4@2 [b3,f#4]@2 b3@2 a3@2 b3@2 c#4, ~@9 f#4@7", F: "~ [b3,e4]@15",
  G: "[~@19 g#4@4 g#4@3 ~ d#4@3 ~ g#4@4 g#4@3 ~ d#4@4 g#4@3 ~ g#4@3 d#4@3 ~ g#4@4 d#4@3 ~ a4@2]/2",
  H: "[~@2 d#4@3 ~ d#4@4 a4@3 ~ a4@4 d#4@3 ~ a4@4 d#4@3 ~ g#4@4 g#4@4 d#4@4 g#4@3 ~ g#4@4 d#4@4 g#4@4 d#4@3 ~ a4@4 d#4@3 ~ d#4@3 a4@3 ~@2 g#4@3 c#4@4 c#4@4 g#3@3 ~ g#3@4 a3@3 ~ a3@4 b3@3 ~@5 e4@3 ~ e4@4 f#4@12 g#4@7 ~ a4@7 b4@4 [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5]@4, ~@109 b3@23 ~@28]/5", // E5
  I: "~@8 [e4,b4,e5]@9 ~@7 [e4,b4]@3 ~ [f#4,b4]@4", // E5 B5
  J: "[e4,g#4]@3 ~ [e4,g#4]@4 [b3,e4]@3 ~@5 a3@4 g#3@4 e3@4 ~@4, ~@12 e4@15 ~@5, ~@6 b3@5 ~@5", K: "~@7 e3@12 ~@13",
  L: "[~@21 e5@21 ~@22]/2",
})).s("gm_acoustic_guitar_steel").gain(0.42)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_3 = note("<~@79 A@7 ~@19>".pickRestart({
  A: "[~@28 e3@11 e3@12 f#3@8 d#3@11 ~ e3@19 ~ d#3@11 ~@13 f#3@7 d#3@11 ~@5 [e4,e5]@3 ~ [e4,e5]@3 ~ [e4,e5]@3 ~ [e4,e5]@2 ~@2 d#3@10 ~@2 e3@11 ~ f#3@7 ~ g#3@11 f#3@16 ~@11, ~@134 [e4,e5]@3 ~@87, ~@135 e3@18 ~@71]/7", // E
})).s("gm_acoustic_guitar_steel").gain(0.23)

// bass · electric bass pick
const bass = note(`<
  ~@2 A B C D@3 E F G H G I J K L@5 M@6 N O P Q R S@4 T U V U V U V U V U V U V W X Y Z AA AB ~ AC AD AE AF AG AH AI AC
  AD AE AF AG AH AI AJ@3 AK AL AM AN AO AP AQ AR@3 AS AT AU AV AW AX@5 AY@4 AZ BA BB BC BD BE BD BF
>`.pickRestart({
  A: "~@13 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~",
  B: "~ e2@2 ~ e2@2 ~@2 e2@2 ~@2 a2@2 ~@2 a2@2 ~@2 a2@2 ~@2 b2@3 ~ b2@3 ~",
  C: "c#3@3 ~ c#3@4 b2@3 ~ e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2",
  D: "[e2@2 ~ e2@2 ~@3 e2@2 ~@2 a2@2 ~ a2@2 ~@2 a2@2 ~@2 b2@3 ~ b2@3 ~ c#3@3 ~ c#3@4 b2@3 ~ e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 a2@2 ~@2 a2@2 ~@2 a2@2 ~ b2@3 ~@2 b2@3 c#3@2]/3",
  E: "~@2 c#3@4 b2@3 ~ e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2",
  F: "~@2 e2@2 ~@2 e2@2 ~@2 a2@2 ~@2 a2@2 ~@2 a2@2 ~ b2@3 ~ b2@3 ~ c#3@3",
  G: "~ c#3@4 b2@3 ~ e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~",
  H: "~ e2@2 ~@2 e2@2 ~@2 a2@2 ~@2 a2@2 ~@2 a2@2 ~@2 b2@3 ~ b2@3 ~ c#3@3",
  I: "~ e2@2 ~@2 e2@2 ~@2 a2@2 ~ a2@2 ~@2 a2@2 ~@2 b2@3 ~ b2@3 ~ c#3@3 ~",
  J: "c#3@4 b2@3 ~ a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2", K: "a1 ~ a1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~",
  L: "[e1@2 ~@2 e1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~ a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 c#2@2 ~@2 c#2@2 ~@2 c#2@2 ~@2 c#2@2 ~@2 c#2@2 ~@2 c#2@2 ~@2 c#2@2 ~@2 c#2@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 b1@2 ~@2 b1@2 ~@2 b1@2 ~@2 b1@2 ~@2 b1@2 ~@2 b1@2 ~@2 b1@2 ~@2 b1@2 ~@27]/5",
  M: "[~@7 e1@4 ~@4 e1@4 ~@4 e1@4 e2@4 e1@4 ~@4 e1@4 ~@4 e1@4 ~@3 e1@4 e2@4 e1@4 g1@4 g#1@5 ~@3 g#1@5 ~@3 g#1@4 d#2@4 g#2@5 ~@3 g#1@4 ~@4 g#1@4 ~@4 g#1@4 e2@4 g#1@4 a1@4 a1@5 ~@3 a1@4 ~@4 a1@4 e2@4 a1@7 ~ a1@4 ~@4 a1@4 ~@3 a1@3 ~ e2@4 a1@3]/6",
  N: "~ b1@4 b1@11 ~ f#2@4 b2@4 f#2@3 ~ b2@3", O: "~ c#3@4 e1@4 ~@4 e1@4 ~@3 e1@4 e2@4 e1@4", P: "~ e1 ~ e1 ~ e1 e2 e1",
  Q: "g1@4 g#1@5 ~@3 g#1@5 ~@3 g#1@4 d#2@4 g#2@4", R: "~ g#1 ~ g#1 ~ g#1 e2 g#1",
  S: "[a1@4 a1@5 ~@3 a1@4 ~@4 a1@4 e2@4 a1@7 ~ a1@4 ~@3 a1@4 ~@4 a1@3 ~ e2@4 a1@4 b1@4 b1@11 ~ f#2@4 b2@4 f#2@3 ~ b2@4 c#3@4 e1@4 ~@4 e1@4 ~@4 e1@4 e2@4 e1@4 ~]/4",
  T: "~@3 e1@4 ~@4 e1@4 ~@4 e1@4 ~@9", U: "~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2",
  V: "~@2 a2@2 ~@2 a2@2 ~@2 a2@2 ~@2 b2@3 ~ b2@3 ~ c#3@3 ~ c#3@4 b2@2", W: "~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1",
  X: "~@2 e1@2 ~@2 e1@2 ~ e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~",
  Y: "~ a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~",
  Z: "~ c#2@2 ~@2 c#2@2 ~@2 c#2@2 ~@2 c#2@2 ~@2 c#2@2 ~@2 c#2@2 ~@2 c#2@2 ~@2 c#2@2 ~",
  AA: "~ f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~ f#1@2 ~@2 f#1@2 ~@2",
  AB: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~", AC: "e1 ~ e1 ~ e1 e2 e1 ~", AD: "e1 ~ e1 ~ e1 e2 e1 g1",
// … 251 more lines

More by Shania Twain