Strudelify
I Cant Tell You Why cover art

1979 · The Long Run

I Cant Tell You Why

Eagles

KeyG♯ minorTempo89 bpm
0:00/0:00
// I Cant Tell You Why — Eagles
// 89 bpm, 4/4, key G# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 83 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(89/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  A@2 ~@2 B C D@2 E F G H E I J K L@2 M N O P Q@2 R F G H E I J K L@2 M N O S T U V W X@2 Y@2 E Z AA AB E AC AD AE L AF
  AG AH L AI AG AJ V AK M AL AM AN AO AP AQ AR AM AP AS AR AT AN AU@2 AV@3
>`.pickRestart({
  A: "[g#1@7 ~]/2", B: "g#1@7 ~@9", C: "~@12 g#2 ~@3", D: "[~@5 g#1 ~ d#1@6 ~ d#1 f#1]/2", E: "b1@4 ~@2 b1 ~ b1@6 ~@2",
  F: "b1@4 ~@2 b1 ~ b1@3 ~ f#2@2 f2 ~", G: "e2@4 ~@2 e2 ~ e2@7 ~", H: "e1@4 ~@2 e1 ~ e1@3 ~ c#2@3 ~",
  I: "b1@4 ~@2 b1 ~ b1@3 ~ f#2 ~ f2 ~", J: "e2@4 ~@2 e2 ~ e2@6 ~@2", K: "d#2@4 ~@2 d#2@2 d#1@5 ~ f1 f#1",
  L: "g#1@4 ~@2 g#1 ~ g#1@7 ~", M: "e1@4 ~@2 e1 ~ e1@7 ~", N: "d#1@5 ~ d#1@2 d#2@6 ~@2", O: "g#1@4 ~@2 g#1 ~ g#1@6 ~@2",
  P: "g#1@15 ~", Q: "[e1@11 ~ e1 ~ d#1@13 ~ f#1@2 a#1@2]/2", R: "b1@4 ~@2 b1 ~ b1@7 ~",
  S: "g#1@4 ~@2 g#1 ~ g#1@4 c#1@2 d#1 ~", T: "e1@5 ~ e1 ~ e1@7 ~", U: "d#1@4 ~@2 d#1 ~ d#1@7 ~",
  V: "e1@4 ~@2 e1 ~ e1@8", W: "d#1@15 ~", X: "[g#1@7 ~ g#1 ~ g#1@2 ~@2 g#1@15 ~ d#1 ~]/2",
  Y: "[g#1@7 ~ g#1 ~ g#1@3 ~ d#1@12 ~@2 d#1@2 a#1@2]/2", Z: "b1@5 ~ f#2 g#2 ~@2 g#2 ~ f#2 ~ f2@2",
  AA: "e2@2 ~ e2 e1@3 ~", AB: "e1@5 ~ e1 ~ e1@4 c#2@3 ~", AC: "b1@4 ~@2 b1 ~ b1@3 ~ f#2@2 f2@2",
  AD: "e2@4 ~@2 e2@2 e1@7 ~", AE: "d#2@4 ~@2 d#2@2 d#1@4 f1@2 f#1 ~", AF: "g#1@5 ~ g#1 ~ g#1@4 c#1@2 d#1@2",
  AG: "e1@5 ~ e1 ~ e1@8", AH: "d#1@6 d#2@9 ~", AI: "g#1@4 ~@2 g#1 ~ g#1@4 c#1@2 d#1@2",
  AJ: "d#1@5 ~ d#1@4 d#2@2 d#1@3 ~", AK: "d#1@6 d#1 ~ d#1@7 ~", AL: "d#1@4 ~@2 d#1 ~ d#1@6 ~@2",
  AM: "e1@4 ~@2 e1@2 g#1@2 b1@2 c#2 ~ e2 ~", AN: "d#2@4 ~@2 d#2 ~ d#2@4 c#1@2 d#1@2",
  AO: "e1@4 ~@2 e1@2 g#1@2 b1@2 c#2@2 e2 ~", AP: "d#2@4 ~@2 d#2 ~ d#2@3 ~ f#2 ~ f2@2",
  AQ: "e2@2 b1@2 e1@4 g#1 ~@3 c#2 ~@3", AR: "d#2@4 ~@2 d#2 ~ d#2@4 c#1 ~ d#1@2", AS: "e2 ~ b1@2 e1@4 g#1@2 ~@2 c#2 ~@3",
  AT: "e1@4 ~@2 e1@2 g#1@2 b1 ~ c#2 ~ e2 ~", AU: "[g#1@6 ~@2 g#1 ~ g#1@2 ~@2 g#1@11 ~ d#2@2 d#2@2 d#1@2]/2",
  AV: "[g#1@7 ~ g#1 ~ g#1@3 ~ d#1@31 ~@3]/3",
})).s("gm_acoustic_bass").gain(0.41)

// bass · acoustic bass · "ACOU BASS" · soft notes
const bass_soft = note("<~ A B@2 C@2 D ~@40 E ~@22 F ~@3 F ~@8>".pickRestart({
  A: "~@7 d#1", B: "[g#1@25 ~ d#2 ~ d#2@2 d#1@2]/2", C: "[~@8 g#1 ~ g#1@2 ~@2 g#1@12 g#2 ~@3 d#2@2]/2",
  D: "g#1@6 ~@2 g#1 ~@7", E: "~@4 b2 ~@3", F: "~@5 b1 ~@2",
})).s("gm_acoustic_bass").gain(0.26)

// chords · piano · "A.PIANO 3"
const piano = note(`<
  A@2 B@2 C@2 D@2 E@2 F@2 G@2 H I J K L M N O P@2 E@2 F@2 Q@2 H R J K L S T K U V W X Y@2 Z@2 AA@2 AB@2 AC@2 AD AE J AF
  AG AH N AI AJ AK AL AM AN AO ~ AP AQ AP AQ AP AQ AP AQ AP AQ AP AR@2 AS@3
>`.pickRestart({
  A: "[~@8 [g#3,b3,d#4] ~ [g#3,b3,d#4]@2 ~@2 [g#2,f#3,a#3,c#4]@15 ~ d#2 ~, g#2@13 ~@19]/2", // G#m F#
  B: "[~@8 [g#3,b3,d#4] ~ [g#3,b3,d#4]@3 ~ [f#3,a#3,c#4]@11 ~@5 d#2 ~, g#2@7 ~]/2", // G#m F#
  C: "[~@8 [g#3,b3,d#4] ~ [g#3,b3,d#4]@2 ~@2 [f#3,a#3,c#4]@15 ~ d#2 ~, g#2@7 ~]/2", // G#m F#
  D: "[~@8 [g#3,b3,d#4] ~ [b3,d#4] ~@3 [a#3,c#4]@12 ~@2 a#3@2 c#4 ~, g#2@13 ~ d#2@17 ~, ~@10 g#3@2 ~@2 f#3@10 ~@2 f#3@5 ~]/2", // G#m B A#m
  E: "[[b2,d#3,a#3,d#4,f#4]@29 ~@3]/2", F: "[[e3,g#3,b3,d#4]@23 ~ c#4@2 b3@2 c#4@3 ~]/2",
  G: "[[b2,f#3,a#3,d#4,f#4]@7 ~]/2", H: "[b3,d#4,f#4]@13 ~@3", I: "[a#3,d#4]@3 ~, d#3@7 ~", J: "[g#2,g#3,b3,d#4]@15 ~",
  K: "[g#2,f#3,a#3,c#4]@15 ~", L: "[e3,g#3,b3]@13 ~@3",
  M: "[a#2,d#3,f#3,a#3,d#4]@5 ~ [a#3,d#4,g4]@9 ~, ~@6 g3@7 ~@3, ~@6 [a#2,d#3] ~@9", N: "[g#3,b3,d#4]@15 ~",
  O: "[f#3,a#3,c#4]@15 ~", P: "[[e3,g#3,b3]@11 ~ [e3,g#3,b3] ~ [f#3,a#3]@14 f#3@2 a#3@2, ~@7 d#3@8 ~]/2",
  Q: "[[b2,f#3,a#3,d#4,f#4]@29 ~@3]/2", R: "[a#3,d#4,g4]@3 ~, d#3@7 ~",
  S: "[a#2,d#3,f#3,a#3,d#4]@4 ~@2 [a#3,d#4,g4]@9 ~, ~@6 g3@7 ~@3, ~@6 [a#2,d#3] ~@9", T: "[g#2,g#3,b3,d#4]@7 ~",
  U: "[e3,g#3,b3]@3 ~", V: "[a#2,d#3,f#3]@4 ~@2 [a#3,d#4,g4]@7 ~@3, ~@6 [a#2,d#3]@9 ~", W: "[g#3,b3]@5 ~@11, d#4@3 ~",
  X: "[a#3,d#4,f#4], [a#2,d#3,f#3]@3 ~", Y: "[~@8 [g#3,b3,d#4] ~ [g#3,b3,d#4] ~@3 [f#3,a#3,c#4]@16 ~@2, g#2@15 ~]/2",
  Z: "[~@8 [g#3,b3,d#4] ~ [g#3,b3,d#4] ~@3 [f#3,a#3]@10 ~@4 a#3@2 c#4 ~, g#2@12 ~@2 d#2@17 ~, ~@7 c#4@6 f#3@2 ~]/2", // G#m F#
  AA: "[[a#3,d#4,f#4]@23 ~ [a#3,c#4,f#4]@3 ~ [a#3,d#4,f#4]@4, [b2,d#3,f#3]@7 ~]/2", // D#m F# D#m B
  AB: "[d#4@24 c#4@2 d#4@2 c#4@3 ~, [e3,g#3]@29 ~@3, b3@11 ~@5]/2", // E
  AC: "[[a#3,d#4,f#4]@19 ~ c#4@3 ~ d#4@4 c#4@3 ~, b2@29 ~@3, ~@20 [a#3,f#4]@11 ~]/2", // D#m
  AD: "[e3,g#3,b3]@13 ~@3, d#4@15 ~", AE: "g4@6 d#4 g4, [d#3,a#3], d#4@5 ~@3", AF: "[f#3,a#3,c#4]@7 ~, g#2@3 ~",
  AG: "[e3,g#3,b3,d#4]@15 ~", AH: "[a#2,d#3,a#3,d#4,f#4]@5 ~ [a#3,d#4,g4]@7 ~@3, ~@3 [a#2,d#3]@5",
  AI: "[g#2,f#3,a#3,c#4]@7 ~", AJ: "[e3,g#3,d#4]@15 ~, b3@13 ~@3",
  AK: "[d#3,a#3,d#4,f#4]@5 ~ [a#2,d#3,g3,a#3]@8 ~@2, ~@3 [d#4,g4]@5", AL: "[d#4,f#4]@15 ~, b3@13 ~@3",
  AM: "[a#2,d#3,d#4,f#4]@7 ~", AN: "[d#4,f#4,b4]@15 ~, [e3,g#3,b3]@13 ~@3",
  AO: "d#4@2 ~@4 a#3@9 ~, [a#2,d#3,f#4]@15 ~, f#3@9 ~@7, a#3 ~@3 d#4@11 ~", AP: "[d#3,a#3,d#4,f#4]@15 ~",
  AQ: "[e3,b3,d#4,g#4]@15 ~", AR: "[~@8 [g#2,g#3,b3,d#4] ~ [g#2,g#3,b3,d#4]@2 ~@2 [g#2,f#3,a#3,c#4]@17 ~]/2",
  AS: "[~@8 [g#2,g#3,b3,d#4] ~ [g#2,g#3,b3,d#4]@3 ~ [d#2,f#3,a#3,c#4]@31 ~@3]/3", // G#m D#m7
})).s("gm_piano").gain(0.31)

// chords · piano · "A.PIANO 3" · soft notes
const piano_soft = note(`<
  ~@8 A@2 ~@4 B C ~@3 D ~@4 A@2 ~@3 E@2 F ~@3 D ~@3 G ~@10 H@2 ~ I ~@3 J ~@3 K@2 L ~@19
>`.pickRestart({
  A: "[f#3@7 ~]/2", B: "[e3,g#3]@7 ~", C: "[a#2,g#3]@7 ~", D: "f#4 ~@3", E: "[~@15 [e3,g#3]@14 ~@3]/2",
  F: "[a#2,g3]@7 ~", G: "a#3@3 ~@3 g3@8 ~@2", H: "[f#3@15 ~]/2", I: "[a#2,g3]@15 ~", J: "f#3@4 ~@2 g3@9 ~",
  K: "[[a#2,f#3]@4 ~@12 g#3@13 ~@3, ~@15 e3@14 ~@3]/2", L: "f#3@7 ~",
})).s("gm_piano").gain(0.15)

// chords · drawbar organ · "ORGAN 1"
const drawbar_organ = note(`<
  ~@3 A B@4 C D E F G D E H I@4 J K L@2 M D E F G D E H I@4 N@4 O P Q@2 R@2 S@3 T C U V W X@4 Y Z AA AB E AC AD AE AF AG
  AH AI AJ AK AH AI AJ AL AH AM AN@2 AO@3
>`.pickRestart({
  A: "~@10 d#3 ~ d#3 ~ d#2@2",
  B: "[g#2@7 ~ g#2 ~ g#2@2 ~@2 g#2@11 ~ g#3 ~ g#3 ~ d#3 ~ g#2@6 ~@2 g#2 ~ g#2@2 ~@2 d#2@12 ~@2 d#2@2 f#2 ~, g#5@63 ~]/4",
  C: "b2@4 ~@2 b2 ~ b2@6 ~@2", D: "b2@4 ~@2 b2 ~ b2@3 ~ f#2@2 f2@2", E: "e2@4 ~@2 e2 ~ e2@7 ~",
  F: "e2@4 ~@2 e2 ~ e2@4 c#3@3 ~", G: "b2@4 ~@2 b2 ~ b2@7 ~", H: "d#3@5 ~ d#3@2 d#2@5 ~ f2 f#2",
  I: "[g#2@4 ~@2 g#2 ~ g#2@7 ~ g#2@4 ~@2 g#2 ~ g#2@6 ~@2 e2@4 ~@2 e2 ~ e2@7 ~ d#2@4 ~@2 d#2@2 d#3@6 ~@2, g#5@27 ~@5]/4",
  J: "g#2@4 ~@2 g#2 ~ g#2@6 ~@2", K: "g#2@7 ~", L: "[e2@11 ~ e2 ~ d#2@13 ~ f#2@2 a#2@2]/2",
  M: "~ b2@3 ~@2 b2 ~ b2@6 ~@2",
  N: "[g#2@4 ~@2 g#2 ~ g#2@7 ~ g#2@4 ~@2 g#2 ~ g#2@4 c#2@2 d#2 ~ e2@4 ~@2 e2 ~ e2@7 ~ d#2@4 ~@2 d#2 ~ d#2@4 d#3@2 d#2@2, g#5@27 g5@5, ~ f#5 ~@2]/4",
  O: "e2@4 ~@2 e2 ~ e2@8", P: "d#2",
  Q: "[g#2@6 ~@2 [g#2,g#4,b4,d#5] ~ [g#2,g#4,b4,d#5]@2 ~@2 g#2@11 ~ d#3 ~ d#3@2 d#2@2, ~@7 a#4@9]/2", // G#m
  R: "[g#2@7 ~ [g#2,g#4,b4,d#5] ~ [g#2,g#4,b4,d#5]@3 ~ d#2@12 ~@2 d#2@2 a#2@2, ~@14 [d#4,f#4,a#4,c#5]@17 ~]/2", // G#m D#m7
  S: "[b2@4 ~@2 b2 ~ b2@7 ~ b2@5 ~ f#3 g#3 ~@2 g#3@2 [f#3,d#5]@2 f3@2 e3@4 ~@2 e3@2 e2@7 ~, d#4@29 ~@19, [a#4,d#5] b3]/3", // D#m D#5
  T: "[e2,e5,g#5]@4 ~@2 e2 ~ e2@3 ~ c#3@4", U: "b2@4 ~@2 b2 ~ c#5@2 d#5@2 [f#3,c#5]@2 [f3,d#5]@2, ~@2 b2 ~",
  V: "e3@2 ~ e3 ~@2 d#5@2, ~ d#5 e2@2", W: "d#3@5 ~ d#3@2 d#2@4 f2@2 f#2@2, d#5@15 ~, e4 ~@15",
  X: "[g#2@4 ~@2 g#2 ~ g#2@7 ~ g#2@4 ~@2 g#2 ~ g#2@4 c#2@2 d#2@2 e2@4 ~@2 e2 ~ e2@7 ~ d#2@6 d#3@8 ~@2, g#5@53 ~@11, ~ f#5 ~@2]/4",
  Y: "g#2@4 ~@2 g#2 ~ g#2@7 ~", Z: "g#2@5 ~ g#2 ~ g#2@4 c#2@2 d#2 ~", AA: "e2@5 ~ e2 ~ e2@8",
  AB: "d#2@5 ~ d#2@6 d#3@2 d#2@2", AC: "d#2@4 ~@2 d#2 ~ d#2@4 ~ d#2@3", AD: "e2@4 ~@2 e2 ~ e2@7 ~, [g#4,g#5]",
  AE: "d#2@5 ~ d#2 ~ d#2@7 ~, [f#4,f#5]", AF: "e2@4 ~@2 e2@2 g#2@2 b2@2 c#3 ~ e3 ~, [g#4,d#5]@15 ~",
  AG: "d#3@4 ~@2 d#3 ~ d#3@4 c#2@2 d#2@2, [d#4,f#4,a#4]", AH: "e2@4 ~@2 e2@2 g#2@2 b2@2 c#3 ~ e3 ~, e4",
  AI: "d#3@4 ~@2 d#3 ~ d#3@3 ~ f#3 ~ f3 ~", AJ: "e3@6 e2@2 g#2@2 b2@2 c#3 ~ e3 ~, e4",
  AK: "d#3@4 ~@2 d#3 ~ d#3@4 c#2@2 d#2@2, d#4", AL: "d#3@4 ~@2 d#3 ~ d#3@4 c#2@2 d#2 ~, d#4",
  AM: "d#3@4 ~@2 d#3 ~ d#3@4 c#2@2 d#2@2", AN: "[g#2@7 ~ g#2 ~ g#2@2 ~@2 g#2@12 d#3@2 d#3@2 d#2@2]/2",
  AO: "[g#2@7 ~ g#2 ~ g#2@3 ~ d#2@31 ~@3]/3",
})).s("gm_drawbar_organ").gain(0.41)

// chords · drawbar organ · "ORGAN 1" · soft notes
const drawbar_organ_soft = note(`<
  ~@17 A B C D E ~@11 A B F ~@2 G H I A J@2 ~@2 K@2 L@2 M@2 N O ~@2 B P Q@4 R A ~@2 S T U V U W U V U W U V ~@5
>`.pickRestart({
  A: "f#5", B: "e5", C: "~@3 g5@4 ~", D: "[g#4,b4,d#5]@7 ~", E: "[f#4,a#4,c#5]", F: "d2 ~@2 g5@4 ~", G: "e5@15 ~",
  H: "f#5@3 ~@5", I: "g#5", J: "[~@7 [f#4,c#5]@9]/2", K: "[b3@24 ~@2 c#5@3 ~ c#5@2, f#4@15 ~]/2",
  L: "[d#5@3 ~@2 [d#5,f#5] [e5,g#5] [f#5,a#5], [e4,g#4,b4]@31 ~]/2", M: "[[b3,d#4,f#4]@31 ~, d#5@3 ~]/2",
  N: "e5 ~ c#5 ~, [e4,g#4,b4]@7 ~", O: "~@6 [g4,g5]@9 ~, ~@2 d#4@13 ~", P: "~@3 g5@5",
  Q: "[~@8 f#5@8 e5@8 ~@3 g5@5, g#5@27 ~@5]/4", R: "[e5,g#5]", S: "b4@15 ~", T: "c#5", U: "[g#4,b4,d#5]@15 ~",
  V: "[d#4,f#4,a#4,c#5]", W: "[f#4,a#4,c#5]@15 ~",
})).s("gm_drawbar_organ").gain(0.2)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@6 A@2 B ~@7 C@4 D E F ~@9 C@4 G B H I J K A@2 L@2 M@2 N@2 O@2 P@2 Q@4 R@4 D E S T D U V W X@4 Y@4 Z@3 ~@2
>`.pickRestart({
  A: "[g#4@31 ~]/2", B: "f#4", C: "[~@8 f#4@8 e4@8 ~@3 [d#4,g4]@5, g#4@27 ~@5]/4", D: "[g#3,g#4]@15 ~", E: "[f#3,f#4]",
  F: "g#4@15 ~", G: "g#4 ~@15", H: "e4@15 ~", I: "f#4@3 g4@5", J: "g#4", K: "f#4@15 ~", L: "[g#4,g#5]/2",
  M: "[[a#2,d#3,f#3,f#4]@31 ~]/2", N: "[[b3,d#4]@4 c#4@4 b3@4 a#3@4 b3@13 ~@3, [e3,g#3]@29 ~@3]/2",
  O: "[[a#2,d#3,f#3]@29 ~@3, [d#4,f#4]]/2", // D#m
  P: "[e4@2 d#4@2 c#4@2 ~@2 c#4@4 d#4@3 ~, [e3,g#3]@14 ~@2 [a#2,d#3,g3]@15 ~, b3@3 b3@3 ~@2]/2", // E D#
  Q: "[~@2 f#4@2 e4@2 ~ g4, g#4@55 ~@9]/4", R: "[~@8 f#4@8 e4@8 ~@3 g4@5, g#4@27 ~@5]/4", S: "[g#3,g#4]",
  T: "[f#3,f#4]@7 ~", U: "[d#4,f#4,a#4]@15 ~", V: "[e4,g#4,b4]", W: "[d#4,f#4,a#4]", X: "[g#4@63 ~, b4@13 ~@51]/4",
  Y: "[g#4, g#5@53 ~@11]/4", Z: "[~@8 g#4 ~ g#4@3 ~ g#4@32 ~@2]/3",
})).s("gm_string_ensemble_1").gain(0.31)

// other · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note("<~@21 A B ~@18 C D@2 E@2 ~@31 F G@2 H@3>".pickRestart({
  A: "~@4 b3 c#4 d4 e4", B: "b3@11 ~@5", C: "~@4 b3 c#4 d#4 e4", D: "[b3@21 ~@3 b3@2 c#4@2 d#4@2 e4@2]/2",
  E: "[b3@5 ~@3]/2", F: "~@8 b3@2 c#4@2 d#4@2 e4 ~", G: "[b3@11 ~ b3 c#4 d#4 e4]/2",
  H: "[b3@7 ~ b3 ~ b3@2 ~@2 f#3@32 ~@2]/3",
})).s("gm_acoustic_guitar_steel").gain(0.36)

// drums · kick
const kick = s("bd").struct("<~ A B A B A B A C@13 B D E C@17 B D@3 E C@17 F C@14 G A H ~@2>".pickRestart({
  A: "~@7 x", B: "x", C: "x ~@2 x!2 ~@3", D: "~@3 x!2 ~@3", E: "~@3 x!2 ~@2 x", F: "x ~@2 x!2 ~@2 x",
  G: "x ~@3 x!2 ~ x", H: "x ~@3 x!2 ~@2",
})).gain(0.51)

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

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

// drums · hihat
const hihat = s("hh").struct("<~@8 A@13 ~ B@2 A@17 ~ B@4 A@17 C A@14 B@3 ~@2>".pickRestart({
  A: "x!4", B: "~ x ~ x", C: "x!2 ~@2",
})).gain(0.51)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@8 A@13 ~@3 A@17 ~@5 A@17 B A C A C A D A@8 ~@5>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~@4", C: "~ x ~ x ~@3 x", D: "~ x ~ x ~ x ~@2",
})).gain(0.15)

// drums · open hat
const open_hat = s("oh").struct("<~@65 A ~ A ~ B ~@10 B ~@2>".pickRestart({
  A: "~@5 x ~@2", B: "~@7 x",
})).gain(0.51)

// drums · ride
const ride = s("rd").struct("<~@4 x ~@16 x ~@19 x ~@41>").gain(0.51)

stack(
  bass, bass_soft, piano, piano_soft, drawbar_organ, drawbar_organ_soft, string_ensemble_1, acoustic_guitar_steel, kick,
  snare, low_tom, hihat, hihat_soft, open_hat, ride
)

More by Eagles