Strudelify
Already Gone cover art

1974 · On the Border

Already Gone

Eagles

KeyG majorTempo140 bpm
0:00/0:00
// Already Gone — Eagles
// 140 bpm, 4/4, key G major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Trombone" named as a brass, played on trombone (its harmonica patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 124 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(140/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.

// other · tenor sax · "Sax"
const tenor_sax = note(`<
  ~@3 A B C D A E F G H I J@3 K L M N@4 O@3 P Q R S G T U V G W B C X@2 E F G H I J@3 K L M N@4 O@3 P Q R S G T U V G Y
  Z AA ~ AB AC AA ~ AB AD AE AF AG AH@2 M AI@4 O@3 P Q R S G AJ@4 AK AL@2 AM AN@3 AO AP@3 AM AQ@3 AM ~ AR@2 AM ~ AR@2 AM
  ~
>`.pickRestart({
  A: "~@6 d4!2", B: "e4@3 ~ d4@2 d4@3 ~ d4@3 ~ e4@2", C: "~@2 d4@3 ~ b3@3 ~ a3@2 b3@2 a3@2", D: "b3 g3@3 ~@4",
  E: "e4@3 ~ d4@2 d4@2 d4@3 ~ d4@2 d4@2", F: "~@2 d4@3 ~ d4@5 ~ b3@2 a3@2", G: "~ g3@3 ~@4",
  H: "~@6 g3@2 e4@2 d4@2 e4!2 d4@2", I: "e4@3 ~ d4@2 d4@5 ~ d4@2 d4@2",
  J: "[b3@2 a3@6 ~@2 d4@2 d4@2 e4@5 ~ e4@3 ~ e4@2 d4@2 c4@2 c4@10 ~@2 c4@2 e4@2 d4@2]/3",
  K: "e4@3 ~ d4@2 d4@3 ~ d4@3 ~ d4@2", L: "~@2 d4@3 ~ d4@3 ~ d4@2 b3@2 a3@2", M: "g3 ~@3",
  N: "[~@8 b3@2 d4@3 ~ d4@26 b3@2 a3@2 g3@2 g3@18]/4", O: "[~@8 b3@2 d4@3 ~ d4@26 b3@3 ~ a3@3 ~]/3", P: "a3 g3@3 ~@4",
  Q: "~@8 b3@2 d4@3 ~ e4@2", R: "~ d4@7", S: "~@4 d4@3 ~ b3@2 a3@2 g3@2 a3@2", T: "~@8 e4@2 e4@3 ~ d4@2",
  U: "~ e4@3 ~@4", V: "~@8 d4@2 b3@3 ~ a#3@2", W: "~@7 g3", X: "[e4@5 ~ e4@2 e4@2 d4@2 c4@2 c4@6 ~@8 d4@2 d4@2]/2",
  Y: "~@6 d4 b3", Z: "d4@3 ~ d4@2 d4@3 ~ d4@3 ~ e4@2", AA: "~@2 d4@3 ~ d4@2 d4@2 d4@2 b3@2 g3@2", AB: "~@6 e4 d4",
  AC: "e4@2 d4@2 d4@2 d4@3 ~ d4@3 ~ e4@2", AD: "e4@2 d4@3 ~ d4@5 ~ d4@2 d4@2", AE: "~ a3@3 ~@2 d4!2",
  AF: "e4@2 e4@5 ~ e4@3 ~ e4@3 ~", AG: "e4 c4@3 ~@2 c4 d4",
  AH: "[d4@2 d4@3 ~ d4@3 ~ d4@3 ~ e4@5 ~ d4@2 d4@3 ~ d4@2 b3@2 a3@2]/2",
  AI: "[~@6 c4@2 c4@2 d4@3 ~ d4@26 b3@2 a3@2 g3@2 g3@10 ~@8]/4",
  AJ: "[~@8 b3@2 d4@3 ~ d4@26 b3@2 a3@2 g3@2 g3@10 ~@8]/4", AK: "~@8 e4@2 g4@3 ~ a4@2",
  AL: "[~@2 g4@18 ~@4 e4@3 ~ d4@2 d4@2]/2", AM: "~ c4@3 ~@4", AN: "[~@8 e4@2 g4@3 ~ g4@26 e4@3 ~ d4@3 ~]/3",
  AO: "d4 c4@3 ~@4", AP: "[~@8 e4@2 g4@3 ~ g4@22 g4@3 ~ e4@2 d4@2 c4@2 d4@2]/3",
  AQ: "[~@8 e4@2 g4@3 ~ g4@26 e4@3 ~ d4@2 d4@2]/3", AR: "[g4@19 ~@5 e4@3 ~ d4@2 d4@2]/2",
})).s("gm_tenor_sax").gain(0.48).pan(0.4)

// chords · electric guitar clean · "Guitar"
const electric_guitar_clean = note(`<
  A B C D E F G ~ E H I ~ J K L@2 M N O P@2 Q@2 P@2 R I S T U I V W X I ~ E Y Z ~ E H I ~ J K L@2 M N O AA@2 AB@2 AC@2 R
  I S T U I V W X I ~ AD AE@2 ~ E AF@2 ~ AG K AH AI AJ@2 O P@2 Q@2 P@2 R I S T U I AK@2 AB@2 AL AM AN AO@3 AP AQ AR@2 AS
  AO@3 AN AT AU AV AN AW AU AV AN AW AX
>`.pickRestart({
  A: "g3@5 ~ a3@2 b3@2 d4@2 f4@2 e4@2", B: "[f#3,a3,d4]@13 ~@3", C: "c4@5 ~ d4@2 e4@2 g4@2 a#4@2 a4@2",
  D: "[c4,e4,g4]@13 ~@3", E: "[g4,b4,e5]@3 ~", F: "[f#4,a4,d5]@11 ~@5", G: "~ [c4,e4]@5 ~@2, ~ g4@3 ~@4",
  H: "[f#4,a4,d5]@11 ~@3 [c4,e4,a4]@2", I: "~ [c4,e4,g4]@7", J: "[g4,b4,e5]@11 ~@3 [f#4,a4,d5]@2",
  K: "~ [d4,f#4,a4]@5 ~@2", L: "[[g4,c5,e5]@11 ~@3 [e4,g4,c5]@11 ~@3 [g4,c5,e5]@3 ~]/2",
  M: "[g4,b4,e5]@4 ~@3 [f#4,a4,d5]", N: "~ [f#4,a4,d5]@3 ~@4", O: "[c4,e4,g4]", P: "[~@7 [g4,b4]@9]/2",
  Q: "[[f#4,a4]@6 ~@2 d4@5 ~ [c4,e4]@18]/2", R: "[f#4,a4]@6 ~@2 [d4,f#4]@3 ~ [d4,f#4]@4", S: "~@7 [g4,b4]",
  T: "~@2 [g4,b4]@11 ~@3", U: "[f#4,a4]@3 ~ [f#4,a4]@3 ~ d4@5 ~ [c4,e4]@2",
  V: "~@8 [g4,c5,e5]@2 [g4,c5,e5]@3 ~ [g4,b4,d5]@2", W: "~ [g4,b4,e5]@7", X: "~@10 [d4,f#4,b4]@3 ~ [c4,e4,a#4]@2",
  Y: "[f#4,a4,d5]@3 ~", Z: "[e4,g4,c5]@3 ~", AA: "[~@7 [g4,b4,d5]@9]/2", AB: "[[f#4,a4]@6 ~@2 d4@5 ~ [c4,e4]@14 ~@4]/2",
  AC: "[~@10 [e4,g4,d5]@3 ~ [g4,b4]@18]/2", AD: "[g4,b4,d5]@13 ~@3", AE: "[[f#4,a4,d5]@6 ~ [c4,e4,g4]@7 ~@2]/2",
  AF: "[[f#4,a4,d5]@11 ~@3 [c4,e4,g4]@14 ~@4]/2", AG: "[g4,b4,d5]@11 ~@3 [f#4,a4,d5]@2",
  AH: "[g4,c5,e5]@6 ~@2 [g4,c5,e5]@3 ~ [g4,c5,e5]@3 ~", AI: "~@2 [e4,g4,c5]@11 ~@3",
  AJ: "[[g4,b4,d5]@11 ~@3 [f#4,a4,e5]@11 ~@7]/2", AK: "[~@7 [g4,b4]@7 ~@2]/2", AL: "~@7 [c5,e5]",
  AM: "~@2 [c5,e5]@11 ~@3", AN: "[b4,d5]@6 ~@2 [g4,b4]@5 ~ [f4,a4]@2",
  AO: "[~ [f4,a4]@11 ~@3 [c5,e5]@7 ~@2, ~ c5@7 ~@16]/3", AP: "[b4,d5]@6 ~@2 [g4,b4]@3 ~ [g4,b4]@4",
  AQ: "~ [f4,a4,c5]@7", AR: "[~@7 [c5,e5]@7 ~@2]/2", AS: "[b4,d5]@3 ~ [b4,d5]@3 ~ g4@5 ~ [f4,a4]@2",
  AT: "~@2 [f4,a4,c5]@11 ~@3", AU: "[f4,a4,c5]@13 ~@3", AV: "[c5,e5]@13 ~@3", AW: "~@2 [f4,a4]@11 ~@3",
  AX: "[f4,a4,c5]@7 ~", // F
})).s("gm_electric_guitar_clean").gain(0.26).pan(0.3)

// chords · epiano1 · "Piano"
const epiano1 = note(`<
  A@2 B@2 C D@4 E@3 F G H@2 I@2 J@6 K@2 L@2 M@4 F N O@3 G L@2 P N Q@4 R@2 S G T@3 N O@3 G U@3 G V@3 W X@2 Y@4 P G B@2 C
  N B@2 S G Z@2 S W L@2 AA AB@5 AC@3 N X@2 AD S AE@4 AF@2 AG@2 AH@3 F AI@2 AJ AK@3 AJ F AL AM
>`.pickRestart({
  A: "[[g3,b3,d4]@7 ~@2 [a3,f#4,a4]@6 ~, ~@7 d3@8 ~]/2", B: "[~@7 c4, c3, g3@3 g4@13, ~ c4@12 g3@3, ~ e4@7]/2",
  C: "~@6 [d4,b4] ~, [d4,b4]@3 ~, ~@5 b3@2 ~", // G
  D: "[~@3 [d4,a4]@4 ~@13 c5@3 ~@2 [b3,g4,b4]@6 ~, ~ d3@6 ~@2 c4@14 ~@9, ~@2 a3@5 g3@16 g2@8 ~, ~@10 e4@13 ~@9, ~@11 g4@12 ~@9]/4", // D5 Em
  E: "[~ [a3,f#4,a4]@6 ~@8 e4@9, d3@7 [c3,e3,g3,c4]@16 ~, ~ e5, ~@13 c5@11, ~@7 g4@5]/3", F: "[g3,b3,d4]",
  G: "[a3,d4,f#4]", H: "[g3,c4,e4]/2", I: "[~@6 [d4,b4] ~@2 [a3,f#4,a4]@6 ~, [d4,b4]@3 ~@5, ~@5 b3@2 d3@8 ~]/2",
  J: "[~@12 c5@3 ~@2 [b3,g4,b4]@6 ~@2 [a3,f#4,a4]@6 ~@15 c4@2, ~@2 [g3,e4,g4]@13 g2@8 d3@8 c3@17, ~@31 g3@4 g4@13, ~@11 c4@4 g3, ~@17 e4@7]/6", // Em D C
  K: "[~@3 [d4,b4]@4 ~@7 [d4,a4] ~, ~ g2@6 ~@6 a3@2 ~, ~@2 b3@5 [d4,a4]@7 ~@2]/2", // G D5
  L: "[~@7 e4@9, [c3,e3,g3,c4], ~ e5@3, ~@5 c5@11, ~@3 g4@5]/2", // C
  M: "[~@3 [d4,b4]@4 ~@2 [a3,f#4,a4]@6 ~@15 c4@2, ~ g2@6 d3@8 c3@17, ~@2 b3@5 ~@8 g3@4 g4@13, ~@17 c4@12 g3@3, ~@9 e4@7]/4", // G D
  N: "~@3 [d4,a4]@5, ~ d3@7, ~ a3@3", // D5
  O: "[~@7 e4@8 [g3,b3,d4]@9, [c3,e3,g3,c4]@5 ~@3, ~@4 e5@11 ~@9, ~@5 c5@10 ~@9, ~@2 g4@3 ~@3]/3", // G C
  P: "~ [b3,g4,b4]@6 ~, g2@7 ~", Q: "[~@12 c5@3 ~@2 [b3,g4,b4]@6 [a3,d4,f#4]@9, ~@2 [g3,e4,g4]@13 g2@8 ~@9]/4",
  R: "[[g3,c4,e4]@15 ~]/2", S: "~@3 [d4,b4]@5, ~ g2@7, ~ b3@3",
  T: "[~@14 c4 [g3,b3,d4]@9, c3@5 ~@3, g3 g4@4 ~@3, ~ c4@12 g3@2 ~@9, ~@2 e4@13 ~@9]/3", // G
  U: "[~@7 e4@8 ~@7 [d4,b4] ~, [c3,e3,g3,c4]@15 ~@6 b3@2 ~, ~@4 e5@11 ~@9, ~@5 c5@10 ~@9, ~@6 g4@9 [d4,b4]@7 ~@2]/3", // G C G
  V: "[~@12 c5@3 ~@2 [b3,g4,b4]@6 ~, g3@15 g2@8 ~, ~ c4@14 ~@9, ~@2 e4@13 ~@9, ~ g4@4 ~@3]/3", // Em
  W: "~@6 [d4,a4] ~, [d4,a4]@3 ~, ~@5 a3@2 ~", X: "[~@3 c5, ~ [g3,e4,g4]@7]/2",
  Y: "[~ [b3,g4,b4]@6 ~@7 [d4,a4] ~@8 e4@9, g2@7 [d4,a4]@7 ~@6 e5@12, ~@13 a3@2 [c3,e3,g3,c4]@16 ~, ~@21 c5@11, ~@11 g4@5]/4", // Em D5 C
  Z: "[~@14 c4 ~, c3@15 ~, g3@3 g4@12 ~, ~ c4@12 g3@2 ~, ~@2 e4@13 ~]/2", AA: "~@3 [d4,b4]@4 ~, ~ g2@6 ~, ~@2 b3@5 ~",
  AB: "[~@3 [d4,a4]@4 ~@13 c5@3 ~@2 [b3,g4,b4]@6 [a3,d4,f#4]@9, ~ d3@6 ~@2 c4@14 ~@17, ~@2 a3@5 g3@16 g2@8 ~@9, ~@10 e4@13 ~@17, ~@11 g4@12 ~@17]/5", // D5 Em D
  AC: "[~@12 c5@3 ~@7 [d4,b4] ~, g3@15 ~@6 b3@2 ~, ~ c4@14 [d4,b4]@7 ~@2, ~@2 e4@13 ~@9, ~ g4@4 ~@3]/3", // G
  AD: "~ [g3,e4,g4]@6 ~, c3@7 ~", // C
  AE: "[~@12 c5@3 ~@7 [c4,g4] [g3,b3,d4]@9, ~@2 [a3,f4,a4]@13 [c4,g4]@7 ~@10, ~@21 g3@2 ~@9]/4", // C5 G Dm C5
  AF: "[~@3 c5, a3, ~ c4@15, ~ f4@7, ~@3 a4@13]/2", AG: "[[g3,c4,e4]@7 [g3,b3,d4]@9]/2",
  AH: "[~@14 c4 [g3,c4,e4]@9, f2@5 ~@3, a3 a4@4 ~@3, ~ c4@12 a3@2 ~@9, ~@2 f4@13 ~@9]/3", AI: "[a3,c4,f4]/2",
  AJ: "~@3 [c4,g4]@5, ~ c3@7, ~ g3@3", AK: "[~@3 [d4,b4]@4 [a3,c4,f4]@17, ~ g2@6 ~@17, ~@2 b3@5 ~@17]/3",
  AL: "[a3,c4,f4]", AM: "[f2,a3,c4,f4] ~@3",
})).s("gm_epiano1").gain(0.22).pan(0.9)

// chords · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel = note(`<
  A B@5 C@2 D E@4 F@5 C@2 G H I@2 J@3 K@2 L M N@2 O@5 P@5 Q R S@2 T U V@3 W@3 X@3 Y@7 L Z@4 AA@3 AB@4 H AC@2 AD@2 AE@4 M
  AF@2 AG@3 G AH AI@8 AJ AK@3 AL@3 AM AN@3 A AO@2 AP@4 AQ AR AJ AS
>`.pickRestart({
  A: "[b3,d4,g4]@2 [b3,d4] ~@2 [b3,g4]@2 [g3,b3,g4], g2, ~@2 g4@3 ~@3, ~@2 g3@2 g3@3 ~, ~@3 [b3,d4]@2 d4@3", // G Bm Em G Bm
  B: "[[a3,d4,f#4]@2 [a3,d4,f#4] ~@2 [a3,d4,f#4]@2 g3@3 ~ [c4,e4]@2 ~ e3@2 c4@2 ~@5 e3 [b3,d4,g4]@2 [b3,d4] ~@2 [b3,d4,g4]@2 [f#3,a3,d4,f#4]@3 [a3,d4,f#4] ~@4 a3, d3@7 c3@17 g2@7 ~@6 a3@2 ~, f#3@4 f#3@3 ~@3 g3@3 c4@3 e3@3 g3@2 c4@3 ~@2 g4@2 g3@3 d3@9, ~@3 [d4,f#4]@2 ~@2 c4@4 ~@2 e4@7 e3@2 g3@2 ~@2 g3 [b3,d4]@2 ~@5 f#3@2 f#3@2 f#3@2, ~@18 c4@3 e4@10 ~@4 [a3,d4,f#4]@2 [d4,f#4]@3]/5", // D C G Bm G D Bm D
  C: "[[e3,g3,c4,e4]@2 [g3,c4,e4] [g3,c4,e4]@2 ~ e3 ~ [c4,e4]@2 [g3,c4,e4] ~@4 g3, c3@7 c3@7 c3@2, ~@4 e3@4 ~@2 [g3,c4,e4]@5 e3@9 e3@8, ~@15 g3@5 ~@2 [c4,e4]@4 [c4,e4]@6, ~@13 g3@2 ~]/2", // C
  D: "[b3,d4,g4]@2 [b3,d4] ~@4 [g3,d4], g2, g3@3 b3 g3@3 ~, ~@2 g4@3 [b3,g4]@3, ~@3 d4@4 ~", // G Bm G5 Em
  E: "[[a3,d4,f#4]@2 [a3,d4,f#4] [a3,d4]@2 ~ f#3 [g3,c4,e4]@3 [g3,c4,e4] [g3,c4]@2 ~@2 g3 [c4,e4]@2 [g3,c4,e4] ~@3 e3 [b3,d4,g4]@3 [b3,d4,g4] ~@4 b3, d3@7 c3@9 c3@7 g2@9, ~@3 f#4@4 ~@4 e4@5 ~@4 e3@2 ~@7 b3@2 ~, ~@5 [a3,d4]@2 ~@6 c4@3 ~@3 [c4,e4]@2 [c4,e4]@2 ~@4 [b3,d4,g4]@2 [d4,g4]@3, ~@26 g3@2 e3@7 ~@3 g3@8 g3 ~@5 g3@4 g3@4 g3@4]/4", // D D5 C C5 C G D5 C …
  F: "[[a3,d4,f#4]@2 [a3,d4,f#4] [a3,d4,f#4]@2 a3!2 [g3,c4,e4]@3 [g3,c4,e4] [g3,c4,e4]@2 ~@2 g3 [g3,c4,e4]@2 [g3,c4,e4] c4@2 ~ [e3,g3] [b3,d4,g4]@3 [b3,d4,g4] [b3,d4,g4]@2 b3!2 [a3,f#4]@3 [a3,d4,f#4] [a3,d4,f#4]@2 a3 ~ d4, d3@7 c3@16 g2@8 ~@9, ~@10 [d4,f#4]@4 e3@10 ~@2 [c4,e4]@6 ~@10 [c4,e4]@4 ~@12 [d4,g4]@4 d4 ~@11 [d4,f#4]@4 ~@2, ~@13 g3@2 ~@4 g3@3 ~@16 a3@2, ~@14 e3@2 e3@6 ~@9 d3@9]/5", // D C Em G D C G5 D
  G: "b3@2 ~ [d4,g4]@2 ~ g3@2, g2, d4@3 ~@2 [d4,g4]@3, ~@2 b3@3 ~@3", // G5
  H: "a3@2 ~ [d4,f#4]@2 ~ f#3@2, d3, d4@3 ~@2 [d4,f#4]@3, ~@2 a3@3 ~@3", // D
  I: "[[g3,c4,e4]@2 [g3,c4,e4] [g3,c4,e4]@2 ~@2 g3 [g3,c4,e4]@2 [g3,c4,e4] c4@2 ~ g3!2, c3, e3@4 ~ [c4,e4]@3 ~@5 [c4,e4]@3, ~@5 g3@2 ~@4 g3@3 ~@2, ~@3 e3 e3@3 e3]/2", // C
  J: "[b3@2 ~ [d4,g4]@2 ~ g3 [a3,d4,f#4]@3 [a3,d4,f#4] [a3,d4]@2 ~ f#3 [g3,c4,e4]@3 [g3,c4,e4] [g3,c4,e4]@2 g3 ~ c4, g2@7 d3@8 c3@9, d4@3 ~@2 [d4,g4]@2 ~@4 f#4@4 ~@7 g3@2, ~@2 b3@3 ~@8 [a3,d4]@2 ~@6 [c4,e4]@2 ~]/3", // G5 D D5 C G5 D5 C
  K: "[[g3,c4]@2 c4 [g3,c4]@2 ~ e3 [b3,d4,g4]@3 [b3,d4,g4] [b3,d4]@2 ~@2 b3, c3@7 g2@9, ~@2 e4@3 [g3,c4,e4]@2 ~@4 g4@5, ~@13 d4@3, ~@13 b3 g3@2]/2", // C5 G Bm C
  L: "[a3,d4,f#4]@2 [a3,d4,f#4] [a3,d4,f#4]@2 a3 ~ d4, d3, ~@5 [d4,f#4]@2 ~, ~@3 a3", // D
  M: "[g3,c4,e4]@2 [g3,c4,e4] [g3,c4,e4]@2 g3 ~ c4, c3, ~@5 [c4,e4]@2 ~, ~@3 g3", // C
  N: "[[g3,c4]@2 c4 [g3,c4]@2 ~ e3 [b3,d4,g4]@3 [b3,d4,g4] ~@2 [b3,d4]@2 [b3,d4], c3@7 g2@9, ~@4 e4@6 [g3,c4,e4]@4 g3 ~@7 [d4,g4]@4 g4@6, ~@3 g3]/2", // C5 G Bm C G5
  O: "[[f#3,a3,d4,f#4]@2 [a3,d4,f#4] ~@3 f#3 [g3,c4,e4]@3 [g3,c4,e4] ~@4 g3 [c4,e4]@2 c4 ~@3 e3 [b3,d4,g4]@3 [b3,d4] ~@2 [b3,g4]@2 [a3,d4,f#4]@3 [a3,d4,f#4] ~@4 a3, d3@7 c3@16 g2@8 ~@9, ~@2 f#3@2 f#3@2 ~ e3@5 e3@4 e3@4 e3@2 ~@5 d4@4 ~@4 [d4,f#4]@2 [d4,f#4]@3, ~@3 [a3,d4,f#4]@2 [a3,d4,f#4]@2 ~@4 [c4,e4]@2 [c4,e4]@3 ~@2 e4@3 [c4,e4]@2 ~@3 g4@2 g3@3 d3@9, ~@19 g3@4 g3@4 b3@2 ~@2 f#3@5 f#3@4]/5", // D C G Bm Em D C
  P: "[[g3,c4,e4]@2 [g3,c4,e4] [g3,c4]@2 ~@2 g3 [c4,e4]@2 [g3,c4,e4] ~@3 e3 [b3,d4,g4]@3 [b3,d4] ~@2 [b3,g4]@2 [a3,d4,f#4]@3 [a3,d4] ~@2 [a3,d4,f#4]@2 [e3,g3,c4,e4]@3 [g3,c4,e4] ~@4 g3, c3@8 c3@7 g2@8 ~@4 [a3,d4]@2 ~@6 [g3,c4,e4]@2 [c4,e4]@3, ~@3 e4@5 ~@4 e3@2 ~@5 d4@4 ~@3 f#4@3 ~@8 g3@2 ~, ~@5 c4@3 ~@3 [c4,e4]@2 [c4,e4]@2 ~@3 g4@2 g3@3 d3@8 c3@9, ~@10 g3@2 e3@7 ~@3 g3@8 g3@8 b3@4 ~@10 f#3@4 f#3@6 ~@6 e3@4 e3@4 e3@4]/5", // C C5 C G Bm Em D D5 …
  Q: "g3 ~ [c4,e4] ~@3 e3@2, c3, [c4,e4]@2 ~ [c4,e4]@2 c4@3, ~ g3@2 ~ e3@2 ~@2, ~@5 e4@2 ~", // C
  R: "[b3,d4,g4]@2 [b3,d4,g4] ~@4 b3, g2, g3!2, ~@3 [d4,g4]@2 [d4,g4]@3", // G G5
  S: "[[a3,d4,f#4]@2 [a3,d4,f#4] [a3,d4,f#4]@2 a3!2 [g3,c4,e4]@3 [g3,c4,e4] [g3,c4,e4]@2 g3 ~ c4, d3@7 c3@9, ~@5 [d4,f#4]@2 ~@6 [c4,e4]@2 ~, ~@7 g3]/2", // D C D C
  T: "[g3,c4]@2 c4 [g3,c4]@2 ~ e3@2, c3, ~@2 e4@3 [c4,e4]@3, ~@5 g3@2 ~", // C5 C
  U: "[b3,d4,g4]@2 [b3,d4,g4] [b3,d4,g4]@2 b3 ~ d4, g2, ~@5 [d4,g4]@2 ~, ~@3 b3", // G G5
  V: "[[a3,d4,f#4]@2 [a3,d4,f#4] [a3,d4,f#4]@2 a3!2 g3@3 ~ [c4,e4]@2 ~ e3@2 c4@2 ~@5 e3, d3@7 c3@17, ~@5 [d4,f#4]@2 c4@4 ~@2 e4@7 e3@3 ~, ~@10 g3@3 c4@3 e3@3 g3@3 g3@2, ~@6 c4 [c4,e4]]/3", // D C D C
  W: "[[b3,d4,g4]@2 [b3,d4,g4] [b3,d4,g4]@2 b3!2 [a3,f#4]@3 [a3,d4,f#4] ~@2 [d4,f#4]@2 [g3,c4,e4]@3 [g3,c4,e4] [g3,c4,e4]@2 g3 ~ c4, g2@7 d3@8 c3@9, ~@5 [d4,g4]@2 f#3@5 f#3@3 ~@7 g3@2, ~@14 d4 ~@7 [d4,f#4]@4 ~@16 [c4,e4]@4 ~@2]/3", // G D C G5 D C
  X: "[[g3,c4]@2 c4 [g3,c4]@2 ~ e3 [b3,d4,g4]@3 [b3,d4] ~@2 [b3,d4,g4]@2 [a3,d4,f#4]@3 [a3,d4,f#4] [a3,d4,f#4]@2 a3 ~ d4, c3@7 g2@8 ~@9, ~@2 e4@3 [g3,c4,e4]@2 ~@3 g4@3 ~@9 a3@2, ~@10 g3@2 g3@3 d3@9, ~@11 [b3,d4]@2 ~@8 [d4,f#4]@2 ~]/3", // C5 G Bm G D C Bm D
  Y: "[[g3,c4,e4]@2 [g3,c4,e4] [g3,c4,e4]@2 ~@2 g3 [g3,c4,e4]@2 [g3,c4,e4] c4@2 ~ [e3,g3] [b3,d4,g4]@3 [b3,d4,g4] ~@3 g3 [a3,d4,f#4]@3 [a3,d4] ~@2 [a3,f#4]@2 g3@3 ~ [c4,e4]@2 ~ e3@2 c4@2 ~@5 e3 [b3,d4,g4]@2 [b3,d4] ~@4 [g3,d4], c3@15 g2@8 ~@4 d4@4 c4@4 ~@2 e4@7 e3@2 g3@2 g3@3 d4@2 [b3,g4]@3, e3@4 ~ [c4,e4]@3 ~@5 [c4,e4]@2 ~@4 [b3,d4,g4]@2 [b3,d4,g4]@2 ~@3 f#4@2 f#3@3 ~@3 g3@3 ~@3 e3@3 g3@2 c4@3 ~@2 g4 b3 g3@3 ~, ~@10 g3@4 ~@8 g3@6 ~@2 g3 ~@5 g3@4 g3@4 ~@2 f#3@8 a3@4 ~@16 c4@6 ~@4 c4@6 e4@22, ~@6 e3@2 e3@6 ~@9 d3@8 c3@17 g2@8]/7", // C Em G D D5 D C G …
  Z: "[[e3,g3,c4,e4]@2 [g3,c4,e4] [g3,c4,e4]@2 ~ e3 ~ [c4,e4]@2 [g3,c4,e4] ~@3 c3 [b3,d4,g4]@3 [b3,d4] ~@2 [b3,g4]@2 [f#3,a3,d4,f#4]@3 [a3,d4,f#4] ~@4 a3, c3@7 c3@7 ~ g2@8 ~@6 a3@2 ~, ~@4 e3@4 ~@2 [g3,c4,e4]@5 e3@9 e3@6 ~@6 g4@4 g3@6 d3@18, ~@15 g3@5 ~@2 [c4,e4]@4 [g3,c4,e4]@4 g3@8 b3@4 ~@10 f#3@4 f#3@4 f#3@4, ~@19 d4@4 ~@4 [a3,d4,f#4]@2 [d4,f#4]@3]/4", // C G Bm Em D C D
  AA: "[g3@2 ~ [c4,e4]@2 ~ e3@2 c4@2 ~@4 g3 [g3,b3,d4,g4]@3 [b3,d4,g4] ~@4 b3, c3@5 g2@3, c4@3 ~@2 e4@7 e3@3 ~@6 b3@2 ~, ~@2 g3@3 c4@3 e3@3 g3@3 ~@4 g3@2 g3@2 g3@2, ~@10 c4@3 [c4,e4]@2 ~@4 [b3,d4,g4]@2 [d4,g4]@3]/3", // C G C G G5
  AB: "[[a3,d4,f#4]@2 [a3,d4] ~@2 [a3,d4,f#4]@2 g3@3 ~ [c4,e4]@2 ~ e3@2 c4@2 ~@4 g3 [b3,d4,g4]@3 [b3,d4,g4] ~@2 [b3,d4]@2 [b3,d4], d3@7 c3@16 g2@9, ~@2 f#4@3 ~@8 e4@7 e3@3 ~@9, ~@2 f#3@2 f#3@3 ~@3 g3@3 ~@3 e3@3 g3@3 ~ g3@5 g3@4, ~@3 [a3,d4]@2 ~@2 c4@4 ~@2 c4@3 ~@2 c4@3 [c4,e4]@2 ~@4 [d4,g4]@2 g4@3]/4", // D D5 D C G Bm D5 C …
  AC: "[g3@2 ~ [c4,e4]@2 ~ e3@2 c4@2 ~@5 e3, c3, c4@3 ~@2 e4@7 e3@3 ~, ~@2 g3@3 c4@3 e3@3 g3@3 g3@2, ~@10 c4@3 [c4,e4]@3]/2", // C
  AD: "[[b3,d4,g4]@2 [b3,d4,g4] ~@2 [b3,d4,g4]@2 [f#3,a3,d4,f#4]@3 [a3,d4,f#4] ~@4 a3, g2@7 ~@4 [a3,d4,f#4]@2 [d4,f#4]@3, g3@4 g3@3 d3@9, ~@3 [d4,g4]@2 ~@5 f#3@2 f#3@2 f#3@2, ~@13 a3@2 ~]/2", // G D G5
  AE: "[g3@2 ~ [c4,e4]@2 ~ e3@2 c4@2 ~@5 e3 [b3,d4,g4]@2 [b3,d4] ~@2 [b3,g4]@2 a3@3 ~ [d4,f#4]@2 ~ f#3@2, c3@16 g2@7 ~@9, c4@3 ~@2 e4@7 e3@2 g3@2 g3@3 d4@4 d4@4 ~@2 [d4,f#4]@3, ~@2 g3@3 c4@3 e3@3 g3@2 c4@3 ~@2 g4 b3 g3@3 d3@9, ~@10 c4@3 e4@10 ~@3 a3@3 ~@3]/4", // C G Bm Em D
  AF: "[[g3,c4]@2 c4 [g3,c4]@2 ~ e3 [b3,d4,g4]@3 [b3,d4,g4] [b3,d4,g4]@2 b3 ~ d4, c3@7 g2@9, ~@2 e4@3 [g3,c4,e4]@2 ~@6 [d4,g4]@2 ~, ~@7 b3]/2", // C5 G C G5
  AG: "[[a3,d4,f#4]@2 [a3,d4] ~@2 [a3,f#4]@2 [e3,g3,c4,e4]@3 [g3,c4,e4] [g3,c4,e4]@2 ~ e3 ~ [c4,e4]@2 [g3,c4,e4] ~@4 g3, d3@7 c3@8 c3@7 c3@2, f#3@3 a3 f#3@3 ~@3 e3@2 ~ [g3,c4,e4]@3 ~@3 [c4,e4]@2 [c4,e4]@3, ~@4 f#4@6 ~@21 g3@5 ~@6 g3@4 ~@2, ~@6 d4@8 ~@17 e3@9 e3@8]/3", // D D5 D C
  AH: "[f#3,a3,d4,f#4]@2 [a3,d4,f#4] ~@4 a3, d3, ~ f#3!3, ~@3 [a3,d4,f#4]@2 [d4,f#4]@3, ~@5 a3@2 ~", // D
  AI: "[[g3,c4,e4]@2 [g3,c4,e4] [g3,c4]@2 ~@2 g3 [c4,e4]@2 [g3,c4,e4] ~@3 e3 [b3,d4,g4]@3 [b3,d4] ~@2 [b3,g4]@2 a3@3 ~ [d4,f#4]@2 ~ f#3 [g3,c4,e4]@3 [g3,c4,e4] [g3,c4,e4]@2 ~@2 g3 [g3,c4,e4]@2 [g3,c4,e4] c4@2 ~ [e3,g3] [g3,c4,e4]@3 [g3,c4] ~@2 [g3,c4,e4]@2 [b3,d4,g4]@3 [b3,d4,g4] ~@2 [b3,d4]@2 [b3,d4], c3@8 c3@7 g2@8 ~@15 e3@2 e3@6 ~@4 e3@2 e3@3 ~@9, ~@3 e4@5 ~@4 e3@2 ~@5 d4@4 d4@4 ~@2 [d4,f#4]@2 ~@6 [c4,e4]@3 ~@5 [c4,e4]@2 ~@3 e4@3 ~@6 [d4,g4]@2 g4@3, ~@5 c4@3 ~@3 [c4,e4]@2 [c4,e4]@2 ~@3 g4@2 g3@3 d3@8 c3@16 c3@8 g2@9, ~@10 g3@2 e3@7 ~@3 g3@8 g3@8 b3@4 ~@10 a3@6 ~@4 e3@10 ~@2 g3@4 ~@8 g3@6 ~@10 [g3,c4]@4 ~@4 g3@10 g3@8]/8", // C C5 C G Bm Em D C …
  AJ: "[a3,c4,f4]@2 [a3,c4,f4] [a3,c4,f4]@2 a3 ~ c4, f2, ~@5 [c4,f4]@2 ~, ~@3 a3", // F F5
  AK: "[[a3,c4]@2 c4 [a3,c4]@2 ~ f3 [g3,c4,e4]@3 [g3,c4,e4] [g3,c4]@2 ~ e3 [b3,d4,g4]@3 [b3,d4,g4] ~@2 [b3,d4]@2 [b3,d4], f2@7 c3@8 g2@9, ~@2 f4@3 [a3,c4,f4]@2 ~@4 e4@4 ~@4 [d4,g4]@2 g4@3, ~@26 [g3,c4]@4 g3 ~@9 g3@8]/3", // Am C C5 G Bm F G5 C5
  AL: "[[f3,a3,c4,f4]@2 [a3,c4,f4] [a3,c4,f4]@2 ~ f3 ~ [c4,f4]@2 [a3,c4,f4] ~@3 f2 [g3,c4,e4]@3 [g3,c4,e4] [g3,c4]@2 ~@2 g3, f2@7 f2@7 ~@7 c4@3, ~@4 f3@4 ~@2 [a3,c4,f4]@5 f3@9 f3@6 c3@18, ~@15 a3@5 ~@2 [c4,f4]@4 [a3,c4,f4]@4 ~@8 e4@10, ~@21 g3 e3@2]/3", // F F5 F C C5 F F5 F
  AM: "[g3,b3,d4,g4]@2 [b3,d4,g4] ~@4 b3, g2, ~ g3!3, ~@3 [b3,d4,g4]@2 [d4,g4]@3, ~@5 b3@2 ~", // G G5
  AN: "[[f3,a3,c4,f4]@2 [a3,c4,f4] [a3,c4,f4]@2 ~ f3 ~ [c4,f4]@2 [a3,c4,f4] ~@3 f2 [g3,c4,e4]@3 [g3,c4] ~@2 [g3,e4]@2 [e3,g3,e4], f2@7 f2@7 ~@4 e3@2 e3@3 ~, ~@4 f3@4 ~@2 [a3,c4,f4]@5 f3@9 f3@6 c3@18, ~@15 a3@5 ~@2 [c4,f4]@4 [a3,c4,f4]@4 ~@6 e4@6 c4@6, ~@19 [g3,c4]@2 ~@3]/3", // F F5 F C C5 C Em F …
  AO: "[[f3,a3,c4,f4]@2 [a3,c4,f4] [a3,c4,f4]@2 ~ f3 ~ [c4,f4]@2 [a3,c4,f4] ~@4 a3, f2@7 f2@7 f2@2, ~@4 f3@4 ~@2 [a3,c4,f4]@5 f3@9 f3@8, ~@15 a3@5 ~@2 [c4,f4]@4 [c4,f4]@6, ~@13 a3@2 ~]/2", // F F5 F F5
  AP: "[[g3,c4,e4]@2 [g3,c4] ~@2 [g3,e4]@2 [b3,d4,g4]@3 [b3,d4] ~@2 [b3,d4,g4]@2 [a3,c4,f4]@3 [a3,c4,f4] [a3,c4,f4]@2 ~@2 a3 [a3,c4,f4]@2 [a3,c4,f4] c4@2 ~ a3!2, c3@14 g2@16 f2@33 ~, e3@3 g3 e3@3 ~@3 g3@2 g3@3 f3@5 ~ a3@2 ~@4 a3@3 ~@2, ~@2 e4@3 ~@5 g4@3 ~@9 f3@2 f3@6 f3@2, ~@3 c4@4 ~@4 [b3,d4]@2 ~@8 [c4,f4]@3 ~@5 [c4,f4]@3]/4", // C C5 C G Bm G F Bm …
  AQ: "g3@2 ~ [c4,e4]@2 ~ e3@2, c3, c4@3 ~@2 [c4,e4]@3, ~@2 g3@3 ~@3", // C
  AR: "[b3,d4,g4]@2 [b3,d4,g4] ~@2 [b3,d4]@2 [b3,d4], g2, g3!2, ~@3 [d4,g4]@2 g4@3", AS: "[f2,f3,a3,c4,f4] ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.24).pan(0.1)

// chords · acoustic guitar steel · "Guitar" · soft notes
const acoustic_guitar_steel_2 = note(`<
  A B C D A ~ E F ~@3 G ~@2 E H ~ I E F J K E H L ~ M@2 ~ I M@2 N ~ O P ~ Q ~ G R@2 ~ S T ~ U@2 V ~ C D ~ Q W@3 I E H
  ~@2 C D ~ I E F ~@2 C D ~ X C D N K C D N ~ C D ~ K M@2 Y@2 E F J ~@2 G ~ Z E AA@2 N AB@2 ~ N AC B ~@2 AC AD@2 A AC B
  AE@2 AC AF C N AG ~
>`.pickRestart({
  A: "g3 ~@3", B: "~@3 a3@2 ~@3", C: "~@5 g3@2 g3, ~ e3@2 ~", D: "g3 g3@2 ~@5", E: "~@2 e3 ~", F: "~@3 g3@2 ~@3",
  G: "g3@3 e3@5 ~@8", H: "~@3 e4@2 ~@3", I: "~@7 f#4", J: "~@5 b3@2 b3, ~ g3@2 ~", K: "~@5 a3@2 a3, ~ f#3@2 ~",
  L: "~@5 b3@2 ~, ~ g3@2 ~", M: "[~@7 e4@3 g3 ~@5]/2", N: "~@3 b3@2 ~@3", O: "~@3 g3@2 g3@2 ~", P: "g3@6 ~ c4@3 ~@6",
  Q: "~@3 a3@2 a3@2 ~", R: "[~@7 f#3@3 ~@6]/2", S: "e3@3 g3@2 g3@2 [g3,e4]", T: "~@3 b3@2 b3@2 ~",
  U: "[~@7 e4@3 g3 ~@4 g3]/2", V: "~@7 g4", W: "[~@7 e4@3 g3 ~@4 g3@3 ~@6]/3", X: "f#3 ~@3", Y: "[~@7 g4@8 ~]/2",
  Z: "~@5 a3@2 ~, ~ f#3@2 ~", AA: "[~@3 e4@2 ~@2 e3@3 ~@6]/2", AB: "[~@7 f4@3 a3 ~@5]/2", AC: "~@2 f3 ~",
  AD: "[~@3 a3@2 ~@2 e3@3 ~@6]/2", AE: "[~@7 g3@3 ~@6]/2", AF: "~@3 f4@2 ~@3", AG: "~@7 f4",
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.1)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A B C D E F G H E F I J E K L M E F I N O P Q N O P Q N O P Q N O P Q R E F G H E F I J E K L M E F I N O P Q N O P Q
  N O P Q N O P Q R E F I R E F I R E K I R E F I N O P Q N O P Q N O P Q N O P Q S T U V W X Y V@2 X Y V W X Y V W X Y
  V W X Y V Z
>`.pickRestart({
  A: "g2@13 ~@3", B: "d2@13 ~@3", C: "c2@7 ~", D: "~@2 e2@3 ~ f2@3 ~ f#2@3 ~ d2@2", E: "g2@3 ~ d2@3 ~",
  F: "d2@3 ~ a1@3 ~", G: "c2@3 ~ g1@3 ~", H: "c2 e2!2 c2 e2 c2 e2 f#2", I: "c2@5 ~ a1@2 g1@5 ~ a1@2",
  J: "c2@2 c2@5 ~ g1@5 ~ d2@2", K: "d2@5 ~ a1@2 a1@6 ~@2", L: "c2@5 ~ a1@2 g1@6 ~@2",
  M: "c2@2 e2@3 ~ e2@2 f2@3 ~ f#2@2 d2@2", N: "c2@2 e2@3 ~ e2@2 f2@3 ~ f#2@2 g2@2",
  O: "g1@3 ~ b1@3 ~ d2@2 d2@2 e2@2 c2@2", P: "d2@3 ~ f#2@3 ~ a2@2 a2@2 b2@2 a2@2",
  Q: "c2@3 ~ e2@3 ~ g2@2 g2@2 a2@2 g2@2", R: "c2@2 e2@3 ~ f2@3 ~ f#2@3 ~ d2@2", S: "c2@3 ~ e2@2 e2@2 g2@3 ~ a2@3 ~",
  T: "[c2,c3]@13 ~@3", U: "[g1,g2]@13 ~@3", V: "f2!2 g#2 a2 c3!2 d3 c3", W: "f2!2 g#2 a2 c3!2 d3 a2",
  X: "c3!2 d#3 e3 g3!2 a3 g3", Y: "g2!2 a#2 b2 d3!2 e3 d3", Z: "f2!2 g#2 a2 c3!2 d3 ~",
})).s("gm_electric_bass_finger").gain(0.48).pan(0)

// drums · kick
const kick = s("bd").struct(`<
  A B A C A B A B A B A D A B A B A B A@2 B E B E B E B A@2 E B E B E B F A B A B A B A@3 B A B A B A@2 B E B E B E B A
  B E B E B E B C A B A B A B A@3 B A B A B A@2 B E B E B E B C A E B E B E B A@2 B A B A B A@3 B A B A B A@3 B A C A B
  A C
>`.pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@2 x!2 ~@2 x", C: "x ~@2 x ~@4", D: "~@5 x ~ x", E: "x ~@2 x!3 ~ x", F: "~@4 x!2 ~@2",
})).gain(0.56)

// drums · snare
const snare = s("sd").struct(`<
  A@3 B A@7 C A@7 B A@7 B A@7 D A@7 E A@7 E A@7 B A@7 B A@7 B A@7 B A@7 B A@7 F A@7 F A@7 F A@3 B A@3 B
>`.pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "x!5 ~ x ~", D: "x!3 ~ x ~ x ~@5 x ~@3", E: "~@4 x ~@5 x!3 ~ x ~",
  F: "~@4 x ~@3 x!4 ~@4",
})).gain(0.64)

// drums · low tom
const low_tom = s("lt").struct("<~@3 A ~@7 B ~@7 C ~@6 D C ~@31 C ~@7 A ~@7 C ~@7 C ~@7 A ~@27 A ~@4>".pickRestart({
  A: "~@13 x!2 ~", B: "~ x!4 ~ x ~", C: "~@7 x", D: "~@5 x ~@2",
})).gain(0.64)

// … 48 more lines

More by Eagles