Strudelify

Your Lucky Day in Hell

Eels

KeyC majorTempo102 bpm
0:00/0:00
// Your Lucky Day in Hell — Eels
// 102 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 108 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): "Beautiful Freak".
setcpm(102/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 · flute
const flute = note(`<
  ~@9 A@4 B@8 C D E@2 F@8 ~@5 B@8 C D G@2 F@8 ~@17 H@8 C D I J@2 C D I D C D I D C K@2 L@8 ~
>`.pickRestart({
  A: "[e4 f4 f#4 f4, [a4,c5]]/4", B: "[e4 f4 f#4 f4 e4 f4 f#4 f4, [a3,c4]]/8", C: "e4", D: "f4",
  E: "[f#4@16 f4@8 e4@7 ~, d4@15 ~, ~@16 b3@15 ~]/2", F: "[~@2 d4 f4 ~@2 d4 f4, c4]/8", G: "[f#4@2 f4 e4, d4, ~ b3]/2",
  H: "[e4 f4 d4 f4 e4 f4 d4 f4, [c4,g4]]/8", I: "d4", J: "[d#4@3 f4]/2", K: "[f4@3 d4]/2", L: "d#4/8",
})).s("gm_flute").gain(0.06).pan(0.7)

// chords · flute · soft notes
const flute_soft = note("<~@25 A@8 ~@2 B@3 ~@12 A@8 ~@2 B@3 ~@23 C@2 ~@11 D@8 ~>".pickRestart({
  A: "g4/8", B: "d4/3", C: "[g#3@3 ~]/2", D: "g#3/8",
})).s("gm_flute").gain(0.04).pan(0.7)

// chords · vibraphone
const vibraphone = note("<~ A B C D E F G H ~@54 A B C D ~@41>".pickRestart({
  A: "[a4,e5]@15 ~", B: "[a4,d#5]@15 ~", C: "[a4,d5]@13 ~ c5@2, d2@7 ~", D: "b4@15 ~", E: "[a2,a4,e5]@15 ~",
  F: "[f2,a4,d#5]@15 ~", G: "[a4,d5]@7 c5, d2", H: "f2, b4@3 ~",
})).s("gm_vibraphone").gain(0.3).pan(0.2)

// chords · vibraphone · soft notes
const vibraphone_soft = note("<~ A B ~ B ~@58 A B ~ B ~@41>".pickRestart({
  A: "a2@15 ~", B: "f2@15 ~",
})).s("gm_vibraphone").gain(0.17).pan(0.2)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@4 A@5 ~@11 B@3 ~@22 C@3 ~@14 D@3 E F G@2 H@2 I@2 J K ~@12 L M@4 N@3 O P@3 Q@4 R@4 ~
>`.pickRestart({
  A: "[~@12 g3@28 ~@4 d3@15 ~@3 c3@14 ~@4]/5", B: "[~@6 a3@17 ~]/3", C: "[~@16 g4@29 ~@3, ~@8 e4@37 ~@3]/3",
  D: "[~@3 a3@8 ~]/3", E: "d4@7 c4", F: "b3@15 ~", G: "[g1@13 a1 b1 g1]/2", H: "[a1@7 e1]/2", I: "d1/2", J: "g1",
  K: "a1@3 ~", L: "~@3 [a#3,d#4]", M: "[[g3,c4]@53 ~@3 [a#3,d#4]@8, [g2,c3]@25 ~@7]/4",
  N: "[[g2,g3,c4]@23 ~, c3@11 ~]/3", O: "~ [a#3,d#4]", P: "[[g3,c4]@47 ~, [g2,c3]@37 ~@11]/3",
  Q: "[~@56 g#3@7 ~, g#2@7 ~ g#2@7 ~ g#2@7 ~ g#2@7 ~, ~@4 d#3@11 ~@5 d#3@10 ~@22 d#3@10 ~@2, ~@4 g#3@7 ~ g#3@7 ~ g#3@7 ~@5, ~@12 d#4@14 ~@2 d#4@12 ~@4 d#4@11 ~@9]/4",
  R: "[g#2@14 ~@18 g#2@25 ~@7, d#4@27 ~@37, g#3@23 ~ g#3@29 ~@11, ~@8 g#2@7 ~@17]/4",
})).s("gm_distortion_guitar").gain(0.1).pan(1)

// chords · distortion guitar · soft notes
const distortion_guitar_soft = note("<~@74 A ~@26 B C D@4 ~>".pickRestart({
  A: "~@3 d1", B: "~@4 d#3@11 ~", C: "~@12 d#4@3 ~", D: "[d#3@19 ~@9 d#4@25 ~@11, ~@5 d#3@9 ~@2]/4",
})).s("gm_distortion_guitar").gain(0.06).pan(1)

// bass · electric bass finger · "David Daigneault"
const bass = note(`<
  ~@9 A B C D E F@2 E F G E@2 H I J K L M N O P C Q M R C N S@2 T@3 U V W F X Y Z C AA AB M AC AD AE AF AG AH AI M N
  AJ@2 ~@4 AK AL AM AN AO@2 AK AP AQ M AR AS AB C AT AU R AV AW AX AY R AZ N M R M BA BB AQ AZ N AX@2 AJ AX BC BD BC
  BE@2
>`.pickRestart({
  A: "a1@7 ~ a1 ~ a1@2 ~@2 g1@2", B: "f1@6 ~ f1!2 ~ f1@3 ~ e1@2", C: "d1@6 ~ d1!2 ~ d1@5 ~",
  D: "f1@6 ~ f1!2 ~ f1@2 g1@3 ~", E: "a1@6 ~ a1!2 ~ a1@5 ~", F: "a1@7 ~ a1 ~ a1@5 ~", G: "a1@7 a1!2 ~ a1@5 ~",
  H: "a1@6 ~ a1!2 ~ a1@4 ~@2", I: "f1@4 ~@3 f1!2 ~ f1@2 e1@4", J: "d1@5 ~@2 d1!2 ~ d1@5 ~",
  K: "e1@6 ~ e1!2 ~ e1@2 d1@4", L: "c1@5 ~@2 c1!2 ~ c1@5 ~", M: "d1@7 ~ d1 ~ d1@5 ~", N: "d#1@7 ~ d#1 ~ d#1@5 ~",
  O: "d1@5 ~@2 d1 ~@2 d1@2 f1@2 g1@2", P: "c1@6 ~ c1!2 ~ c1@5 ~", Q: "d#1@6 ~ d#1!2 ~ d#1@5 ~", R: "c1@7 ~ c1 ~ c1@5 ~",
  S: "g#1@6 ~ g#1!2 ~ g#1@5 ~", T: "a1@6 ~@2 a1 ~ a1@4 ~@2", U: "a1@6 ~@2 a1 ~ a1@2 e1@2 g1@2",
  V: "a1@6 ~@2 a1 ~ a1@5 ~", W: "a1@7 ~ a1 ~ a1@4 ~@2", X: "a1@3 ~ a1 e1 g1 c2", Y: "a1@6 ~ a1!2 ~ a1@2 g1@4",
  Z: "f1@5 ~@2 f1!2 ~ f1@2 e1@4", AA: "e1@5 ~@2 e1!2 ~ e1@4 d1@2", AB: "c1@7 ~ c1 ~ c1@4 ~@2",
  AC: "d#1@6 ~@2 d#1 ~ d#1@6", AD: "d1@6 ~@2 d1 ~ d1@2 f1@2 g1@2", AE: "c1@6 ~ c1!2 ~ c1@6", AF: "d1@6 ~ d1!2 ~ d1@6",
  AG: "d#1@5 ~@2 d#1!2 ~ d#1@6", AH: "d1@6 ~ d1 d1@2 g1@2 a#1@2 c2@2", AI: "c1@5 ~@5 c1@5 ~",
  AJ: "g#1@7 ~ g#1 ~ g#1@4 ~@2", AK: "g1@4 g1 g1@3", AL: "g1@4 g1 a1 b1 ~", AM: "a1@4 a1 a1@3", AN: "a1@4 a1!2 e1@2",
  AO: "d1@4 d1 d1@3", AP: "a1@3 a1 a1@2 d2@2", AQ: "c1@6 ~@2 c1 ~ c1@5 ~", AR: "d#1@6 ~ d#1!2 ~ d#1@4 ~@2",
  AS: "d1@5 ~ d1 ~ d1@2 g1@2 a1@4", AT: "d#1@7 ~ d#1 ~ d#1@4 ~@2", AU: "d1@4 ~@2 d1 ~ d1@2 g1@2 a1@2 c2@2",
  AV: "d1@6 ~@2 d1 ~ d1@5 ~", AW: "d#1@4 ~@2 d#1 ~ d#1@4 a#1@4", AX: "g#1@7 ~ g#1 ~ g#1@5 ~",
  AY: "g#1@6 ~ g#1!2 ~ g#1@2 a#1@4", AZ: "d1@7 ~ d1 ~ d1@4 ~@2", BA: "d#1@6 ~@2 d#1 ~ d#1@5 ~",
  BB: "d1@7 ~ d1@2 g1@2 a1@4", BC: "g#1@6 ~@2 g#1 ~ g#1@5 ~", BD: "g#1@5 ~@3 g#1 ~ g#1@5 ~", BE: "[g#1@7 ~]/2",
})).s("gm_electric_bass_finger").gain(0.42)

// other · clavinet
const clavinet = note("<~@13 A B C@2 D B E ~ F G@2 H I ~@12 J K L ~ M N O ~ P Q@3 R ~@57>".pickRestart({
  A: "~@4 e3@3 ~ e3@4 ~@2 c3@2", B: "d3 c3@2 a2@2 c3 ~@2", C: "[~@2 c3 ~ c3 a2 e3 d3@2 ~@7]/2",
  D: "~@4 e3 ~ e3 ~ e3@3 ~@3 c3@2", E: "~@2 c3 ~ c3 a2 e3 d3", F: "~@6 a3 ~ a3@2 ~ a3@2 ~ a3@2",
  G: "[b3@3 c4@3 d4@4 c4@3 ~ e4@4 c4@4 a3@3 ~ e4@4 d4@2]/2", H: "~@3 c4 e4 d4 c4 d4", I: "c4@3 ~@13",
  J: "~@4 e3@2 e3 ~ e3@2 ~@2 e3 ~ c3@2", K: "d3@2 c3@3 ~ c3@4 ~@6", L: "~@4 c3 ~ c3 ~ c3@2 a2@2 e3@2 d3@2",
  M: "~@4 e3 ~ e3 ~ e3@3 ~ e3@2 c3@2", N: "d3@2 c3 ~ c3 ~ c3@4 ~@6", O: "~@2 c3 ~ c3 ~ c3 ~ c3@2 a2@2 e3@2 d3@2",
  P: "~@6 a3 ~ a3 ~@2 a3 ~@2 a3@2",
  Q: "[b3@2 c4@3 ~ b3@4 c4@2 ~@2 e4@4 c4@4 a3@4 e4@3 ~ d4@4 ~@4 c4@2 e4@2 d4@2 c4@2 d4@2]/3", R: "c4 ~",
})).s("gm_clavinet").gain(0.4)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@24 A@8 B C@6 ~@9 D E@8 F@6 ~@11 G H@7 I@6 J@7 K@3 L@8 ~@2>".pickRestart({
  A: "[~@12 c5@24 d5@7 c5@21, ~@3 g5@29, ~@3 c6@4 ~@25]/8", B: "[f5,a#5] c6 d5 [c5,f5], ~ g5@2 ~",
  C: "[c5@5 ~@4 g5@3, g5@56 g6@21 ~@19, ~@40 c6@37 ~@19]/6", D: "~@15 c6",
  E: "[~@4 a5 ~@67 d5@14 c5@42, ~ g#5@2 c5@15 ~@14, ~ e5 g5@14]/8",
  F: "[[f5,a#5]@4 c6@4 d5@4 f5@4 ~@48 g6@31 ~, ~@4 g5@8 c5@36 c6@47 ~, ~ g5@3 ~@2]/6", // A#5
  G: "~@11 d6@3 ~@2, g6@15 ~, ~@4 f6@11 ~, ~@8 e6@7 ~", H: "[c5@4 d5 c5@3, g5@111 ~]/7",
  I: "[[f5,a#5]@4 c6@4 d5@3 ~ f5@4 ~@55 g6@25, ~@4 g5@8 c5@43 c6@41, ~@2 g5@7 ~@3]/6", // A#5
  J: "[c5@56 d5@8 c5@47 ~, g5@55 ~]/7", K: "[[f5,a#5]@4 c6@4 d5@3 ~ f5@4 g5@32, ~ g5@2 c5@9]/3", L: "[~ g6@7, c6]/8",
})).s("gm_string_ensemble_2").gain(0.2).pan(0.3)

// other · piano
const piano = note(`<
  ~@25 A B@4 C@4 D@4 ~@12 A B@4 C@4 D@4 ~@4 E@2 F@2 G@3 H@2 I@3 A J@3 K L@5 M@3 N O P@3 Q@3 R@2 ~@6
>`.pickRestart({
  A: "~@6 c5 d5", B: "[e5@2 f5@4 e5@4 d5@2 c5 ~ c5@8 ~@4 d#5@2 c5 ~ c5@26 ~@4 c5@2 d5@2]/4",
  C: "[e5@2 f5@4 e5@4 d5@2 c5 ~ c5@5 ~@3 g4 ~ g4@2 e5@2 c5 ~ c5@20 ~@10 c5@2 d5@2]/4",
  D: "[e5@2 f5@4 e5@4 d5@2 c5 ~ g5@11 ~ a#5@2 g5 ~ g5@11 ~ a#5@2 g5 ~ g5@16 ~@2]/4",
  E: "[~@8 b4@2 ~ b4@2 ~ b4 ~ c5 ~@2 b4 ~@2 g4 ~ f5 ~@2 e5 ~@2 d5 ~, [g2,g3]@15 ~]/2", // G
  F: "[e5@2 ~@2 c5 ~ c5@2 ~@14 g4@2 a4 ~ a4 ~ e5 ~ a4 ~, [a2,a3]@15 ~]/2", // A
  G: "[d5@2 c5 ~@3 a4@2 ~@14 g4@2 a4@2 e5@2 ~@10 e5@2 d5 ~@5 e5@2, [d3,d4]@29 ~ d5@5 ~@13, ~@32 [g2,g3]@13 ~@3]/3", // D G
  H: "[d5@2 c5 ~ a4 ~ g4 ~ a4 ~ b4@2 ~@2 c5@4 ~@10 c5@2 d5@2, [a2,a3]@13 ~@19]/2", // A
  I: "[e5@3 f5@3 e5@4 d5@2 c5 ~ c5@8 ~@4 d#5@2 c5 ~ c5@7 ~@11]/3",
  J: "[e5@2 f5@3 ~ e5@3 ~ d5@2 c5 ~ c5@4 ~@4 f4 ~ g4@2 ~ e5@2 ~ c5@11 ~@7]/3", K: "~@12 c5 ~ d5 ~",
  L: "[e5@2 ~ f5@2 ~ e5@2 ~@2 c5@2 ~@2 g5@5 ~@7 a#5@2 g5 ~ g5@8 ~@4 a#5@2 g5 ~ g5@11 ~ a#5@2 g5 ~ g5@9 ~@5 c5@2 d5 ~]/5",
  M: "[e5@2 ~ f5@2 ~ e5@2 ~@2 d5@2 c5 ~ c5@8 ~@4 d#5@2 c5 ~ c5@11 ~@7]/3", N: "~@12 c5@2 d5 ~",
  O: "e5@2 ~ f5@2 ~ e5@2 ~@2 d5@2 c5 ~ c5@2", P: "[~@6 f4 ~ g4@2 ~ e5@2 ~ c5@7 ~@5 a#5@2 g5 ~ g5@7 ~@7 c5@2 d5 ~]/3",
  Q: "[e5@2 ~ f5@2 ~ e5@2 ~@3 c5@2 ~ g5@5 ~@7 a#5@2 g5 ~ g5@4 ~@8 a#5@2 g5 ~ g5@2]/3",
  R: "[~@10 a#5 ~ g5 ~ g5@4 ~@8 a#5@2 g5 ~ g5@2]/2",
})).s("gm_piano").gain(0.48).pan(0)

// chords · electric guitar clean · "has alternative MIDI"
const electric_guitar_clean = note(`<
  ~@24 A@3 ~ B@3 ~ C@4 D@2 ~@11 A@3 ~ B@3 ~ C@4 D@2 ~@11 E@2 ~@2 F@2 ~@2 G@3 ~ H@2 I@2 J@4 K@5 L@8 ~
>`.pickRestart({
  A: "[~ g4@2, ~@7 e3@17, ~@5 e4@11]/3", B: "[~@8 g4@15 ~, ~@7 [e3,g3]@16 ~, ~@5 [b3,c4,e4]@10 ~]/3",
  C: "[~@8 [c4,e4,g4]@17 ~@7, ~@7 e3@18 ~@7, ~@15 [g3,b3]@35 ~@14]/4", // C G
  D: "[~@28 g4@3 ~, g#3@15 ~ g#3@15 ~, ~@4 c4@15 ~ c4@11 ~, ~@8 d#4@14 ~@2 d#4@7 ~, ~@12 g4@13 ~@7]/2",
  E: "[~@16 g4@15 ~, ~@14 g3@17 ~, ~@15 [b3,c4,e4]@16 ~]/2", F: "[~ g4, ~@15 [b3,c4,e4]@17]/2",
  G: "[~@8 [e4,g4]@9 ~@7, ~@5 c4@6 ~@5]/3", // Em
  H: "[~@14 g4 ~, g#3@12 g4@13 ~@7, ~@2 c4@7 ~ c4@5 ~, ~@8 d#4@11 ~@5 d#4@6 ~@2, ~@8 g#3@7 ~]/2",
  I: "[~ g4@10 ~@6 a4@9 ~@6, [b3,c4,e4]@11 ~@4 a3@12 ~@5, ~@8 [d4,f4]@5 ~@3]/2", // Cmaj7 Dm
  J: "[[g4,a#4]@11 ~@6 a4@9 ~@6 [e4,g4]@12 ~@5 a4@10 ~@5, ~@15 [a3,c4]@12 ~@4 [g3,b3,c4]@13 ~@3 [a3,c4]@12 ~@5, ~@16 [d4,f4]@11 ~@21 [d4,f4]@10 ~@6]/4", // Gm Em Am Cmaj7 Am Dm
  K: "[[g4,a#4]@10 ~@6 [f4,a4]@11 ~@5 [e4,g4]@11 ~@5 [f4,a4]@11 ~@5 [g4,a#4]@13 ~@3, ~@15 d4@11 ~@5 [b3,c4]@12 ~@4 d4@11 ~@5 d#4@14 ~@3]/5", // Gm F Em F Gm Cmaj7
  L: "[~@31 g4, g#3@14 ~@2 g#3@13 ~@3 g#3@14 ~@2 g#3@14 ~@2 g#3@14 ~@2 g#3@14 ~@34, ~@4 c4@15 ~ c4@14 ~@2 c4@14 ~@2 c4@14 ~@2 c4@14 ~@2 c4@14 ~@2 c4@14 ~@2 c4@12, ~@8 d#4@15 ~ d#4@14 ~@2 d#4@14 ~@2 d#4@14 ~@2 d#4@15 ~ d#4@14 ~@2 d#4@14 ~@2 d#4@8, ~@12 g4@14 ~@2 g4@14 ~@2 g4@14 ~@2 g4@14 ~@2 g4@14 ~@2 g4@13 ~@3 g4@12 ~@8]/8",
})).s("gm_electric_guitar_clean").gain(0.23)

// chords · electric guitar clean · "has alternative MIDI" · soft notes
const electric_guitar_clean_2 = note("<~@24 A@3 ~@22 A@3 ~@26 B@2 ~@2 C@3 ~@2 D@4 ~@2 E@6 ~@6 F G@2>".pickRestart({
  A: "[~ c4@2, ~@5 [g3,b3]@11]/3", B: "[~@7 g3@9]/2", C: "[~@5 [g3,b3]@6 ~@5]/3",
  D: "[~@15 g3@11 ~@5 c4@10 ~@6 [a#3,d#4]@12 ~@5]/4", // D#5
  E: "[~@15 [a#3,d#4]@11 ~@5 [a3,c4]@13 ~@3 g3@13 ~@3 [a3,c4]@13 ~@3 a#3@14 ~@3]/6", F: "g#3@3 ~", G: "[g#3@21 ~@11]/2",
})).s("gm_electric_guitar_clean").gain(0.12)

// chords · percussive organ
const percussive_organ = note("<~@67 A@2 B@2 C@2 D E ~@33>".pickRestart({
  A: "[g4,b4,d5]/2", B: "[a4,c5,e5]/2", C: "[a4,d5,f5]/2", D: "[g4,d5,f5]", E: "[a4,e5,g5]",
})).s("gm_percussive_organ").gain(0.22)

// other · distortion guitar · ""Beautiful Freak""
const distortion_guitar_2 = note("<~@6 A@2 ~@100>".pickRestart({
  A: "[~@13 d3@15 ~@4]/2",
})).s("gm_distortion_guitar").gain(0.13).pan(0)

// chords · electric guitar clean
const electric_guitar_clean_3 = note("<~@74 A@3 ~@2 B@2 ~@2 C@2 ~ D@5 E@4 F@3 G@8 H@2>".pickRestart({
  A: "[~@26 g4@15 ~@7, ~@14 g3@17 ~@17, ~@15 [b3,c4,e4]@16 ~@17]/3", B: "[~@5 g4@8 ~@3, ~@9 [b3,c4,e4]@17 ~@6]/2",
  C: "[~@5 [e4,g4]@9 ~@2, ~@9 c4@18 ~@5]/2", // Em
  D: "[~@38 g4@2 ~@3 g4@10 ~@6 a4@9 ~@6 [g4,a#4]@6, ~@10 g#3@12 g4@13 ~@45, ~@14 c4@14 ~@2 c4@10 ~@2 [b3,c4,e4]@11 ~@27, ~@18 d#4@11 ~@5 d#4@6 ~@18 [d4,f4]@10 ~@12, ~@26 g#3@14 ~@17 a3@12 ~@11]/5", // Gm Cmaj7 Dm
  E: "[~@11 a4@9 ~@6 [e4,g4]@12 ~@5 a4@10 ~@5 [g4,a#4]@6, ~@9 [a3,c4]@12 ~@4 [g3,b3,c4]@13 ~@3 [a3,c4]@12 ~@11, ~@10 [d4,f4]@11 ~@21 [d4,f4]@10 ~@12]/4", // Em Gm Am Cmaj7 Am Dm
  F: "[~@10 [f4,a4]@11 ~@5 [e4,g4]@11 ~@5 [f4,a4]@6, ~@9 d4@11 ~@5 [b3,c4]@12 ~@4 d4@7]/3", // F Em F Cmaj7
  G: "[~@10 [g4,a#4]@13 ~@103 c4@2, ~@9 d#4@14 ~@3 g#3@14 ~@2 g#3@13 ~@3 g#3@14 ~@2 g#3@14 ~@2 g#3@14 ~@2 g#3@14 ~@8, ~@30 c4@15 ~ c4@14 ~@2 c4@14 ~@2 c4@14 ~@2 c4@14 ~@2 c4@14 ~@4, ~@34 d#4@15 ~ d#4@14 ~@2 d#4@14 ~@2 d#4@14 ~@2 d#4@15 ~ d#4@14, ~@19 g4@7 ~ g4@7 ~ g4@7 ~ g4@7 ~ g4@7 ~ g4@5]/8", // Gm
  H: "[~@22 g4@9 ~, ~@2 d#4@14 ~@2 d#4@13 ~, ~@3 g4@6 ~@7, ~@14 c4@17 ~]/2",
})).s("gm_electric_guitar_clean").gain(0.06).pan(1)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_4 = note("<~@79 A@2 ~@2 B@2 ~@3 C@4 ~@2 D@6 ~@5 E@3>".pickRestart({
  A: "[~@4 g3@9 ~@3]/2", B: "[~@9 [g3,b3]@18 ~@5]/2", C: "[~@9 g3@11 ~@5 c4@10 ~@6 [a#3,d#4]@12 ~@11]/4",
  D: "[~@9 [a#3,d#4]@11 ~@5 [a3,c4]@13 ~@3 g3@13 ~@3 [a3,c4]@13 ~@3 a#3@14 ~@9]/6", E: "[~@10 g#3@12 ~@4 g#3@21 ~]/3",
})).s("gm_electric_guitar_clean").gain(0.03).pan(1)

// drums · kick
const kick = s("bd").struct("<~ [x ~@3 x!2 ~@2]!72 ~@2 [x ~@3 x!2 ~@2]!28 ~@5>").gain(0.35)

// drums · rim
const rim = s("rim").struct("<~@25 [~ x ~ x]!13 ~@12 [~ x ~ x]!13 ~@12 [~ x ~ x]!12 [~ x ~@2] ~@20>").gain(0.45)

// drums · snare
const snare = s("sd").struct("<~ A@24 ~@13 A@12 ~@13 A@4 ~@20 B A@4 B C A C D C@2 A@2 C A ~@5>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~@4 x ~@2 x ~@4 x ~@3", D: "~ x ~@2",
})).gain(0.5)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~ A@24 ~@13 A@12 ~@13 A@4 ~@21 A@4 B ~ A ~ C ~@2 A@2 ~ A ~@5>".pickRestart({
  A: "~@7 x ~@8", B: "~@4 x ~@2 x ~@8", C: "~@7 x ~@4 x ~@3",
})).gain(0.2)

// drums · hihat
const hihat = s("hh").struct("<A B@7 C B@16 ~@13 B@12 ~@13 D B@11 ~@33>".pickRestart({
  A: "~ x!3", B: "x!8", C: "x!6 ~@2", D: "x!2 ~ x!5",
})).gain(0.35)

// drums · high tom
const high_tom = s("ht").struct("<~@75 x ~@32>").gain(0.05)

// drums · ride bell
const ride_bell = s("rd").struct("<~@25 [x!4]!13 ~@12 [x!4]!13 ~@12 [x!8]!31 [x ~ x ~ x ~ x!3 ~@5 x!2] x>").gain(0.25)

// drums · tambourine
const tambourine = s("tb").struct("<~@24 [~ x ~ x]!14 ~@11 [~ x ~ x]!14 ~@12 [~ x ~ x]!28 ~@5>").gain(0.35)

// … 27 more lines

More by Eels