Strudelify

Let It Be Me

The Everly Brothers

KeyD majorTempo91 bpm
0:00/0:00
// Let It Be Me — The Everly Brothers
// 91 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 67 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(91/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 · electric bass finger · "Fingered"
const bass = note(`<
  A B@2 C D E F G H I J A K L M N B O B P F Q B R B S T B O U B N B V B W X N B Y A Z AA A D U B N B AB A X O U B N B O
  B N B O A B ~@3
>`.pickRestart({
  A: "d2@3 d2 d2@4", B: "d2", C: "d2 f#2", D: "a1@3 a1 a1@4", E: "b1@3 d2 a2@4", F: "d2@3 b1 d2@4", G: "g1@3 b1 g2@4",
  H: "d2 f#2 ~ d2", I: "a1@3 a1 a1@3 a2", J: "d2!2", K: "a1@4 e1@3 f#1", L: "b1@4 b1@3 a1", M: "d2 d2@2 d2", N: "g1",
  O: "a1", P: "g1@4 b1@3 d2", Q: "g1, g2 ~", R: "[g1,g2] g1", S: "g2!2", T: "f#2 f#1", U: "b1", V: "a2", W: "g1 d2",
  X: "d2@3 a2 d2@4", Y: "g1@3 g1 g1@4", Z: "g2@8 f#2@7 ~", AA: "e2 a1", AB: "a1@3 g1 e1@4",
})).s("gm_electric_bass_finger").gain(0.54)

// other · acoustic guitar steel · "Guitar1"
const acoustic_guitar_steel = note(`<
  ~@3 A B C D E F G H I B J K L M G N O P Q R S T U V W X Y Z@2 AA AB H O P Q AC S T U AD@2 X AE D AF AG AH H ~@16
>`.pickRestart({
  A: "~@4 f#4@4 f#4@5 ~ f#4@2", B: "a4@5 ~ g4@2 f#4@4 e4@4", C: "~@4 d4@3 ~ e4@5 ~ g4@2", D: "f#4@3 e4 d4@2 c#4@2",
  E: "~@6 b3@4 d4@3 ~ e4@2", F: "d4@3 ~ a3@11 ~", G: "~@6 d4@4 d4@3 c#4@2 ~", H: "d4@3 ~",
  I: "~@6 f#4@3 ~ f#4@3 ~ f#4@2", J: "~@6 d4@2 e4@6 g4 ~", K: "f#4@6 e4 ~ d4@4 c#4@4", L: "g3@4 ~@2 b3@4 d4@3 ~ e4@2",
  M: "d4@2 a3@5 ~", N: "d4 ~", O: "~@6 b4@3 b4@5 b4@2", P: "a4@2 f#4@5 ~", Q: "~@6 b4@2 c#5@5 ~ b4@2",
  R: "a4@4 f#4 e4 d4 e4@2 f#4@7", S: "~@6 g4@2 a4@4 ~ b4@2 ~", T: "a4@4 d4@9 ~@3", U: "~@6 d4@2 e4@4 ~ g4@2 ~",
  V: "f#4@3 ~", W: "~@6 f#4@2 f#4@5 ~ f#4@2", X: "a4@3 g4 f#4@2 e4@2", Y: "d4@5 ~ d4@3 ~ e4@4 g4@2",
  Z: "[f#4@6 e4@2 d4@4 ~@4 b3@4 ~@2 b3@4 d4@3 ~ d4 e4, ~@6 c#4@3 ~@7]/2", AA: "d4@4 a3@11 ~",
  AB: "~@6 d4@4 d4@3 ~ c#4@2", AC: "a4@2 ~ d4 e4 f#4@3, ~@2 f#4 ~@5, ~@5 e4@2 ~@9",
  AD: "[f#4@12 e4@6 ~@4 f#4@2 f#4@5 ~ f#4@2]/2", AE: "~@6 d4@3 ~ e4@4 g4@2", AF: "~@6 b3@4 d4@3 ~ d4 e4", AG: "d4 a3@3",
  AH: "~@8 d4@4 d4@3 c#4",
})).s("gm_acoustic_guitar_steel").gain(0.5)

// other · acoustic guitar steel · "Guitar2"
const acoustic_guitar_steel_2 = note(`<
  ~@3 A B C D E F G H I B J D K L M H ~@8 N O P Q R S T U ~@8 N O P Q R V W@2 ~@16
>`.pickRestart({
  A: "~@4 a4@4 a4@5 ~ a4@2", B: "c#5@5 ~ b4@2 a4@4 g4@4", C: "~@4 f#4@3 ~ g4@4 ~ b4@2 ~", D: "a4@5 ~ g4@2 f#4@3 ~ e4@4",
  E: "~@6 g4@3 ~ g4@3 ~ g4@2", F: "f#4@3 ~ d4@11 ~", G: "~@6 g4@4 g4@2 ~ g4@2 ~", H: "f#4@11 ~@5",
  I: "~@6 a4@3 ~ a4@3 ~ a4@2", J: "~@6 f#4 ~ g4@5 ~ b4@2", K: "~@6 d4@4 g4@3 ~ g4@2", L: "f#4@2 d4@5 ~",
  M: "~@6 g4@3 ~ g4@3 g4@2 ~", N: "~@6 a4@2 a4@5 ~ a4@2", O: "c#5@3 b4 a4@2 g4@2", P: "~@6 f#4@3 ~ g4@4 a4@2",
  Q: "a4@5 ~ g4@2 f#4@4 e4@4", R: "~@6 d4@4 g4@3 g4@2 ~", S: "f#4@4 d4@11 ~", T: "~@6 g4@4 g4@3 ~ g4@2", U: "f#4@3 ~",
  V: "f#4@4 d4@9 ~@3", W: "[~@8 g4@4 g4@3 ~@5 d5@5 ~@7, ~@15 g4@2 ~@15, ~@2 f#4 ~]/2",
})).s("gm_acoustic_guitar_steel").gain(0.36)

// other · acoustic guitar steel · "Guitar3"
const acoustic_guitar_steel_3 = note(`<
  A@4 B C A D A B A@2 B C A D A B A D A D A D A D E A B C A D A B A D A D A D A D E A B C A D A B A@2 B C A D A B A D A
  B A F ~@3
>`.pickRestart({
  A: "d3!2", B: "a2!2", C: "b2!2", D: "g2!2", E: "f#2!2", F: "[d3,a3,d4]",
})).s("gm_acoustic_guitar_steel").gain(0.17)

// chords · acoustic guitar steel · "Guitar4"
const acoustic_guitar_steel_4 = note(`<
  A B C D E F G H I J K L M N O P Q R S T G U V W X Y Z AA AB AC AD AE AF AG L AH AF AI AJ AK B AL AM AN AO AP AQ AR AS
  R AT I AU AV AW P AX R AT AY AZ BA BB BC ~@3
>`.pickRestart({
  A: "~@2 f#3@2 ~@3 a3, d3@4 ~ f#3@3, ~ a3@3 a3@3 ~, ~@3 d3", B: "~@7 a3, f#3@2 f#3@3 f#3@3, ~ d3@5 d3@2, ~@4 a3@3 ~",
  C: "~@2 f#3 ~@4 d3, ~@3 a3@3 a3@2, ~ f#3, ~@5 d3@2 ~", D: "~ f#3@2 ~@4 a3, a3@3 ~ a3@3 ~, ~@5 f#3@3, ~@3 d3",
  E: "~@7 c#4, e3 e3@2 e3, ~ a3@4 a3@3, ~@4 c#4@3 ~", F: "~@2 f#3 ~@4 d4, f#3@2 ~@3 b3@3, ~ b3@2 ~ d4@3 ~, ~@3 f#3",
  G: "~@7 d4, ~ f#3@5 f#3@2, ~@2 a3@3 a3@3, ~@4 d4@3 ~", H: "~@2 g3 ~@4 g3, g3 ~ b3@2, ~ d3@2 ~@2 g3@2 ~, ~@3 d3",
  I: "~@7 a3, ~ d4@3 d4@4, ~ f#3@2 f#3, ~@5 a3@2 ~", J: "~@2 e3 ~@3 c#4 ~, ~ c#4@2 g3@4 ~, ~@2 c#4 ~, ~@5 e3@2 ~",
  K: "~@3 f#3, d4@3 d4@5, ~ a3@4 a3@3, ~ f#3!2 ~", L: "~@6 d3 ~, a3@3 a3@4 ~, ~ f#3@4 f#3@2 ~, ~ d3!2 ~",
  M: "~@3 e3, c#4@5 c#4@3, ~ a3@2 a3@5, ~ e3@2 ~", N: "~@6 d3 b3, b3@5 b3@2 ~, ~ f#3@2 f#3@4 ~, ~ d3@2 ~",
  O: "~@2 d4 ~@4 d4, d4@2 ~@3 d3@3, ~ a3@2 ~ a3@4, ~@3 f#3", P: "~@7 b3, ~ d3@5 d3@2, ~@2 g3@3 g3@3, ~@4 b3@3 ~",
  Q: "~@2 a3 ~@4 d4, a3@2 ~@2 d4@3 ~, ~ f#3@2 ~@2 a3@3, ~@3 f#3",
  R: "~@7 c#4, g3@2 g3@3 g3@3, ~ e3@5 e3@2, ~@4 c#4@3 ~", S: "~@2 a3 ~@3 d4 f#3, ~@3 f#3@4 ~, ~@2 d4 ~, ~@5 a3@2 ~",
  T: "~@2 d4 ~@4 d4, d4@2 ~@3 b3@3, ~ b3@2 ~ g3@2 g3@2", U: "~@2 b3 ~@4 b3, b3 ~ d4@2, ~ g3@2 ~@2 b3@2 ~, ~@3 g3",
  V: "~@7 f#3, ~ a3@3 a3@4, ~ d3@2 d3, ~@5 f#3@2 ~", W: "~@2 g3 ~@3 d4 ~, ~ d4@2 b3@4 ~, ~@2 d4 ~, ~@5 g3@2 ~",
  X: "~@3 a3, a3@2 a3 ~, ~ d4@2 d4@5, ~@2 f#3@3 f#3@3", Y: "~@6 g3!2, b3@3 b3@4 ~, ~ g3@5 ~@2, ~@2 d3@5 ~",
  Z: "~@6 a#3 ~, e3@4 e3@3 ~, ~ a#3@5 ~@2, ~@2 c#4@5 ~", AA: "~@3 d3, a3@3 a3@5, ~ f#3@4 f#3@3, ~ d3!2 ~",
  AB: "~@6 e3 ~, c#4@3 c#4@4 ~, ~ a3@4 a3@2 ~, ~ e3!2 ~", AC: "~@3 f#3, d4@5 d4@3, ~ b3@2 b3@5, ~ f#3@2 ~",
  AD: "~@6 f#3 ~, d4@5 d4@2 ~, ~ a3@2 a3@4 ~, ~ f#3@2 ~", AE: "~@3 b3, d4@3 d4@5, ~ b3@3 b3@2 ~@2, ~@2 g3@3 g3@3",
  AF: "~@6 f#3 ~, a3@3 a3@4 ~, ~ f#3@5 ~@2, ~@2 d3@5 ~", AG: "~@3 e3, c#4@3 c#4@5, ~ g3@4 g3@3, ~ e3!2 ~",
  AH: "~@3 g3, b3@3 b3@5, ~ g3@3 g3@2 ~@2, ~@2 d3@3 d3@3", AI: "~@3 g3, d4@3 d4@5, ~ b3@4 b3@3, ~ g3!2 ~",
  AJ: "~@6 d3 f#3, a3@3 a3@4 ~, ~ f#3@4 f#3@2 ~, ~ d3!2 ~", AK: "~@2 d4 ~@4 d4, d4@2 ~@3 b3@3, ~ g3@2 ~ g3@2 g3@2",
  AL: "~@2 b3 ~@4 d4, ~@4 d4@3 ~, ~@5 b3@3, ~@3 g3", AM: "~@7 c#4, e3 e3@2 e3, ~ a#3@4 a#3@3, ~@4 c#4@3 ~",
  AN: "~@2 d3 ~@4 a3, d3@2 ~@3 f#3@3, ~ f#3@2 ~ a3@3 ~, ~@3 d3", AO: "~@7 c#4, ~ e3@5 e3@2, ~@2 a3@3 a3@3, ~@4 c#4@3 ~",
  AP: "~@2 f#3 ~@4 d3, f#3@2 ~ b3@3 b3@2, ~ d3@2 ~ d3@3 ~, ~@5 f#3@3",
  AQ: "~@2 d3 ~@4 a3, a3@3 ~ a3@3 ~, ~ f#3@2 ~@2 f#3@3, ~@3 d3", AR: "~@7 d4, g3 g3@2 g3, ~ b3@4 b3@3, ~@4 d4@3 ~",
  AS: "~@2 f#3 ~@4 d4, f#3@2 ~@3 a3@3, ~ a3@2 ~ d4@3 ~, ~@3 f#3", AT: "~@2 f#3 ~@4 f#3, ~ a3, ~@5 f#3@2 ~, ~@3 d3",
  AU: "~@2 e3 ~@4 c#4, ~ c#4@2 ~ c#4@3 ~, ~@5 a3@3, ~@3 e3", AV: "~@7 b3, f#3@2 f#3@3 f#3@3, ~ d3@5 d3@2, ~@4 b3@3 ~",
  AW: "~@2 f#3 ~@4 a3, ~@4 a3@3 ~, ~@5 f#3@3, ~@3 d3", AX: "~@2 f#3 ~@4 a3, f#3@2 ~@2 a3@3 ~, ~ d3@2 ~@2 f#3@3, ~@3 d3",
  AY: "~@7 b3, ~ d4@3 d4@4, ~ g3@2 g3, ~@5 b3@2 ~", AZ: "~@2 f#3 ~@3 d3@2, ~ d4@2 d4@5, ~ f#3, ~@5 a3@3",
  BA: "~ e3@2 ~@3 c#4 ~, g3@3 c#4@3 ~@2, ~@5 g3@2 ~", BB: "~@3 a3, d4@3 d4@5, ~ a3@3 a3@2 ~@2, ~@2 f#3@3 f#3@3",
  BC: "[f#3,a3,d4]", // D
})).s("gm_acoustic_guitar_steel").gain(0.32)

// chords · string ensemble 1 · "String En"
const string_ensemble_1 = note(`<
  ~ A@2 B C D E F E G E H I J B K B L H M N@6 O B P J B Q B R E S E T@5 O E U J B V B G E H W X Y Z Y AA H AB AC AD AE
  AF@4
>`.pickRestart({
  A: "[[a3,d4,f#4]!2 [a3,d4,f#4]!2, a4]/2", B: "[a3,d4,f#4]!2", C: "[a3,c#4,e4]!2, c#5", D: "[b3,d4,f#4]",
  E: "[a3,d4,f#4]", F: "[b3,d4,g4]!2", G: "[c#4,e4,g4]", H: "[a3,d4,f#4,d5]", I: "[a3,c#4,e4]!2, a4",
  J: "[b3,d4,f#4]!2", K: "[g3,b3,d4,d5]", L: "[g3,c#4,e4]!2", M: "[g3,b3,d4] [b3,d4,g4]",
  N: "[~@2 [b3,d4,g4]@2 [a3,d4,f#4]@2 [g3,b3,d4] [b3,d4,g4] [a3,d4,f#4]!2 [b3,d4,g4]!2, [a3,d4,f#4] ~@5, ~ d5@11]/6", // G D G D G D
  O: "[a#3,c#4,e4]!2, c#5", P: "[a3,c#4,e4]!2", Q: "[g3,b3,d4]", R: "[g3,c#4,e4] [c#4,e4,g4]",
  S: "[b3,d4,g4] [g3,b3,d4]", // G
  T: "[[g3,b3,d4] [b3,d4,g4] [a3,d4,f#4]!2 [b3,d4,g4] [g3,b3,d4] [a3,d4,f#4]!2 [g3,b3,d4]@2, ~ d5@9]/5", // G D G D G
  U: "[a3,c#4,e4]", V: "[b3,d4,g4]", W: "[a3,c#4,e4,c#5]", X: "[b3,d4,f#4,b4]", Y: "[a3,d4,f#4,a4]",
  Z: "[b3,d4,g4]!2, b4", AA: "[g3,c#4,e4,c#5]", AB: "[b3,d4,g4,f#5]", AC: "d5 a4@3, [a3,d4,f#4]", AD: "[c#4,e4,g4,e5]",
  AE: "[a3,d4,f#4]!2, d5", AF: "[d4,f#4,a4,d5]/4",
})).s("gm_string_ensemble_1").gain(0.07)

// chords · piano · "Acoustic"
const piano = note(`<
  A B C D E F G H I J K L M N O P Q R L S T U V W X Y Z O AA AB AC AD AE AF AG AH AI AJ AK AL O AM AN AO AP AQ AR AS AT
  AU O AV E AW AO AX AY J AZ BA BB BC BD ~@4
>`.pickRestart({
  A: "a4 ~@2 d4 f#4 ~@2 a4, d4@3 ~@2 f#4@3, f#4@2 f#4@2 a4@3 ~, ~ a4@3 d5@4", B: "[f#4,a4,d5]@4 ~@3 d4, ~ [f#4,a4,d5]",
  C: "[f#4,a4,d5]@4 f#4@3 f#4, ~ [a4,d5]", D: "a4@3 a4 f#4@3 f#4, [d4,f#4] [a4,d5]", E: "e4@7 e4, [a4,c#5]",
  F: "b4 ~ d5 b4 f#4@3 f#4, [d4,f#4] ~, ~ b4@2 ~ [b4,d5]@4", G: "~ d5 ~ f#4 f#4@3 f#4, d4 [d4,a4], f#4@3 ~@5, a4!2 ~@2",
  H: "~@6 d4 g4, [b4,d5], g4@7 ~", I: "d4@3 d4 d5 ~@2 f#4, [f#4,a4]@4 f#4@3 ~, ~@2 a4!2, ~@5 d5@3",
  J: "e4@3 e4, [g4,c#5]", K: "a4@5 ~@2 a4, f#4, d5@3 d5, ~@5 a4@2 ~", L: "a4@6 ~ f#4, d5, f#4@7 ~, ~@3 a4",
  M: "a4@3 a4 a4@3 a4, [e4,c#5]!2", N: "[f#4,b4,d5]@4 d4 ~@2 f#4, ~ b4, ~@4 f#4@3 ~, ~@5 d4@3", O: "f#4@7 f#4, [d4,a4]",
  P: "~@5 d5 ~ g4, d4, g4@7 ~, b4@3 b4", Q: "a4 ~@2 f#4 d4@3 d4, d5 ~, f#4@3 ~ [f#4,a4]@4, ~ a4@3 ~@4",
  R: "g4@7 g4, [e4,c#5]", S: "~@5 g4 ~ g4, d4@2 d4 ~, ~@3 g4@2 ~ b4@2",
  T: "f#4 ~ a4 ~@4 a4, ~ f#4@2 d5@3 d5@2, ~@5 f#4@3",
  U: "d5 ~@2 g4 ~ d5 ~ g4, g4@3 ~ d4@4, b4@2 b4@2 g4@3 ~, ~ d5@3 b4@2 b4@2",
  V: "a4 ~@2 d4 f#4@2 f#4@2, d4@3 ~@5, f#4!2 ~@2, ~ a4@3 [a4,d5]@4", W: "b4@5 ~@2 d4, d4@7 ~, g4@3 g4, ~@5 b4@3",
  X: "~@6 d4 f#4, [a4,d5], f#4@7 ~", Y: "[g4,b4,d5] ~ [d4,g4,b4] ~@2 d4 ~ d4, ~@3 [g4,b4,d5]",
  Z: "e4@2 ~ f#4 e4@3 e4, [a#4,c#5]!2, ~ e4 ~@2", AA: "a4@3 a4, [e4,c#5]",
  AB: "b4@2 b4@2 b4 ~@2 d4, [f#4,d5] d5, ~@2 f#4!2, ~@5 b4@3", AC: "[f#4,a4,d5]@4 f#4@3 f#4, ~ [d4,a4]",
  AD: "b4@2 ~ g4 b4 ~@2 d4, d5@4 ~ b4@3, g4@3 ~ d4@3 ~, ~ b4 g4!2", AE: "f#4@3 f#4, [a4,d5]",
  AF: "~@6 a4 g4, [e4,c#5], g4@7 ~", AG: "d5@6 ~ a4, f#4, a4@7 ~, ~@3 d5", AH: "b4@5 ~@2 d4, d5, g4@3 g4, ~@5 b4@3",
  AI: "~@2 a4 ~@2 a4 ~ a4, f#4@3 d5@3 d5@2",
  AJ: "[g4,b4,d5] ~ b4 ~@2 b4 g4!2, ~ g4@2 ~, ~ d5!2 ~, ~@3 b4@2 ~ [b4,d5]@2", AK: "f#4@3 f#4 f#4@3 f#4, [d4,a4]!2",
  AL: "b4@5 ~ g4@2, d5, g4@3 ~, ~@5 b4@3", AM: "[d4,g4,b4] ~ [g4,b4,d5] ~@2 b4 g4!2, ~@3 [b4,d5]",
  AN: "[e4,a#4,c#5]@4 a#4@3 a#4, ~ [e4,c#5]", AO: "f#4@7 f#4, [a4,d5]",
  AP: "c#5 ~@2 a4 e4@2 e4@2, e4 ~, a4@3 ~ [a4,c#5]@4, ~ c#5@3 ~@4", // A
  AQ: "~ d5 ~ f#4 d4@3 d4, d4 ~, f#4@3 ~ [f#4,b4]@4, b4!2 ~@2", AR: "~@2 a4 ~@4 f#4, f#4@3 d5@5, ~@5 f#4@2 ~, ~@3 a4",
  AS: "~@7 g4, g4@5 g4@2 ~, ~@3 d5@5, ~@3 b4", AT: "f#4@3 f#4 d4@3 d4, [d4,a4] [f#4,a4]",
  AU: "g4@6 ~ e4, c#5, e4@7 ~, ~@3 g4", AV: "f#4@6 ~ d4, a4, d4@7 ~, ~@3 f#4",
  AW: "f#4@5 ~ b4@2, d4, b4@3 ~, ~@5 f#4@3", AX: "[g4,b4,d5]@4 d5 ~@2 g4, ~@4 g4@3 ~, ~@2 b4!2, ~@5 d5@3",
  AY: "d4 ~@2 f#4 ~ d5 ~ f#4, a4@2 a4!2, f#4@3 ~ f#4@3 ~, ~ d4@3 d4@4", AZ: "[d4,f#4,a4]",
  BA: "[d4,g4,b4]@2 g4!2, ~ [d4,b4]", BB: "d4@3 d4, [f#4,a4]", BC: "~@2 a4 g4 e4@3 e4, [e4,c#5] ~, g4@3 ~ [g4,c#5]@4",
  BD: "f#4@3 f#4 ~@2 d5 a4, [d4,a4] [d4,f#4], ~@4 a4@3 ~", // D5 D
})).s("gm_piano").gain(0.33)

// other · string ensemble 1 · "String En"
const string_ensemble_1_2 = note(`<
  ~@19 A B C D C B E F ~@8 C B C D C B C G ~@9 C B F E F C H@2 I@3 J@2 ~@2
>`.pickRestart({
  A: "~ b5@3", B: "a5", C: "b5", D: "d6", E: "g5", F: "f#5", G: "a#5", H: "d5", I: "~ d5@15", J: "d6/2",
})).s("gm_string_ensemble_1").gain(0.07)

// drums · kick
const kick = s("bd").struct("<[x ~@2 x!3 ~@2]!54 [x ~@2 x!2 ~@3] [x ~@2 x!3 ~@2]!8 x ~@3>").gain(0.29)

// drums · snare
const snare = s("sd").struct(`<
  A B C D E F G H I J K L M N O L P F Q P R S T U V W X Y Z AA AB E AC AD AE AF AG M AB AH AI AJ AK AL AM AN AO E AB AP
  AQ AR A@2 AS B P I AT AM AU N AV AW ~@3
>`.pickRestart({
  A: "~ x ~@2 x ~@6 x!2 ~@3", B: "~@4 x!2 ~@3 x ~@2 x!2 ~ x", C: "~ x ~@2 x!2 ~@5 x!3 ~@2",
  D: "~ x ~@2 x ~@4 x ~@2 x!2 ~@2", E: "~@4 x ~@7 x!2 ~@2", F: "~@4 x ~@4 x ~ x!3 ~@2", G: "~@4 x ~@2 x ~ x!4 ~ x ~",
  H: "~ x ~ x!2 ~@6 x!2 ~@3", I: "~@4 x ~@2 x ~@4 x!2 ~@2", J: "~@3 x!2 ~@4 x ~ x!3 ~@2",
  K: "~@3 x!2 ~@4 x!2 ~ x!2 ~@2", L: "~@3 x!2 ~@7 x!2 ~@2", M: "~@3 x!2 ~@2 x ~@4 x ~@3", N: "~@3 x!2 ~@7 x ~@3",
  O: "~ x ~@2 x ~@6 x!2 ~@2 x", P: "~@4 x ~@6 x!2 ~@3", Q: "x!3 ~ x!2 ~@2 x!2 ~@3 x ~@2",
  R: "~ x ~ x!2 ~@4 x ~@2 x ~@3", S: "~ x ~@2 x ~@4 x ~@2 x!2 ~ x", T: "~ x ~@2 x!2 ~ x ~@3 x!2 ~ x ~",
  U: "~@4 x ~@4 x ~@2 x!2 ~ x", V: "~@3 x!3 ~@3 x ~ x!2 ~@3", W: "~@4 x ~@2 x ~@4 x ~@2 x", X: "~@4 x ~@3 x!3 ~ x ~@3",
  Y: "~@4 x ~@2 x ~@4 x!2 ~ x", Z: "~@3 x!2 ~@7 x!2 ~ x", AA: "~ x ~ x!2 ~@7 x!2 ~ x", AB: "~@4 x ~@7 x ~@2 x",
  AC: "~@4 x ~@4 x ~@2 x ~@3", AD: "~ x ~@2 x!2 ~@6 x!2 ~ x", AE: "x!3 ~ x ~@3 x ~ x ~@5",
  AF: "~@3 x!3 ~@3 x ~@2 x ~@3", AG: "~@4 x ~@4 x ~ x!2 ~@3", AH: "~ x ~ x!3 ~@6 x ~@3", AI: "~ x ~ x!3 ~ x ~@4 x ~@3",
  AJ: "~@3 x!3 ~ x ~@4 x ~@2 x", AK: "~@3 x!2 ~@2 x ~@4 x!2 ~@2", AL: "~ x ~ x!2 ~@7 x ~@3", AM: "~@3 x!2 ~@7 x ~@2 x",
  AN: "~@4 x!2 ~ x ~@3 x!2 ~@3", AO: "~@3 x!3 ~ x!6 ~ x ~", AP: "~ x ~@2 x ~@4 x ~@2 x ~@2 x",
  AQ: "~@4 x ~@2 x ~ x ~@2 x ~ x ~", AR: "~ x ~@2 x!2 ~@3 x ~ x!2 ~@2 x", AS: "~@4 x ~@2 x ~@2 x ~ x ~@3",
  AT: "~@4 x!2 ~ x ~ x!2 ~ x!2 ~ x", AU: "~@3 x!2 ~@4 x ~@2 x ~@3", AV: "~@4 x!2 ~ x ~@4 x ~@3", AW: "x",
})).gain(0.11)

// drums · low tom
const low_tom = s("lt").struct("<~@34 [~@12 x!3 ~] ~@32>").gain(0.36)

// drums · hihat
const hihat = s("hh").struct("<A@6 B A@3 B A@7 ~ A@3 B A@3 B A@7 ~ A@7 B A@3 B A@3 B A@3 B A@3 B A@4 ~@4>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.36)

// drums · mid tom
const mid_tom = s("mt").struct("<~@10 A ~@7 B ~@3 C ~@3 D ~@7 E ~@7 F ~@7 C ~@3 D ~@3 F ~@8>".pickRestart({
  A: "~@14 x!2", B: "~@3 x ~ x!3", C: "~@15 x", D: "~@13 x!2 ~", E: "~@5 x!2 ~@2 x ~@6", F: "~@7 x",
})).gain(0.32)

// drums · crash
const crash = s("cr").struct(`<
  ~@6 A B ~@3 B ~@7 B ~@3 B ~@2 C B ~@7 B ~@7 B ~@3 B ~@3 B ~@2 D B ~@3 B ~@3 B ~@3
>`.pickRestart({
  A: "~@9 x ~@6", B: "x", C: "~ x", D: "~@5 x ~@2",
})).gain(0.22)

// drums · ride
const ride = s("rd").struct("<A@6 B A@3 B A@7 ~ A@3 C A@3 D A@7 ~ A@7 D A@3 D A@3 C A@3 D A@3 B A@4 ~@4>".pickRestart({
  A: "x!8", B: "x!5 ~@3", C: "x!6 ~@2", D: "x!4 ~@4",
})).gain(0.32)

// … 4 more lines

More by The Everly Brothers