Strudelify

Friends

Led Zeppelin

KeyC majorTempo70 bpm
0:00/0:00
// Friends — Led Zeppelin
// 70 bpm, 2/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 6 "Strings II" named as a string part, played on string ensemble 1 (its pad metallic patch is not one)
// note: duplicate parts dropped: ch 2 "Acoustic Guitar I" acoustic guitar steel (copy of ch 7 "Acoustic Guitar II" acoustic guitar steel)
// note: Full arrangement: all 167 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(70/2)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 guitar muted · "Bass Guitar"
const bass = note(`<
  ~@8 A B@6 C D E F G@8 H I J K@2 L@2 M@2 N@2 K@2 L@2 M@2 N@2 K@2 L@2 O@2 P@2 B@6 C Q E F R@8 H I S K@2 L@2 M@2 N@2 K@2
  L@2 M@2 N@2 T@2 L@2 O@2 P@2 B@6 U Q E V W@8 H I X Y@40 ~@7
>`.pickRestart({
  A: "~@21 c3@3 c3@5 c3@2 ~", B: "[c3@53 c3@3 c3@5 c3@2 ~]/2", C: "c3@7 ~", D: "c2@13 ~@3 d#2@13 ~@3",
  E: "d2@13 ~@3 f2@13 ~@3", F: "e2@13 ~@3 g2@10 ~ f#2@5",
  G: "[f#2@5 c3@3 c3@5 c3@2 ~ c3@53 c3@3 c3@5 c3@2 ~ c3@53 c3@3 c3@5 c3@2 ~ c3@53 c3@3 c3@5 c3@2 ~ c3@28 ~@4 c2@13 ~@3]/8",
  H: "d#2@13 ~@3 d2@13 ~@3", I: "f2@13 ~@3 e2@13 ~@3", J: "g2@5 c3@5 ~ c3@5 f#2@8 c3@4 c3@4", K: "[c2,c3]/2",
  L: "[[f#2,f#3]@3 [g2,g3]]/2", M: "[[a2,a3]@3 [e2,e3]]/2", N: "[[f#2,f#3]@3 [c#2,c#3]]/2",
  O: "[[a2,a3] [b2,b3]@2 [e2,e3]]/2", P: "[[f#2,f#3]@48 f#3@5 c3@3 c3@5 c3@2 ~]/2", Q: "c3@13 ~@3 d#2@13 ~@3",
  R: "[f#2@5 c2@3 c2@5 c2@2 ~ c3@53 c3@3 c3@5 c3@2 ~ c3@53 c3@3 c3@5 c3@2 ~ c3@53 c3@3 c3@5 c3@2 ~ c3@28 ~@4 c3@13 ~@3]/8",
  S: "g2@10 ~ f#2@5 f#2@5 c3@3 c3@5 c3@2 ~", T: "[[c2,c3]@3 [g2,g3]]/2", U: "c3@24 c3@5 c3@2 ~",
  V: "e2@13 ~@3 g2@5 g2@5 ~ f#2@5",
  W: "[f#2@5 c3@3 c3@5 c3@2 ~ c3@53 c3@3 c3@5 c3@2 ~ c3@53 c3@3 c3@5 c3@2 ~ c3@53 c3@3 c3@5 c3@2 ~ c3@24 c3@5 c3@2 ~ c3@13 ~@3]/8",
  X: "g2@5 g2@5 ~ f#2@5 f#2@5 c3@3 c3@5 c3@2 ~", Y: "[[c2,c3]@15 ~]/2",
})).s("gm_electric_guitar_muted").gain(0.29).pan(0.6)

// chords · string ensemble 1 · "Strings I"
const string_ensemble_1 = note(`<
  ~@30 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 E@2 F@2 G@2 ~@21 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 E@2 F@2 G@2 ~@21 H@8 ~@8
  I@2 J@2 I@2 J@2 ~@23
>`.pickRestart({
  A: "[c4,e4,g4]/2", B: "[[f#4,a#4,c#5]@3 [g4,b4,d5]]/2", C: "[[a4,c#5,e5]@3 [e4,g#4,c5]]/2",
  D: "[[f#4,a#4,c#5]@3 [c#4,f#4,g#4]]/2", E: "[[f#4,a#4,c#5]@3 [e4,a#4,b4]]/2",
  F: "[[a4,c#5,e5] [b4,d#5,f#5]@2 [e4,g#4,b4]]/2", G: "[[f#4,a#4,c#5]@48 f#4@5 c#4@3 c#4@5 c#4@2 ~]/2",
  H: "[c4,e4,g4]/8", I: "[a#5@15 ~]/2", J: "[c6@15 ~]/2",
})).s("gm_string_ensemble_1").gain(0.28).pan(0.3)

// chords · string ensemble 1 · "Strings II"
const string_ensemble_1_2 = note(`<
  ~@9 A B C B C B D E F G H I J I J I J K L M N O@2 P Q R S T U V@2 W Q X S T U Y@2 W Q Z S T AA AB B C B C B D E F G H
  I J I J I J K L M AC AD AE W Q X S T U V@2 W Q X S T U V@2 W Q Z S T AA C B C B C B D E F G H I J I J I J K L M AC AF
  AG AF AH AI AJ AK AL AM AN AO AP AI AJ AK AL AM AQ AO AR AS AT AU AV AW AX AY AZ BA BB BC@2 BD BE BD BF BD BG@3 ~@7
>`.pickRestart({
  A: "[c3,c4,g4,c5]@5 [c5,e5]@3 [d#5,g5]@5 [c5,e5]@3 [d5,f#5]@5 [c5,e5]@3 [c5,e5]@5 [c5,e5]@3", // C5 C D# C D C
  B: "[d5,f#5]@5 [c5,e5]@3 [d5,f#5]@5 [c5,e5]@2 ~ [d5,f#5]@5 [d#5,g5]@3 [c3,c4,g4,c5]@5 [c3,c4,g4,c5]@2 ~", // D C D C D D# C5
  C: "[c3,c4,g4,c5]@5 [c5,e5]@3 [d#5,g5]@5 [c5,e5]@2 ~ [d5,f#5]@5 [c5,e5]@3 [c5,e5]@5 [c5,e5]@2 ~", // C5 C D# C D C
  D: "[c3,c4,g4,c5]@5 [c5,e5]@3 [d#5,g5]@5 [c5,e5]@2 ~ [d5,f#5]@5 [c5,e5]@3 [c3,c4,g4,c5]@5 [c3,c4,g4,c5]@2 ~", // C5 C D# C D C C5
  E: "[c4,g4,c5,f#5]@5 [c4,g4,c5]@5 ~ [c4,g4,c5]@5 [d#3,d#4,d#5]@5 [c4,g4,c5]@5 ~ [c4,g4,c5]@5", // C C5 D# C5
  F: "[d3,d4,d5]@5 [c4,g4,c5]@5 ~ [c4,g4,c5]@5 [f#3,f#4,f#5]@5 [c4,g4,c5]@5 ~ [c4,g4,c5]@5", // D C5 F# C5
  G: "[e3,e4,e5]@5 [c4,g4,c5]@5 ~ [c4,g4,c5]@5 [g3,g4,g5]@5 [c4,g4,c5]@5 ~ [f#3,f#4,f#5]@5", // E C5 G C5 F#
  H: "[f#3,f#4,f#5]@5 [c3,c4,g4,c5]@3 [c3,c4,g4,c5]@5 [c3,c4,g4,c5]@2 ~ [c3,c4,g4,c5]@5 [c5,e5]@3 [d#5,g5]@5 [c5,e5]@2 ~", // F# C5 C D# C
  I: "[d5,f#5]@5 [c5,e5]@3 [c5,e5]@5 [c5,e5]@2 ~ [d5,f#5]@5 [c5,e5]@3 [d5,f#5]@5 [c5,e5]@2 ~", // D C D C D C
  J: "[d5,f#5]@5 [d#5,g5]@3 [c3,c4,g4,c5]@5 [c3,c4,g4,c5]@2 ~ [c3,c4,g4,c5]@5 [c5,e5]@3 [d#5,g5]@5 [c5,e5]@2 ~", // D D# C5 C D# C
  K: "[d5,f#5]@5 [c5,e5]@3 [c3,c4,g4,c5]@5 [c3,c4,g4,c5]@2 ~ [c4,g4,c5,f#5]@5 [c4,g4,c5]@5 ~ [c4,g4,c5]@5", // D C C5 C C5
  L: "[d#3,d#4,d#5]@5 [c4,g4,c5]@5 ~ [c4,g4,c5]@5 [d3,d4,d5]@5 [c4,g4,c5]@5 ~ [c4,g4,c5]@5", // D# C5 D C5
  M: "[f#3,f#4,f#5]@5 [c4,g4,c5]@5 ~ [c4,g4,c5]@5 [e3,e4,e5]@5 [c4,g4,c5]@5 ~ [c4,g4,c5]@5", // F# C5 E C5
  N: "[g3,g4,g5]@5 [c4,g4,c5]@5 ~ [c4,g4,c5]@5 [f#3,f#4,f#5]@8 [c4,g4,c5]@4 [c4,g4,c5]@4", // G C5 F# C5
  O: "[[c3,c4,g4,c5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@2 ~ [g4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [c4,g4,c5,e5]@8 [c3,c4,g4,c5]@3 [c3,c4,g4,c5]@5 [c3,c4,g4,c5]@2 ~ [c3,e4,g4,c5,e5]@5 [c3,e4,g4,c5]@3 [c3,e4,g4,c5]@5 [c3,e4,g4,c5]@3]/2", // C5 C C5 C
  P: "[f#3,a3,f#4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@2 ~", // F#m7b5 C
  Q: "[g4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@2 ~ [g3,g4,c5,e5]@8 [g4,c5,e5]@5 [g4,c5,e5]@2 ~", // C
  R: "[a3,g4,a4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@2 ~ [g4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@3", // Am7 C
  S: "[g4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@8 [e3,e4,g4]@5 [g4,b4,e5]@3 [g4,b4,e5]@5 [g4,b4,e5]@2 ~", // C Em
  T: "[f#3,f#4,g4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@2 ~ [g4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@2 ~", // C
  U: "[g4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@2 ~ [f#3,c#4,g4,c5,e5]@8 [g4,c#5,e5]@5 [g4,c#5,e5]@2 ~", // C C#dim
  V: "[[c3,c4,g4,c5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@2 ~ [g4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [c4,g4,c5,e5]@8 [c3,c4,g4,c5]@3 [c3,c4,g4,c5]@5 [c3,c4,g4,c5]@2 ~ [c3,e4,g4,c5,e5]@5 [c3,e4,g4,c5]@3 [c3,e4,g4,c5]@5 [c3,e4,g4,c5]@2 ~]/2", // C5 C C5 C
  W: "[f#3,a3,f#4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@2 ~ [g4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@2 ~", // F#m7b5 C
  X: "[a3,g4,a4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@2 ~ [g4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@2 ~", // Am7 C
  Y: "[[c3,c4,g4,c5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@2 ~ [g4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [c4,g4,c5,e5]@8 [c3,c4,g4,c5]@3 [c3,c4,g4,c5]@5 [c3,c4,g4,c5]@3 [c3,e4,g4,c5,e5]@5 [c3,e4,g4,c5]@3 [c3,e4,g4,c5]@5 [c3,e4,g4,c5]@2 ~]/2", // C5 C C5 C
  Z: "[a3,g4,a4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@2 ~ [b3,g4,b4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@2 ~", // Am7 C Cmaj7 C
  AA: "[g4,c5,e5]@5 [g4,c5,e5]@3 [g4,c5,e5]@5 [g4,c5,e5]@2 ~ [g4,c5,e5]@5 [c3,c4,g4,c5,e5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@2 ~", // C
  AB: "[c3,c4,g4,c5]@5 [c5,e5]@3 [d#5,g5]@5 [c5,e5]@3 [d5,f#5]@5 [c5,e5]@3 [c5,e5]@5 [c5,e5]@2 ~", // C5 C D# C D C
  AC: "[g3,g4,g5]@5 [c4,g4,c5]@5 ~ [f#3,f#4,f#5]@5 [f#3,f#4,f#5]@5 [c3,c4,g4,c5]@3 [c3,c4,g4,c5]@5 [c3,c4,g4,c5]@2 ~", // G C5 F# C5
  AD: "[c3,c4,g4,c5,f#5]@5 [c4,g4,c5,f#5]@3 [c4,g4,c5,f#5]@5 [c4,g4,c5,f#5]@2 ~ [c4,g4,c5,f#5]@5 [c4,g4,c5,f#5]@3 [c4,g4,c5,f#5]@5 [c4,g4,c5,f#5]@2 ~", // C
  AE: "[c4,g4,c5,f#5]@5 [c4,g4,c5,f#5]@3 [c4,g4,c5,f#5]@5 [c4,g4,c5,f#5]@2 ~ [c3,e4,g4,c5,e5]@5 [c3,e4,g4,c5,e5]@3 [c3,e4,g4,c5,e5]@5 [c3,e4,g4,c5,e5]@2 ~", // C
  AF: "[c3,c4,g4,c5]@5 [c3,c4,g4,c5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@2 ~ [c3,c4,g4,c5]@5 [c3,c4,g4,c5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@2 ~", // C5 C C5 C
  AG: "[c3,c4,g4,c5]@5 [c3,c4,g4,c5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@2 ~ [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@2 ~", // C5 C
  AH: "[c3,c4,g4,c5]@5 [c3,c4,g4,c5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@2 ~ [c3,c4,d#4,g4,c5,e5]@5 [c3,c4,d#4,g4,c5,e5]@3 [c3,c4,d#4,g4,c5,e5]@5 [c3,c4,d#4,g4,c5,e5]@2 ~", // C5 C
  AI: "[c3,c4,d4,g4,c5,e5]@5 [c3,c4,d4,g4,c5,e5]@3 [c3,c4,d4,g4,c5,e5]@5 [c3,c4,d4,g4,c5,e5]@2 ~ [c3,c4,d4,g4,c5,e5]@5 [c3,c4,d4,g4,c5,e5]@3 [c3,c4,d4,g4,c5,e5]@5 [c3,c4,d4,g4,c5,e5]@2 ~", // C
  AJ: "[c3,c4,d4,g4,c5,e5]@5 [c3,c4,d4,g4,c5,e5]@3 [c3,c4,d4,g4,c5,e5]@5 [c3,c4,d4,g4,c5,e5]@2 ~ [c3,c4,f4,g4,c5,e5]@5 [c3,c4,f4,g4,c5,e5]@3 [c3,c4,f4,g4,c5,e5]@5 [c3,c4,f4,g4,c5,e5]@2 ~", // C
  AK: "[c3,c4,e4,g4,c5,e5]@5 [c3,c4,e4,g4,c5,e5]@3 [c3,c4,e4,g4,c5,e5]@5 [c3,c4,e4,g4,c5,e5]@2 ~ [c3,c4,e4,g4,c5,e5]@5 [c3,c4,e4,g4,c5,e5]@3 [c3,c4,e4,g4,c5,e5]@5 [c3,c4,e4,g4,c5,e5]@2 ~", // C
  AL: "[c3,c4,e4,g4,c5,e5]@5 [c3,c4,e4,g4,c5,e5]@3 [c3,c4,e4,g4,c5,e5]@5 [c3,c4,e4,g4,c5,e5]@2 ~ [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@2 ~", // C
  AM: "[c3,c4,f#4,g4,c5,e5]@5 [c3,c4,f#4,g4,c5,e5]@3 [c3,c4,f#4,g4,c5,e5]@5 [c3,c4,f#4,g4,c5,e5]@2 ~ [c3,c4,f#4,g4,c5,e5]@5 [c3,c4,f#4,g4,c5,e5]@3 [c3,c4,f#4,g4,c5,e5]@5 [c3,c4,f#4,g4,c5,e5]@2 ~", // C
  AN: "[c3,c4,f#4,g4,c5,e5]@5 [c3,c4,f#4,g4,c5,e5]@3 [c3,c4,f#4,g4,c5,e5]@5 [c3,c4,f#4,g4,c5,e5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@2 ~", // C
  AO: "[c3,c4,g4,a4,c5,e5]@5 [c3,c4,g4,a4,c5,e5]@3 [c3,c4,g4,a4,c5,e5]@5 [c3,c4,g4,a4,c5,e5]@2 ~ [c3,c4,g4,a4,c5,e5]@5 [c3,c4,g4,a4,c5,e5]@3 [c3,c4,g4,a4,c5,e5]@5 [c3,c4,g4,a4,c5,e5]@2 ~", // Am7
  AP: "[c3,c4,g4,a4,c5,e5]@5 [c3,c4,g4,a4,c5,e5]@3 [c3,c4,g4,a4,c5,e5]@5 [c3,c4,g4,a4,c5,e5]@2 ~ [c3,c4,d#4,g4,c5,e5]@5 [c3,c4,d#4,g4,c5,e5]@3 [c3,c4,d#4,g4,c5,e5]@5 [c3,c4,d#4,g4,c5,e5]@2 ~", // Am7 C
  AQ: "[c3,c4,f#4,g4,c5,e5]@5 [c3,c4,f#4,g4,c5,e5]@3 [c3,c4,f#4,g4,c5,e5]@5 [c3,c4,f#4,g4,c5,e5]@2 ~ [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@2 ~", // C
  AR: "[c3,c4,g4,a4,c5,e5]@5 [c3,c4,g4,a4,c5,e5]@3 [c3,c4,g4,a4,c5,e5]@5 [c3,c4,g4,a4,c5,e5]@2 ~ [c3,c4,d4,g4,c5,e5]@5 [c3,c4,d4,g4,c5,e5]@3 [c3,c4,d4,g4,c5,e5]@5 [c3,c4,d4,g4,c5,e5]@2 ~", // Am7 C
  AS: "[c3,c4,d#4,g4,c5,e5]@5 [c3,c4,d#4,g4,c5,e5]@3 [c3,c4,d#4,g4,c5,e5]@5 [c3,c4,d#4,g4,c5,e5]@2 ~ [c3,c4,d#4,g4,c5,e5]@5 [c3,c4,d#4,g4,c5,e5]@3 [c3,c4,d#4,g4,c5,e5]@5 [c3,c4,d#4,g4,c5,e5]@2 ~", // C
  AT: "[c3,c4,d#4,g4,c5,e5]@5 [c3,c4,d#4,g4,c5,e5]@3 [c3,c4,d#4,g4,c5,e5]@5 [c3,c4,d#4,g4,c5,e5]@2 ~ [c3,c4,d4,g4,c5,e5]@5 [c3,c4,d4,g4,c5,e5]@3 [c3,c4,d4,g4,c5,e5]@5 [c3,c4,d4,g4,c5,e5]@2 ~", // C
  AU: "[c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@2 ~ [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@3", // C
  AV: "[c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,f#5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,f#5]@2 ~ [c3,c4,g4,c5]@5 [c3,c4,g4,c5,f#5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@2 ~", // C C5 C
  AW: "[c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@2 ~ [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,f#5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,f#5]@2 ~", // C
  AX: "[c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,f#5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,g5]@8 [c3,c4,g4,c5,e5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@2 ~", // C C5 C
  AY: "[c3,c4,g4,c5,g5]@5 [c3,c4,g4,c5,g5]@3 [c3,c4,g4,c5,g5]@5 [c3,c4,g4,c5,g5]@2 ~ [c3,c4,g4,c5,g5]@8 [c3,c4,g4,c5,g5]@5 [c3,c4,g4,c5,g5]@2 ~", // C5
  AZ: "[c3,c4,g4,c5,g5]@5 [c3,c4,g4,c5,g5]@3 [c3,c4,g4,c5,g5]@5 [c3,c4,g4,c5,g5]@2 ~ [c3,c4,g4,c5,g5]@5 [c3,c4,g4,c5,g5]@3 [c3,c4,g4,c5,g5]@8", // C5
  BA: "[c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@2 ~ [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@2 ~", // C
  BB: "[c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@3 [c3,c4,g4,c5,e5]@5 [c3,c4,g4,c5,e5]@2 ~", // C
  BC: "[c3,c4,g4,c5,g5]@5 [c3,c4,g4,c5,g5]@3 [c3,c4,g4,c5,g5]@5 [c3,c4,g4,c5,g5]@2 ~ [c3,c4,g4,c5,g5]@5 [c3,c4,g4,c5,g5]@3 [c3,c4,g4,c5,g5]@5 [c3,c4,g4,c5,g5]@2 ~", // C5
  BD: "[c3,c4,c5,e5]@5 [c3,c4,c5,e5]@3 [c3,c4,c5,e5]@5 [c3,c4,c5,e5]@2 ~ [c3,c4,c5,e5]@5 [c3,c4,c5,e5]@3 [c3,c4,c5,e5]@5 [c3,c4,c5,e5]@2 ~", // C
  BE: "[c3,c4,c5,e5]@5 [c3,c4,c5,e5]@3 [c3,c4,c5,e5]@5 [c3,c4,c5,e5]@3 [c3,c4,c5,e5]@5 [c3,c4,c5,e5]@3 [c3,c4,c5,e5]@5 [c3,c4,c5,e5]@2 ~", // C
  BF: "[c3,c4,c5,e5]@5 [c3,c4,c5,e5]@3 [c3,c4,c5,e5]@5 [c3,c4,c5,e5]@2 ~ [c3,c4,c5,e5]@8 [c3,c4,c5,e5]@8", // C
  BG: "[[c3,c4,c5,e5]@5 [c3,c4,c5,e5]@3 [c3,c4,c5,e5]@5 [c3,c4,c5,e5]@2 ~ [c3,c4,c5,e5]@8 [c3,c4,c5,e5]@68 ~@4]/3", // C
})).s("gm_string_ensemble_1").gain(0.16)

// chords · acoustic guitar steel · "Acoustic Guitar II"
const acoustic_guitar_steel = note(`<
  A B@2 C@2 D E F G H I H I H I J K L M N O P O P O P Q R S T U@2 V W X Y Z AA U@2 V W X Y Z AA U@2 V W AB Y Z AC H I H
  I H I J K L M N O P O P O P Q R S AD AE AF V W X Y Z AA U@2 V W X Y Z AA U@2 V W AB Y Z AC H I H I H I J K L M N O P O
  P O P Q R S AD AG AH AG AI AJ AK AL AM AN AO AP AQ AJ AK AL AM AN AO AP AR AS AT AU AV AW AX AY AZ AU@2 BA@2 BB@3 BC
  BB BD@3 ~@7
>`.pickRestart({
  A: "~@22 [c2,c3,g3,c4,e4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@2", // C
  B: "[~ [c2,c3,g3,c4,e4]@44 ~@4 [c3,g3,c4]@5 [c3,g3,c4]@2 ~ [c3,d#3,g3,c4]@5 [c3,g3,c4]@2]/2", // C C5 Cm C5
  C: "[~ [c2,c3,g3,c4]@53 [c3,g3,c4,e4]@2 ~ [c3,g3,c4,e4]@5 [c3,g3,c4,e4]@2]/2", // C5 C
  D: "~ [c3,g3,c4,e4]@8 [g3,c4,e4]@8 [c3,g3,c4,e4]@5 [c3,g3,c4,e4]@2 ~ [g3,c4,e4]@7", // C
  E: "~ [c3,g3,c4,e4]@5 [c3,g3,c4,e4]@2 ~ [g3,c4,e4]@8 [c3,g3,c4,e4]@5 [c3,g3,c4,e4]@2 ~ [d#3,g3,c4,e4]@5 [e3,g3,c4,d#4]@2", // C
  F: "~ [c3,g3,c4,e4]@5 [c3,g3,c4,e4]@2 ~ [g3,c4,e4]@8 [c3,g3,c4,e4]@5 [c3,g3,c4,e4]@2 ~ [g3,c4,e4]@7", // C
  G: "~ [c3,g3,c4,f4]@5 [c3,g3,c4,f4]@2 ~ [g3,c4,f4]@5 [g3,c4,f4]@3 [g3,c4,f4]@5 [c2,c3,g3,c4,f4]@2 ~ [c3,d#3,g3,c4,f4]@5 [c3,g3,c4,f4]@2", // Csus4 Cm Csus4
  H: "~ [c2,c3,g3,c4]@5 [c4,e4]@2 ~ [d#4,g4]@5 [c4,e4]@3 [d4,f#4]@5 [c4,e4]@2 ~ [c4,e4]@5 [c4,e4]@2", // C5 C D# C D C
  I: "~ [d4,f#4]@5 [c4,e4]@2 ~ [d4,f#4]@5 [c4,e4]@3 [d4,f#4]@5 [d#4,g4]@2 ~ [c2,c3,g3,c4]@5 [c2,c3,g3,c4]@2", // D C D C D D# C5
  J: "~ [c2,c3,g3,c4]@5 [c4,e4]@2 ~ [d#4,g4]@5 [c4,e4]@3 [d4,f#4]@5 [c4,e4]@2 ~ [c2,c3,g3,c4]@5 [c2,c3,g3,c4]@2", // C5 C D# C D C C5
  K: "~ [c3,g3,c4,f#4]@5 [c3,g3,c4]@5 [c3,g3,c4]@5 ~ [d#2,d#3,d#4]@5 [c3,g3,c4]@5 [c3,g3,c4]@5", // C C5 D# C5
  L: "~ [d2,d3,d4]@5 [c3,g3,c4]@5 [c3,g3,c4]@5 ~ [f#2,f#3,f#4]@5 [c3,g3,c4]@5 [c3,g3,c4]@5", // D C5 F# C5
  M: "~ [e2,e3,e4]@5 [c3,g3,c4]@5 [c3,g3,c4]@5 ~ [g2,g3,g4]@5 [c3,g3,c4]@5 [f#2,f#3,f#4]@5", // E C5 G C5 F#
  N: "~ [f#2,f#3,f#4]@5 [c2,c3,g3,c4]@2 ~ [c2,c3,g3,c4]@5 [c2,c3,g3,c4]@3 [c2,c3,g3,c4]@5 [c4,e4]@2 ~ [d#4,g4]@5 [c4,e4]@2", // F# C5 C D# C
  O: "~ [d4,f#4]@5 [c4,e4]@2 ~ [c4,e4]@5 [c4,e4]@3 [d4,f#4]@5 [c4,e4]@2 ~ [d4,f#4]@5 [c4,e4]@2", // D C D C D C
  P: "~ [d4,f#4]@5 [d#4,g4]@2 ~ [c2,c3,g3,c4]@5 [c2,c3,g3,c4]@3 [c2,c3,g3,c4]@5 [c4,e4]@2 ~ [d#4,g4]@5 [c4,e4]@2", // D D# C5 C D# C
  Q: "~ [d4,f#4]@5 [c4,e4]@2 ~ [c2,c3,g3,c4]@5 [c2,c3,g3,c4]@3 [c3,g3,c4,f#4]@5 [c3,g3,c4]@5 [c3,g3,c4]@5", // D C C5 C C5
  R: "~ [d#2,d#3,d#4]@5 [c3,g3,c4]@5 [c3,g3,c4]@5 ~ [d2,d3,d4]@5 [c3,g3,c4]@5 [c3,g3,c4]@5", // D# C5 D C5
  S: "~ [f#2,f#3,f#4]@5 [c3,g3,c4]@5 [c3,g3,c4]@5 ~ [e2,e3,e4]@5 [c3,g3,c4]@5 [c3,g3,c4]@5", // F# C5 E C5
  T: "~ [g2,g3,g4]@5 [c3,g3,c4]@5 [c3,g3,c4]@5 ~ [f#2,f#3,f#4]@8 [c3,g3,c4]@4 [c3,g3,c4]@3", // G C5 F# C5
  U: "[~ [c2,c3,g3,c4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@5 [g3,c4,e4]@3 [g3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@5 [c3,g3,c4,e4]@8 [c2,c3,g3,c4]@2 ~ [c2,c3,g3,c4]@5 [c2,c3,g3,c4]@3 [c2,e3,g3,c4,e4]@5 [c2,e3,g3,c4]@2 ~ [c2,e3,g3,c4]@5 [c2,e3,g3,c4]@2]/2", // C5 C C5 C
  V: "~ [f#2,a2,f#3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@5 [g3,c4,e4]@3 [g3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@5 [g3,c4,e4]@2", // F#m7b5 C
  W: "~ [g3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@5 [g3,c4,e4]@3 [g2,g3,c4,e4]@8 [g3,c4,e4]@5 [g3,c4,e4]@2", // C
  X: "~ [a2,g3,a3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@5 [g3,c4,e4]@3 [g3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@5 [g3,c4,e4]@2", // Am7 C
  Y: "~ [g3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@8 [e2,e3,g3]@5 [g3,b3,e4]@2 ~ [g3,b3,e4]@5 [g3,b3,e4]@2", // C Em
  Z: "~ [f#2,f#3,g3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@5 [g3,c4,e4]@3 [g3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@5 [g3,c4,e4]@2", // C
  AA: "~ [g3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@5 [g3,c4,e4]@3 [f#2,c#3,g3,c4,e4]@8 [g3,c#4,e4]@5 [g3,c#4,e4]@2", // C C#dim
  AB: "~ [a2,g3,a3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@5 [g3,c4,e4]@3 [b2,g3,b3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@5 [g3,c4,e4]@2", // Am7 C Cmaj7 C
  AC: "~ [g3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@5 [g3,c4,e4]@3 [g3,c4,e4]@5 [c2,c3,g3,c4,e4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@2", // C
  AD: "~ [g2,g3,g4]@5 [c3,g3,c4]@5 [f#2,f#3,f#4]@5 ~ [f#2,f#3,f#4]@5 [c2,c3,g3,c4]@2 ~ [c2,c3,g3,c4]@5 [c2,c3,g3,c4]@2", // G C5 F# C5
  AE: "~ [c2,c3,g3,c4,f#4]@5 [c3,g3,c4,f#4]@2 ~ [c3,g3,c4,f#4]@5 [c3,g3,c4,f#4]@3 [c3,g3,c4,f#4]@5 [c3,g3,c4,f#4]@2 ~ [c3,g3,c4,f#4]@5 [c3,g3,c4,f#4]@2", // C
  AF: "~ [c3,g3,c4,f#4]@5 [c3,g3,c4,f#4]@2 ~ [c3,g3,c4,f#4]@5 [c3,g3,c4,f#4]@3 [c2,e3,g3,c4,e4]@5 [c2,e3,g3,c4,e4]@2 ~ [c2,e3,g3,c4,e4]@5 [c2,e3,g3,c4,e4]@2", // C
  AG: "~ [c2,c3,g3,c4]@5 [c2,c3,g3,c4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@3 [c2,c3,g3,c4]@5 [c2,c3,g3,c4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@2", // C5 C C5 C
  AH: "~ [c2,c3,g3,c4]@5 [c2,c3,g3,c4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@3 [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@2", // C5 C
  AI: "~ [c2,c3,g3,c4]@5 [c2,c3,g3,c4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@3 [c2,c3,d#3,g3,c4,e4]@5 [c2,c3,d#3,g3,c4,e4]@2 ~ [c2,c3,d#3,g3,c4,e4]@5 [c2,c3,d#3,g3,c4,e4]@2", // C5 C
  AJ: "~ [c2,c3,d3,g3,c4,e4]@5 [c2,c3,d3,g3,c4,e4]@2 ~ [c2,c3,d3,g3,c4,e4]@5 [c2,c3,d3,g3,c4,e4]@3 [c2,c3,d3,g3,c4,e4]@5 [c2,c3,d3,g3,c4,e4]@2 ~ [c2,c3,d3,g3,c4,e4]@5 [c2,c3,d3,g3,c4,e4]@2", // C
  AK: "~ [c2,c3,d3,g3,c4,e4]@5 [c2,c3,d3,g3,c4,e4]@2 ~ [c2,c3,d3,g3,c4,e4]@5 [c2,c3,d3,g3,c4,e4]@3 [c2,c3,f3,g3,c4,e4]@5 [c2,c3,f3,g3,c4,e4]@2 ~ [c2,c3,f3,g3,c4,e4]@5 [c2,c3,f3,g3,c4,e4]@2", // C
  AL: "~ [c2,c3,e3,g3,c4,e4]@5 [c2,c3,e3,g3,c4,e4]@2 ~ [c2,c3,e3,g3,c4,e4]@5 [c2,c3,e3,g3,c4,e4]@3 [c2,c3,e3,g3,c4,e4]@5 [c2,c3,e3,g3,c4,e4]@2 ~ [c2,c3,e3,g3,c4,e4]@5 [c2,c3,e3,g3,c4,e4]@2", // C
  AM: "~ [c2,c3,e3,g3,c4,e4]@5 [c2,c3,e3,g3,c4,e4]@2 ~ [c2,c3,e3,g3,c4,e4]@5 [c2,c3,e3,g3,c4,e4]@3 [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@2", // C
  AN: "~ [c2,c3,f#3,g3,c4,e4]@5 [c2,c3,f#3,g3,c4,e4]@2 ~ [c2,c3,f#3,g3,c4,e4]@5 [c2,c3,f#3,g3,c4,e4]@3 [c2,c3,f#3,g3,c4,e4]@5 [c2,c3,f#3,g3,c4,e4]@2 ~ [c2,c3,f#3,g3,c4,e4]@5 [c2,c3,f#3,g3,c4,e4]@2", // C
  AO: "~ [c2,c3,f#3,g3,c4,e4]@5 [c2,c3,f#3,g3,c4,e4]@2 ~ [c2,c3,f#3,g3,c4,e4]@5 [c2,c3,f#3,g3,c4,e4]@3 [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@2", // C
  AP: "~ [c2,c3,g3,a3,c4,e4]@5 [c2,c3,g3,a3,c4,e4]@2 ~ [c2,c3,g3,a3,c4,e4]@5 [c2,c3,g3,a3,c4,e4]@3 [c2,c3,g3,a3,c4,e4]@5 [c2,c3,g3,a3,c4,e4]@2 ~ [c2,c3,g3,a3,c4,e4]@5 [c2,c3,g3,a3,c4,e4]@2", // Am7
  AQ: "~ [c2,c3,g3,a3,c4,e4]@5 [c2,c3,g3,a3,c4,e4]@2 ~ [c2,c3,g3,a3,c4,e4]@5 [c2,c3,g3,a3,c4,e4]@3 [c2,c3,d#3,g3,c4,e4]@5 [c2,c3,d#3,g3,c4,e4]@2 ~ [c2,c3,d#3,g3,c4,e4]@5 [c2,c3,d#3,g3,c4,e4]@2", // Am7 C
  AR: "~ [c2,c3,g3,a3,c4,e4]@5 [c2,c3,g3,a3,c4,e4]@2 ~ [c2,c3,g3,a3,c4,e4]@5 [c2,c3,g3,a3,c4,e4]@3 [c2,c3,d3,g3,c4,e4]@5 [c2,c3,d3,g3,c4,e4]@2 ~ [c2,c3,d3,g3,c4,e4]@5 [c2,c3,d3,g3,c4,e4]@2", // Am7 C
  AS: "~ [c2,c3,d#3,g3,c4,e4]@5 [c2,c3,d#3,g3,c4,e4]@2 ~ [c2,c3,d#3,g3,c4,e4]@5 [c2,c3,d#3,g3,c4,e4]@3 [c2,c3,d#3,g3,c4,e4]@5 [c2,c3,d#3,g3,c4,e4]@2 ~ [c2,c3,d#3,g3,c4,e4]@5 [c2,c3,d#3,g3,c4,e4]@2", // C
  AT: "~ [c2,c3,d#3,g3,c4,e4]@5 [c2,c3,d#3,g3,c4,e4]@2 ~ [c2,c3,d#3,g3,c4,e4]@5 [c2,c3,d#3,g3,c4,e4]@3 [c2,c3,d3,g3,c4,e4]@5 [c2,c3,d3,g3,c4,e4]@2 ~ [c2,c3,d3,g3,c4,e4]@5 [c2,c3,d3,g3,c4,e4]@2", // C
  AU: "~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@3 [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@2", // C
  AV: "~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,f#4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,f#4]@3 [c2,c3,g3,c4]@5 [c2,c3,g3,c4,f#4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@2", // C C5 C
  AW: "~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@3 [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,f#4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,f#4]@2", // C
  AX: "~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,f#4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,g4]@8 [c2,c3,g3,c4,e4]@2 ~ [c2,c3,g3,c4,e4]@5 [c2,c3,g3,c4,e4]@2", // C C5 C
  AY: "~ [c2,c3,g3,c4,g4]@5 [c2,c3,g3,c4,g4]@2 ~ [c2,c3,g3,c4,g4]@5 [c2,c3,g3,c4,g4]@3 [c2,c3,g3,c4,g4]@8 [c2,c3,g3,c4,g4]@5 [c2,c3,g3,c4,g4]@2", // C5
  AZ: "~ [c2,c3,g3,c4,g4]@5 [c2,c3,g3,c4,g4]@2 ~ [c2,c3,g3,c4,g4]@5 [c2,c3,g3,c4,g4]@3 [c2,c3,g3,c4,g4]@5 [c2,c3,g3,c4,g4]@2 ~ [c2,c3,g3,c4,g4]@7", // C5
  BA: "~ [c2,c3,g3,c4,g4]@5 [c2,c3,g3,c4,g4]@2 ~ [c2,c3,g3,c4,g4]@5 [c2,c3,g3,c4,g4]@3 [c2,c3,g3,c4,g4]@5 [c2,c3,g3,c4,g4]@2 ~ [c2,c3,g3,c4,g4]@5 [c2,c3,g3,c4,g4]@2", // C5
  BB: "~ [c2,c3,c4,e4]@5 [c2,c3,c4,e4]@2 ~ [c2,c3,c4,e4]@5 [c2,c3,c4,e4]@3 [c2,c3,c4,e4]@5 [c2,c3,c4,e4]@2 ~ [c2,c3,c4,e4]@5 [c2,c3,c4,e4]@2", // C
  BC: "~ [c2,c3,c4,e4]@5 [c2,c3,c4,e4]@2 ~ [c2,c3,c4,e4]@5 [c2,c3,c4,e4]@3 [c2,c3,c4,e4]@8 [c2,c3,c4,e4]@7", // C
  BD: "[~ [c2,c3,c4,e4]@5 [c2,c3,c4,e4]@2 ~ [c2,c3,c4,e4]@5 [c2,c3,c4,e4]@3 [c2,c3,c4,e4]@8 [c2,c3,c4,e4]@68 ~@3]/3", // C
})).s("gm_acoustic_guitar_steel").gain(0.35).pan(1)

// other · pad poly · "Synthesizer"
const pad_poly = note("<~@158 A@8 ~>".pickRestart({
  A: "[~@3 c2@61]/8",
})).s("gm_pad_poly").gain(0.25)

stack(bass, string_ensemble_1, string_ensemble_1_2, acoustic_guitar_steel, pad_poly)

More by Led Zeppelin