Strudelify

Gonna Make You a Star

David Essex

KeyF majorTempo136 bpm
0:00/0:00
// Gonna Make You a Star — David Essex
// 136 bpm, 4/4, key F 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 126 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(136/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 · "FINGERDBAS"
const bass = note(`<
  A@3 B@2 C@2 B D@3 B@2 C@2 B E F B@2 C@2 B@2 G H@2 I J K L M N O@2 B@2 F B@2 C@2 B@2 G P@2 Q R K L M N O@2 B@2 S T U T
  S T V W X@2 Y@3 X Z AA Y@3 X Y@3 AB AC AD AE@2 AF@3 AA X Y@2 AG AH AI AH AJ AH AI AH AJ AH AI AH AJ AH AI AH AJ AH AI
  AH AJ AH AI AH AJ AH AI AH AJ AH AI AH AK ~
>`.pickRestart({
  A: "[~@14 f1@4 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@4 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@2]/3",
  B: "~@2 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@2",
  C: "[~@2 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@4 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@2]/2",
  D: "[~@2 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@4 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@4 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@2]/3",
  E: "~@4 f1 ~@11", F: "f1@3 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@2", G: "~@2 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~",
  H: "[g1@3 ~ g1@3 ~ d1 ~ f1 ~ g1 ~ a1@4 e1 ~ g1 ~ a1@3 ~ e1 ~ g1 ~ a1 ~]/2", I: "bb1@4 bb2@5 ~ ab2 ~ f2@2 d2@2",
  J: "a1@2 a2@2 g2@2 e2 ~", K: "g1@4 d2@4 ~@2 g1 ~ g1@2 ab1 ~", L: "a1@2 c2 ~ e2 ~ a2@5 ~ e2 ~@3",
  M: "bb1@5 ~ a1@7 ~@3", N: "g1@5 ~@11",
  O: "[f1@3 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@4 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@2]/2",
  P: "[g1@3 ~ g1@3 ~ d1 ~ f1 ~ g1 ~ a1@4 ~@2 g1@3 ~ e1@2 c1 ~@5]/2", Q: "bb1@4 ab1@4 f1@2 d1 ~@3 bb1@2",
  R: "a1 c2 e2 a2@2 ~ a2 ~", S: "f1 ~ f1 ~@3 f1 ~ g1 ~ g1 ~@3 g1 ~", T: "a1 ~ a1 ~ bb1 ~ c2 ~@3 c2 ~ c2 ~@3",
  U: "f1 ~ f1 ~ f1 ~ f1 ~ g1 ~ g1 ~@3 g1 ~", V: "f1 ~ f1 ~@5 g1 ~ g1 ~ g1 ~ g1 ~",
  W: "a1 ~ bb1 ~ c2 ~ f1@3 ~ f1 ~ f1 ~ f1 ~", X: "f1 ~ f1 ~ f1 ~ f1@4 f1 ~ f1 ~ f1 ~",
  Y: "f1 ~ f1 ~ f1 ~ f1@3 ~ f1 ~ f1 ~ f1 ~", Z: "f1 ~ f1 ~ f1 ~ f1@3 ~@3 f1 ~@3", AA: "~@8 f1@3 ~ f1 ~ f1 ~",
  AB: "f1 ~ f1 ~ f1 ~ f1 ~ g1@3 ~ g1@3 ~", AC: "d1 ~ f1 ~ g1 ~ a1@4 ~@2 g1@3 ~", AD: "e1@2 c1 ~@5 bb1@4 ab1@4",
  AE: "[f1@2 d1 ~@3 bb1@2 a1@2 c2@2 e2@2 a2@4 ~@2 a2@2 ~@2 g1@4 d2@4]/2",
  AF: "[~@2 g1 ~ g1@2 ab1 ~ a1@2 c2 ~ e2 ~ a2@5 ~ e2 ~@3 bb1@5 ~ a1@7 ~@3 g1@5 ~@3]/3",
  AG: "f1 ~ f1 ~ f1 ~ f1@2 f1 ~ f1 ~@3 f1 ~", AH: "g1 ~ g1 ~@3 g1 ~ a1 ~ a1 ~ bb1 ~ c2 ~",
  AI: "~@2 c2 ~ c2 ~@3 f1 ~ f1 ~ f1 ~ f1 ~", AJ: "~@2 c2 ~ c2 ~@3 f1 ~ f1 ~@3 f1 ~", AK: "~@2 c2 ~ c2 ~@11",
})).s("gm_electric_bass_finger").gain(0.54)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A@8 B@8 C D@8 E F G H I J K L M@4 D@8 E F G H I J K L M@4 N O N O N O N P Q R S Q R S T U V R S W V R S X@5 Y@4 S Q R
  Z AA AB AA AB AA AB AA AB AA AB AA AB AA AB AA AB AA AB AA AB AA AB AA AB AA AB AA AB AA AB AA AC ~
>`.pickRestart({
  A: "[~@14 [a3,c4,f4]@6 [a3,c4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@2 ~@2 [bb3,d4,f4]@2 f4@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@2 ~@2 [bb3,d4,f4]@2 f4@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@2]/8", // F Bb Bb5 Bb F Bb F Bb …
  B: "[~@4 [a3,c4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@2 ~@2 [bb3,d4,f4]@2 f4@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@2 ~@2 [bb3,d4,f4]@2 f4@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@2 ~@2 [bb3,d4,f4]@2 f4@2 [bb3,d4,f4] ~ [a3,c4,f4]@2]/8", // F Bb F Bb F Bb Bb5 Bb …
  C: "~@4 [a3,c4,f4] ~@11", // F
  D: "[[a3,c4,f4]@4 [a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4] ~ [bb3,d4,f4]@6 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 f4@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4] ~ [bb3,d4,f4]@6 [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2 f4@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2]/8", // F Bb F Bb Bb5 Bb F Bb …
  E: "[bb3,d4,g4]@2 bb3@2 bb3 [bb3,d4,g4]@2 [g2,g4], g2@7 ~, g3@2 g3 ~, ~@2 [d4,g4]@3 ~@3", // Gm G G5
  F: "[c4,e4,a4]@3 [c4,e4,a4]@3 [c4,e4,a4]@4 a4@2 [a3,c4,e4,a4]@2 [a3,a4]@2, a2, a3@3 a3@3 ~@2", // Am A
  G: "[d4,f4,bb4]@2 [d4,f4,bb4] [d4,f4,bb4]@2 [d4,bb4] [d4,f4,bb4] [bb2,d4], bb2@7 ~, bb3@3 bb3@3 bb3@2", // Bb Gm Bb
  H: "[c4,e4,a4]@2 [c4,e4,a4] [c4,e4,a4]@2 [c4,e4,a4]!3, a2, a3@3 a3@3 a3@2", // Am
  I: "[bb3,g4]@4 ~@2 [bb3,d4,g4]@2 [bb3,g4]@2 [bb3,d4,g4]@3 ~ [bb3,g4]@2, g2@13 g2@3, g3@3 g3@2 g3@3, d4 ~@7", // Eb Gm Eb Gm Eb
  J: "[c4,e4,a4]@3 ~ a4@2 [c4,e4,a4]@4 ~@2 [c4,e4,a4]@2 [a2,c4,e4,a4]@2, a2@7 ~, a3@3 a3@3 a3@2, ~@3 [c4,e4]@3 ~@10", // Am C
  K: "[bb2,bb3,d4,f4,bb4]@5 ~ [a2,a3,c4,f4,a4]@10", L: "[g2,g3,bb3,d4,g4]@3 ~",
  M: "[[a3,c4,f4]@4 [a3,c4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@2 ~@2 [bb3,d4,f4]@2 f4@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@2]/4", // F Bb Bb5 Bb F Bb F Bb …
  N: "[c4,f4,a4,f5] ~@3 [c4,f4,a4,f5] ~ [c4,a4,f5] ~ [bb3,d4,g4,f5] ~@3 [bb3,d4,g4,f5] ~@3", // F Gm7
  O: "[a3,c4,f4,f5] ~@3 [a3,c4,f4,f5] ~@3 [bb3,d4,f4,f5] ~@3 [bb3,d4,f4,f5] ~ f4 ~", // F Bb
  P: "[a3,c4,f4] ~@3 [a3,c4,f4] ~ [c4,f4]@6 [a3,c4,f4]@3 ~, ~@6 f3@9 ~", // F F5 F
  Q: "[bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@2 ~@2", // Bb F
  R: "[bb3,d4,f4]@2 f4@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~", // Bb F
  S: "[bb3,d4,f4]@2 [bb3,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~", // Bb Bb5 Bb F
  T: "[bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@2 ~@4 [a3,c4,f4] ~@3", U: "~@8 [a3,c4,f4]@4 [a3,c4,f4]@3 ~",
  V: "[a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4] ~ [bb3,d4,f4]@6 [bb3,d4,f4]@2 ~@2", // F Bb
  W: "[a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4] ~ [a3,c4,f4]@6 [a3,c4,f4]@3 ~", // F
  X: "[[a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [bb3,d4,g4]@4 bb3@4 bb3@2 [bb3,d4,g4]@4 [g2,g4]@2 [c4,e4,a4]@3 [c4,e4,a4]@3 [c4,e4,a4]@4 a4@2 [a3,c4,e4,a4]@2 [a3,a4]@2 [d4,f4,bb4]@4 [d4,f4,bb4]@2 [d4,f4,bb4]@4 [d4,bb4]@2 [d4,f4,bb4]@2 [bb2,d4]@2 [c4,e4,a4]@4 [c4,e4,a4]@2 [c4,e4,a4]@4 [c4,e4,a4]@2 [c4,e4,a4]@2 [c4,e4,a4]@2 [bb3,g4]@4 ~@2 [g3,bb3,d4,g4]@2, ~@4 g2@7 ~ a2@8 bb2@7 ~ a2@8 g2@4, ~@4 g3@4 g3@2 ~@2 a3@3 a3@3 ~@2 bb3@3 bb3@3 bb3@2 a3@3 a3@3 a3@2 g3@3 ~, ~@6 [d4,g4]@3 ~@27 d4 ~@3]/5", // F Gm G Am A Bb Gm Bb …
  Y: "[[bb3,g4]@2 [bb3,d4,g4]@3 ~ [bb3,g4]@2 [c4,e4,a4]@3 ~ a4@2 [c4,e4,a4]@4 ~@2 [c4,e4,a4]@2 [a2,c4,e4,a4]@2 [bb2,bb3,d4,f4,bb4]@5 ~ [a2,a3,c4,f4,a4]@10 [g2,g3,bb3,d4,g4]@12 ~@4 [a3,c4,f4]@4 [a3,c4,f4]@3 ~, ~ g3@3 a3@3 a3@3 a3@2 ~@20, ~@5 g2@3 a2@14 ~@42, ~@11 [c4,e4]@3 ~@50]/4", // Eb Gm Eb Am Bb F Gm F …
  Z: "[bb3,d4,f4]@2 [bb3,f4]@2 [bb3,d4,f4] ~ [a3,c4,f4]@2 [c4,f4,a4,f5] ~@3 [c4,f4,a4,f5] ~ [c4,a4,f5] ~", // Bb Bb5 Bb F
  AA: "[bb3,d4,g4,f5] ~@3 [bb3,d4,g4,f5] ~@3 [a3,c4,f4,f5] ~@3 [a3,c4,f4,f5] ~@3", // Gm7 F
  AB: "[bb3,d4,f4,f5] ~@3 [bb3,d4,f4,f5] ~ f4 ~ [c4,f4,a4,f5] ~@3 [c4,f4,a4,f5] ~ [c4,a4,f5] ~", // Bb F
  AC: "[bb3,d4,f4,f5] ~@3 [bb3,d4,f4,f5] ~ f4 ~@9", // Bb
})).s("gm_acoustic_guitar_steel").gain(0.38).pan(0.6)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~ A ~ B A ~ B A ~ B A ~ B A ~ B ~@2 B A ~@2 B A ~ C D E ~ F G ~@2 A ~ B A ~ B A ~@2 B A ~ C D E ~ F G ~@2 A ~ B A H I
  H I H I H J ~ K L ~ K L ~@3 K L ~@2 K L ~ M N O P Q R ~@2 L ~ K S T U T U T U T U T U T U T U T U T U T U T U T U T U
  T U T U T V ~
>`.pickRestart({
  A: "~@5 d4 ~@2", B: "~@5 [bb3,d4] ~@2", C: "~@7 [bb3,d4], ~@3 g3", D: "~@5 [c4,e4] ~ [c4,e4]", E: "~@5 f4 ~ [f4,bb4]",
  F: "~ d4 [bb3,d4,g4] ~ d4 ~@2 d4", G: "~ a4 ~@3 [c4,e4,a4] ~@2", H: "~@2 [c4,f4,a4,f5] ~@3 f4 ~@7 [g4,f5] ~",
  I: "~@2 [a3,c4,f4,f5] ~@3 [a3,c4,f4,f5] ~@3 [d4,f4,f5] ~@3 [bb3,d4,f5] ~", // F Dm Bb
  J: "f5 ~ [a3,c4,f4,f5] ~ f5 ~ f5@9 ~, ~@3 a3@3 ~@2", K: "~ [bb3,d4] ~@6", L: "~ d4 ~@6",
  M: "~@3 [bb3,d4] ~@4, ~ g3 ~@2", N: "~ [c4,e4] ~ [c4,e4] ~@4", O: "~ f4 ~ [f4,bb4] ~@4", P: "~@5 d4 [bb3,d4,g4] ~",
  Q: "d4 ~@2 d4 ~ a4 ~@2", R: "~ [c4,e4,a4] ~@6", S: "~@2 d4@2 ~@6 [c4,f4,a4,f5] ~@3 f4 ~",
  T: "~@6 [g4,f5] ~@3 [a3,c4,f4,f5] ~@3 [a3,c4,f4,f5] ~", // G7 F
  U: "~@2 [d4,f4,f5] ~@3 [bb3,d4,f5] ~@3 [c4,f4,a4,f5] ~@3 f4 ~", V: "~@2 [d4,f4,f5] ~@3 [bb3,d4,f5] ~@9",
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0.6)

// chords · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth = note("<~@8 A B@2 C@2 D@2 E@2 ~@47 F@8 ~@28 F@8 G@8 H@8 ~@2>".pickRestart({
  A: "~@3 [a3,c4]", B: "[[a4,c5]@9 bb4 f5 bb4@2 c5 f4 [e4,g4], ~@18 d5 ~ d5@6 a4@5 ~]/2",
  C: "[f4 [a4,c5] [bb4,d5] [f4,a4]@11 [a3,c4]@2, a4 ~@31]/2", // Am Bb F Am
  D: "[[a4,c5]@9 bb4 f5 bb4@2 c5 f4 [e4,g4], ~@18 d5 ~ d5@6 a4@4 ~@2]/2", E: "[a4 a3 [bb3,d4] [c4,f4]@7 ~@6, c4 ~@7]/2",
  F: "[~@2 [a3,c4]@2 [a4,c5]@9 bb4 f5 bb4@2 c5 f4 [e4,g4] f4 [a4,c5] [bb4,d5] [f4,a4]@11 [a3,c4]@2 [a4,c5]@9 bb4 f5 bb4@2 c5 f4 [e4,g4] a4 a3 [bb3,d4] [c4,f4]@7 ~@2, ~@26 d5 ~ d5@6 a4@5 ~ a4 ~@49 d5 ~ d5@6 a4@4 ~@2 c4@4 ~@20]/8", // Am Em Am Bb F Am Em Bb …
  G: "[~@2 [a3,c4]@2 [a4,c5]@9 bb4 f5 bb4@2 c5 f4 [e4,g4] f4 [a4,c5] [bb4,d5] [f4,a4]@11 [a3,c4]@2 [a4,c5]@9 bb4 f5 bb4@2 c5 f4 [e4,g4] a4 a3 [bb3,d4] [c4,f4]@7 ~@2, ~@26 d5 ~ d5@6 a4@5 ~ a4 ~@49 d5 ~ d5@6 a4@5 ~ c4@4 ~@20]/8", // Am Em Am Bb F Am Em Bb …
  H: "[~@4 [a4,c5]@9 bb4 f5 bb4@2 c5 f4 [e4,g4] f4 [a4,c5] [bb4,d5] [f4,a4]@11 [a3,c4]@2 [a4,c5]@9 bb4 f5 bb4@2 c5 f4 [e4,g4] a4 a3 [bb3,d4] [c4,f4]@7 ~@2, ~@26 d5 ~ d5@6 a4@5 ~ a4 ~@49 d5 ~ d5@6 a4@5 ~ c4@4 ~@20]/8", // Am Em Am Bb F Am Em Bb …
})).s("gm_lead_2_sawtooth").gain(0.32).pan(0.4)

// bass · tuba
const bass_2 = note(`<
  ~@4 A B C B C B C B C B C D E ~@15 A B C B F ~@15 A B C B F ~@7 G H I H I H I J ~@16 G H I K L ~@33
>`.pickRestart({
  A: "~@10 f2 e2 f2 e2 f2 e2", B: "f2@5 ~ f2 ~@7 e1@2", C: "f1@5 ~ f1 ~@7 e2@2", D: "f2@4 ~@2 f2 ~@7 e1@2",
  E: "f1@3 ~ f1 ~@11", F: "f1@5 ~ f1 ~@9", G: "~@2 f2 e2 f2 e2 f2 e2 f2@5 ~ f2 ~", H: "~@6 e1@2 f1@5 ~ f1 ~",
  I: "~@6 e2@2 f2@5 ~ f2 ~", J: "~@6 e1@2 f1@3 ~ f1 ~@3", K: "~@6 e1@2 f1@2 a1@3 ~ bb1@2", L: "~@2 b1@3 ~ c2@2 ~@8",
})).s("gm_tuba").gain(0.54).pan(0.3)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@4 A@2 ~@2 B C ~@15 D E F E G H I@2 ~@6 J@2 ~@2 K@2 D E F E G H I@2 ~@4 L M L M L M L N ~@10 O@3 ~ P@8 Q@3 ~@2 R S@30
  T@3
>`.pickRestart({
  A: "[~@8 a3@2 bb3@2 c4@2 f4@11 ~@7]/2", B: "~@4 a3 bb3 c4@2", C: "f4@11 ~@5", D: "[g3,bb3,d4]@7 ~",
  E: "[a3,c4,e4]@7 ~", F: "[bb3,d4,f4]@7 ~", G: "[g3,bb3,d4]@13 ~@3", H: "[a3,c4,e4]@13 ~@3",
  I: "[~@10 f4@2 ~@4 f4@13 ~@3, bb3@4 f4@4 c4@4 ~@2 c4@15 ~@3, ~ c4@2 bb3@2 ~ bb3@8 ~@2]/2",
  J: "[~@4 a3 bb3 c4 f4@6 ~@3]/2", K: "[~@10 bb4@2 a4@2 f4@11 ~@7]/2", L: "[c4,f4,a4]@7 ~ [bb3,d4,g4]@7 ~",
  M: "[c4,f4,a4]@5 ~ [bb3,d4,g4]@10", N: "[c4,f4,a4]@5 ~@11", O: "[~@3 f5@16 ~@5, bb4@2 ~, ~ a4@16 ~@7, ~ c5@8 ~@3]/3",
  P: "[~@63 c4, bb4@3 [g3,bb3,d4]@4 [bb3,d4,f4]@4 [g3,bb3,d4]@4 f4, ~ a4@16 ~@3 [a3,c4,e4]@16 [a3,c4,e4]@16 [a3,e4]@12, ~@2 c5@16 ~@34 c4@9 c4@2 ~, ~@3 f5@16 ~@43 bb3@2]/8", // Gm Bb Gm Am A5
  Q: "[~ f4@4 ~, f4 ~@5, ~ c4@2 c4@16 ~@5, ~ bb3@8 ~@3]/3", R: "~@8 [c4,f4,a4]@7 ~",
  S: "[[bb3,d4,g4]@7 ~ [c4,f4,a4]@5 ~ [bb3,d4,g4]@10 [c4,f4,a4]@7 ~]/2", // Gm F Gm F
  T: "[[bb3,d4,g4]@7 ~ [c4,f4,a4]@5 ~ [bb3,d4,g4]@32 ~@2]/3", // Gm F Gm
})).s("gm_electric_guitar_clean").gain(0.22).pan(0.2)

// chords · electric guitar muted · "MUTED GTR" · Am
const electric_guitar_muted = note(`<
  ~@57
  [[a4,c5] ~ [a4,c5]!3 ~ [a4,c5]!3 ~ [a4,c5]!3 ~ [a4,c5]!2]!7
  [[a4,c5] ~ [a4,c5]!3 ~ [a4,c5]!2 ~@8]
  ~@27
  [~@8 [a4,c5] ~ [a4,c5]!3 ~ [a4,c5]!2]
  [[a4,c5] ~ [a4,c5]!3 ~ [a4,c5]!3 ~ [a4,c5]!3 ~ [a4,c5]!2]!31
  [[a4,c5] ~ [a4,c5]!3 ~ [a4,c5] ~@9]
  ~
>`).s("gm_electric_guitar_muted").gain(0.16).pan(0.7)

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

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

// drums · clap
const clap = s("cp").struct(`<
  ~@58 A ~ A ~ A@2 ~@30 B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~
>`.pickRestart({
  A: "~@5 x!2 ~", B: "~ x!2 ~@5",
})).gain(0.59)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@8 A ~@7 B ~@3 C ~@3 D ~@3 D ~@3 E ~@3 B ~@3 C ~@3 D ~@3 D ~ A ~ E ~@3 D F G F H I J K ~@4 L ~@3 M ~@2 N O ~@3 P ~@3
  Q ~@3 R ~@3 S T@31 U ~
>`.pickRestart({
  A: "~@12 x!3 ~", B: "~@12 x!4", C: "~@3 x!2 ~@3", D: "~@5 x!3", E: "~@3 x", F: "x!4", G: "x!4 ~ x!2 ~", H: "x!7 ~",
  I: "x!2 ~ x", J: "~@2 x!2 ~ x!2 ~", K: "x ~ x!2 ~ x!2 ~", L: "~@2 x!3 ~ x ~@9", M: "~@4 x!4 ~@8", N: "~@7 x", O: "x",
  P: "~ x!3 ~@4", Q: "~@2 x!2 ~@4", R: "~ x ~@2", S: "~@4 x!4 ~@2 x ~ x ~ x ~", T: "x!8", U: "x!4 ~@4",
})).gain(0.33)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@57 A B A C D E F ~@62>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~@4 x ~@2 x", C: "~@7 x", D: "~ x ~ x!3 ~ x", E: "x!2 ~@2 x ~@2 x", F: "~ x ~@2 x ~@2 x",
})).gain(0.2)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B A B A B A C D@7 E D@15 ~ D@3 F D@15 ~ D@12 G D H I D@2 C I D@14 C I D@2 J I D@31 C ~
>`.pickRestart({
  A: "~@2 x!6", B: "x!7 ~", C: "x!4 ~@4", D: "x!8", E: "x", F: "x!2 ~@6", G: "x!4 ~ x!3", H: "x!5 ~@3", I: "~@4 x!4",
  J: "x!6 ~@2",
})).gain(0.26)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@8 A ~@7 B ~@7 C ~@7 D ~@3 E ~@7 C ~@7 D ~@3 C F G H G H G H ~@3 I J ~@3 K ~@6 L J ~@2 M N ~@3 J ~@2 O P Q R Q R Q R
  Q R Q R Q R Q R Q R Q R Q R Q R Q R Q R Q R Q R Q S ~
>`.pickRestart({
  A: "~@4 x!2 ~@2", B: "~@8 x!4 ~@4", C: "~@3 x!2 ~@3", D: "~ x", E: "~@4 x!8 ~@4", F: "x!2 ~ x", G: "~@2 x!2 ~ x!2 ~",
  H: "~ x ~ x", I: "~@10 x!3 ~ x!2", J: "x", K: "x!4 ~@12", L: "~@7 x", M: "~@12 x!3 ~", N: "x!2 ~@6", O: "~@12 x!4",
  P: "x!4 ~@8 x ~@3", Q: "~@2 x ~@3 x!2", R: "~ x!2 ~@3 x ~", S: "~ x!2 ~@5",
})).gain(0.46)

// drums · crash
const crash = s("cr").struct(`<
  A ~ A ~ A ~ A ~@2 B ~@7 B ~@15 B ~@3 B ~@15 B ~@14 C ~@3 C ~@15 C ~@3 C ~@33
>`.pickRestart({
  A: "~@7 x", B: "x", C: "~ x",
})).gain(0.52)

// drums · tambourine
// … 19 more lines

More by David Essex