Strudelify

Wasted Time

Eagles

KeyC majorTempo118 bpm
0:00/0:00
// Wasted Time — Eagles
// 118 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 136 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(118/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 · distortion guitar · "Guitar"
const distortion_guitar = note(`<
  ~@10 A@2 ~@15 B C ~@3 D E F G D H I J K ~@9 L M ~@2 N@3 ~ O@2 P ~@33 Q@4 R@2 S@3 T U@2 V@3 W X@2 ~@10 Y Z AA@2 Y AB
  AC@2 AD AE AF AG AH@2
>`.pickRestart({
  A: "[~ g#3@41 ~@6, f3@7 ~@9, d3@19 ~@29]/2", B: "d#5@2 ~ c5@3 g#4@6 g#3@6 f3@6, ~ d5 ~@10", C: "g3", D: "a3 f3 c3 a3",
  E: "g3 e3 c3 e3", F: "f3 d3 b2 d3", G: "e3 f3 g3 e3", H: "g3 c4 g3 e3", I: "a3 f3 e3 f3", J: "d3@11 ~ d4@12",
  K: "c4 ~", L: "~ c4 b3 a3", M: "g3@6 f3@6 e3@6 d3@5 ~", N: "[~@6 d4@3 d4@3 g4@4 ~ g4@19 d4@5 c4@3 a3@7 ~@21]/3",
  O: "[~@12 g5@15 f5@2 ~@3 e5@2 ~@2 d5@2 ~@3 c5@2 ~@2 a4@2 ~]/2", P: "b4@11 ~@13",
  Q: "[~@30 d4@6 ~@12 g#2@47 ~, ~@3 a4@4 ~@2 f4@4 ~@8 g3@4 ~@23, ~@12 g4@8 ~@4 e4@8 ~@4 c4@8 ~@4 g#3@23 ~@25]/4",
  R: "c2/2", S: "[g#2@49 c2@12 ~@11]/3", T: "c2@3 d2@3 e2@2", U: "[f2@23 e2@24 ~]/2", V: "[d2@18 e2@29 f2@24 ~]/3",
  W: "e2", X: "[d2@13 ~@11]/2", Y: "~ e2", Z: "f2@11 ~ g2@12", AA: "[g#2@47 ~]/2", AB: "f2 g2", AC: "[g#2@13 a#2@3]/2",
  AD: "c2 e2", AE: "f2@12 g2@11 ~", AF: "g#2", AG: "f2", AH: "[c2@7 ~]/2",
})).s("gm_distortion_guitar").gain(0.32)

// other · distortion guitar · "Guitar" · soft notes
const distortion_guitar_soft = note("<~@7 A@3 ~ B@5 C D E D C@2 F G@2 ~@111>".pickRestart({
  A: "[~@25 c4@44 ~@3, ~@23 c3@7 ~@42, ~@24 e3@17 ~@31, ~@25 g3@28 ~@19]/3",
  B: "[~@26 c4@44 ~@3 c4@20 ~@3 b3@24, ~@22 c3@5 ~@67 d3@5 ~@21, ~@23 e3@9 ~@39 f3@4 ~@20 g3@8 ~@17, ~@25 g3@20 ~@27 a3@12 ~@36]/5",
  C: "c5@19 ~@5", D: "c5@7 ~", E: "c5@5 ~", F: "c5@3 ~", G: "[c5@12 ~ g4@13 ~@22, f4@11 ~ b4@13 ~@23]/2",
})).s("gm_distortion_guitar").gain(0.16)

// chords · rock organ · "Organ"
const rock_organ = note(`<
  ~@24 A B C@2 D E F G ~@19 H I J K@2 L M N@2 O P Q R S T U ~ V W X@4 Y@2 Z@8 AA ~@10 AB@8 ~ AC@2 AD@3 AE AF ~@11 AG AH
  AI@2 AJ AK AI@2 AL AK AM AN AO@2
>`.pickRestart({
  A: "~ e4", B: "~ f4@12 g4@11", C: "[g#4@23 ~]/2", D: "g4@11 ~@2 e4@11", E: "~ f4@11 g4@12", F: "a4", G: "b4@11 ~",
  H: "[c5,e5]@11 ~", I: "[b4,d5,f#5]", J: "[e4,g#4,b4,e5,g#5]@23 ~", K: "[~ c5@45 ~@2, [a4,e5]@15 ~]/2", L: "[b4,d5]",
  M: "[b4,e5]", N: "[e5, a4@15 ~]/2", O: "[b4,d5]@23 ~", P: "[e5,b5]", Q: "~ a4@23, e5@23 ~", R: "[g4,d5]@23 ~",
  S: "[f4,c5]@7 ~", T: "[g4,c5]", U: "[c5,f5] ~", V: "~ e5", W: "~ f5@11 g5@12", X: "[g#5@49 g5@47]/4", Y: "d5/2",
  Z: "[c6@15 b5]/8", AA: "c6", AB: "[g5@24 ~@2 g#5@46 g5@43 ~@5 g#5@44 ~@4 g5@14 ~@10, c6@61 ~@3]/8",
  AC: "[c6@23 g5@22 ~@3, f5@7 ~@9]/2", AD: "[[d5,a5]@18 ~ g5@27 ~ [f5,c6]@23 ~@2]/3", AE: "[g5,c6]", AF: "[d5,a5]",
  AG: "~ [e5,g5]", AH: "[f5,a5]@12 [e5,g5]@11 ~", AI: "[g#5,c6]/2", AJ: "[g5,c6] [e5,g5]", AK: "[f5,a5] [e5,g5]",
  AL: "[g5,c6]@11 ~ e5@12, ~@6 g5@5 ~", AM: "[g#5,c6]@23 ~", AN: "[f5,a5]@23 ~", AO: "[[c5,e5,g5]@7 ~]/2",
})).s("gm_rock_organ").gain(0.4).pan(0.3)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@8 A@2 ~@2 B@2 C D E F ~ F G F ~ H I@2 J@2 K@2 L D G F M F G F M L N ~ H ~ O@2 P@2 Q R@3 S T U N S V W@2 X V N D Y Z
  M D AA@2 AB@2 AC@3 AD E F AE@2 G F M AF AG AH H AI AJ@2 ~ V E D Z AK AL AM AN AO AP AQ AR AS E F AT@2 G F M AF AG AH
  AU AV ~@3 F M AW AX AY AZ BA BB BC BD BE BF BG AH E Z ~
>`.pickRestart({
  A: "[c2@47 ~]/2", B: "[g1@23 ~]/2", C: "g1@11 ~", D: "g1", E: "f2@23 ~", F: "e2", G: "f2", H: "g2", I: "[c2@23 ~]/2",
  J: "[f1@6 a#1 g#1]/2", K: "[g1@47 ~]/2", L: "g1@23 ~", M: "d2", N: "a1", O: "[f2@23 ~]/2", P: "[~@23 e1@25]/2",
  Q: "~ f2@23", R: "[g1@23 c2@29 ~@2 c2@3 ~@3 b1@2 ~ a1@3 g1@4 ~@2, ~@54 b1 ~@17]/3", S: "b1", T: "e1@23 ~",
  U: "~ a1@20 a1 ~@2", V: "e1", W: "[a1@35 ~ a1@3 ~ a1@5 a#1@3]/2", X: "b1@23 ~", Y: "f1@11 ~", Z: "c2",
  AA: "[~ c2@46 ~]/2", AB: "[f1@36 ~ a#1@6 g#1@5]/2", AC: "[~ g1@43 ~@3 g1@24 ~]/3", AD: "g1@19 ~@5",
  AE: "[d2@17 ~ e2@17 ~ e2@3 d2@3 e2@6]/2", AF: "g2 g#2", AG: "a2@23 ~", AH: "g#2@23 ~", AI: "f#2", AJ: "[f2@47 ~]/2",
  AK: "~@3 c2!5", AL: "g#1@23 ~", AM: "g#1@11 ~ g#1@12", AN: "c2@11 ~ c2@11 ~", AO: "c2@3 c2@5 ~ c2@5 ~ c2 ~@2 c2@5 ~",
  AP: "g#1@10 ~@2 g#1@11 ~", AQ: "g#1@11 ~ g#1@4 ~@2 g#1@6", AR: "c2@11 ~ c2@3 ~@9", AS: "c2@3 d2@3 e2@2",
  AT: "[d2@17 ~ e2@17 ~ e2@3 d2@2 e2@6 ~]/2", AU: "g2@23 ~", AV: "f#2@23 ~", AW: "f2@12 ~ g2@11", AX: "c2@12 ~ e2@11",
  AY: "~ g2, f2@7 ~@5", AZ: "g#2@19 ~@2 g#2 ~@2", BA: "g#2@5 a#2@3", BB: "c3 e2", BC: "f2@11 ~ g2@12", BD: "g#2",
  BE: "~ a#2, g#2@7 ~@5", BF: "~ e2, c3@7 ~@5", BG: "~ f2@12 g2@11",
})).s("gm_electric_bass_finger").gain(0.4).pan(0.8)

// bass · electric bass finger · "Bass" · soft notes
const bass_soft = note("<~@10 A@2 ~@6 B ~@3 B ~@18 C ~ D ~@46 E ~@4 F ~@20 G ~@19>".pickRestart({
  A: "[f1@35 ~ a#1@6 g#1@6]/2", B: "d2", C: "g#2@23 ~", D: "f#2", E: "e2@5 ~", F: "c2!3 ~@5", G: "f2@23 ~",
})).s("gm_electric_bass_finger").gain(0.24).pan(0.8)

// chords · piano
const piano = note(`<
  A@2 B@2 C@3 D E@2 F@2 G@2 H I J K L M J N O P Q@2 R@2 S@2 T U V W X Y Z AA AB AC@2 AD@2 AE@3 AF@2 AG AH AI AJ AK AL
  AM@2 AN AO AP AQ AR AS AT AU AV AW AX@3 ~ AY@2 AZ BA@2 BB BC BD BE@2 BF BG BH BI@4 BJ@2 BK@2 BL BM BN BO ~ BP@2 BQ BR
  BS BT BU BV BW BX BY@2 BZ CA@4 CB@2 CC CD CE CF ~ CG CH CI CJ BP CK CL CM BP CN CO CP CQ AV CR@2
>`.pickRestart({
  A: "[~@12 c5@12 d5@12 e5@11 ~, [c3,e3,g3]@15 ~]/2", B: "[d5@29 ~@7 a#2@6 g#2@6, [d3,g#3]@15 ~, f3@43 ~@5]/2",
  C: "[~@24 d5@12 e5@11 ~ [c3,d5]@24, [c3,g3]@44 ~@4 f3@11 ~@13, g2@39 ~@9 c4@7 ~@17, ~@2 c5@9 ~]/3", // Csus2 C5
  D: "[d3,g3,b3]@12 ~ c4@11, ~@12 [d3,f3]@11 ~", E: "[[e3,g3]@11 ~]/2", F: "[[d3,g#3]@35 ~ [a#2,d3]@6 g#2@6, f3@5 ~]/2",
  G: "[[c3,e3,g3]@7 g2, g2 ~@3]/2", H: "[f3,a3,c4]@11 ~", I: "[d3,g3,b3,d4]@3 g2", J: "a4 f4 c4 a4",
  K: "g4@6 c5@5 ~ e4@6 g4@6", L: "f4 c5 d4 f4", M: "g4 c4 e4 g4", N: "g4 c5 e4 g4", O: "f4 a4 d5 a4",
  P: "[a3,c4]@10 ~@3 b4@9 ~@2, ~@6 g4@5 ~", Q: "[[c3,e3,g3,c4]@7 ~]/2",
  R: "[~@36 a#3@7 g#3@5, g#3@3 ~, ~ [d3,f3]@43 ~@4]/2", S: "[~ [c3,e3,g3]@42 ~@5]/2",
  T: "[c3,f3,a3]@12 [f3,a3]@11 ~, ~@3 c3 ~@2", U: "[d3,g3,b3]@6 [g3,b3]@5 ~, ~@12 d3@5 ~@7", V: "[f3,a3,c4]@11 ~@13",
  W: "[e3,g3,c4]@11 ~@13", X: "[d3,f3,c4]@11 ~@13", Y: "~ [e3,g3]@10 ~@13, c4@11 ~@13", Z: "[f3,a3]@3 ~@5",
  AA: "[e3,g3] ~@2", AB: "[d3,f3]@3 ~@5",
  AC: "[~ [a3,c4,a4]@10 ~@2 [d4,b4]@10 ~ e4@6 ~@6 c4@6 a4@6, f3@9 ~@3 [g3,b3]@10 ~ a3@15 ~@10, ~@23 c4@13 ~@12, ~@3 c5@2 ~, ~@15 e4@4 ~@5]/2", // Am G
  AD: "[g#4@6 e4@6 e5@6 e4@5 ~@7 g4@6 d4@6 b4@6, ~@23 d4@9 ~@16, ~@6 g4 ~@5, ~@25 b4@10 ~@13]/2",
  AE: "[a4@6 d4@6 d5@11 ~@2 c5@6 b4@5 a4@6 g4@5 a4@12 ~ b4@12, ~@23 f3@47 ~@2, ~@12 a3@23 ~, ~@25 c4@45 ~@2]/3",
  AF: "[~ [e3,g3,b3]@35 d4@6 e4@6, g4@3 ~]/2", AG: "~@7 e4@5 d4@6 c4@6, f4 ~@3, ~ [d3,f3,a3]@22 ~",
  AH: "[f3,a3,c4,d4]@10 ~@2 [d4,g4]@11 ~, ~@3 [g3,b3]@2 ~", AI: "[e3,g3,c4]@6 [f3,b3,d4] ~",
  AJ: "[g3,c4,e4] ~ [g3,c4,e4] ~", AK: "[b3,d4,f#4]@17 ~ [d4,f#4]@5 ~, ~@17 a4@6 ~", AL: "[e4,g#4,b4,e5]@19 ~@5",
  AM: "[[a3,e4]@23 ~ [a3,e4]@11 ~ [a3,e4]@10 ~@2, c4@35 ~ c4@7 ~@5]/2", // A5
  AN: "[d4,f#4]@12 ~ a4@11, b3@10 ~@2 f#4@9 ~@3, ~@13 d4@8 ~@3", AO: "[e4,g#4,b4]@11 ~ e4@6 e4@3 ~@3, ~@4 [g#4,b4]@3 ~",
  AP: "[c4,e4]@11 ~ a3@6 a3@6, a3@2 ~ [c4,e4]@3", // C
  AQ: "~ c4@10 ~ [a3,c4,e4]@2 ~@2 [a3,c4,e4]@3 ~ [a#3,f4]@3 ~, e4@11 ~@13, a3@3 ~@5", // Am A#5
  AR: "[b3,d4,f#4]@11 ~ [d4,f#4,a4]@10 ~@2", AS: "e4@6 e4 ~, e5, [g#4,b4]@7 ~", AT: "[a3,c4,e4]@11 ~",
  AU: "[c4,e4]@3 ~, g4@23 ~", AV: "[f3,a3,c4]", AW: "[e4,g4]@11 ~, c4@5 ~",
  AX: "[[d3,f3,g#3,c4]@6 [d4,g#4]@6 [c4,a4,c5]@6 [b4,d5]@6 ~@25 g4@17 ~@6, ~@6 f4@11 ~ f4@11 ~ f4@11 ~ f4@5 e4@17 ~@8, ~@24 a4@12 g4@12 c5@17 ~@7, ~@25 [c5,e5]@12 [b4,d5]@12 ~@23, ~@23 c4@9 ~@4]/3", // Dm7b5 Ddim F Bm C Bm
  AY: "[[d4,f4,g#4]@35 ~ [f4,a#4]@6 [d#4,g#4]@6]/2", AZ: "~ [c4,e4]@11 [c4,e4,g4]@11 ~, g4@11 ~@13",
  BA: "[[c4,e4,g4]@11 ~ [c4,e4,g4]@10 ~@2 [c4,f4]@11 c4@6 ~ c4@6, ~@23 a4@11 ~ [f4,a4]@11 ~@2]/2", // C F5 F
  BB: "[d4,g4,b4]@12 ~ d4@5 d4@5 ~, ~@6 [g4,b4]@5 ~", BC: "~ a4@11 ~@6 c4@6, [c4,f4]@11 ~ c4@5 ~@7, ~@13 [f4,a4]@10 ~",
  BD: "~ c4@11 c4@5 ~ c4@4 ~@2, [e4,g4]@11 ~ [e4,g4]@10 ~@2", // Em
  BE: "[[d4,f4,a4]@9 [d4,f4,a4]@6 ~@3 [c4,e4]@17 ~ [c4,e4]@6 e4@3 [e4,g4]@3, ~@17 g4@17 ~@2 g4@8 ~@4, ~@42 c4@5 ~]/2", // Dm C Em
  BF: "[c4,f4,a4]@11 ~ [c4,f4]@11 ~, ~@4 a4@3 ~", BG: "[c4,e4,g4]@11 ~ c4@5 ~ c4@5 ~, ~@12 [e4,g4]@11 ~",
  BH: "[d4,f4,a4]@11 ~ [d4,f4,a4]@11 ~", // Dm
  BI: "[[c4,f4,a4]@11 ~ [d4,g#4,b4]@9 ~@15 c4@6 a4@6 g#4@6 e4@6 e5@9 ~@9 d4@6 ~@5 g4@7, ~@22 a3@35 ~@13 g3@21 ~@5, ~@23 c4@13 ~@34 b3@12 ~@2 b3@7 ~@5, ~@24 e4@6 e4@12 ~@29 d4@6 ~@19, ~@25 a4@15 ~@33 g4@14 ~@9]/4", // F G#dim
  BJ: "[f#4@3 d4@3 d5@4 ~@2 [a4,c5]@3 b4@3 a4@3 g4@3, ~@23 f4@14 ~@11]/2", // Am
  BK: "[a4@12 b4@11 ~ [g4,b4]@22 ~@2, ~@23 e4@21 ~@4]/2", BL: "~@12 d4@6 e4@5 ~", BM: "f4@6 a4@6 d5@6 a4@5 ~",
  BN: "[c4,f4,a4] [b3,d4], ~@6 g4@5 ~", BO: "[c4,e4,g4]@5 ~", BP: "[g#3,c4,d#4]@11 ~ [g#3,c4,d#4]@11 ~",
  BQ: "[c4,e4,g4]@11 ~ [c4,e4,g4]@11 ~", BR: "[c4,e4,g4]@11 ~ [c4,e4,g4]@5 ~ [c4,e4,g4]@6",
  BS: "g#3@5 ~ g#3@5 ~ [g#3,c4,d#4]@10 ~@2, [c4,d#4]@5 ~@7", BT: "[g#3,c4,d#4]@10 ~@2 [g#3,c4,d#4]@9 ~@3",
  BU: "[c4,e4,g4]@3 ~ [c4,e4,g4] ~@3", BV: "[c4,e4,g4]@7 ~@3 [d4,e4,g4]@6 ~@2 [c4,e4,g4]@6",
  BW: "~ f3@10 ~ f3@5 ~ f3@4 ~@2, [a3,c4]@11 ~ [a3,c4]@8 ~@4", BX: "[c3,e3,g3]@11 ~ c3@6 c3@5 ~, ~@12 [e3,g3]@11 ~",
  BY: "[[d3,f3,a3]@16 ~@2 [c3,e3,g3]@17 ~ [e3,g3]@10 ~@2, ~@9 c3 ~@2]/2", // Dm C Em
  BZ: "[f3,a3,c4]@11 ~ f3@4 ~@2 f3@4 ~@2, ~@12 [a3,c4]@11 ~", // F Am
  CA: "[[c3,e3,g3]@11 ~@2 c3@5 ~ c3@3 ~@2 c5@5 ~ c5@6 d5@6 c5@5 ~ [g4,b4]@10 ~@3 b4@8 ~@9 e4@6 ~@6 a4@6, ~@12 [e3,g3]@10 ~ a4@23 ~@2 e4 ~@11 g#4@9 ~ c4@6 ~@8 c4@9 ~@3, ~@23 f4@4 ~@3 f4@13 ~@4 d4@10 ~@2 d4@4 ~@6 a3@15 ~@12, ~@71 e4@5 ~@20, ~@36 a4@7 ~@5]/4", // C G Em
  CB: "[e4@6 e4@6 ~@18 d4@6 ~@6 g4@5 ~, g#4@11 ~ e5@11 b3@6 ~@7 b3@12, ~@22 g3@7 ~@19, ~@24 d4@5 ~@19, ~@25 g4@14 ~@9]/2",
  CC: "d4@5 ~ d4@6 d5@11 ~, f#4@5 ~@7", CD: "[a4,c5] [g4,b4] [f4,a4] [e4,g4]", CE: "[f4,a4] [g4,b4]", CF: "[e4,g4]",
  CG: "a4!2 d5 c5, [d4,f4]@3 ~", CH: "[c4,f4,a4]@12 [b3,d4,g4]@11 ~", CI: "[c3,e3,g3]!2",
  CJ: "[f3,a3]@10 ~@2 [e3,g3]@9 ~@3, c3!2", CK: "[g#3,c4,d#4]@11 ~ [g#3,c4,d#4]@3 [a#3,d4,f4]@9",
  CL: "[c3,e3,g3]@11 ~ [c3,e3,g3]@10 ~@2", CM: "[c3,f3,a3]@11 ~ [c3,e3,g3]@10 ~@2",
  CN: "[g#3,c4,d#4]@10 ~@2 [c4,d#4]@3 [a#3,d4,f4]@9", CO: "[c3,g3]@11 ~ [c3,e3,g3]@11 ~, e3@3 ~@5",
  CP: "[c3,f3,a3]@11 ~ [e3,g3]@12", CQ: "[g#3,c4,d#4]@23 ~", CR: "[~ [g3,c4]@8 ~@7, ~ c3@24 ~@23, ~ e3@12 ~@11]/2",
})).s("gm_piano").gain(0.3).pan(0.4)

// chords · piano · soft notes
const piano_soft = note("<~@4 A@2 B ~ C@2 ~@13 D ~@6 E F G H I J K L M ~@68 N ~@21 O ~ P ~@4>".pickRestart({
  A: "[~@7 g2, e3@11 ~]/2", B: "~ a3 ~ c4, ~@12 f3@11 ~", C: "[~@12 c4@13 d4@11 e4@11 ~, c3@11 ~]/2",
  D: "~ a4@9 ~@2 [b3,d4]@10 ~@2, f4@3 ~@5", E: "~@18 c3@5 ~", F: "~@18 d3@5 ~", G: "~@6 [f3,a3,c4]@5 ~",
  H: "~@13 e3@10 ~, ~@6 g3@5 ~", I: "~@6 [d3,f3]@5 ~", J: "~@12 [e3,g3,c4]@11 ~", K: "c4@11 ~ [f3,a3]@10 ~@2",
  L: "~@3 [e3,g3]@2 ~, ~@12 c4@11 ~", M: "~@3 [d3,f3]@2 ~, ~@12 c4@11 ~", N: "~@17 c3@4 ~@3", O: "~@4 g#3 ~@3",
  P: "~ c3",
})).s("gm_piano").gain(0.15).pan(0.4)

// other · tremolo strings · "Strings"
const tremolo_strings = note(`<
  ~@52 A B C@2 D E F G H I J K L M ~@4 N@6 O P Q@2 R S@2 ~@13 T@6 U V F W X@2 Y F Y Z ~@6 AA@2 AB AC AD AE AF@2 AG AH@3
  AF@2 AI AJ AK@2
>`.pickRestart({
  A: "d5@11 a5@13", B: "g#5@6 a5 g#5", C: "[c5@15 ~]/2", D: "~ d5@11 a5@12", E: "g#5@5 a5@2 b5", F: "c6",
  G: "b5@12 a5@4 ~ a5@4 g5@3", H: "f#5 a5", I: "g#5 b5", J: "~ c6@11 b5@12", K: "a5 g5", L: "f5@23 ~", M: "c5",
  N: "[c6@143 ~]/6", O: "a4@6 f4@6 c4@6 a4@5 ~", P: "g4 e4 c4 e4", Q: "[f4@6 d4@6 c4@6 e4@29 ~]/2",
  R: "a4@6 f4@5 ~ c4@6 a4@4 ~@2", S: "[g4@6 e4@6 c4@6 e4@5 d4@24 ~]/2", T: "[c6@11 g#5]/6", U: "g5 ~",
  V: "c5@3 a5@3 d5@2", W: "g5", X: "[f5@6 g5@9 ~]/2", Y: "a5", Z: "g2 g#2", AA: "[~@5 [e3,e4,g4]@43]/2", AB: "[f3,a3]",
  AC: "[f3,a3]@12 [g3,b3]@11 ~", AD: "[c4,g4]", AE: "c6@23 ~", AF: "c6/2", AG: "g5 e5", AH: "[f5@11 g5@12 g#5@49]/3",
  AI: "g#5", AJ: "f5", AK: "[c5@11 ~]/2",
})).s("gm_tremolo_strings").gain(0.37).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  ~@52 A@2 B A@4 C A@7 ~@4 D A ~@3 A@2 E F A@5 ~@10 G B H I J B K A L M K E N O P E ~@11 A Q B L A@2 E A R S A@2 T ~
>`.pickRestart({
  A: "x", B: "x ~@6 x", C: "x ~@16 x ~@3 x ~@2", D: "~@3 x", E: "x ~@2 x", F: "~ x ~@2", G: "~@3 x!4 ~", H: "x!2 ~@2",
  I: "x ~@4 x ~ x", J: "x ~ x!2 ~ x!2 ~", K: "x!2 ~ x", L: "x ~@2 x ~@2 x ~", M: "x ~ x ~@4 x", N: "~@2 x!2 ~@4",
  O: "x ~ x ~@3 x!2", P: "~ x!2 ~@3 x ~", Q: "x ~@2 x ~@4", R: "x!2", S: "x ~ x!2", T: "~ x ~@6",
})).gain(0.64)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@3 A B ~@89 C D ~@10 E F G ~ H ~@12 F ~ I ~ A ~@8>".pickRestart({
  A: "~@3 x", B: "x", C: "~@4 x!4", D: "x!3 ~@4 x", E: "~ x ~@2", F: "~ x", G: "~ x ~@6", H: "~@3 x ~ x ~@2",
  I: "~@13 x ~@10",
})).gain(0.32)

// drums · snare
const snare = s("sd").struct("<~@51 A B@3 A B@10 ~@10 B@8 ~@12 B@6 C ~ B@7 ~@11 B@4 ~ B@3 ~ D ~@4>".pickRestart({
  A: "~ x ~@2", B: "~ x", C: "~@12 x!2 ~@10", D: "~@7 x",
})).gain(0.8)

// drums · low tom
const low_tom = s("lt").struct("<~@51 A ~@3 A ~@23 A ~@15 B ~@3 C ~@7 A ~@15 A ~@2 D E ~@2 D F ~@4>".pickRestart({
  A: "~@5 x!2 ~", B: "~ x!7", C: "~ x!2 ~ x!3 ~", D: "~@2 x!3 ~ x!2", E: "x ~ x!2 ~ x!3", F: "x ~ x!5 ~",
})).gain(0.48)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@94 [~@4 x!4] x ~@40>").gain(0.24)

// drums · hihat
const hihat = s("hh").struct(`<
  A ~@2 A@2 ~ A@2 ~@44 B C@6 D C@6 E ~ A@3 ~@2 A@3 C@3 F C@4 ~@12 C G C@4 H I C@7 ~@11 C@9 E ~@4
>`.pickRestart({
  A: "~ x", B: "~ x!3", C: "x!4", D: "x ~@5 x ~@5 x ~@4 x ~@3 x ~@2", E: "x", F: "x ~ x!2",
  G: "x ~@5 x ~@6 x ~@4 x ~@5", H: "x!2 ~@2", I: "x ~@2 x ~@2 x ~",
})).gain(0.56)

// drums · mid tom
const mid_tom = s("mt").struct("<~@51 A ~@3 A ~@43 B ~@23 A ~@3 A ~@8>".pickRestart({
  A: "~ x", B: "x",
})).gain(0.72)

// drums · open hat
const open_hat = s("oh").struct("<~@66 [~@3 x] [~@6 x ~@12 x ~@4] ~@11 [~ x ~@2] ~@56>").gain(0.4)

// drums · crash
const crash = s("cr").struct("<~@52 A ~@3 A ~@39 A ~@3 A ~@3 A ~@17 A ~@5 A ~ A ~ A@2 B ~>".pickRestart({
  A: "x", B: "~ x ~@6",
})).gain(0.72)

stack(
// … 3 more lines

More by Eagles