Strudelify

Fool's Paradise

Buddy Holly

KeyF majorTempo142 bpm
0:00/0:00
// Fool's Paradise — Holly Buddy
// 142 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 88 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(142/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 · piano · "A.PIANO 1"
const piano = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA P AB AC AD AE AF AG AH@2 AI@2 AJ@2 AK AL AM AN E AO G AP I AQ
  AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH D E BI G BJ I BK BL AS BM BN BO AS BP BQ BR BS BT BU@3
>`.pickRestart({
  A: "f1 ~ f1@2 d2 ~ c2@2 f1 ~ [f4,a4,c5,d5] ~ d2@2 c2 ~, ~@5 f1 ~@2", // Dm7
  B: "[f1,f4,a4,c5,d5] ~ f1@2 d2 ~ [c2,f4,a4,c5,d5] ~ f1 ~ [f4,a4,c5,d5] ~ d2 ~ c2 ~, ~@5 f1 ~@2", // Dm7
  C: "f1 ~ f1@2 d2@2 c2 ~ f1 ~ f1@2 d2 ~ c2 ~",
  D: "f1 ~ [f1,f4,a4,c5,d5]@2 d2@2 [c2,f4] ~ [a4,c5,d5]@2 f1@2 [d2,f4,a4,c5,d5] ~ c2 ~, ~@8 [f1,f4] ~ f4 ~@5", // Dm7 F5 D7 Dm7 F
  E: "f1 ~ f1@2 d2@2 c2 ~ f1 ~ f1@2 d2@2 c2 ~",
  F: "f1 ~ [f1,f4,d5]@2 d2@2 [c2,f4,a4,c5,d5]@2 f1 ~ [f4,a4,c5,d5] ~ [f4,a4,c5,d5] ~ [c2,f4,a4,c5,d5] ~, ~@2 [a4,c5] ~@7 f1@2 d2@2 ~@2", // Dm Dm7 Am
  G: "bb1 ~ bb1@2 g2@2 f2 ~ bb1 ~ bb1@2 g2 ~ f2 ~",
  H: "bb1 ~ [bb1,bb4,d5]@2 g2@2 [f2,f4] ~ [bb4,d5]@2 bb1@2 [f4,bb4,d5] ~ f2@2, ~@8 bb1 ~ f4 ~ g2@2 ~@2", // Bb F Bb
  I: "bb1 ~ bb1@2 g2@2 f2 ~ bb1 ~ bb1@2 g2@2 f2 ~",
  J: "bb1 ~ [f4,bb4,d5] ~ g2@2 [f2,f4,bb4,d5]@2 bb1 ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f2,f4,bb4,d5] ~, ~ bb1 ~@3 bb1 g2 ~", // Bb
  K: "c2 ~ c2@2 a2@2 g2 ~ c2 ~ c2@2 a2@2 g2 ~, ~@4 [e4,g4,c5]@5 ~ [e4,g4,c5]@4 ~@2", L: "[e4,g4,c5] ~@15, c2 ~@7",
  M: "f1 ~ f1@2 d2@2 c2@2 [f4,a4,c5,d5]@2 f1@2 d2@2 c2@2, ~@8 f1 ~@7", // Dm7
  N: "f1 ~ f1@2 d2@2 [c2,f4,c5,d5]@2 f1 ~ f1@2 d2@2 c2 ~, [f4,a4,c5,d5]@4 ~@2 a4 ~@9", // Dm7
  O: "c2 ~ c2@2 a2@2 [e4,g4,c5]@2 c2 ~ [e4,g4,c5] ~ a2@2 g2@2, [e4,g4,c5]@4 ~@2 g2 ~@3 c2@2 ~@4", // C
  P: "[c2,e4,g4,c5] ~@7", Q: "f1 ~ f1@2 d2@2 c2 ~ f1 ~ f1@2 d2@2 [c2,f4] ~, ~@5 [a4,c5,d5]@2 ~",
  R: "[a4,c5,d5]@2 f1@2 [f4,a4,c5,d5] ~ [f4,a4,c5,d5]@2 f1 ~ [f1,c5,d5]@2 d2@2 c2 ~, [f1,f4] ~ f4 ~ d2@2 c2 ~@3 [f4,a4] ~@5", // D7 Dm7 F
  S: "f1 ~ f1@2 d2 ~ c2 ~ f1 ~ f1@2 d2@2 c2 ~",
  T: "f1 ~ f1@2 d2@2 [c2,f4] ~ [a4,c5,d5]@2 f1@2 [d2,a4,c5,d5]@2 [c2,f4] ~, ~@2 [a4,c5,d5]@4 ~@2 f1 ~ f4 ~@5", // F5 D7 F5 D7
  U: "[f1,f4,a4,c5,d5] ~ f1@2 d2@2 c2 ~ f1 ~ f1@2 d2@2 c2 ~", // Dm7
  V: "f1 ~ [f1,f4,a4,c5,d5]@2 d2@2 [a4,c5,d5,f5]@2 f1 ~ [f1,d5,f5]@2 d2@2 [bb4,d5,f5]@2, ~@6 c2 ~@3 [a4,c5] ~@3 c2 ~", // Dm7 Dm Bb Am
  W: "bb1@2 bb1@2 g2@2 f2@2 bb1 ~ bb1@2 g2@2 f2 ~",
  X: "bb1 ~ [f4,g4,bb4,d5]@2 g2@2 [f4,g4,bb4,d5]@2 bb1 ~ [bb1,f4,g4,bb4,d5]@2 g2@2 [f4,g4,bb4,d5]@2, ~@2 bb1 ~@3 f2 ~@7 f2 ~", // Gm7
  Y: "bb1 ~ bb1@2 g2@2 f2 ~ bb1 ~ bb1@2 g2@2 f2@2",
  Z: "bb1 ~ [bb1,bb4,d5]@2 g2@2 [f4,bb4,d5] ~ bb1 ~ [bb1,f4,bb4,d5]@2 g2@2 f2 ~, ~@4 f4 ~ f2@2 ~@8", // Bb
  AA: "c2 ~ c2@2 a2@2 e4@2 [c2,g4] ~ [c2,g4]@2 [a2,e4]@2 g2 ~, ~@6 g2 ~@9", // C5 A5
  AB: "f1 ~ f1@2 d2@2 c2 ~ [f1,c4,f4] ~ f1@2 d2@2 [c2,c4,f4] ~", AC: "f1 ~ f1@2 d2@2 c2@2 f1 ~ f1@2 d2@2 c2 ~",
  AD: "c2 ~ c2@2 a2@2 g2 ~ c2 ~ c2@2 a2@2 g2 ~, [c4,e4,g4]@4 ~ [c4,e4,g4]@2 ~", AE: "[c2,c4,e4,g4] ~@7",
  AF: "f1 ~ f1@2 d2@2 c2 ~ f1 ~ [f1,f4]@2 d2@2 [c2,f4] ~, ~@5 [a4,c5,d5]@2 ~", // F F5 D7
  AG: "[a4,c5,d5]@2 [f1,f4]@2 [d2,a4,c5,d5]@2 [c2,f4] ~ f1 ~ f1@2 [d2,g4]@2 [c2,a4] ~, f1 ~@3 f4 ~@5 f4 ~@5", // D7 F D7 F5 G5 F
  AH: "[bb1 ~ bb1@2 g2@2 f2 ~ bb1 ~ [f4,bb4,d5] ~ g2@2 f2 ~ bb1 ~ bb1@2 g2@2 f2@2 bb1 ~ bb1@2 [g2,f4,bb4,d5]@2 f2 ~, [f4,bb4,d5]@8 ~@2 bb1@2 ~@2 [f4,bb4,d5]@13 ~@5]/2", // Bb Gm7 Bb
  AI: "[f1 ~ f1@2 d2@2 c2 ~ f1 ~ [f4,a4,c5] ~ d2@2 c2 ~ f1 ~ f1@2 d2@2 c2 ~ f1 ~ f1@2 [d2,f4,a4,c5]@2 c2 ~, [f4,a4,c5]@8 ~@2 f1@2 ~@2 [f4,a4,c5]@13 ~@5]/2", // F Dm7 F
  AJ: "[g1 ~ g1@2 d2@2 c2@2 g1 ~ [g4,b4,d5] ~ d2@2 c2 ~ g1 ~ g1@2 d2@2 c2@2 g1 ~ g1@2 d2@2 c2 ~, [g4,b4,d5]@9 ~ g1@2 ~@2 [g4,b4,d5]@14 ~@4]/2", // G
  AK: "[c2,c4] ~ [c2,c4] ~ [c2,c4] ~ [c2,c3,c4] ~ [c2,c3,c4] ~ [c2,c3,c4] ~ [c2,c3,c4] ~ [c2,c3,c4] ~", // C
  AL: "[c2,c3,c4] ~ [c2,c3,c4] ~ [bb2,bb3] ~ [bb2,bb3] ~ [a2,a3] ~ [a2,a3] ~ [g2,g3] ~ [g2,g3] ~", // C Bb A G
  AM: "f1@2 f1@2 d2@2 c2 ~ f1 ~ f1@2 d2 ~ c2 ~",
  AN: "f1 ~ f1@2 d2@2 [c2,f4] ~ [a4,c5,d5]@2 f1@2 [a4,c5,d5]@2 [c2,f4] ~, ~@2 [f4,a4,c5,d5]@4 ~@2 f1 ~ f4 ~ d2 ~@3", // F5 D7 F5 Dm7
  AO: "f1 ~ [f4,a4,c5,d5] ~ d2@2 [c2,f4,d5]@2 f1 ~ [f1,f4,a4,c5,d5]@2 d2@2 [c2,f4,a4,c5] ~, ~@2 f1@2 ~@2 [a4,c5] ~@9", // Dm7 F Am
  AP: "bb1 ~ bb1@2 g2@2 [f2,f4] ~ [bb1,g4] ~ [bb1,bb4]@2 g2@2 [bb4,d5] ~, ~@2 [bb4,d5]@4 ~@4 d5 ~ f4 ~ f2@2", // F Eb Bb
  AQ: "bb1 ~ bb1@2 g2@2 f2@2 [d4,f4,g4]@2 bb1@2 [g2,d4,f4,g4]@2 f2 ~, ~@2 [d4,f4,g4]@4 d4 ~ bb1 ~@7", // G7
  AR: "c2 ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [g2,c4,e4,g4] ~ [c2,c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [g2,c4,e4,g4] ~, ~ c2 a2 ~@2 c2 a2 ~", // C
  AS: "[c4,e4,g4] ~@15, c2 ~@7", AT: "f1 ~ f1@2 d2@2 c2@2 [c4,f4]@2 f1@2 [d2,c4,f4]@2 c2@2, ~@8 f1 ~@7",
  AU: "[c4,f4]@2 f1@2 d2@2 c2@2 f1 ~ f1@2 d2@2 c2 ~, f1 ~@15", // F5
  AV: "[c2,g4] ~ [e4,g4] ~ [e4,g4] ~ [g2,e4,g4] ~ [c2,e4,g4] ~ [e4,g4] ~ [e4,g4] ~ [e4,g4] ~, ~ c2 a2 ~@2 c2 a2 g2", // C5 Em C Em
  AW: "[e4,g4] ~@15, c2 ~@7", AX: "f1 ~ f1@2 d2@2 c2 ~ f1 ~ [f1,f4,a4,c5,d5]@2 d2@2 [c2,f4] ~",
  AY: "[f4,a4,c5,d5]@2 f1@2 d2@2 [c2,f4,a4,c5] ~ f1 ~ f1@2 d2@2 [c2,bb6] ~, f1 ~@5 d5@2 ~@2 [f6,a6]@4 ~@2", // Dm7 F C7 F
  AZ: "[bb6,d7]@2 bb1@2 [bb6,d7] ~ [bb6,d7]@2 bb1 ~ [bb6,d7] ~ g2@2 [f2,bb6] ~, bb1 ~@3 g2@2 f2 ~@3 bb1@2 c7 ~@3", // Bb Bb5
  BA: "[bb1,bb6,d7] ~ [bb1,bb6,d7]@2 g2@2 f2@2 bb1 ~ [bb1,bb6,d7]@2 g2@2 [f2,bb6,d7] ~", // Bb
  BB: "[a6,c7]@2 f1@2 [a6,c7] ~ [c2,a6,c7] ~ [f1,c7,f7] ~ [c7,f7] ~ [a6,c7] ~ [c2,a6,c7] ~, f1 ~@3 d2@2 ~@4 f1@2 d2@2 ~@2", // Am F F5 Am F
  BC: "f1 ~ f1@2 d2@2 c2 ~ f1 ~ f1@2 [d2,d6,f6]@2 [c2,e6,g6] ~", // Dm C
  BD: "[f6,a6]@2 g1@2 [f6,a6] ~ [d2,f6,a6]@2 g1 ~ [f6,a6] ~ [e2,e6,g6]@2 [d2,d6,f6] ~, g1 ~@3 e2@2 ~@4 g1@2 ~@4", // F Dm F Em Dm
  BE: "[f6,a6]@2 g1@2 [f6,a6] ~ [d2,f6,a6]@2 g1 ~ [g1,f6,a6]@2 d2@2 [c2,f6,a6] ~, g1 ~@3 e2@2 ~@10", // F Dm F
  BF: "[c2,bb6,d7] ~ [c2,bb6,d7] ~ c2 ~ [c2,c3,a6,c7] ~ [c2,c3,g6,bb6] ~ [c2,c3] ~ [c2,c3,f6,a6] ~ [c2,c3] ~", // Gm F C7 C F C
  BG: "[c2,c3,e6,g6] ~ [c2,c3,g6,c7] ~ [c2,c3] ~ [c2,c3,a6,c7] ~ [c2,c3,a6,c7] ~ [c2,c3,g6,bb6] ~ [c2,c3,f6,a6] ~ [c2,c3,e6,g6] ~", // C C5 C F C7 F C
  BH: "f1@2 f1@2 d2@2 c2 ~ f1 ~ f1@2 d2 ~ c2 ~, f6 ~@15",
  BI: "f1 ~ [f1,f4,a4,c5,d5]@2 d2@2 [c2,f4,a4,c5,d5]@2 f1 ~ [f1,a4,c5,d5]@2 d2@2 [c2,f4,a4,c5,d5] ~, ~@10 f4 ~ f4 ~@3", // Dm7
  BJ: "bb1 ~ [f4,g4,bb4,d5] ~ g2@2 [f2,f4,g4,bb4,d5] ~ bb1 ~ [f4,g4,bb4,d5] ~ g2@2 f2@2, ~ bb1 ~@3 bb1 ~@2", // Gm7
  BK: "bb1 ~ [f4,g4,bb4,d5] ~ g2@2 [f4,g4,bb4,d5] ~ bb1 ~ [f4,g4,bb4] ~ g2@2 f2 ~, ~ bb1 ~ f2 ~ [bb1,d5] ~@2", // Gm7 Bb
  BL: "c2 ~ c2@2 a2@2 [g2,c4,e4] ~ [c4,e4,g4]@2 c2@2 [a2,f4,a4]@2 g2 ~, ~@8 c2 ~@3 c4 ~@3", // C Dm
  BM: "f1 ~ f1@2 d2@2 c2@2 [c4,f4]@2 f1@2 d2@2 c2@2, ~@8 f1 ~@7", // F5
  BN: "[f1,f4] ~ f1@2 d2@2 [c4,f4] ~ f1 ~ f1@2 d2@2 c2 ~, c4 ~@2 c2 ~@4", // F F5
  BO: "c2 ~ c2@2 a2@2 [g2,e4,g4] ~ [c2,c4,e4,g4] ~ c2@2 a2@2 [e4,g4] ~, ~@7 g2", // C Em
  BP: "f1 ~ f1@2 d2@2 c2 ~ f1 ~ [f1,a4,c5,d5]@2 d2@2 [c2,f4] ~", // Dm7 F5
  BQ: "[f1,a4,c5,d5]@2 [f1,f4]@2 [d2,a4,c5,d5]@2 c2@2 f1 ~ [f1,a4,c5,d5]@2 d2@2 c2 ~, ~@6 f4 ~@5 f4 ~@3", // Dm7 F D7 Dm7
  BR: "c2 ~ c2@2 a2@2 [g2,c4] ~ [c4,e4,g4]@2 c2@2 [a2,f4]@2 [g2,e4]@2, ~@8 c2 ~@3 c4@4", BS: "c2 ~@7",
  BT: "f1 ~ f1@2 d2@2 c2 ~ f1 ~ f1@2 d2@2 [c2,f4] ~, ~@5 [f4,a4,c5,d5]@2 ~", // F5 Dm7
  BU: "[[a4,c5,d5]@2 f1@2 d2@2 [f4,a4,d5] ~@5 [f4,a4,d5]@23 ~@13, [f1,f4] ~ f4 ~ a4 ~ f1@4 ~@2 [f1,c5]@13 ~@23, ~@3 c5 ~@20]/3", // D7 Dm F F5
})).s("gm_piano").gain(0.4).pan(0.6)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  A B C A D E F G F H I J K L M J N O P Q R S T@3 H U J N V W X N Y Z T P AA AB AC W AD Q P AE AF AG T AH H AI J N AJ W
  J N AK T G N AA AL AM AI AN AO Q AP AQ T@2 AR AS M J N AJ W J N AJ W J AT AU@2 ~
>`.pickRestart({
  A: "f2@5 ~ f2 ~ c2@6 ~@2", B: "f2@5 ~@3 c2@6 ~@2", C: "f2@2 ~@2 c2@3 ~", D: "f2@5 ~@3 c2@5 ~@3",
  E: "f2@4 ~@2 f2 ~ c2@4 f2@3 ~", F: "bb2@5 ~@3 f2@5 ~@3", G: "bb2@5 ~ bb2 ~ f2@4 ~@4",
  H: "bb2@4 ~@2 bb2 ~ f2@3 ~ bb2@2 ~@2", I: "c3@5 ~ c3 ~ g2@5 ~@3", J: "c3 ~@7", K: "f2@4 ~@4 c2@5 ~@3",
  L: "f2@5 ~@3 c2@3 ~ f2@2 ~@2", M: "c3@4 ~@2 c3 ~ g2@3 ~ g2@3 ~", N: "f2@4 ~@2 f2 ~ c2@4 ~@2 c2 ~",
  O: "f2@5 ~@3 c2@4 ~@4", P: "f2@4 ~@2 f2 ~ c2@5 ~@3", Q: "f2@5 ~ f2 ~ c2@5 ~@3", R: "f2@5 ~ f2 ~ c2@5 ~ c2 ~",
  S: "f2@2 ~@2 f2@3 ~ g2@3 ~ a2@2 ~@2", T: "bb2@4 ~@2 bb2 ~ f2@5 ~@3", U: "c3@4 ~@4 c3@3 ~ c3@3 ~",
  V: "f2@4 ~@2 c2 ~ c2@3 ~ f2@2 ~@2", W: "c3@4 ~@2 c3 ~ g2@4 ~@2 g2 ~", X: "c3@3 ~@13",
  Y: "f2@2 ~@2 f2@4 g2@3 ~ a2@2 ~@2", Z: "bb2@5 ~ bb2 ~ f2@6 ~@2", AA: "f2@5 ~ f2 ~ c2@3 ~ f2@2 ~@2",
  AB: "g2@5 ~ g2 ~ g2@6 ~@2", AC: "g2@5 ~@3 g2@5 ~@3", AD: "c3@3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~", AE: "f2@3 ~ c2@3 ~",
  AF: "f2@4 ~@2 f2 ~ c2@3 ~ f2@3 ~", AG: "bb2 ~@5 bb2 ~ f2@5 ~@3", AH: "bb2@4 ~@2 bb2 ~ f2@6 ~@2",
  AI: "c3@4 ~@2 c3 ~ g2@5 ~ g2 ~", AJ: "f2@4 ~@2 f2 ~ c2@3 ~ f2@2 ~@2", AK: "f2@2 ~@2 f2@3 ~ g2@2 ~@2 a2@2 ~@2",
  AL: "g2@5 ~ g2 ~ g2@5 ~@3", AM: "g2@4 ~@2 g2 ~ d2@3 ~ g2@2 ~@2", AN: "c3@5 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~",
  AO: "f2@3 ~@3 f2 ~ c2@5 ~@3", AP: "f2@4 ~@2 f2 ~ c2@5 ~ f2 ~", AQ: "f2@3 ~ f2@3 ~ g2@3 ~ a2@2 ~@2",
  AR: "bb2@4 ~@2 bb2 ~ f2@4 ~@2 f2 ~", AS: "bb2@4 ~@2 f2 ~ f2@3 ~ bb2@2 ~@2", AT: "f2@5 ~ f2 ~ c2@4 ~@2 c2 ~",
  AU: "[f2@2 f2 ~ f2 ~ f2@18 ~@8]/2",
})).s("gm_acoustic_bass").gain(0.38)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A@6 B C@3 D E A@2 D E A@6 C@4 D E A@2 D E A F C@2 A@2 G@2 H I A@4 C@4 D E A@2 D E J F C@2 A K L M N H O P K F C Q R C
  S E A@2 D E A@2 D E A T ~@2
>`.pickRestart({
  A: "[f2,c3] ~ [f2,c3] ~ [f2,d3] ~ [f2,d3] ~ [f2,c3] ~ [f2,c3] ~ [f2,d3] ~ [f2,d3] ~", // F5 Dm F5 Dm
  B: "~@2 bb2 ~ [bb2,g3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,g3] ~", // Eb Bb5 Eb
  C: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,g3] ~", // Bb5 Eb Bb5 Eb
  D: "[c3,g3] ~ [c3,g3] ~ [c3,a3] ~ [c3,a3] ~ [c3,g3] ~ [c3,g3] ~ [c3,a3] ~ [c3,a3] ~", E: "[c3,g3] ~@15",
  F: "[f2,c3] ~ [f2,c3] ~ f2 ~ f2 ~ g2 ~ g2 ~ a2 ~ a2 ~", // F5
  G: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~", // G5
  H: "[c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~", // C5
  I: "c3 ~ c3 ~ bb2 ~ bb2 ~ a2 ~ a2 ~ g2 ~ g2 ~",
  J: "[f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,d3] ~ [f2,c3] ~ [f2,c3] ~ [f2,d3] ~ [f2,d3] ~", // F5 Dm F5 Dm
  K: "[f2,c3] ~ [f2,c3] ~ [f2,d3] ~ [f2,d3] ~ [f2,c3] ~ [f2,c3] ~ [f2,d3] ~ [f2,c3] ~", // F5 Dm F5 Dm F5
  L: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,e3] ~ [g2,d3] ~", // G5 C G5
  M: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,e3] ~ [g2,d3] ~ [g2,e3] ~", // G5 C G5 C
  N: "[c3,g3] ~ [c3,g3] ~ [c3,a3] ~ [c3,a3] ~ [c3,g3] ~ [c3,g3] ~ [c3,a3] ~ [c3,g3] ~", // C5 F C5 F C5
  O: "[f2,c3] ~ [f2,c3] ~ [f2,d3] ~ [f2,d3] ~ [f2,c3] ~ [f2,c3] ~ [f2,d3] ~ f2 ~", // F5 Dm F5 Dm
  P: "[f2,c3] ~ [f2,c3] ~ [f2,d3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,d3] ~ [f2,c3] ~", // F5 Dm F5 Dm F5
  Q: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~", // Bb5 Eb Bb5 Eb Bb5
  R: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~", // Bb5 Eb Bb5 Eb Bb5
  S: "[c3,g3] ~ [c3,g3] ~ [c3,a3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,a3] ~ [c3,a3] ~", T: "c3@2 d3@2 e3@2 f3 ~@9",
})).s("gm_electric_guitar_muted").gain(0.22).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  A@3 B@5 A@3 C B A D C A B A B E D B A B A B C B@3 C B D B@3 A B@3 F A B@5 A D B C A B@2 C A D A B@2 G B@3 H B A B D B
  D B D B C B D B C B@3 C A I ~@2
>`.pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@2 x!2 ~@2 x", C: "x", D: "x ~@2 x!2 ~ x ~", E: "x ~@3 x ~@2 x", F: "x ~@2 x!2 ~ x!2",
  G: "x ~ x!2", H: "x ~@2 x!5", I: "x ~@2 x ~@4",
})).gain(0.38)

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

// drums · crash
const crash = s("cr").struct("<~@85 [~@3 x ~@4] ~@2>").gain(0.44)

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

stack(piano, bass, electric_guitar_muted, kick, snare, crash, ride)

More by Buddy Holly