Strudelify
New Kid in Town cover art

Hotel California

New Kid in Town

Eagles

KeyE majorTempo112 bpm
0:00/0:00
// New Kid in Town — Eagles
// 112 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 139 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(112/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.

// chords · percussive organ · "ORGAN"
const percussive_organ = note(`<
  ~@25 A B A B A B C D E@2 ~@14 A B A B A B C D E@2 ~@32 F G F G F G H I ~@40
>`.pickRestart({
  A: "[e5,g#5,c#6]", B: "[f#5,a#5,c#6]", C: "[e5,a5,c#6]", D: "[d#5,f#5,b5]", E: "[e5,g#5,b5]/2", F: "[g5,b5,e6]",
  G: "[a5,c#6,e6]", H: "[g5,c6,e6]", I: "[f#5,b5,d#6]",
})).s("gm_percussive_organ").gain(0.17).pan(0.3)

// other · overdriven guitar · "GT.SOLO2"
const overdriven_guitar = note("<~@2 A ~ B C D E ~@49 F G H I ~@30 J ~ J ~ J ~@43>".pickRestart({
  A: "b3@3 ~ b3@3 ~ b3@8", B: "a3@2 a3 ~@3 g#3@6 e4 ~ e4 ~", C: "d#4@4 c#4@4 b3@4 e5 ~ e5 ~",
  D: "d#5@2 c#5@2 b4@2 a4 ~", E: "g#4", F: "~@2 b3@2 e4@2 b3@2 g#4@3 ~ e4@2 ~@2", G: "b3@3 ~ b3@3 ~ e4@3 ~ e4@3 ~",
  H: "d#4@5 ~ c#4@2 d#4@3 ~ c#4@3 ~", I: "[f#3,b3]@2 [g#3,c#4]@2 [f#3,b3]@2 ~@2 [d#3,f#3]@7 ~", J: "~@2 [b3,d4,g4]@5 ~",
})).s("gm_overdriven_guitar").gain(0.3).pan(0.3)

// other · overdriven guitar · "GT.SOLO"
const overdriven_guitar_2 = note(`<
  ~@2 A ~ B C D E ~@15 F G H ~@11 I J ~@6 I J F G H ~@7 K L M N O P Q R S ~@2 T U ~ V W ~@4 X Y Z ~@2 AA AB ~ AC AD ~@2
  AE AF@2 AG@4 ~@3 AH AI AJ AK AH AI AJ AK AH AI AJ AL AH@2 AM@2 AH@2 AM@2 AH@2 AM@2 AH@2 AM@2 AH@2 AM@2 AH AN ~@6
>`.pickRestart({
  A: "f#3@2 f#3 e3 g#3@4", B: "c#3@3 ~@3 c#3@6 a4 ~ a4 ~", C: "g#4@4 f#4@4 e4@4 b4 ~ b4 ~", D: "a4 g#4 f#4 e4",
  E: "e4@3 b4 e5@4", F: "~@2 g#3@2 b3@2 e4 ~@3 a3@2 b3@2 e4 ~, e3@5 ~@3 f#3@5 ~@3", G: "~ c#4 d#4 g#4@4 ~, g#3@11 ~@5",
  H: "c#3", I: "[c#5,e5]@13 ~@3", J: "[b4,d#5]@13 ~@3", K: "~ g#3 b3 g#3 e4@2 b3@2", L: "e4!2 g#4!2",
  M: "f#4@3 e4 f#4@4", N: "~@12 e5 ~ e5 ~", O: "e5 c#5 b4 c#5@2 b4 c#5 e5", P: "c#5@2 a4 f#4@2 b4 c#5 e5",
  Q: "g#5@13 ~@3", R: "c#6@4 ~@2 a5 g#5 a5 ~@2 g#5 ~@2 f#5 e5", S: "d#5", T: "a4@4 g#4@4 b4 ~@2 a4@2 ~ g#4 ~", U: "f#4",
  V: "~ c#4 e4 g#4 c#5@4", W: "~ f#3 g#3 c#4 f#4@4", X: "~@7 b3", Y: "g4 b3 a3 f#4 a3 g3 e4 f#3", Z: "e3",
  AA: "e4@2 d4@4 b3@2 c5@2 ~ b4@2 ~ d4@2", AB: "d5", AC: "~@7 c5", AD: "g5@4 e5 ~ f#5@8 ~@2",
  AE: "d4@4 g4 ~@3 b3@2 a3@2 g3@2 e3@2", AF: "[~@3 f#4@2 g2 f#2 e2@8 ~, d#3 b3 ~@6, ~ a3@2 ~@13]/2",
  AG: "[~@5 g2 f#2 e2@8 ~]/2", AH: "b3 e4 b3 e4", AI: "b3 d#4 b3 d#4", AJ: "c#4@2 e4@2 b3@2 e3!2",
  AK: "[e4,g#4]@3 ~ [d#4,f#4]@12", AL: "~ e4 b3@2", AM: "[c#4!2 g#3 c#4@2 c#4 g#3 c#4]/2", AN: "b3 e4 ~@2",
})).s("gm_overdriven_guitar").gain(0.41).pan(0.7)

// other · overdriven guitar · "GT.SOLO" · soft notes
const overdriven_guitar_soft = note("<~@132 A B@2 C@2 D@2>".pickRestart({
  A: "~@2 b3 e4", B: "[c#4!2 g#3 c#4@2 c#4 g#3 c#4]/2", C: "b3 e4 b3 e4", D: "[c#4@31 ~]/2",
})).s("gm_overdriven_guitar").gain(0.18).pan(0.7)

// chords · acoustic guitar steel · "GT.CHORD"
const acoustic_guitar_steel = note(`<
  ~ A@2 B@2 C D A@2 E A B@2 F D A@3 G B@2 F D A H I J I J I J K D L@2 M N F D A@2 G@2 D@2 F D A H I J I J I J K B G A
  D@2 F D G O B P Q@2 P@2 R S T U V W X@2 Y Z AA@4 Z@2 Y Z AA AB AC AD AC AD AC AD AE AF A AG AH AI A AG AJ AK A AL AH
  AM A@2 AN@2 A G AO AN A@2 AN@2 G@2 AO AN A@2 AN@2 G@2 AN@2 A@2 AP@2
>`.pickRestart({
  A: "[g#3,b3,e4]@3 ~ [g#3,b3,e4] ~ [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@2 ~@2", // E
  B: "[a3,b3,f#4]@3 ~ [a3,b3,f#4] ~ [a3,b3,f#4]@2 ~@4 [a3,b3,f#4]@2 ~@2", // B7
  C: "[a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@2 ~@4 [a3,c#4,e4]@2 ~@2", // A
  D: "[a3,b3,f#4]@3 ~ [a3,b3,f#4] ~ [a3,b3,f#4]@3 ~@3 [a3,b3,f#4]@2 ~@2", E: "~ [b3,e4]@13 ~@2, [e3,g#3]@13 ~@3",
  F: "[a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@2 ~@2", // A
  G: "[g#3,b3,e4]@3 ~ [g#3,b3,e4] ~ [g#3,b3,e4]@2 ~@4 [g#3,b3,e4]@2 ~@2", // E
  H: "[c4,d#4,g#4]@3 ~ [c4,d#4,g#4] ~ [c4,d#4,g#4]@2 [c4,d#4,g#4]@7 ~", I: "~@4 [c#4,e4,g#4] ~@5 [c#4,e4,g#4]@5 ~",
  J: "[a#3,c#4,f#4]@13 ~@3", K: "[a3,c#4,f#4]@3 ~ [a3,c#4,f#4] ~ [a3,c#4,f#4]@3 ~@3 [a3,c#4,f#4]@2 ~@2",
  L: "[~ [b3,e4]@28 ~@3, g#3@29 ~@3, e3@13 ~@19]/2", // E5
  M: "[a3,c#4,f#4]@3 ~ [a3,c#4,f#4] ~ [a3,b3,f#4]@2 ~@4 [a3,b3,f#4]@2 ~@2", // F#m B7
  N: "[a3,c#4,f#4]@3 ~ [a3,c#4,f#4] ~ [a3,b3,f#4]@3 ~@3 [a3,b3,f#4]@2 ~@2", // F#m B7
  O: "[c#4,e4,a4]@3 ~ [b3,d#4,g#4]@3 ~ [a3,c#4,f#4]@3 ~ [g#3,b3,e4]@3 ~", // A G#m F#m E
  P: "[a3,b3,f#4]@3 ~ [a3,b3,f#4] ~ [a3,b3,f#4]@2 [a3,b3,f#4] ~@3 [a3,b3,f#4]@2 ~@2", // B7
  Q: "[g#3,b3,e4]@3 ~ [g#3,b3,e4] ~ [g#3,b3,e4]@2 [g#3,b3,e4] ~@3 [g#3,b3,e4]@2 ~@2", // E
  R: "[c#4,e4,g#4]@3 ~ [c#4,e4,g#4] ~ [c#4,e4,g#4]@2 [c#4,e4,g#4]@3 ~ [c#4,e4,g#4]@2 ~@2", // C#m
  S: "[a#3,c#4,f#4]@3 ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4]@2 [a#3,c#4,f#4]@3 ~ [a#3,c#4,f#4]@2 ~@2", // F#
  T: "[a3,c4,e4]@3 ~ [a3,c4,e4] ~ [a3,c4,e4]@2 [a3,c4,e4]@3 ~ [a3,c4,e4]@2 ~@2", // Am
  U: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4]@2 ~@2", // D
  V: "~ [d4,g4]@3 [b3,d4,g4]@4 [b3,d4,g4]@4 [b3,d4,g4]@4, g3@13 ~@3, b3@3 ~@13", W: "[b3,d4,g4]@13 ~@3",
  X: "[c4,e4,a4]@3 ~ [c4,e4,a4] ~ [c4,d4,a4]@2 [c4,d4,a4] ~@3 [c4,d4,a4]@2 ~@2", // Am D7
  Y: "[c4,e4,g4]@3 ~ [c4,e4,g4] ~ [c4,e4,g4]@2 [c4,e4,g4] ~@3 [c4,e4,g4]@2 ~@2", // C
  Z: "[c4,d4,a4]@3 ~ [c4,d4,a4] ~ [c4,d4,a4]@2 [c4,d4,a4] ~@3 [c4,d4,a4]@2 ~@2", // D7
  AA: "[b3,d4,g4]@3 ~ [b3,d4,g4] ~ [b3,d4,g4]@2 [b3,d4,g4] ~@3 [b3,d4,g4]@2 ~@2", // G
  AB: "[a3,b3,f#4]@3 ~ [a3,b3,f#4]@4 [a3,b3,f#4]@6 ~@2", AC: "~@2 [e3,b3,d4,g4]@2 [e3,b3,d4,g4]@3 ~",
  AD: "[a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@2 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2 ~@2", // A
  AE: "[a3,c4,e4]@3 ~ [a3,c4,e4] ~ [a3,c4,e4]@3 ~@3 [a3,c4,e4]@2 ~@2", // Am
  AF: "[a3,b3,f#4] ~ [a3,b3,f#4] ~ [a3,b3,f#4] ~ [a3,b3,f#4] ~ [a3,b3,f#4]@7 ~", // B7
  AG: "[b3,d#4,g#4]@3 ~ [b3,d#4,g#4] ~ [b3,d#4,g#4]@3 ~@3 [b3,d#4,g#4]@2 ~@2", // G#m
  AH: "[c#4,e4,a4]@3 ~ [c#4,e4,a4] ~ [c#4,e4,a4]@2 ~@4 [c#4,e4,a4]@2 ~@2", AI: "[b3,e4,g#4]@3 ~ [b3,d#4,f#4]@10 ~@2",
  AJ: "[c#4,e4,a4]@3 ~ [c#4,e4,a4] ~ [c#4,e4,a4]@3 ~@3 [c#4,e4,a4] ~ [c#4,e4,a4] ~", // A
  AK: "[b3,e4,g#4]@3 ~ [b3,d#4,f#4]@3 ~ [b3,d#4,f#4] ~ [b3,d#4,f#4] ~ [b3,d#4,f#4] ~ [b3,d#4,f#4] ~", // E B
  AL: "[b3,d#4,g#4]@3 ~ [b3,d#4,g#4] ~ [b3,d#4,g#4]@2 ~@4 [b3,d#4,g#4]@2 ~@2", // G#m
  AM: "[a3,c4,e4]@3 ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~@3 [a3,c4,e4] ~@3", // Am
  AN: "[c#4,e4,g#4]@3 ~ [c#4,e4,g#4] ~ [c#4,e4,g#4]@3 ~@3 [c#4,e4,g#4]@2 ~@2", // C#m
  AO: "[c#4,e4,g#4]@3 ~ [c#4,e4,g#4] ~ [c#4,e4,g#4]@2 ~@4 [c#4,e4,g#4]@2 ~@2", AP: "[[g#3,c#4,e4]@31 ~]/2",
})).s("gm_acoustic_guitar_steel").gain(0.32).pan(0.3)

// bass · electric bass finger · "BASS"
const bass = note(`<
  ~ A B C D E D A@3 B C D E D A@3 B C D E D B F G H G H G H I J K@2 L@2 E D A@3 B C D E D B F G H G H G H I J A B C D E
  D M N C D A B C D O P Q R S T U V W X S@3 T Y X Z X T AA@2 AB@2 AC@2 AD AE AF AG AH AI AJ AG AH AI AJ AG AH AK AL AM
  AN AO AP AM AN AO AP AM AN AO AP AM AN AO AP AM AN AO AP AM AN AO AP AM AN AQ@2
>`.pickRestart({
  A: "e2@5 ~ b1@5 ~ b1@3 ~", B: "e2@5 ~ b1@5 ~ e2@3 ~", C: "b1@5 ~ f#2@5 ~ f#2@3 ~", D: "b1@5 ~ f#2@5 ~ b1@3 ~",
  E: "a1@5 ~ e2@5 ~ c#2@3 ~", F: "g#1@5 ~ d#2@5 ~ g#1@3 ~", G: "c#2@5 ~ g#1@5 ~ g1@3 ~", H: "f#1@5 ~ c#2@5 ~ g#1@3 ~",
  I: "f#1@5 ~ c#2@5 ~ f#1@3 ~", J: "b1@5 ~ f#1@5 ~ b1@3 ~", K: "[e2@29 ~@3]/2", L: "f#1@5 ~ b1@7 ~@3",
  M: "e2@5 ~ b1@5 ~ e2@2 ~@2", N: "a2@3 ~ g#2@3 ~ f#2@3 ~ e2@2 ~@2", O: "c#2@5 ~ g#1@5 ~ c#2@3 ~",
  P: "f#1@5 ~ c#2@2 f#1@3 ~ g#1@2 ~@2", Q: "a1@5 ~ a1@2 a1@3 ~ e2@2 ~@2", R: "d2@5 ~ d2@2 e2@3 ~ f#2@2 ~@2",
  S: "g2@5 ~ d2@5 ~ d2@3 ~", T: "g2@5 ~ d2@5 ~ g2@3 ~", U: "a1@5 ~ d2@7 ~@3", V: "a1@5 ~ d2@7 ~ a1@2",
  W: "c2@5 ~ g2@5 ~ e2@3 ~", X: "d2@5 ~ a2@5 ~ d2@3 ~", Y: "d2@5 ~ a2@5 ~ a2@3 ~", Z: "c2@5 ~ g2@5 ~ c2@2 ~@2",
  AA: "[b1@5 ~ f#2@3 ~ g2@2 f#2@2 e2@10 b1@3 ~ a#1@3 ~]/2", AB: "[a1@5 ~ a1@3 ~ g2@2 f#2@2 e2@9 ~ b1@3 ~ a#1@3 ~]/2",
  AC: "[a1@5 ~ a1@4 g2@2 f#2@2 e2@9 ~ b1@3 ~ a#1@3 ~]/2", AD: "a1@6 e2@5 ~ b1@3 ~", AE: "a1@6 e2@5 ~ a1@3 ~",
  AF: "b1@5 ~ b1@2 b1@2 a1@2 f#1@2 ~@2", AG: "e1@5 ~ b1@5 ~ e1@3 ~", AH: "g#1@5 ~ d#2@5 ~ g#1@2 ~@2",
  AI: "a1@5 ~ e2@2 e2@3 ~ a1@4", AJ: "~@2 b1@2 f#1 ~ b1@2 f#1 ~@3 b1@2 ~@2", AK: "a1@5 ~ e2@2 e2@3 ~ a1@2 ~@2",
  AL: "~@2 a1 ~ a1 ~ a1 ~ a1@2 ~@2 a1@2 ~@2", AM: "e2@5 ~ b2@2 b2@3 ~ b1@2 ~@2", AN: "e2@5 ~ e2 ~ e2 ~@3 d#2 ~@3",
  AO: "c#2@5 ~ g#2@2 g#2@3 ~ g#1@3 ~", AP: "c#2@5 ~ c#2@2 c#2@2 ~@2 d#2@2 ~@2", AQ: "[c#2@31 ~]/2",
})).s("gm_electric_bass_finger").gain(0.31)

// chords · epiano2 · "E.PIANO"
const epiano2 = note(`<
  A B C D ~@2 E F G@2 ~ H@2 I J K L K ~ H@2 I M K N ~ O P O P O P Q R@2 H@2 I ~ S T U ~ H@2 I M K N ~ O P O P O P Q K
  ~@6 V W ~@2 X Y ~@5 Z AA AB AC AD AE AF@2 Z AA AB AC AG AE AH AI ~@20 AJ@2 AK@2 AJ@2 AK@2 AL@2 AM@2 AL@2 AM@2 AN@2 AO
  AP AN@2 AO AP AN@2 AQ@2
>`.pickRestart({
  A: "~@13 e4 [e4,f#4] ~", B: "[e4,f#4]@2 [e4,g#4]@4 [e4,f#4]@2 [e4,g#4]@4 [g#3,b3]@3 ~", C: "[g#3,b3]@13 ~@3",
  D: "[c#4,f#4]@2 [d#4,f#4] ~@3 [c#4,f#4]@2 [d#4,f#4]@7 ~", E: "~@6 [b3,e4] ~ [b3,e4]@3 ~ [b3,e4]@3 ~",
  F: "[b3,e4]@10 ~@2 [g#4,b4] ~ [g#4,b4] ~", G: "[[g#4,b4]@3 ~ [f#4,a4] ~ [f#4,a4] ~ [f#4,a4]@3 ~ [e4,g#4]@14 ~@6]/2",
  H: "[c#4,e4]@3 [d#4,f#4]@3 [b3,d#4] ~", I: "[c#4,e4]", J: "~@2 [c#4,e4] [d#4,f#4]", K: "[e4,g#4]",
  L: "~@4 [g#4,b4] ~ [g#4,b4] ~ [g#4,b4]@4 [f#4,a4]@4", M: "~@3 [f#4,a4]", N: "~ g#4 a#4 c#5 [g#4,c5]@4, g#3",
  O: "~@4 g#3 a#3 c#4 g#3", P: "c#4", Q: "~@6 [c#4,e4] ~ [c#4,e4]@3 ~ [d#4,f#4]@3 ~", R: "[e4,g#4]/2",
  S: "~@4 [b3,g#4] ~ [b3,g#4] ~ [b3,g#4]@4 [a3,f#4]@4", // E D
  T: "~@4 [g#3,e4] ~ [g#3,e4] ~ [g#3,e4]@2 ~ [f#3,d#4]@2 ~ [e3,c#4] ~", U: "[e3,b3]",
  V: "[c#4,a4]@3 ~ [b3,g#4]@3 ~ [a3,f#4]@3 ~ [g#3,e4]@3 ~", W: "[f#3,d#4]",
  X: "[c#4,e4]@3 ~ [b3,e4] ~@3 [d#4,g#4]@2 ~ [c#4,f#4]@2 ~ [b3,e4] ~", Y: "[a3,d#4]", Z: "d5@3 e5, [g4,b4]",
  AA: "f#5@3 g5, [g4,b4]", AB: "[a4,c5,e5]@3 [a4,d5,f#5]@4 ~", AC: "[a4,c5,e5]@3 [a4,d5,f#5]@4 g5", AD: "[g4,c5,e5]",
  AE: "[a4,d5,f#5]", AF: "[[g5,b5]@6 [f#5,a5]@6 [e5,g5]@6 f#5@6 [c5,e5]@3 ~ [c5,e5]@2 ~@2, ~@9 d5@2 ~@5]/2",
  AG: "[g4,c5,e5], e6@13 ~@3", AH: "[a4,c5] [c5,e5] [b4,d5]@2", AI: "[f#4,d#5]", AJ: "b4 e5 b4 e5",
  AK: "g#4 c#5 g#4 c#5", AL: "[~@4 [a4,c#5] ~ [a4,c#5] ~ [a4,c#5]@3 ~ [g#4,b4]@17 ~@3]/2",
  AM: "[~@4 [e4,c#5] ~ [e4,c#5] ~ [e4,c#5]@2 [d#4,b4]@2 [e4,c#5]@7 ~ c#5@3 ~ g#4@3 ~ c#5@3 ~]/2", // C#m G#m C#m
  AN: "~@4 [c#5,a5] ~ [c#5,a5] ~ [c#5,a5]@3 ~ [b4,g#5]@3 ~", // F#m E
  AO: "~@4 [f#4,d#5] ~ [f#4,d#5] ~ [f#4,d#5]@3 ~ [e4,c#5]@3 ~", AP: "g#4@3 ~ c#5@3 ~ g#4@3 ~ c#5@3 ~",
  AQ: "[[e4,c#5]@31 ~]/2", // C#m
})).s("gm_epiano2").gain(0.41).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@31 B C ~ D E A@6 F@2 A@11 B A@7 G A@12 F@2 A@11 H I J I A I H A K F@3 D F@3 L F@3 D B F B F B F B F B@3 F B F B F
  B F B@3 F B F B F C ~
>`.pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@2 x!2 ~ x ~", C: "x", D: "x!2 ~ x ~@4", E: "x ~@2 x ~@3 x", F: "x ~@2 x ~@4",
  G: "x ~ x ~ x ~@2 x", H: "x ~@2 x!2 ~@2 x", I: "~ x!2 ~", J: "x ~@2 x!3 ~ x", K: "x!2", L: "x!2 ~ x ~@3 x",
})).gain(0.54)

// drums · snare
const snare = s("sd").struct(`<
  ~ A@23 B A@7 B ~@2 A C A@11 D A@7 E A@7 F A@9 G A@3 C A@3 F A@7 C A@5 H A I A@3 B A@3 J A@5 K A K A K A K A@3 K A K A
  K A K A@3 K A K A K ~@2
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@5 x!3 ~ x ~", C: "~@2 x ~@2 x!2 ~", D: "~@2 x ~ x ~@5 x!3 ~@3", E: "~@4 x ~@5 x!6",
  F: "~@4 x ~@5 x!3 ~@3", G: "~@2 x ~ x ~ x ~@3 x!3 ~@3", H: "~@4 x ~@4 x!4 ~@3", I: "x ~ x ~ x ~ x ~ x ~ x!6",
  J: "~@2 x ~ x!3 ~", K: "~@2 x!3 ~@11",
})).gain(0.6)

// drums · low tom
const low_tom = s("lt").struct("<~@91 A ~ A ~ A ~@16 B ~ B ~ B ~ B ~@3 B ~ B ~ B ~ B ~@3 B ~ B ~ B ~@2>".pickRestart({
  A: "~@3 x", B: "~@6 x!2",
})).gain(0.6)

// drums · hihat
const hihat = s("hh").struct(`<
  A B C@6 D B C@6 D B C@6 E B F B F B F B E ~@2 G H C@2 I J D B H@2 C@2 K L B F B F B F B E B C@6 M B C@6 N C E B C@2 D
  B C@2 O B C@6 P Q R Q R Q S@2 T B C@3 B C@3 B C@3 U V W V W V W V W@3 V W V W V W V W@3 V W V W V ~@2
>`.pickRestart({
  A: "x!4", B: "~ x!7", C: "x!8", D: "x!7 ~", E: "x!5 ~@3", F: "x!5 ~ x ~", G: "~ x!2 ~ x!4", H: "x!3 ~ x!4",
  I: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", J: "~@2 x!6", K: "x!4 ~@2 x!2", L: "~@2 x!3 ~@3", M: "x!2 ~@2", N: "x!4 ~ x!3",
  O: "x!4 ~ x ~@2", P: "x!5 ~@2 x", Q: "x!2 ~ x!5", R: "~ x!4 ~ x ~", S: "~ x!3 ~ x!3", T: "~ x!3 ~@4", U: "~ x!5 ~@2",
  V: "x!4 ~@4", W: "~ x!5 ~ x",
})).gain(0.42)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@24 A ~@23 B ~@25 B ~@7 C ~@7 A@2 ~ A ~ A ~@16 D ~ D ~ D ~ D ~@3 D ~ D ~ D ~ D ~@3 D ~ A ~@4
>`.pickRestart({
  A: "~ x", B: "~@4 x ~@2 x", C: "~@7 x", D: "~@8 x ~ x!2 ~@4",
})).gain(0.54)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@134 [~@10 x!2 ~@4] ~ [~@8 x ~ x!2 ~@4] ~@2>").gain(0.36)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@8 A ~@7 A ~@9 B ~ B ~ B ~@4 C@2 ~@3 D A ~ C@2 ~@2 E D ~ B ~ B ~ B ~@9 E ~@7 E ~@5 A ~@3 E ~@9 B ~ B ~ E@2 ~@41
>`.pickRestart({
  A: "~@7 x", B: "~@5 x ~ x", C: "~@3 x ~@4", D: "x", E: "~ x",
})).gain(0.54)

// drums · high tom
const high_tom = s("ht").struct("<~@48 A ~@25 B ~@37 C ~ C ~ C ~ C ~@3 C ~ C ~ C ~ C ~@3 C ~ C ~ C ~@2>".pickRestart({
  A: "~@6 x ~@6 x ~@2", B: "~@3 x ~@4", C: "~@6 x!2 ~@8",
})).gain(0.54)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@7 A ~@7 A ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~@4 A ~@6 A ~ A ~ A ~ A ~ A ~@7 A ~@9 A ~@3 A ~@3 A ~@7 B A B A B A@2 C
  A ~@3 A ~@3 A ~@3 D ~ D ~ D ~ D ~ D@3 ~ D ~ D ~ D ~ D@3 ~ D ~ D ~ A ~
>`.pickRestart({
// … 7 more lines

More by Eagles