Strudelify

Rote Lippen soll man kussen (Lucky Lips)

Cliff Richard

KeyE♭ majorTempo157 bpm
0:00/0:00
// Rote Lippen soll man kussen (Lucky Lips) — Richard Cliff
// 157 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 96 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(157/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 · synth bass 2
const bass = note(`<
  A B C D E F G H E F I J I K L M E N C O P Q R S E T U V W V X B Y M Z AA AB AC AD AE A AF AG H AH AI I V I AJ AK M AL
  AM AN AO AP AQ R AR AK B U AS U AT AU AV AW AX Z AY AZ BA BB AR E AF U BC BD AJ BE BF BG BH Z BI AZ BJ BK BL BM BN BO
  ~
>`.pickRestart({
  A: "eb1@3 ~ g1@3 ~", B: "bb1@7 ~@3 c2@6 bb1@2 g1@4 bb1@2", C: "ab1@9 ~@3 c2@10 ~@2",
  D: "bb1@5 ~ ab1@5 ~ g1@5 ~ f1@5 ~", E: "eb1@9 ~@3 g1@10 ~@2", F: "bb1@7 ~@3 c2@5 ~ bb1@2 g1@4 bb1@2",
  G: "ab1@5 ~ c2@3 eb2@3", H: "bb1 ab1 g1 f1", I: "bb1@5 ~ d2@5 ~", J: "f2@8 ~@2 g2@5 ~ f2@2 d2@4 f2@2",
  K: "f2@8 ~@2 g2@6 f2@2 d2@4 f2 ~", L: "eb1@11 ~ g1@11 ~", M: "bb1@4 ~ c2@3 bb1 g1@2 bb1",
  N: "bb1@7 ~@3 c2@6 bb1@2 g1@3 ~ bb1@2", O: "eb2@4 ~ f2@3 eb2 c2@2 eb2", P: "bb1@7 ~@3 bb1@2 f1@8 ~@2 f1 ~",
  Q: "bb1@8 ~@2 bb1@2 g1@5 ~ ab1@5 ~", R: "bb1@5 ~@19", S: "~@4 bb1 ~ bb1@3 ~ bb1 ~ bb1@3 ~ bb1 ~ bb1@3 ~ bb1@2",
  T: "bb1@4 ~ c2@3 bb1 g1@3", U: "bb1@10 ~@2 d2@9 ~@3", V: "f2@4 ~ g2@3 f2 d2@2 f2", W: "bb1@9 ~@3 d2@10 ~@2",
  X: "eb1@10 ~@2 g1@11 ~", Y: "eb1@5 ~ g1@5 ~", Z: "ab1@5 ~ c2@5 ~", AA: "eb2@7 ~@3 f2@5 ~ eb2@2 c2@4 eb2@2",
  AB: "bb1@8 ~@2 bb1@2 ab1@7 ~@3 ab1@2", AC: "f1@7 ~@3 f1 ~ g1@4 ~@2 ab1@6", AD: "bb1 ~@5",
  AE: "~@4 bb1 ~ bb1@3 ~ bb1@2 bb1@2 ~@2 bb1 ~ bb1@3 ~ bb1@2", AF: "bb1@3 ~@2 c2@3 bb1 g1@2 bb1", AG: "ab1@5 ~ c2@6",
  AH: "eb1@9 ~@3 g1@8 ~@4", AI: "bb1@7 ~@3 c2@6 bb1@2 g1@3 ~ bb1 ~", AJ: "f2@9 ~ g2@6 f2@2 d2@4 f2@2",
  AK: "eb1@11 ~ g1@10 ~@2", AL: "eb1@8 ~@4 g1@11 ~", AM: "bb1@5 c2@3 ~ g1@2 eb1, ~@4 bb1 ~", AN: "ab1@10 ~@2 c2@11 ~",
  AO: "eb2@9 ~ f2@6 eb2@2 c2@4 ab1@2", AP: "bb1@9 ~ bb1@2 ab1@7 ~@3 ab1@2", AQ: "f1@4 ~ f1 g1@3 ab1@3",
  AR: "~@4 bb1 ~ bb1@2 ~@2 bb1 ~ bb1@3 ~ bb1 ~ bb1@3 ~ bb1@2", AS: "f2@9 ~ g2@5 ~ f2@2 d2@4 f2@2",
  AT: "f2@9 ~ g2@6 f2@2 d2@4 f2 ~", AU: "eb1@11 ~ g1@12", AV: "bb1@9 ~ c2@5 ~ bb1@2 g1@4 bb1@2",
  AW: "eb1@11 ~ g1@9 ~@3", AX: "bb1@9 ~ c2@6 bb1@2 g1@4 bb1@2", AY: "eb2@8 ~@2 f2@5 ~ eb2@2 c2@3 ~ ab1@2",
  AZ: "bb1@4 ~ bb1 ab1@4 ~ ab1", BA: "f1@7 ~@3 f1 ~ g1@5 ~ ab1@5 ~", BB: "bb1 ~@3",
  BC: "f2@9 ~ g2@5 ~ f2@2 d2@3 ~ f2@2", BD: "bb1@11 ~ d2@10 ~@2", BE: "eb1@6 g1@5 ~",
  BF: "bb1@8 ~@2 c2@6 bb1@2 g1@3 ~ bb1@2", BG: "eb1@3 ~ g1@4", BH: "bb1@9 ~ c2@6 bb1@2 g1@4 eb1@2",
  BI: "eb2@9 ~ f2@5 ~ eb2@2 c2@4 ab1@2", BJ: "g1@7 ~@3 g1@2 f1@7 ~@3 f1 ~",
  BK: "bb1@3 ~ bb1 ~ bb1@3 ~ bb1 ~ bb1@3 ~ bb1 ~ bb1@3 ~ bb1@2", BL: "eb1@11 ~ g1@6 bb1@5 ~",
  BM: "ab1@5 f2@3 eb2 c2@2 bb1", BN: "eb1@6 g1@5 ~ bb1@6 c2@4 bb1@2", BO: "eb1@20 eb1 ~@3",
})).s("gm_synth_bass_2").gain(0.75)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  A B C D A E F G H I J K L M N O A P Q R S T U V W X Y Z AA AB X AC AD AC AE AF AG AH AI AJ AK O AL AM AN AO@3 AP@2 H
  AQ H O AR AS AT AU AV V AW AX AY AZ BA BB AC BC BD AC BE@2 BF BG BH V AC BI BJ@2 BK BL BM AC BN AC BO BP@5 BQ BR BS ~
>`.pickRestart({
  A: "eb3@5 ~ g3@5 ~", B: "bb3@8 ~@2 c4@5 ~ bb3@2 g3@4 eb3@2", C: "ab3 c4", D: "bb3@2 ~@4 ab3@3 ~@3 g3@6 f3@6",
  E: "bb3@4 ~ c4@3 bb3 g3@2 eb3", F: "ab3@11 ~ c4@10 ~@2", G: "bb3@2 ~@4 ab3@3 ~@3 g3@3 ~@3 f3@4 ~@2",
  H: "eb3@3 ~ g3@3 ~", I: "bb3@7 ~@3 c4@6 bb3@2 g3@4 bb3 ~", J: "~@2 bb2@9 ~ d3@9 ~@3",
  K: "f3@7 ~@3 g3@5 ~ f3@2 d3@3 ~ f3@2", L: "bb2@10 ~@2 d3@9 ~@3", M: "f3@4 ~ g3@3 f3 d3@2 f3",
  N: "eb3@9 ~@3 g3@10 ~@2", O: "bb3@8 ~@2 c4@5 ~ bb3@2 g3@4 bb3@2", P: "bb3@8 ~@2 c4@5 ~ bb3@2 g3@3 ~ bb3@2",
  Q: "ab3@9 ~@3 c4@10 ~@2", R: "eb4@9 ~ f4@5 ~ eb4@2 c4@3 ~ eb4@2", S: "bb2@6 d3@5 ~", T: "f3@12 d3@5 ~ f3@6",
  U: "bb3 ~@3", V: "~@4 [bb2,f3] ~ [bb2,f3]@2 ~@2 [bb2,f3] ~ [bb2,f3]@2 ~@2 [bb2,f3] ~ [bb2,f3]@2 ~@2 [bb2,f3]@2",
  W: "eb3@2 ~ g3@2 ~ bb3@3 c4 bb3 g3", X: "eb3@6 g3@5 ~ bb3@6 c4@2 bb3@2 g3@2", Y: "bb2@6 d3@5 ~ f3@6 g3@2 f3@2 d3@2",
  Z: "bb2@2 ~@2 bb2@2 d3@3 ~ d3@2 f3@3 ~ f3@2 g3@2 f3@2 d3@2", AA: "bb2@2 ~@2 bb2 ~ d3@5 ~ f3@6 g3@2 f3 ~ d3@2",
  AB: "bb2@2 ~@2 bb2@2 d3@3 ~ d3@2 f3@3 ~ f3@2 g3@2 f3 ~ d3 ~",
  AC: "eb3@2 ~@2 eb3@2 g3@2 ~@2 g3 ~ bb3@2 ~@2 bb3@2 c4@2 bb3@2 g3@2",
  AD: "eb3@6 g3@5 ~ bb3@2 ~@2 bb3@2 c4@2 bb3@2 g3@2", AE: "ab3@2 ~@2 ab3@2 c4@3 ~ c4@2 eb4@3 ~ eb4@2 f4@2 eb4@2 c4@2",
  AF: "ab3@3 c4@3 eb4@3 f4 eb4 c4", AG: "bb2@6 d3@5 ~ f3@6 g3@2 f3 ~ d3 ~, ~@6 bb2 ~@17",
  AH: "bb2@2 ~@2 bb2@2 d3@2 ~@2 d3 ~ f3@2 ~@2 f3@2 d3@3 ~ f3@2", AI: "bb2 ~@7",
  AJ: "~@4 [bb2,f3] ~ [bb2,f3]@3 ~ [bb2,f3] ~ [bb2,f3]@2 ~@2 [bb2,f3] ~ [bb2,f3]@2 ~@2 [bb2,f3]@2", // Bb5
  AK: "eb3@11 ~ g3@9 ~@3", AL: "ab3@10 ~@2 c4@9 ~@3", AM: "bb3@2 ~@2 bb3@2 ab3@3 ~@3 g3@3 ~@3 f3@3 ~@3",
  AN: "eb3@10 ~@2 g3@9 ~@3",
  AO: "[bb3@8 ~@2 c4@5 ~ bb3@2 g3@4 ~@14 d3@9 ~@3 f3@8 ~@2 g3@5 ~ f3@2 d3@4 f3@2, ~@11 bb3@5 ~@20, ~ bb2@2]/3",
  AP: "[~@12 d3@9 ~@3 f3@8 ~@2 g3@6 f3@2 d3@3 ~ f3 ~, bb2]/2", AQ: "bb3@4 ~ c4@3 bb3 g3@2 bb3", AR: "ab2@11 ~ c3@9 ~@3",
  AS: "eb3@8 ~@2 f3@6 eb3@2 c3@3 ~ eb3@2", AT: "bb2@7 ~@3 [bb2,bb3]@2 ab3@8 ~@2 ab3@2",
  AU: "f3@7 ~@3 f3 ~ g3@4 ~@2 ab3@5 ~", AV: "[bb2,bb3] ~@7",
  AW: "eb3@2 ~@2 eb3@2 g3@3 ~ g3 ~ bb3@3 ~ bb3@2 c4@2 bb3@2 g3@2",
  AX: "eb3@2 ~@2 eb3@2 g3@2 ~@2 g3 ~ bb3@3 ~ bb3@2 c4@2 bb3@2 g3@2",
  AY: "bb2@3 ~ bb2@2 d3@2 ~@2 d3 ~ f3@2 ~@2 f3@2 g3@2 f3 ~ d3@2",
  AZ: "bb2@2 ~@2 bb2@2 d3@2 ~@2 d3 ~ f3@3 ~ f3@2 g3@2 f3@2 d3@2",
  BA: "bb2@3 ~ bb2@2 d3@2 ~@2 d3 ~ f3@2 ~@2 f3 ~ g3@2 f3 ~ d3@2",
  BB: "bb2@2 ~@2 bb2@2 d3@2 ~@2 d3 ~ f3@2 ~@2 f3@2 g3@2 f3 ~ d3 ~",
  BC: "eb3@2 ~@2 eb3@2 g3@3 ~ g3 ~ bb3@2 ~@2 bb3@2 c4@2 bb3@2 g3@2",
  BD: "eb3@2 ~@2 eb3@2 g3@2 ~@2 g3 ~ bb3@3 ~ bb3@2 c4@2 bb3 ~ g3@2",
  BE: "ab3@2 ~@2 ab3@2 c4@2 ~@2 c4 ~ eb4@2 ~@2 eb4@2 f4@2 eb4@2 c4@2",
  BF: "bb2@2 ~@2 bb2@2 d3@3 ~ d3 ~ f3@2 ~@2 f3 ~ g3@2 f3 ~ d3 ~",
  BG: "bb2@2 ~@2 bb2@2 d3@2 ~@2 d3 ~ f3 ~@3 f3 ~ bb2@2 ~@2 bb2@2", BH: "[bb2,bb3] ~@3",
  BI: "eb3@2 ~@2 eb3 ~ g3@2 ~@2 g3 ~ bb3@2 ~@2 bb3@2 c4@2 bb3@2 g3 ~",
  BJ: "bb2@2 ~@2 bb2@2 d3@2 ~@2 d3 ~ f3@2 ~@2 f3@2 g3@2 f3 ~ d3@2",
  BK: "bb2@2 ~@2 bb2@2 d3@3 ~ d3@2 f3@2 ~@2 f3@2 g3@2 f3 ~ d3@2",
  BL: "bb2@2 ~@2 bb2@2 d3@2 ~@2 d3 ~ f3@2 ~@2 f3 ~ g3@2 f3 ~ d3 ~", BM: "eb3 ~ eb3 g3 ~ g3 bb3 ~ bb3 c4 bb3 g3",
  BN: "eb3@2 ~@2 eb3@2 g3@2 ~@2 g3 ~ bb3@2 ~@2 bb3@2 c4@2 bb3 ~ g3@2",
  BO: "ab3@2 ~ c4 ~ c4 eb4 ~ eb4 f4 eb4 c4, ~ ab3@5",
  BP: "[ab3@4 ~@2 c4@2 ~@2 c4@2 eb4@2 ~@2 eb4@2 f4@2 ~@4 bb2@2 ~@2 bb2@2 bb3@6 ab2@2 ~@2 ab2@2 ~@6 g2@2 ~@2 g2@2 g3@6 f2 ~@3 f2@2 f3@6 [bb2,f3] ~@3 [bb2,f3] ~ [bb2,f3]@2 ~@2 [bb2,f3] ~ [bb2,f3]@2 ~@2 [bb2,f3] ~ [bb2,f3]@2 ~@2 bb2@2 eb3@5 ~ g3@5 ~ bb3@6 c4@4 bb3@2, ~@2 ab3@19 ab3@39]/5", // Bb5
  BQ: "~@3 c4@3 eb4@3 f4 eb4 c4, ab3@9 ~@3 c4 ~@11", BR: "eb3@3 ~ eb3@2 g3@2 ~@2 g3@2 bb3@3 ~ bb3@2 c4@2 bb3@2 g3@2",
  BS: "eb3@7 ~@5",
})).s("gm_electric_guitar_muted").gain(0.66).pan(0.4)

// chords · piano
const piano = note(`<
  A B C D B@2 E D F B D@4 G H B I C@2 D J ~ K L B D@4 B@4 C@2 M D N O B P C D B@2 D@3 Q B@4 C@2 D@2 ~ R B@2 D@4 B@4 C@2
  D@2 N S B@2 D@4 B@4 C@2 D@2 T B E U V@2
>`.pickRestart({
  A: "[bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~ [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~", // Eb
  B: "~@4 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~ [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~", // Eb
  C: "~@4 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~ [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~", // Ab
  D: "~@4 [bb3,d4,ab4] ~@5 [bb3,d4,ab4] ~ [bb3,d4,ab4] ~@3 [bb3,d4,ab4] ~@5 [bb3,d4,ab4] ~", // Bb7
  E: "~@4 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~ [c4,eb4] ~@3 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~, ~@6 ab4 ~@5", // Ab Cm Ab
  F: "[eb4,g4] ~@3 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~ [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~", // Eb
  G: "~@4 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~ [eb4,g4]@2 ~@2 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~, ~@12 bb3 ~@11", // Eb
  H: "[eb4,g4] ~@3 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~ [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~, bb3 ~@11", // Eb
  I: "~@4 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~ [eb4,g4] ~@3 [bb3,eb4,g4] ~@5 [bb3,eb4] ~, ~@6 bb3 ~@4 g4", // Eb Eb5
  J: "[bb3,d4,ab4] ~@3 [bb3,d4,ab4] ~@5 [bb3,d4,ab4] ~ [bb3,d4,ab4] ~@3 [bb3,d4,ab4] ~@5 [bb3,d4,ab4] ~", // Bb7
  K: "~@4 [bb3,d4,ab4] ~ [bb3,d4,ab4] ~@3 [bb3,d4,ab4] ~ [bb3,d4] ~@3 [bb3,d4,ab4] ~ [bb3,d4] ~@3 [bb3,d4,ab4] ~, ~@6 ab4 ~@2 ab4 ~@2", // Bb7 Bb Bb7 Bb Bb7
  L: "~@4 [eb4,g4] ~@5 [bb3,eb4,g4] ~ [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~, ~@2 bb3 ~@9", // Eb
  M: "~@4 [bb3,d4,ab4] ~@5 [bb3,d4,ab4] ~@5 [bb3,d4,ab4] ~@5 [bb3,d4,ab4] ~", N: "[bb3,d4,ab4] ~@23",
  O: "~@4 [bb3,d4,ab4] ~ [bb3,ab4]@2 ~@2 [bb3,d4,ab4] ~ [bb3,d4] ~@3 [bb3,d4,ab4] ~ [bb3,d4] ~@3 [bb3,d4,ab4] ~, ~@6 d4 ~@5 ab4@2 ~@4 ab4@2 ~@4", // Bb7 Bb Bb7 Bb Bb7
  P: "~@4 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~ [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@5 [bb3,eb4] ~, ~@11 g4", // Eb Eb5
  Q: "~@4 [bb3,d4,ab4] ~@5 [bb3,d4,ab4] ~ [bb3,d4] ~@3 [bb3,d4,ab4] ~@5 [bb3,d4,ab4] ~, ~@6 ab4 ~@5", // Bb7 Bb Bb7
  R: "~@4 [bb3,d4,ab4] ~ [bb3,d4,ab4] ~@3 [bb3,d4,ab4] ~ [bb3,d4,ab4] ~@3 [bb3,d4,ab4] ~ [bb3,d4] ~@3 [bb3,d4,ab4] ~, ~@9 ab4 ~@2", // Bb7 Bb Bb7
  S: "~@4 [bb3,d4,ab4] ~ [bb3,d4,ab4] ~@3 [bb3,d4,ab4] ~ [bb3,d4,ab4] ~@3 [bb3,d4,ab4] ~ [bb3,d4,ab4] ~@3 [bb3,d4,ab4] ~", // Bb7
  T: "~@4 [bb3,d4,ab4] ~@7 [bb3,d4] ~@3 [bb3,d4] ~@5 [bb3,d4] ~, ~@6 ab4 ~ ab4 ~@2 ab4", // Bb7 Bb
  U: "~@4 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~ [bb3,eb4,g4]@2 ~@2 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~", // Eb
  V: "[eb2@9 ~@7, eb3@25 ~@23, db3 ~@47]/2",
})).s("gm_piano").gain(0.65)

// chords · brass section
const brass_section = note("<A B C D B E C F ~@32 G H I J ~@46 K L@3 ~@2>".pickRestart({
  A: "~@6 [bb4,g5]@2 ~@2 [bb4,g5]@2 ~@4 [bb4,g5] ~ [bb4,g5]@2 ~@2 [bb4,g5]@2, ~@18 f5 ~@5", // Eb
  B: "~@6 [bb4,g5]@2 ~@2 [bb4,g5]@2 ~@4 [bb4,g5] ~ [bb4,g5]@2 ~@2 [bb4,g5]@2", // Eb
  C: "~@6 [c5,ab5]@2 ~@2 [c5,ab5]@2 ~@4 [c5,ab5] ~ [c5,ab5]@3 ~@3", D: "[d5,bb5] ~ [c5,ab5] ~ [bb4,g5] ~ [ab4,f5] ~",
  E: "~@6 [bb4,g5]@2 ~@2 [bb4,g5]@2 ~@4 [bb4,g5] ~ [bb4,g5]@2 ~@2 g5@2, ~@22 bb4 ~", // Eb
  F: "[d5,bb5]@2 ~@4 [c5,ab5]@3 ~@3 [bb4,g5]@2 ~@4 [ab4,f5]@3 ~@3", // Gm Fm Eb Db
  G: "~@4 [bb4,f5,g5] ~ [bb4,g5]@3 ~ [bb4,g5]@2 ~@4 [bb4,g5] ~ [bb4,g5]@2 ~@2 [bb4,g5]@2", // Gm7 Eb
  H: "~@4 [bb4,g5] ~ [bb4,g5]@2 ~@2 [bb4,g5]@2 ~@4 [bb4,g5] ~ [bb4,g5]@5 ~", // Eb
  I: "~@4 [c5,ab5] ~ [c5,ab5]@2 ~@2 [c5,ab5]@2 ~@4 [c5,ab5] ~ [c5,ab5]@5 ~", // Fm
  J: "[d5,bb5]@3 ~@3 [c5,ab5]@4 ~@2 [bb4,g5]@4 ~@2 [ab4,f5]@4 ~@2", // Gm Fm Eb Db
  K: "[bb4,bb5]@6 [b4,b5]@4 ~@2 [c5,c6]@5 ~ [d5,d6]@3 ~@3", // Bb B C D
  L: "[g5@22 ~@2 c6@24 [g5,bb5]@23 ~, [eb5,eb6], ~@8 ab5@7 ~@9]/3", // Gm Eb
})).s("gm_brass_section").gain(0.62)

// chords · pad poly
const pad_poly = note("<A@7 B@7 C@8 ~ D@6 E@8 ~@2 F G@3 H@6 I@8 ~@2 J@6 K@7 L@3 J@6 M@7 N@3 O@4 ~>".pickRestart({
  A: "[g4@47 c4@23 ~ d4@20 ~@4 g4@48 ~ ab4@24, eb4@69 ~@2 bb3@70 ~@2 c4@23 ~@2, bb3@45 ~@2 ab4@48 eb4@70 ~@3]/7",
  B: "[d4@21 ~@3 eb4@46 ~ ab4@97, bb3, ~@23 g4@48 d4@95 ~@2]/7",
  C: "[g4@95 c4@46 ~@2 [bb3,d4]@49, eb4@93 ~@2 ab4@97, ~@95 eb4@44 ~@53]/8", // Bb
  D: "[~@4 ab4@19 g4@49 [d4,ab4]@72, ~ bb3@35, ~@4 d4@18 ~ eb4@46 ~@75]/6", // Ddim
  E: "[~@23 g4@96 c4@47 ~ [bb3,d4]@25, ~@23 eb4@141 ~@28, ~@119 ab4@73]/8", F: "~ [bb3,ab4]@5, ~@4 d4@17 ~@3",
  G: "[~@28 bb3@18 ~ ab4@24 d4, eb4@23 ~, g4@47 c4@22 ~@3]/3", H: "[~@24 g4@47 ~ d4@72, bb3, ~@24 eb4@46 ~ ab4@73]/6",
  I: "[~@119 c4@44 ~@4 [bb3,d4]@25, ~@23 g4@96 ab4@73, ~@8 eb4@47 ~@9]/8", // Bb
  J: "[~@4 ab4@19 ~ eb4@45 ~@2 [d4,ab4]@73, ~ bb3@35, ~@4 d4@17 ~@2 g4@49 ~@72]/6", // Ddim
  K: "[~@17 ab4@7, ~@23 g4@96 c4@46 ~@3, ~@6 eb4@35 ~]/7", L: "[[bb3,d4]@17 ~@7]/3",
  M: "[~@17 ab4@7, ~@23 g4@95 ~ c4@46 ~@3, ~@6 eb4@35 ~]/7", N: "[[bb3,d4]@7 ~@2]/3",
  O: "[g4@23 [c4,ab4]@24 [bb3,g4]@24 ~ eb3@13 ~@11, eb4@7 ~, bb3@7 ~@25]/4", // Fm Eb
})).s("gm_pad_poly").gain(0.58)

// bass · piano
const bass_2 = note("<A@3 B A@3 C A@11 C A@3 D A@13 C A D A@15 C A@3 E A@15 D A@7 B A@6 B A@2 C ~@2>".pickRestart({
  A: "~@6 d2 ~@11 d2 ~@5", B: "~@6 d2 ~@11 d2 ~@3 d2 ~", C: "~@6 d2 ~@3 d2 ~@7 d2 ~@5",
  D: "~@4 d2 ~ d2 ~@3 d2 ~ d2 ~@3 d2 ~ d2 ~ d2 ~ d2 ~", E: "~@4 d2 ~ d2 ~@3 d2 ~ d2 ~@3 d2 ~ d2 ~@3 d2 ~",
})).s("gm_piano").gain(0.75)

// drums · kick
const kick = s("bd").struct("<[x!2]!94 x ~>").gain(0.78)

// drums · clap
const clap = s("cp").struct("<~@24 [~ x ~ x]!14 ~@22 [~ x ~ x]!14 ~@2 [~ x ~ x]!18 ~@2>").gain(0.78)

// drums · hihat
const hihat = s("hh").struct("<[x ~ x!2 ~ x!2 ~ x!2 ~ x]!93 ~@3>").gain(0.78)

// drums · mid tom
const mid_tom = s("mt").struct("<~@93 [~@6 x!6] ~@2>").gain(0.78)

// drums · high tom
const high_tom = s("ht").struct("<~@93 [x!6 ~@6] ~@2>").gain(0.78)

// drums · crash
const crash = s("cr").struct("<A ~@3 A ~@3 A ~@15 A ~@15 A ~@3 A ~@15 A ~@15 A ~@16 A@2 ~>".pickRestart({
  A: "x",
})).gain(0.78)

// drums · tambourine
const tambourine = s("tb").struct("<A@4 B@2 C A D ~@15 A@14 D E A@3 C ~@15 F A G A@12 D H E A@17 ~@2>".pickRestart({
  A: "x ~ x!2 ~ x!2 ~ x!2 ~ x", B: "x ~@2 x ~ x!2 ~ x!2 ~ x", C: "x ~ x!2 ~ x!2 ~ x!2 ~@2", D: "x",
  E: "~@2 x!2 ~ x!2 ~ x!2 ~ x", F: "~@2 x!2 ~@4 x!2 ~@2", G: "x ~ x!2 ~ x!2 ~@2 x ~ x", H: "~@2 x!2 ~@4 x!2 ~ x",
})).gain(0.54)

stack(
  bass, electric_guitar_muted, piano, brass_section, pad_poly, bass_2, kick, clap, hihat, mid_tom, high_tom, crash,
  tambourine
)

More by Cliff Richard