Strudelify

Gold Dust Woman

Stevie Nicks

KeyF majorTempo123 bpm
0:00/0:00
// Gold Dust Woman — Stevie Nicks
// 123 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (2/4 at bar 1, 4/4 at bar 1) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: ch 5 "Guitar 2" named as a guitar, played on electric guitar clean (its bandoneon patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 124 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123/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 D H I J K L M N O P K Q R O N S N T K U V W O N X N Y Z AA N X S AB AC AD AE AF AG AH AI AJ L C L@3 AK
  AL AM K U V W O N X N Y Z AA N X S AB AC AD AE AF AC AD AE AF AC AD AE AF AG AH AI AJ L C L@2 AN AO@5 AP AQ AR@3 AS AT
  AU AV AW AX AY AZ BA BB BC BD BE@2 BF BG BH BI BJ ~@3
>`.pickRestart({
  A: "d2@5 ~ d2@5 ~", B: "d2@10 ~@2 d2@6 g1@3 a1@3", C: "d2@9 ~@3 d2@10 ~@2", D: "d2@3 ~ d2@2 g1 a1",
  E: "d2@9 ~@3 d2@11 ~", F: "d2@9 ~@3 d2@5 ~ g1@3 a1@3", G: "d2@11 ~ d2@10 ~@2", H: "d2@7 ~@5 d2@9 ~@3",
  I: "g1@8 ~@4 g1@11 ~", J: "c2@3 ~ c2@3 d2", K: "g1@4 ~@2 g1@5 ~", L: "d2@3 ~ d2@3 ~", M: "d2@2 ~ d2@2 ~",
  N: "d2@7 ~@5 d2@7 ~@5", O: "d2@7 ~@5 d2@8 ~@4", P: "d2@7 ~@5 d2@11 ~", Q: "c2@8 ~@10 d2@5 ~, ~@3 c2@2 ~",
  R: "g1@8 ~@4 g1@9 ~@3", S: "d2@8 ~@4 d2@7 ~@5", T: "d2@2 ~ d2@3", U: "c2@7 ~@5 c2@4 ~@2 c2@3 d2@2 ~",
  V: "g1@7 ~@5 g1@10 ~@2", W: "d2@3 ~@3 d2@4 ~@2", X: "d2@6 ~@6 d2@7 ~@5", Y: "g1@7 ~@5 g1@9 ~@3",
  Z: "c2@6 ~@6 c2@7 ~@5", AA: "g1@6 ~@6 g1@7 ~@5", AB: "d2@7 ~@5 f2@3 e2@3 d2@3 c2@2 ~", AC: "bb1@8 ~@4 bb1@11 ~",
  AD: "b1@10 ~@2 b1@11 ~", AE: "c2@10 ~@2 c2@11 ~", AF: "d2@3 ~ d2@4", AG: "bb1@4 ~@2 bb1@5 ~", AH: "b1@8 ~@4 b1@11 ~",
  AI: "c2@8 ~@4 c2@9 ~@3", AJ: "d2@9 ~@3 d2@8 ~@4", AK: "f2@2 ~ e2@3 d2@3 c2@2 ~ b1@3 c2@2 ~ d2@4 ~@2",
  AL: "d2@8 ~@4 d2@9 ~@3", AM: "d2@7 ~@5 d2@12", AN: "d2@8 ~@3 d2@8 ~@5",
  AO: "[d2@8 ~@3 d2@8 ~@4 d2@9 ~@2 d2@9 ~@3 d2@9 ~@2 d2@9 ~@3 d2@9 ~@3 d2@9 ~@2 d2@9 ~@19]/5",
  AP: "~@7 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~", AQ: "~ d1 ~@2 d1 ~@2 d1 ~ d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2",
  AR: "[d1 ~@2 d1@2 d1 ~@3 d1@2 ~ d2@2 d1 ~@2 d1 ~@2 d1@2 ~ d2@2 ~ d1@2 ~ d1@2 ~ d1@2 ~ d2@2 ~ d1 ~ d1 ~@2 d1@2 ~@2 d2@2 d1@2 ~ d1@2 ~ d1@2 ~ d2@2 ~ d1@2 ~ d1@2 ~ d1@2 ~ d2@2]/3",
  AS: "d1 ~@2 d1@2 ~ d1@2 ~ d2@2 ~ d1 ~@2 d1 ~@2 d1@2 ~ d2@2 ~",
  AT: "d1@2 ~ d2@2 ~ d1 ~@2 d1 ~ d1 ~@2 d1@2 ~ d1 ~@2 d1 ~@2 d1",
  AU: "~@2 d1 ~@2 d1@2 ~ d2@2 d1 ~@3 d1@2 d1@2 ~ d2 ~@2 d1@2",
  AV: "~ d1 ~@2 d1@2 ~ d2 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~",
  AW: "d1 ~@2 d1 ~@2 d1@2 ~ d1 ~@2 d1 ~@2 d1 ~@2 d1@2 ~ d1 ~@2",
  AX: "d1 ~ d1 ~@3 d1@2 ~ d1 ~@2 d1 ~ d1 ~@2 d1 ~@2 d1 ~@2 d1",
  AY: "~@2 d1 ~@2 d1@2 ~ d1 ~@2 d1@2 d1 ~@3 d1 ~ d1 ~@2 d1 ~",
  AZ: "~ d1 ~@2 d1@2 ~ d1 ~@2 d1 ~ d1 ~@3 d1 ~ d1 ~@2 d1 ~@2",
  BA: "d1 ~@2 d1@2 ~ d1 ~@2 d1@2 ~ d1 ~@2 d1@2 ~ d1 ~@2 d1 ~ d1",
  BB: "~@3 d1 ~ d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1",
  BC: "~@2 d1@2 ~ d1 ~@2 d1 ~ d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1@2",
  BD: "~ d2@2 ~ d1 ~@2 d1 ~@2 d1@2 ~ d2 ~ d1 ~@2 d1 ~@2 d1@2 ~",
  BE: "[d2 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1@2 ~ d1 ~@2 d1@2 d1 ~@2 d1@2 ~ d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1]/2",
  BF: "~@2 d1 ~@2 d1 ~@2 d1@2 ~ d2 ~ d1 ~@2 d1 ~@2 d1@2 ~ d2 ~",
  BG: "~ d1 ~@2 d1@2 ~ d1 ~@2 d1@2 ~ d1 ~ d1@2 ~ d1 ~@2 d1 ~@2",
  BH: "d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2",
  BI: "d1 ~@2 d1 ~ d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~ d1 ~", BJ: "~ d1@23",
})).s("gm_acoustic_bass").gain(0.38)

// chords · pad sweep · "Keyboard"
const pad_sweep = note(`<
  ~@6 A@2 ~@4 B@4 ~@4 C@4 ~@4 D@4 ~@4 E@2 F@2 G@2 H I@2 H J@3 K@6 ~@4 D@4 ~@4 E@2 F@2 G@2 H I ~@2 H I ~@2 H I@2 H J@3
  L@2 M@7 N@7 O@3 P@6 Q@2 R@8 ~
>`.pickRestart({
  A: "[~ d3@7]/2", B: "[~@46 d3@49 ~, d3@3 ~@29, ~@6 d4@67 ~@23]/4",
  C: "[~@5 d4@3, d3@46 ~@2 d3@39 ~@9, ~@3 d4@26 ~@19]/4", D: "[~@53 d4@42 ~, d3@25 ~@22 d3@9 ~@40, ~@3 d4@23 ~@22]/4",
  E: "[~ d4@7, d3@41 ~@7]/2", F: "[~@11 d3@13, d4@23 ~]/2", G: "[d4@47 ~]/2", H: "d4@11 ~", I: "d4@23 ~",
  J: "[d4@23 ~@6 d4@42 ~, ~@23 d3@43 ~@6]/3", K: "[~@5 d4@42 d3@6 d4@87 ~@4, d3@19 ~@53]/6",
  L: "[~@5 d4@42 d3, d3@19 ~@5]/2",
  M: "[~@87 d4@36 ~@5 d3@6 d4@34, ~@5 d4@82 ~@36 d4@11 ~@34, ~@41 a3@28 ~@15, ~@82 d3@37 ~@49]/7",
  N: "[~@16 [g3,a3]@37 ~ g4@34 ~ a3@23 [g3,c4]@23 [a3,d4]@33, ~@15 d4@38 d4@35 d4@23 ~@57]/7", // Gsus2 C5 D5
  O: "[~@2 [d4,a4]@11 [d4,g4]@23 [c4,f4]@22 [a3,d4]@14]/3", // D5 G5 F5 D5
  P: "[[g3,c4]@23 a3@18 a4@23 [d4,g4]@14 [a3,d4]@14 [g3,c4]@20 ~ [a3,d4]@12 [a3,e4]@19, ~@23 d4@41 ~@49 e4 ~@30]/6", // C5 G5 D5 C5 D5 A5
  Q: "[~@4 f4@10 ~@13 [e4,a4]@12 [d4,g4]@9, ~@4 a3@25 ~@19, ~@14 d4@15 ~@19]/2", // A5 G5
  R: "[~@5 a3@21 g3@23 a3@49 ~@32 [a3,d4]@48 ~@14, ~@5 d4@123 ~@64, ~@107 g4@25 ~@60]/8", // D5
})).s("gm_pad_sweep").gain(0.3)

// chords · acoustic guitar steel · "Guitar 1"
const acoustic_guitar_steel = note(`<
  A@2 B C D E F@2 G H I@2 J K L M N O P Q@2 R S T G O U V W X Y Z L AA AB AC J AD AE AF AG AH@2 AI AJ AK AL AM@2 AN AO
  AP@4 G O U V W X Y Z L AA AB AC J AD AE AF AG AH@2 AI AG AH@2 AI AG AH@2 AI AJ AK AL AM@2 AN AQ AR@2 AS@5 AT@2 AU@8
  AV@2 AW AX AY@2 AZ BA BB@2 BC BD BE BF ~@3
>`.pickRestart({
  A: "[~@6 [d2,d3,a3,d4] d3@17 d3 d3@3 [bb3,d4] d4 ~@4 d3 ~ [f3,bb3,d4] [f3,bb3,d4]@10 ~, ~@7 [d2,a3,d4]@21 ~@7 d3@12 ~]/2", // D5 Bb D5
  B: "~@6 [d2,d3,a3,d4] [d2,a3]@17, ~@7 [d3,d4]@15 ~@2", // D5 D
  C: "~@4 [f3,bb3,d4] [f3,bb3,d4]@2 ~@3 d3 ~ [f3,bb3,d4]@11 ~, ~@11 d3@13", D: "~@6 [d2,d3,a3,d4] [d2,d3,a3,d4]@17",
  E: "~@4 [f3,bb3,d4]@2 ~@4 d3 ~ [f3,bb3,d4] [f3,bb3,d4]@11", F: "[~@6 [d2,d3,a3,d4] [d2,d3,a3,d4]@40 ~]/2",
  G: "~@6 [a3,d4]@12 [d3,a3,d4]@5 ~, ~@2 d3@3 ~@3", H: "~@3 [d3,g3]@6 [d3,g3]@2 ~, g2@23 ~",
  I: "[~@18 [g3,c4]@5 ~@19 g2@4 ~@2, c3@15 c3@7 ~ g2@18 ~@7, ~@3 [g3,c4]@6 ~@6 [d3,g3,d4]@8 ~, ~@11 a3@5]/2", // C5 G5
  J: "~@6 d3@12 d3@5 ~, ~ [a3,d4]@3", K: "~@3 [f3,bb3,d4]@2 ~@4 d3@2 ~ [d3,f3,bb3,d4]@12, d3@5 ~@19",
  L: "~@6 d3@12 d3@5 ~, ~@6 [a3,d4]@17 ~", M: "~@2 [f3,d4] ~@2 d3 [d3,f3,bb3,d4]@5 ~, d3 ~@3, ~@3 bb3@2 ~@19",
  N: "~@6 d3@9 d3@3 [d3,a3,d4]@5 ~, ~ [a3,d4]@2 ~", O: "~@6 [d3,g3]@12 [d3,g3]@5 ~, g2@23 ~",
  P: "c3@6 c3@9 ~@3 [g3,c4]@5 ~, ~ [g3,c4]@2 ~, ~@15 c3@7 ~@2", // C5
  Q: "[~@5 d3@2 d3, g2@9 g2@2 gb3 d2@12, ~@6 [d3,g3]@17 d3@7 ~@18, ~@3 d4@7 d4@5 ~@9, ~@9 a3@11 ~ a3@9 [a3,d4]@18]/2", // G5 D5
  R: "~@3 [f3,bb3,d4]@2 ~@4 d3@2 ~ [d3,f3,bb3,d4]@11 ~, d3@5 ~@19", S: "~ [a3,d4]@3, ~ d3@2 ~",
  T: "~@3 [f3,bb3,d4]@2 ~@7 [f3,bb3,d4]@11 ~, d3@5 ~@4 d3@13 ~@2", U: "c3@6 c3@9 c3@2 ~ [c3,g3,c4]@5 ~, ~ [g3,c4]@2 ~",
  V: "~@18 g2@5 ~, g2@3 ~, ~@3 [d3,g3,a3]@8 ~, ~@9 d4@14 ~", W: "~@6 [a3,d4]@17 ~, ~ d3@2 ~",
  X: "d3@3 [f3,bb3,d4]@2 ~@7 [d3,f3,bb3,d4]@12", Y: "~@6 [d3,a3,d4]@17 ~",
  Z: "d3@4 [f3,bb3,d4]@2 ~@3 d3@2 ~ [f3,bb3,d4]@10 ~@2", AA: "~@15 g2@3 [d3,g3]@5 ~, g2@5 ~@3, ~ [d3,g3]@2 ~",
  AB: "~@15 c3@3 [c3,g3,c4]@5 ~, c3@5 ~@3, ~ [g3,c4]@2 ~", AC: "g2@2 ~ a3@5, ~@3 [g2,d3,g3,d4]@8 ~",
  AD: "~@3 [f3,bb3,d4]@2 ~@4 d3@2 ~ [d3,f3,bb3,d4]@10 ~@2, d3@5 ~@19", AE: "~@3 a3@7 ~@2, ~ d4@2 ~, ~@3 d3@5 ~@4",
  AF: "~@4 [a3,d4]@8 [a3,d4]@7 ~@5", AG: "~@6 [f3,bb3,d4]@12 [f3,bb3,d4]@5 ~, bb2@23 ~",
  AH: "[~@6 [g3,b3,d4]@12 [g3,b3,d4]@4 ~@8 [g3,c4,e4]@12 [g3,c4,e4]@5 ~, b2@11 g3@2 ~@11, ~@24 c3@23 ~]/2", // G C
  AI: "~@6 [a3,d4]@12 [a3,d4]@5 ~, d2", AJ: "~ [f3,bb3,d4]@2 [bb3,d4], bb2@23 ~, ~@9 f3@2 ~",
  AK: "~@2 [g3,b3,d4]@4 g3!2, b2@23 ~, ~@18 [b3,d4]@5 ~", AL: "~@6 [g3,c4,e4]@12 [c4,e4]@5 ~, c3@23 ~, ~@6 g3 ~",
  AM: "[~@6 [a3,d4]@17 ~@5 [d3,f3,bb3] ~@7 [d3,f3,bb3]@11 ~, d2@13 ~@11]/2", AN: "~@6 [d3,a3]@17 ~, d2@11 ~",
  AO: "~@4 [d3,f3,bb3] ~@5 d3 ~ [d3,f3,bb3]@10 ~@2", // Bb
  AP: "[~@3 [a3,d4]@12 [a3,d4]@6 d4@6 ~@6 [a3,d4]@6 d4@6 [a3,d4]@2 ~, d2@11 ~@37]/4", // D5
  AQ: "~@4 [d3,f3,bb3] ~@5 d3 ~ [d3,f3,bb3]@7 ~@5", // Bb
  AR: "[~@6 d3@16 ~@6 [d3,f3,bb3] ~ [a3,d4]@2 ~@9 d4@2 ~@5, d2@7 ~@9, ~@3 [a3,d4]@12 ~@3 [d3,f3,bb3]@5 ~]/2", // Bb D5 Bb
  AS: "[~@5 [d3,a3]@27 ~@8 [d3,a3]@17 ~@4 [d3,f3,bb3] ~@7 [d3,f3,bb3]@8 ~@9 [d3,a3]@17 ~@17]/5", // D5 Bb D5
  AT: "[~@8 d4@7 ~@4 g4@17 ~@6 [a3,d4]@5 ~, ~@7 a3@7 ~@2 [g3,d4]@9 ~@23]/2", // D5 G5
  AU: "[~@9 e4@5 f4@3 ~ g4@3 d4@31 ~@3 a3@3 d4@2 ~@10 d4@11 d4@12 [a3,d4]@9 ~@3 [a3,d4]@8 ~@5 d5@21 ~ [a3,d4]@8 ~@15 [g3,d4]@7 ~@4 [a3,d4]@8 ~@4 [a3,d4]@6, ~@3 [g3,d4]@8 ~@47 a3@8 ~@4 a3@8 ~@3 a3@8 ~@27 [a3,d4]@21 ~@14 [a3,d4]@10 ~@31, ~@60 d4@10 ~@43 a4@27 ~@8 a4@30 ~@14, ~@64 g3@15 ~@74 d5@25 ~@14, ~@157 g4@22 ~@13]/8", // D5 G5 D5 G5 D5
  AV: "[~@8 g4@3 e4@9 ~@21 [a3,d4]@7, ~@3 f4@5 ~@21 a4@19, ~ a3@4 ~@3, ~@6 d4@14 d4@21 ~@7]/2", // D5
  AW: "~ d4@3 [d4,a4]@4 ~@5 d4@2 ~@3 e4@4 a4@2, ~@4 a3@6 a4@5 ~@9", AX: "~ e4@3 ~@2 e4@3 ~@6 a4@3 f4@3 a4@2 ~",
  AY: "[e4@2 a4@3 ~@4 a4@2 d4@3 a4@3 ~@3 a4@3 e4@2 ~ a4@3 ~@2 a4@3 g4@2 ~ a4@3 ~@3 a4@3 e4@2]/2",
  AZ: "~ a4@3 d4@3 a4@3 ~@3 a4@3 ~@2 a4@3 ~@3", BA: "[a3,d4]@5 ~ a4@3 e4@3 [d4,a4]@3 d4@4 ~@2 e4@3, a4@3 ~@9 g3@5 ~@7",
  BB: "[a4@3 ~@2 a4@3 g4@3 a4@3 ~@3 a4@3 e4@3 a4@3 d4@3 a4@3 ~@8 a4@3 ~@3 a4@2]/2",
  BC: "~@4 a4@3 e4@2 a4@3 d4@3 a4@3 e4@3 a4@3", BD: "~ a4 ~@2 d4 a4 e4 ~",
  BE: "~@2 a4@3 e4@3 a4@3 d4@3 a4@3 ~@2 a4@3 ~@2", BF: "~ a4@3 ~@9 a4@3 ~@8",
})).s("gm_acoustic_guitar_steel").gain(0.48)

// chords · acoustic guitar steel · "Guitar 1" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~ A ~@6 B ~@13 C ~ B ~@3 D E ~ F ~ G ~@5 H I ~@3 I ~ J ~ K ~@3 L@2 M B ~@3 D E ~ F ~ G ~@5 H I ~@3 I ~@3 I ~@3 I ~ J ~
  K ~@3 N ~@2 O ~@14 P Q R S T U V W X Y Z@2 AA AB ~
>`.pickRestart({
  A: "~@4 d3!2 ~@18", B: "~@5 d3 ~@2", C: "~@3 d3", D: "~@18 d3@5 ~", E: "~@9 d3 ~@14", F: "~@6 d3@5 ~",
  G: "~@18 g2@5 ~", H: "d3@9 ~ d3@10 ~@4", I: "~@11 f3", J: "~@21 g3@2 ~", K: "~@10 d3 ~@13",
  L: "[~@3 a3@2 [a3,d4]@2 ~]/2", M: "~ a3@2 ~", N: "~@9 d3 ~@7 a3@2 ~@5", O: "~@18 d3 ~@5", P: "~@7 d4@5 ~@3 a4@3 ~@6",
  Q: "~@4 a4@3 ~@2 a4@3 f4@3 ~@9", R: "~@6 d4@3 ~@8 e4@3 ~@4", S: "~@5 f4@2 ~@9 f4@3 ~@5",
  T: "~@10 e4@3 ~@3 f4@2 ~@3 g4@2 ~", U: "~ f4 ~@4 a4 ~", V: "~@3 f4@2 ~@9 f4@3 ~@7",
  W: "~@8 e4@2 a4@3 ~ f4@2 ~@3 g4@2 ~@3", X: "~ f4@3 ~@20", Y: "f4 ~ e4 a4 ~@3 a4",
  Z: "[f4@3 ~@14 e4@3 ~@3 f4@3 ~@2 e4@3 a4@3 d4@3 ~@3 e4@3 a4@3 f4@2]/2",
  AA: "~ a4@2 ~ e4@3 a4@3 d4@2 a4@2 ~ e4@3 a4@3 ~ f4@2", AB: "a4@5 ~",
})).s("gm_acoustic_guitar_steel").gain(0.24)

// other · electric guitar clean · "Guitar 2"
const electric_guitar_clean = note("<~@5 A B ~@88 C@8 D@2 E@2 F G@7 H@3 I J K@2 ~@2>".pickRestart({
  A: "~@6 a4@5 ~ c5@10 ~@2", B: "g4 ~@3",
  C: "[~@15 g4@14 ~@2 f4@24 g4@12 e4@20 f4 e4 f4 e4@11 ~ d4@22 a4@12 f4@21 g4 f4 g4 ~ f4@11 e4@20, ~@15 g4 ~@80]/8",
  D: "[~@3 d4@11 a4@22 ~ c5@11]/2", E: "[~ g4@11 f4@21 g4 f4 g4 f4 ~@11]/2", F: "~@11 e4@11 ~@2",
  G: "[~@10 d4@34 [e4,f4] ~ f4@31 g4 f4 g4@24 d4@11 ~ a4@11 ~@12 g4@21 e4 f4@8, ~@46 e4 ~@121]/7", // Fmaj7
  H: "[~@5 e4@8 d4 ~ d4@25 a4@32, ~@14 e4@3 ~@55]/3", I: "g4 a4 g4@9 f4 g4 ~ g4 ~@8 e4, ~@13 f4@10 ~",
  J: "f4 ~ f4 ~@21, ~ e4@23", K: "[~@2 f4@11 g4@23 ~@12]/2",
})).s("gm_electric_guitar_clean").gain(0.23)

// other · electric guitar clean · "Guitar 2" · soft notes
const electric_guitar_clean_2 = note("<~@5 A B ~@89 C ~@9 D@3 E ~@3 F G ~@6 H@2 ~>".pickRestart({
  A: "~@11 a4", B: "~@3 a4@8 ~", C: "~@5 f4 ~@18", D: "[~@13 g4@22 ~@12 f4@11 ~@14]/3", E: "~@19 f4 ~@4", F: "~ f4@2 ~",
  G: "~@15 f4 ~@8", H: "[~@13 d4@35]/2",
})).s("gm_electric_guitar_clean").gain(0.14)

// chords · acoustic guitar steel · "Guitar 3"
const acoustic_guitar_steel_3 = note(`<
  ~@11 A ~ B C D E ~@2 F@2 ~@2 G@2 ~ H I J K L M ~@3 N O ~ P@2 Q R S@2 T@4 U V W X@2 Y Z ~@2 H I J K L M ~@3 N AA@2 AB@2
  Q R S@2 Q R S@2 Q R S@2 T@4 U V W X@2 AC@7 AD@7 AE@3 ~@2 AF@6 AG AH AI AJ@2 ~@2
>`.pickRestart({
  A: "~@15 a3@8 ~, ~@5 d4@18 ~", B: "~@3 bb3 ~@8 bb3@11 ~", C: "~@6 a3@17 ~", D: "~@3 bb3 ~@8 bb3@4 ~@8",
  E: "f4@6 d4@13 ~@5", F: "[~@23 [a3,a4]@19 ~@6, ~@6 d4@15 d3@16 ~@11, ~@15 g3@7 d4@21 ~@5, ~@21 a3@2 ~@25]/2",
  G: "[~@17 d4@15 ~@16]/2", H: "c4@19 ~@5", I: "~@9 a3@11 ~@4, ~@2 d4@5 ~", J: "d5@3 c5@19 ~@2",
  K: "~@6 d5@2 ~ c5@2 ~ d5@4 ~@2 eb5@5 ~", L: "d5@19 ~@2 c5@2 ~", M: "d5@17 ~@7",
  N: "~@15 a2@2 ~ d3@6, ~@6 d4@11 c3@2 ~@5, ~@3 a3@3 ~@2", O: "~@3 d4@7 ~@2, d3@19 ~@5, ~@3 a3@17 ~@4",
  P: "[~@3 a3@6 ~@2 d4@5 ~@8, ~@3 d4@7 ~@14, ~@9 a3@7 ~@8]/2", Q: "~@6 d4@7 ~@3 d4@4 ~@4", R: "~@6 d4@7 ~@3 d4@6 ~@2",
  S: "[~@6 d4@7 ~@2 d4@11 ~@4 d4@18]/2",
  T: "[~@6 d4@7 ~@3 d4@12 ~@2 d4@7 ~@3 d4@11 ~@3 d4@7 ~@3 d4@10 ~@4 a3@16 ~@2]/4", U: "~@4 bb3 ~@7 bb3@12",
  V: "~@3 a3@8 ~", W: "~@4 [a3,d4,d5]@2 ~@6 [a3,d4,d5]@11 ~", X: "[~@6 d4@23 ~@19, ~@5 d5@19 ~@24]/2",
  Y: "a4@6 ~@6 a4@7 ~@5", Z: "g4@6 ~@5 g4@13",
  AA: "[~@15 a5@3 ~ d6@2 ~@2 d6@13 ~@3 a5@2 ~@2 g5@2 ~@3, d3@19 ~@29, ~@3 a3@17 ~@28, ~@3 d4@7 ~@14]/2",
  AB: "[a5@3 ~ d5@2 ~@3 d5@9 ~@4 d5@15 ~@11, ~@3 d4@7 ~ d4@5 ~@8, ~@6 a3@12 a4@19 ~@11, ~@9 a3@7 ~@8]/2",
  AC: "[~@15 bb3 ~@7 bb3@11 ~@6 a3@21 [a3,d4,d5]@8 [d4,d5]@17 d4@6 d4@6 ~@24 d4@6 ~@11 d4@6 d4@6 ~@17, ~@69 a3@26 ~@33 d4@5 ~@35, ~@43 d5@24 ~@17, ~@131 g3@37]/7", // D5 D
  AD: "[~@11 d4@6 d4@6 ~@15 g3@6 ~@3 d4@5 d4@6 d4@6 ~@14 a3@3 ~@3 d4@6 ~@32 g3@3 ~@3 d4@6 ~@11 d4@6 ~@17, d4@6 d4@5 ~@18 d4@6 d4@6 ~@29 d4@14 ~@18 f4@48 ~@18, ~@3 a3@11 ~@18 a3@18 ~@25 e4@18 e4@46 d4@6 ~@23, ~@9 g3@29 ~@6 g3@48 ~@4 a3@8 ~@6 d4@9 d4@6 g3@18 g3@25, ~@116 a3@15 ~@3 d4@2 a3@12 ~@20]/7",
  AE: "[~@12 d4@6 ~@5 d4@6 ~@12 d4@6 ~@6 d4@12 ~@7, ~@7 d4@5 ~@18 d4@5 ~@37, ~@9 g3@23 g3@24 ~@16]/3",
  AF: "[g4@27 ~@7 e4@8 ~ f4@9 ~@9 a3@17 ~@14 d3@2 ~@4 d4@15 ~@9 d4@14 ~@8, ~@52 d4@25 ~@18 a3@18 ~@3 e3@19 ~@9, ~@119 a3@17 ~@8]/6",
  AG: "~@7 g4@14 ~@3", AH: "~@3 e4@7 ~@2", AI: "~@4 d4@5 ~@3, f4@19 ~@5", AJ: "[~@7 a3@14 ~ d4@6 ~@20, ~ d4@4 ~@7]/2",
})).s("gm_acoustic_guitar_steel").gain(0.48).pan(0.8)

// chords · acoustic guitar steel · "Guitar 3" · soft notes
const acoustic_guitar_steel_4 = note("<~@95 A@6 B C@2 D E@5 ~@11 F@3>".pickRestart({
  A: "[~@47 a3@6 ~@11 a3@6 a3@6 ~@17 a3@6 ~@11 a3@6 ~@6 a3@6 ~@9 d4@6 ~, ~@23 a3@6 a3@6 a3@6 a3@6 ~@6 a3@11 ~@12 a3@5 a3@12 ~@23 a3@6 ~@22, ~@26 d4@6 d4@6 d4@6 d4@6 ~@11 d4@6 ~@12 d4@5 d4@6 d4@6 ~@23 d4@6 ~@19, ~@29 b3@16 ~@3]/6",
  B: "~@2 a3@5 a3@6 ~@6 a3@5, ~@13 a3@5 ~@6, ~@8 d4@3 ~",
  C: "[~ a3@5 ~@3 a3@6 ~@3 d4@9 ~@5 a3@3 ~ a3@5 a3@3 ~@4, ~@15 a3@8 ~@4 d4@11 ~@10]/2", D: "~@11 a3@5 ~@8",
  E: "[~@13 d4@6 ~@8 a3@11 ~@7 a3@5 ~@9 d4@6 ~@24 d4@11 d4@16 ~@4, ~@4 a3@6 a3@12 a3@5 ~@12 a3@6 ~@5 a3@18 a3@5 ~ a3@42 ~@4, ~@7 d4@6 ~@6 d4@6 d4@6 ~@11 d4@5 ~@24 d4@6 ~@3 g3@36 ~@4]/5",
  F: "[~ d4@8 ~@3, ~ g3@12 ~@5]/3",
})).s("gm_acoustic_guitar_steel").gain(0.24).pan(0.8)

// chords · taiko drum · "Percussion"
const taiko_drum = note("<~@92 A@2 B C D E F G@2 H I J K L M N O P Q R S T U V@2 W X Y Z AA ~@2>".pickRestart({
  A: "[~@2 [a3,d4] ~@2 d4@2 ~ [a3,d4] ~@2 d4@2 ~ d4@2 ~ d4@2 ~ [a3,d4]@2 ~ [a3,d4]@2 [a3,d4] ~@2 [a3,d4]@2 ~ d4@2 ~ [a3,d4]@2 ~ [a3,d4] ~@2 d4@2 ~ d4@2 ~ d4@2, ~@5 a3 ~@5 a3 ~@2 a3 ~@2 a3 ~@13 a3 ~@8 a3 ~@2 a3 ~@2 a3 ~]/2", // D5
  B: "~ [a3,d4] ~@2 d4@2 ~ d4@2 d4@2 ~ d4@2 ~ d4@2 ~ d4@2 ~ [a3,d4]@2 ~, ~@4 a3 ~@2 a3 ~ a3 ~@2 a3 ~@2 a3 ~@2 a3 ~@5", // D5
  C: "[a3,d4] ~@2 d4@2 ~ [a3,d4] ~@2 d4@2 ~ [a3,d4] ~ [a3,d4]@2 ~ d4@2 ~ [a3,d4] ~@2 [a3,d4], ~@3 a3 ~@5 a3 ~@7 a3 ~@6", // D5
  D: "~@2 [a3,d4]@2 ~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4]@2 ~ [a3,d4] ~@2 [a3,d4] ~ d4@2, ~@22 a3 ~", // D5
  E: "~ [a3,d4]@2 ~ [a3,d4] ~@2 d4@2 ~ d4@2 ~ [a3,d4]@2 ~ [a3,d4] ~@2 d4@2 ~ d4@2, ~@7 a3 ~@2 a3 ~@8 a3 ~@2 a3 ~", // D5
  F: "~ d4@2 ~ [a3,d4] ~ d4@2 ~ [a3,d4] ~@2 [a3,d4]@2 ~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2, ~ a3 ~@4 a3 ~@17", // D5
  G: "[[a3,d4]@2 ~ [a3,d4] ~@2 d4@2 [a3,d4] ~@2 [a3,d4]@2 ~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4]@2 ~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4]@2 ~ [a3,d4] ~@2 [a3,d4] ~ [a3,d4] ~@2 [a3,d4]@2, ~@6 a3 ~@41]/2", // D5
  H: "~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4]@2 ~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4]@2", // D5
  I: "[a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4]@2 ~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2 d4@2 ~, ~@21 a3 ~@2", // D5
  J: "[a3,d4] ~@2 [a3,d4] ~ a3 d4 ~ [a3,d4]@2 ~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4]@2 ~ [a3,d4]", // D5
  K: "~@2 [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~ a3 d4 ~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~", // D5
  L: "~ d4@2 ~ [a3,d4] ~@2 [a3,d4]@2 ~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~ [a3,d4]@2 ~ [a3,d4] ~@2, ~ a3 ~@22", // D5
  M: "[a3,d4] ~@2 [a3,d4] ~@2 a3@2 ~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4]@2 ~ [a3,d4] ~@2, ~@6 d4 ~@17", // D5
  N: "[a3,d4] ~@2 [a3,d4] ~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4]@2 ~ [a3,d4] ~@2 [a3,d4]", // D5
  O: "~@2 [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~ a3 d4 ~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~", // D5
  P: "~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2 d4@2 ~ [a3,d4] ~@2 d4@2 [a3,d4] ~@2 [a3,d4] ~@2, ~@10 a3 ~@5 a3 ~@7", // D5
  Q: "[a3,d4] ~@2 [a3,d4]@2 ~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2 d4@2 ~ [a3,d4] ~ d4 a3 ~ [a3,d4], ~@15 a3 ~@8", // D5
  R: "~@2 d4@2 ~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~@2 d4@2 ~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4], ~@2 a3 ~@11 a3 ~@9", // D5
  S: "~@2 [a3,d4] ~@2 [a3,d4] ~ [a3,d4] ~@2 [a3,d4] ~@2 d4@2 ~ [a3,d4] ~@2 [a3,d4] ~@2 [a3,d4] ~, ~@13 a3 ~@10", // D5
// … 92 more lines

More by Stevie Nicks