Strudelify

Love Will Find a Way

Yes

KeyA majorTempo120 bpm
0:00/0:00
// Love Will Find a Way — Yes
// 120 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 141 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 27.
setcpm(120/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 · electric bass finger
const bass = note(`<
  ~@11 A@3 B@4 C@4 D@2 E F G ~ E F G ~ E F G H E F G I J K L M N O P Q@3 B@4 D@2 R S R S R S R S T U V W X U V Y@2 Z AA
  AB AC Z AA AB AD Z AA AB AE Z AA AF AG AH AI AJ AK@6 U V W X U V AL@3 AM AN AO@2 AM AP AQ@2 AM AR AS U AT AU AV U AT
  AW AX U AT AY@2 U AT AZ@2 U AT BA@2 U BB BC
>`.pickRestart({
  A: "[~@14 a1@4 c#2@2 d2@2 g1@4 c#2@2 d2@2 g2@4 d2@2 c#2@2 a1@4 a1!2 c#2@2 e2 f#2]/3",
  B: "[b1@2 f#2@2 b2@2 a2@2 g2@2 f#2@2 b2@2 a2@6 ~@2 a2!2 a2@2 f#2@2 e2@2 a1@4 c#2@2 d2@2 g1@4 c#2@2 d2@2 g2@4 d2@2 c#2@2 a1@4 a1!2 c#2@2 e2 f#2]/4",
  C: "[b1@2 f#2@2 b2@2 a2@2 g2@2 f#2@2 b2@2 a2@10 a2 f#2 e2 d2 c#2 b1 a1@4 c#2@2 d2@2 g1@4 c#2@2 d2@2 g2@4 d2@2 c#2@2 a1@4 a1!2 c#2@2 e2 f#2]/4",
  D: "[b1 f#2 b2 a2 g2 f#2 b2 a2@9]/2", E: "a1@2 ~@2 f#1@2 ~@2 g1@3 ~@3 g1@2", F: "~@2 f#1@2 ~@2 a1@2 a1@3 ~@3 a1@2",
  G: "b1@2 ~@2 a1@2 ~@2 g1@3 ~@3 a1@2", H: "~@8 a1 ~ a1@2 ~@4", I: "a1", J: "g1!8", K: "a1!8", L: "b1!8", M: "c#2!8",
  N: "d2!8", O: "e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2 f#2", P: "g2!8",
  Q: "[a2@2 a2@2 a2@2 a2@8 a1@4 c#2@2 d2@2 g1@4 c#2@2 d2@2 g2@4 d2@2 c#2@2 a1@4 a1!2 c#2@2 e2 f#2]/3",
  R: "b1 ~ b1 ~ b1 ~@3", S: "~@2 a1 ~ a1@2 ~@2 a1 ~ a1@2 ~@2 a1 ~", T: "a1 ~@4 a1@2 c#2", U: "d2 g1@2 c#2 d2 g2@2 d2",
  V: "c#2@2 a1@4 a1!2 c#2@2 e2 f#2 b1@2 f#2@2", W: "b2 a2 g2 f#2 b2 a2@3", X: "~@2 a2!2 a2@2 f#2@2 e2@2 a1@4 c#2@2",
  Y: "[b2 a2 g2 f#2 b2 a2@9 a1 ~]/2", Z: "f#1@2 ~@2 g1@3 ~@3 g1@2 ~@2 f#1@2", AA: "~@2 a1@2 a1@3 ~@3 a1@2 b1@2 ~@2",
  AB: "a1@2 ~@2 g1@3 ~@3 a1@2 ~@4", AC: "~@6 a1 ~", AD: "~@3 a2@3 a1 ~", AE: "~@4 a1 ~ a1@2 ~@4 a1@2 ~@2",
  AF: "a1@2 ~@2 g1@3 ~@3 g1!2 a1@2 a1@2", AG: "a1@2 a1@2 a1@2 a1@2 a1@2 a1!2 b1@3 ~",
  AH: "~@2 b1@2 b1@3 ~@3 b1@2 c#2@3 ~", AI: "~@2 c#2@2 c#2@3 ~@3 c#2@2 d2@3 ~", AJ: "~@2 d2@2 d2@3 ~@3 d2@2 e2@3 ~",
  AK: "[~@2 e2@2 e2@3 ~@3 e2 f#2 g2@6 g2@2 g2@6 g2@2 a2@6 a2@2 a2@6 a2@2 b2@6 b2@2 b2@6 c#3@8 a3@8 a1@16 a1@4 c#2@2]/6",
  AL: "[b2@2 a2@2 g2@2 f#2@2 b2@2 a2@18 a1@2 c#2@4 ~@2 g1@2 g1@2 g1@2 g1@3 ~ d2@2]/3", AM: "c#2 a1!5 b1!2",
  AN: "a1!2 g1!3 a1!3", AO: "[a1@3 a1 a1@2 a1@2 a1@2 a1@2 a1@2 c#2@4 ~@2 g1@2 g1@2 g1@2 g1@3 ~ d2@2]/2",
  AP: "a1!2 g1!4 a1 e1", AQ: "[~@4 e1@4 f#1@2 a1@2 a1@2 c#2@4 ~@2 g1@2 g1@2 g1@2 g1@3 ~ d2@2]/2", AR: "a1!2 g1!4 a1!2",
  AS: "a1!5 a1@2 c#2", AT: "c#2 a1@2 a1 c#2 e2 b1 f#2", AU: "b2 a2 g2 f#2 b2 a2@2 a2",
  AV: "a2@2 a2!2 a2@2 f#2@2 e2@2 a1@4 c#2@2", AW: "b2@2 a2@2 g2@2 f#2@2 b2@2 a1@5 ~",
  AX: "a2@3 ~@3 e2@4 a1@4 c#2@2, ~ f#2 ~@2", AY: "[b2 a2 g2 f#2 b2 a2@7 ~ a1@2 c#2]/2",
  AZ: "[b2 a2 g2 f#2 b2 a2@4 a2@2 f#2@2 a1@2 c#2]/2",
  BA: "[b2 a2 g2 f#2 b2 a2@2 a2@2 ~@2 e2@2 a1@2 c#2, ~@5 f#2 ~@2]/2", BB: "c#2 a1@7", BC: "~ [e1,a1] ~@2",
})).s("gm_electric_bass_finger").gain(0.48).pan(0.3)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@7 A@3 B@12 C@2 ~@16 D E F E G E D H@3 B@4 I@8 ~@2 J@2 K L@4 M@8 ~@9 N@8 O@8 M@8 ~@5 J@2 K P@16 Q@5
>`.pickRestart({
  A: "[~@14 a2@4 c#3@2 d3@2 g2@4 c#3@2 d3@2 g3@4 d3@2 c#3@2 a2@4 a2!2 c#3@2 e3 f#3]/3",
  B: "[~@4 b3@2 a2@2 ~@4 b3@2 [a2,e3,a3]@15 ~ a2@4 c#3@2 d3@2 g2@4 c#3@2 d3@2 g3@4 d3@2 c#3@2 a2@4 a2!2 c#3@2 e3 f#3, b2@3 ~ g2@3 ~@25, ~ f#3@2 ~@2 f#3@2 ~@25]/4", // A5
  C: "[~@2 b3 a2 ~@2 b3 [a2,e3,a3]@9, b2@3 ~ g2@3 ~@9, ~ f#3@2 ~@2 f#3@2 ~@9]/2", // A5
  D: "[g3,b3]@3 ~@3 [g3,b3]@2 b3@2 ~@2 b3@2 [g3,b3] ~, d4@3 e4@5, ~ a3@2 ~", // G
  E: "[a3,c#4]@3 ~@3 c#4@2 c#4@2 ~@2 c#4@2 [a3,c#4] ~, e4@3 f#4@5, ~ a3 ~@2", // A
  F: "[f#3,b3]@3 ~@3 [f#3,b3]@2 b3@2 ~@2 b3@2 [f#3,b3] ~, d4@3 e4@5, ~ a3@2 ~", // B5
  G: "[f#3,a3]@3 ~@3 f#3@2 a3@2 ~@2 a3@2 [f#3,a3] ~, d4@3 e4@5, ~ a3 ~@2", // F#m
  H: "[[e3,a3,c#4]@4 ~@2 [e3,a3]@2 a3@2 [e3,a3]@2 ~@2 a2@4 c#3@2 d3@2 g2@4 c#3@2 d3@2 g3@4 d3@2 c#3@2 a2@4 a2!2 c#3@2 e3 f#3, ~@3 c#4@2 c#4@2 ~@17]/3", // A A5
  I: "[~@2 b3 a2 ~@2 b3 [a2,e3,a3]@57, b2@3 ~ g2@3 ~@57, ~ f#3@2 ~@2 f#3@2 ~@57]/8", // A5
  J: "[~@7 c#3 d3 g2@2 c#3 d3 g3@2 d3, ~@5 a2@11]/2",
  K: "c#3@2 a2@4 a2 ~ c#3@2 ~ f#3 ~@2 f#3@2, ~@7 a2@9, ~@5 e3@3, ~@3 b2",
  L: "[b3@2 ~@6 b3@2 a2@16 ~@4 c#3@2 d3@2 g2@4 c#3@2 d3@2 g3@4 d3@2 c#3@2 a2@4 a2 ~ c#3@2 ~ f#3 ~@2 f#3@2, ~ a2@4 e3@24 e3@3, ~@4 g2@6 ~@16 a2@24 ~@5 a2@9, ~@3 f#3@2 a3@27, ~@15 b2]/4",
  M: "[b3 ~@3 b3 [a2,e3,a3]@59, ~ a2@4 ~@59, ~@2 g2@3 ~@59, ~@3 f#3@2 ~@59]/8", // A5
  N: "[~@12 [g3,b3]@3 ~@3 [g3,b3]@2 b3@2 ~@2 b3@2 [g3,b3] ~ [a3,c#4]@4 ~@2 c#4@2 c#4@2 ~@2 c#4@2 c#4 ~ [f#3,b3]@3 ~@3 [f#3,b3]@2 b3@2 ~@2 b3@2 [f#3,b3] ~ [a3,c#4]@4 ~@2 c#4@2 c#4@2 ~@2 c#4@2 [a3,c#4]@2 [f#3,a3]@4 ~@2 f#3@2 a3@2 ~@2 a3@2 [f#3,a3]@2 [a3,c#4]@4 ~@2 c#4@2 c#4@2 ~@2 c#4@2 c#4 ~ [g3,b3]@3 ~@3 [g3,b3]@2 b3@2 ~@2 b3@2 [e3,a3,e4]@6, ~@6 d4@3 e4@5 e4@3 f#4@5 d4@3 e4@5 e4@3 f#4@5 d4@3 e4@5 e4@3 f#4@5 d4@3 e4@4 ~@3, ~@8 a3@6 ~@2 a3@2 ~@3 a3@3 a3@6 ~@2 a3@2 ~@6 a3@2 ~@6 a3@2 ~@3 a3@3 a3@5 ~@3]/8", // G A B5 A F#m A G A5
  O: "[~@2 [a3,c#4]@2 [a3,c#4]@2 [a3,c#4]@4 a2@16 ~@4 c#3@2 d3@2 g2@4 c#3@2 d3@2 g3@4 d3@2 c#3@2 a2@4 a2 ~ c#3@2 ~ f#3 ~@4 b3@2 ~@6 b3@2 a2@16 ~@4 c#3@2 d3@2 g2@4 c#3@2 d3@2 g3@4 d3@2 c#3@2 a2@4 a2 ~ c#3@2 ~ f#3 ~@2 f#3@2, ~ f#4@4 a3@30 f#3@2 a3@27, ~@5 e3@24 e3@8 e3@24 e3@3, ~@26 a2@24 ~@5 a2@7 f#3@4 ~@2 g2@6 ~@50 b2@4, ~@60 b2@6 a2@8 ~@16 a2@24 ~@5 a2@9]/8", // A
  P: "[b3@2 ~@6 b3@2 a2@16 ~@4 c#3@2 d3@2 g2@4 c#3@2 d3@2 g3@4 d3@2 c#3@2 a2@4 a2 ~ c#3@2 ~ f#3 ~@4 b3@2 ~@6 b3@2 a2@16 ~@4 c#3@2 d3@2 g2@4 c#3@2 d3@2 g3@4 d3@2 c#3@2 a2@4 a2 ~ c#3@2 ~ f#3 ~@2 f#3@2, ~ a2@4 e3@24 e3@6 f#3@2 e3@24 e3@3, ~@4 g2@6 ~@16 a2@24 ~@5 a2@7 f#3@4 ~@2 g2@6 ~@50 b2@4, ~@3 f#3@2 a3@32 a3@27, ~@60 b2@6 a2@8 ~@16 a2@24 ~@5 a2@9]/8",
  Q: "[b3 ~@3 b3 a2@8 ~@2 c#3 d3 g2@2 c#3 d3 g3@2 d3 c#3 ~@9 [c#4,e4] ~@5, ~ a2@4 a3@20 a3@10 ~@5, ~@2 g2@3 ~@8 a2@21 ~@6, ~@3 f#3@2 e3@29 ~@6]/5", // C#m
})).s("gm_acoustic_guitar_steel").gain(0.35).pan(0.2)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note("<~@40 A B C B D B A E ~@41 F G H G I G F J ~@44>".pickRestart({
  A: "~@2 g3 ~ g3 [g3,b3] g3 ~", B: "~@4 a3 [a3,c#4] a3 ~", C: "~@2 f#3 ~ f#3 [f#3,b3] f#3 ~",
  D: "~@2 f#3 ~ f#3 [f#3,a3] f#3 ~", E: "~@4 [e3,a3,c#4]@2 ~@2 e3@2 ~@2 [e3,a3] ~@3", F: "g3 ~ g3 [g3,b3] g3 ~@3",
  G: "~@2 a3 [a3,c#4] a3 ~@3", H: "f#3 ~ f#3 [f#3,b3] f#3 ~@3", I: "f#3 ~ f#3 [f#3,a3] f#3 ~@3", J: "e3@5 ~@3, a3 ~@7",
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0.2)

// chords · lead 2 sawtooth
const lead_2_sawtooth = note(`<
  ~@24 A B C@2 D E F@2 G E H I J@2 H I ~@33 K L M ~ N O P ~ Q R S ~ T U V ~@53
>`.pickRestart({
  A: "~@10 d5!5 ~", B: "d5@3 ~ a4 ~ a4@5 ~@5", C: "[~@7 d5!2 ~ d5@3 ~ e5@6 ~@12]/2", D: "~@10 d5!3 ~ d5 ~",
  E: "d5@3 ~ a4 ~ a4@4 ~@6", F: "[~@6 d5 d5@3 d5@3 ~ e5@6 ~@12]/2", G: "~@10 d5 ~ d5!3 ~", H: "~@6 d5 ~ d5 ~ d5 ~ d5@4",
  I: "~@2 d5@3 ~@11", J: "[~@10 d5 ~ d5 ~ d5@5 ~ a4 ~ a4@4 ~@6]/2", K: "~@6 d5!5 ~ d5@3 ~", L: "a4 ~ a4@5 ~@9",
  M: "~@3 [d5,g5]!2 ~ [d5,g5]@3 ~ [e5,a5]@6", N: "~@6 [d5,g5]!3 ~ [d5,g5] ~ [d5,g5]@3 ~", O: "[a4,e5] ~ [a4,e5]@4 ~@10",
  P: "~@2 [d5,g5,b5] [d5,g5,b5]@3 [d5,g5,a5]@3 ~ [e5,a5,b5]@6", // G Dsus4 Esus4
  Q: "~@6 [d5,g5,d6] ~ [d5,g5,c#6]!2 [d5,g5,b5] ~ [d5,g5,a5]@3 ~", R: "[a4,f#5] ~ [a4,e5]@4 ~@10",
  S: "~@2 [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5]@5 ~ [d5,f5,a#5]@2", // G A#
  T: "~@6 [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5]@5 ~", U: "[a4,e5,a5] ~ [a4,e5,a5]@4 ~@10",
  V: "~@2 [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,a5]@5 ~ [d5,f5]@2", // G Dsus4 Dm
})).s("gm_lead_2_sawtooth").gain(0.45)

// chords · electric guitar clean
const electric_guitar_clean = note("<~@139 A@2>".pickRestart({
  A: "[~ e3@9 [a2,a3] ~@5]/2", // A
})).s("gm_electric_guitar_clean").gain(0.35).pan(0.8)

// bass · contrabass
const bass_2 = note("<A B C D E@2 ~@135>".pickRestart({
  A: "~@13 b2 ~ f#3", B: "~ d3 ~ g2@6 ~@5 a2 b2", C: "c#3 d3 e3 ~ a2 ~ a3@3 ~ e3 ~@3 b3@2",
  D: "~@2 f#3@4 g3 ~ g2@6 a2@2", E: "[~@3 b2@2 ~@2 c#3@3 ~ e3@3 ~ f#3@4 ~ f#3 d3 ~ g3 f#3 e3 d3 c#3 ~ b2 ~@2]/2",
})).s("gm_contrabass").gain(0.25).pan(0.6)

// other · cello
const cello = note("<~ A@2 B C D ~@135>".pickRestart({
  A: "[~@6 b3 ~ b3 ~ b3 ~ b3 ~ c#4@4 a3@4 e4@4 c#4@4 b3 c#4]/2", B: "d4 c#4 b3 ~ a3 ~ g3@4 b3 ~ a3 ~ a3 ~",
  C: "~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ b3", D: "c#4 d4 c#4 b3 ~ a3 ~ g3 ~ d4 ~ c#4 ~ c#4 ~@2",
})).s("gm_cello").gain(0.3).pan(0.4)

// other · violin
const violin = note("<A B C@2 D@2 ~@135>".pickRestart({
  A: "~@13 b4 c#5 d5", B: "c#5 b4 c#5 d5@10 ~ c#5 d5", C: "[e5@2 f#5 g5 a5@6 e5 d5 c#5@2 d5@12 ~@4 a4 ~]/2",
  D: "[~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ b4@4 ~ d5!2 b4 ~ d5!2 b4!2 ~ a4 [b4,c#5] d5]/2", // Bsus2
})).s("gm_violin").gain(0.31).pan(0.2)

// other · viola
const viola = note("<A B@2 C D@2 ~@135>".pickRestart({
  A: "~@13 b4 ~ d5", B: "[~ b4 ~ a4 ~ g4 ~@2 g4 ~ b4 ~ a4@6 ~@4 c#5 d5 e5@2 c#5 b4 a4@2 ~@2]/2",
  C: "f#5 g5 f#5 ~ b5 ~@2 a5 g5 f#5 e5 d5 c#5@2 ~@2",
  D: "[~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ b4@4 ~ d5!2 b4 ~ d5!2 b4!2 ~ a4 [b4,c#5] d5]/2", // Bsus2
})).s("gm_viola").gain(0.31).pan(0.6)

// other · tremolo strings
const tremolo_strings = note("<~@5 A@2 B ~@133>".pickRestart({
  A: "[~@15 c#4@16 ~]/2", B: "a3 g3",
})).s("gm_tremolo_strings").gain(0.3).pan(0.4)

// other · tremolo strings
const tremolo_strings_2 = note("<~@5 A@2 B ~@133>".pickRestart({
  A: "[~@15 a2@16 ~]/2", B: "a2 g2",
})).s("gm_tremolo_strings").gain(0.22).pan(0.6)

// other · tremolo strings
const tremolo_strings_3 = note("<~@5 A@2 B ~@133>".pickRestart({
  A: "[~@15 e5@8 ~ a5@8]/2", B: "[b4,b5] [g4,g5]",
})).s("gm_tremolo_strings").gain(0.35).pan(0.2)

// other · tremolo strings
const tremolo_strings_4 = note("<~@5 A@2 B ~@133>".pickRestart({
  A: "[~@15 a4@16 ~]/2", B: "[a4,a5] [g4,g5]",
})).s("gm_tremolo_strings").gain(0.27).pan(0.6)

// chords · acoustic guitar steel
const acoustic_guitar_steel_3 = note(`<
  ~@11 A@3 B@8 C@2 D E F G D E F G D E F G D E F G H I J K L I J M@2 N O@3 N P@2 ~@8 Q R S T U R S T V W X Y Z W X Y Z W
  X Y Z W X Y AA AB AC AD AE AF AC AG AH@2 AI AJ AK AL AI AJ AK AM ~@11 AN AI AJ AK AL AI AJ AK AL AI AJ AK AL AI AJ AK
  AL AO AP AK AL AO AQ@2
>`.pickRestart({
  A: "[~@7 [e3,a3,d4]@2 [e3,a3,d4] [e3,a3,c#4] [e3,g3,d4]@2 [e3,g3,c#4] [e3,g3,d4] [e3,g3,d4]@2 [e3,g3,d4]!2 [e3,a3,c#4]@2 [e3,a3,c#4] [e3,a3,b3] [e3,a3,c#4]]/3", // Dsus2 A Em7 C#dim Em7 A Esus4 A
  B: "[[f#3,b3,d4]!3 [g3,b3,d4]@2 [g3,b3,d4]!2 [e3,a3,d4]@2 [e3,a3,d4]!2 [e3,a3]!4 [e3,a3,d4]@2 [e3,a3,d4] [e3,a3,c#4] [e3,g3,d4]@2 [e3,g3,c#4] [e3,g3,d4] [e3,g3,d4]@2 [e3,g3,d4]!2 [e3,a3,c#4]@2 [e3,a3,c#4] [e3,a3,b3] [e3,a3,c#4], ~@11 c#4@2 c#4@2 ~@17]/4", // Bm G Dsus2 A5 Dsus2 A Em7 C#dim …
  C: "[[f#3,b3,d4]@2 [f#3,b3,d4]@2 [f#3,b3,d4]@2 [g3,b3,d4]@4 [g3,b3,d4]@2 [g3,b3,d4]@2 [e3,a3,d4]@4 [e3,a3,d4]@2 [e3,a3,d4]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@3 ~, ~@11 c#4@2 ~@3]/2", // Bm G Dsus2 A5 A
  D: "[a3,c#4,e4] ~ [a3,c#4,e4] ~ [b3,d4,g4]!4", E: "[b3,d4,g4]!4 [a3,c#4,e4] ~ [a3,c#4,e4]!2",
  F: "[b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,g4]@2 [b3,d4,g4]!2", G: "[a3,d4,e4]!3 a3!2 [a3,c#4,e4]!3, ~@3 [c#4,e4]@2 ~@3",
  H: "[g3,b3,d4]@2 [g3,b3,d4] [g3,b3]!2 [g3,b3,d4]!3, ~@3 d4@2 ~@3", // G
  I: "[a3,c#4,e4]@2 [a3,c#4,e4] [a3,c#4]!2 [a3,c#4,e4]!3, ~@3 e4@2 ~@3", // A
  J: "[b3,d4,f#4]@2 [b3,d4,f#4] [b3,d4]!2 [b3,d4,f#4]!3, ~@3 f#4@2 ~@3", // Bm
  K: "[a3,c#4,e4]@2 [a3,c#4,e4] a3!2 [a3,c#4,e4]!3, ~@3 [c#4,e4]@2 ~@3", // A C#m
  L: "[f#3,a3,d4]@2 [f#3,a3,d4] [f#3,a3]!2 [f#3,a3,d4]!3, ~@3 d4@2 ~@3", // D F#m D
  M: "[[a3,c#4,e4]@2 [a3,c#4,e4] [a3,c#4]!4 [e3,a3,c#4]@2 [e3,a3,c#4] [e3,a3,b3] [g3,b3]!2 [g3,b3,d4]!3, ~@3 e4@2 e4@2 ~@4 d4@2 ~@3]/2", // A Esus4 G
  N: "[g3,b3,d4]!2 [g3,b3,e4] [e3,a3]!2 [e3,a3,c#4] [e3,a3,b3] [e3,a3,c#4], ~@3 c#4@2 ~@3", // G Em A5 A Esus4 A
  O: "[[f#3,b3,d4]!3 [g3,b3]!2 [g3,b3,d4]!2 [e3,a3,d4]@2 [e3,a3,d4]!2 [e3,a3]!4 [e3,a3,c#4]@2 [e3,a3,c#4] [e3,a3,b3] [g3,b3]!2 [g3,b3,d4]!3, ~@3 d4@2 ~@6 c#4@2 c#4@2 ~@4 d4@2 ~@3]/3", // Bm G Dsus2 A5 A Esus4 G
  P: "[[f#3,b3,d4]!3 [g3,b3]!2 [g3,b3,d4]!2 [e3,a3,d4]@2 [e3,a3,d4]!2 [e3,a3]!2 [e3,a3,c#4]@3, ~@3 d4@2 ~@6 c#4@2 ~@3]/2", // Bm G Dsus2 A5 A
  Q: "~@5 [e3,a3,d4]@2 [e3,a3,d4]", R: "[e3,a3,c#4] [e3,g3,d4]@2 [e3,g3,c#4] [e3,g3,d4] [e3,g3,d4]@2 [e3,g3,d4]",
  S: "[e3,g3,d4] [e3,a3,c#4]@2 [e3,a3,c#4] [e3,a3,b3] [e3,a3,c#4] [f#3,b3,d4]!2", // Em7 A Esus4 A Bm
  T: "[f#3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]!2 [e3,a3,d4]@2 [e3,a3,d4]", // Bm G Dsus2
  U: "[e3,a3,d4] [e3,a3]!4 [e3,a3,d4]@2 [e3,a3,d4], ~ c#4@2 c#4@2 ~@3", // Dsus2 A5 Dsus2
  V: "[e3,a3,d4]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@3 ~ [a3,c#4,e4]@2 ~@2, ~ c#4@2 ~@5", // Dsus2 A5 A
  W: "[a3,c#4,e4] ~ [b3,d4,g4]!6", X: "[b3,d4,g4]!2 [a3,c#4,e4] ~ [a3,c#4,e4]!2 [b3,d4,f#4] ~",
  Y: "[b3,d4,f#4] ~ [b3,d4,g4]@2 [b3,d4,g4]!2 [a3,d4,e4]!2", Z: "[a3,d4,e4] a3!2 [a3,c#4,e4]!4 ~, ~ [c#4,e4]@2 ~@5",
  AA: "[a3,d4,e4] a3!2 [a3,c#4,e4]!3 [g3,b3,d4]@2, ~ [c#4,e4]@2 ~@5", // Asus4 A G C#m
  AB: "[g3,b3,d4] [g3,b3]!2 [g3,b3,d4]!3 [a3,c#4,e4]@2, ~ d4@2 ~@5", // G A
  AC: "[a3,c#4,e4] [a3,c#4]!2 [a3,c#4,e4]!3 [b3,d4,f#4]@2, ~ e4@2 ~@5", // A Bm
  AD: "[b3,d4,f#4] [b3,d4]!2 [b3,d4,f#4]!3 [a3,c#4,e4]@2, ~ f#4@2 ~@5", // Bm A
  AE: "[a3,c#4,e4] a3!2 [a3,c#4,e4]!3 [f#3,a3,d4]@2, ~ [c#4,e4]@2 ~@5", // A D C#m
  AF: "[f#3,a3,d4] [f#3,a3]!2 [f#3,a3,d4]!3 [a3,c#4,e4]@2, ~ d4@2 ~@5", // D F#m D A
  AG: "[b3,d4,f#4] [b3,d4]!2 [b3,d4,f#4]!2 [a3,c#4,e4]@3, ~ f#4@2 ~@5", // Bm A
  AH: "[[a3,c#4,e4] [a3,c#4]!4 [a3,c#4,e4]@8 [e3,a3,c#4]@2 [e3,a3,c#4], ~ e4@2 e4@2 ~@11]/2", // A
  AI: "[e3,a3,b3] [g3,b3]!2 [g3,b3,d4]!5, ~ d4@2 ~@5", // Esus4 G
  AJ: "[g3,b3,e4] [e3,a3]!2 [e3,a3,c#4] [e3,a3,b3] [e3,a3,c#4] [f#3,b3,d4]!2, ~ c#4@2 ~@5", // Em A5 A Esus4 A Bm
  AK: "[f#3,b3,d4] [g3,b3]!2 [g3,b3,d4]!2 [e3,a3,d4]@2 [e3,a3,d4], ~ d4@2 ~@5", // Bm G Dsus2
  AL: "[e3,a3,d4] [e3,a3]!4 [e3,a3,c#4]@2 [e3,a3,c#4], ~ c#4@2 c#4@2 ~@3", // Dsus2 A5 A
  AM: "[e3,a3,d4] [e3,a3]!4 [e3,a3,c#4] ~@2, ~ c#4@2 c#4@2 ~@3", AN: "~@5 [e3,a3,c#4]@2 [e3,a3,c#4]",
  AO: "[e3,a3,b3] [g3,b3,d4]@2 [g3,b3,d4]!2 [g3,b3,d4]@2 [g3,b3,d4]", // Esus4 G
  AP: "[g3,b3,e4] [e3,a3,c#4]@2 [e3,a3,c#4] [e3,a3,b3] [e3,a3,c#4] [f#3,b3,d4]!2", // Em A Esus4 A Bm
  AQ: "[[g3,b3,e4] [e3,a3,c#4]@9 [a2,e3,a3,c#4,e4]@2 ~@4]/2", // Em A
})).s("gm_acoustic_guitar_steel").gain(0.18).pan(0.6)

// other · distortion guitar
const distortion_guitar = note(`<
  ~@15 A@2 ~@2 B@3 C@2 ~@7 D@2 ~@5 E@2 ~@7 F@3 ~@17 G@6 ~@3 H@2 ~@2 I@2 ~@2 J@2 ~ K@2 ~@7 L@4 M@4 ~ N@3 O@2 ~@4 P Q R@2
  ~@2 S@7 ~ T@4 ~ U@2 ~@2 V@4
>`.pickRestart({
  A: "[~@4 c#4@3 a3@6 ~@3]/2", B: "[~ e5@2 b4@2 [f#4,f#5]@2 [d4,d5]@2 [a4,a5]@2 [e4,e5]@11 ~@2, ~ e4@4 ~@19]/3",
  C: "[~ e4@2 b3@2 a4@2 e4@7 ~@2]/2", D: "[~@3 a4@13]/2", E: "[~@7 [a2,a3]@7 ~@2]/2",
  F: "[~ [a3,c#4]@6 [a4,c#5]@13 ~@4]/3", // A
  G: "[~@7 e5@2 b4@2 [f#4,f#5]@2 [d4,d5]@2 [a4,a5]@2 [e4,e5]@11 ~@3 e4@2 b3@2 a4@2 e4@9 ~@2, ~@7 e4@4 ~@37]/6", // F# D A E
  H: "[~@10 [e3,e4]!2 [g3,d4,g4]@16 ~@4]/2", I: "[~@5 [a2,a3]@3 [c#3,c#4]@4 [c#3,c#4]@12 ~@8]/2",
  J: "[~@4 [f#3,c#4,f#4]@2 ~ [f#3,c#4,f#4] ~@2 [g3,d4,g4]@18 ~@4]/2", K: "[~@5 [a3,a4]@9 ~@2]/2",
  L: "[~@5 [a3,c#4]@8 [a4,c#5]@13 ~@6]/4", // A
  M: "[~@7 e5@2 b4@2 [f#4,f#5]@2 [d4,d5]@2 [a4,a5]@2 [e4,e5]@13 ~@2, ~@7 e4@4 ~@21]/4", // F# D A E
  N: "[~@12 [g4,g#4,g5,g#5] ~@33 [g4,g5] [f#4,f#5], ~@6 [a4,a5]@17 ~]/3", // G#maj7 G F# A
  O: "[[g4,g5]@2 [f#4,f#5] [e4,e5] [f#4,f#5]@2 [e4,e5] [d4,d5] [f#4,f#5]@2 [e4,e5]@18 [e4,e5] ~@3]/2", // G F# E F# E D F# E
  P: "~@4 a3 ~ c#4 a3@3 g3 ~@3 e3 ~", Q: "~ a3 ~ a3 c#4 ~ d4 c#4 d4@4 ~ e3@2 ~",
  R: "[a3 ~ a3!2 c#4 e4 f#4 e4@3 f#4 ~ e4@12 ~@8]/2",
  S: "[~@7 e5@2 b4@2 [f#4,f#5]@2 [d4,d5]@2 [a4,a5]@2 [e4,e5]@11 ~@3 [e4,e5]@2 [b3,b4]@2 [a4,a5]@2 [e4,e5]@13 ~@6, ~@7 e4@4 ~@45]/7", // F# D A E B A E
  T: "[~@7 [e4,e5]@2 [b3,b4]@2 [a4,a5]@2 [e4,e5]@13 ~@6]/4", U: "[~@2 c#4@3 [a2,a3]@6 ~@5]/2",
// … 165 more lines

More by Yes