Strudelify

Oh Lonesome Me

Nancy Sinatra

KeyG majorTempo204 bpm
0:00/0:00
// Oh Lonesome Me — Nancy Sinatra
// 204 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 150 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(204/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 B C D E B C D F D G B H I J D K D L M N B O D P D G B H I J D K D L M N B O D Q B R S T S U V W B R S T S U V X D G
  B H I J D K D L M N B O D P D G B H I J D K D L M N B O D P D G B H I J D K D L M N B O D Q B R S T S U V W B R S T S
  U V Y Z AA AB AC AD AE Z AF Z AG AH AI AB AJ Z AK AB AL Z AK AB AJ Z AM AB AJ Z AN ~
>`.pickRestart({
  A: "~@2 c2@5 ~ b1@4 a1@3 ~", B: "g1@3 ~ d2@3 ~", C: "g1@3 ~ g1@2 g1 ~ a1@4 b1@4", D: "c2@3 ~ g1@3 ~",
  E: "c2@2 c2@5 ~ b1@4 a1@3 ~", F: "c2 ~ g1@6", G: "c2@6 ~@2 b1@4 a1@3 ~", H: "g1@6 g1 ~ a1@4 a#1@3 ~",
  I: "b1@3 ~ g1@3 ~", J: "d2@3 ~ g1@3 ~ a1@4 b1@4", K: "c2@6 ~@2 g1@4 b1@3 ~", L: "c2 ~ a#1@2", M: "f1@3 ~ c2@3 ~",
  N: "f1@2 e1@5 ~ f1@4 f#1@3 ~", O: "g1@6 ~@2 a1@4 b1@3 ~", P: "c2@6 c2 ~ g1@4 b1@3 ~", Q: "c2@6 c2 ~ b1@4 a1@3 ~",
  R: "g2@6 g2 ~ f#2@4 e2@3 ~", S: "d2@3 ~ a1@3 ~", T: "d2@5 ~ d2 ~ a1@6 ~@2", U: "d2@6 ~@2 e2@4 f#2@3 ~",
  V: "g2@3 ~ d2@3 ~", W: "g1@3 ~ d2@3 ~ e2@4 f#2@4", X: "g2@3 ~ f2@3 ~ e2@4 d2@4", Y: "g#2@3 ~ f#2@3 ~ f2@4 d#2@4",
  Z: "c#2@3 ~ g#1@3 ~", AA: "c#2@6 ~@2 c2@4 a#1@3 ~", AB: "g#1@3 ~ d#2@3 ~", AC: "g#1@6 g#1 ~ a#1@4 b1@3 ~",
  AD: "c2@3 ~ g#1@3 ~", AE: "d#2@3 ~ g#1@3 ~ a#1@4 c2@4", AF: "c#2@6 ~@2 g#1@4 c2@3 ~", AG: "c#2 ~ b1@2",
  AH: "f#1@3 ~ c#2@3 ~", AI: "f#1@2 f1@5 ~ f#1@4 g1@3 ~", AJ: "g#1@6 ~@2 a#1@4 c2@3 ~",
  AK: "c#2@4 c#2@3 ~ c2@4 a#1@3 ~", AL: "g#1@5 ~ g#1 ~ a#1@4 c2@3 ~", AM: "c#2@2 c#2@5 ~ c2@4 a#1@3 ~",
  AN: "c#2@3 ~ c2@4 c#2@8",
})).s("gm_electric_bass_finger").gain(0.42)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~ A B C D E F G H I@2 J@2 K L M N O P Q R S T U V W X Y Z AA AB AC O AD AE AF AG AH AI AJ AK E AL AM AN AO AP AQ AR AB
  B AS@2 AT AS AU AV AC@2 AW AA AX AW AY W AC AZ BA Q AW AU V AJ BB C AW@3 E AY AC@2 BC BD BA AW AX AJ O AC BE BF AW AB
  AA AC BG BH BI BA@2 AW@2 AC@2 AW@2 AS@4 AW@4 AS@4 AW BJ BK@2 BL@4 BK@3 BM BN@2 BL@2 BK@2 BL@2 BK@2 BL@2 BK@2 BL@2 BK
  ~@2
>`.pickRestart({
  A: "~@4 [d4,g4,b4] ~ [d4,g4,b4] ~@5 [d4,g4,b4] ~@2 [d4,g4,b4]", // G
  B: "~@4 [d4,g4,b4] ~ [d4,g4,b4] ~@5 [d4,g4,b4] ~ [d4,b4] g4", // G
  C: "~@4 [e4,g4,c5] ~ [e4,c5] g4 ~@4 [e4,g4,c5] ~ [e4,c5] g4", // C
  D: "~@4 [e4,g4,c5] ~ [e4,g4] c5 ~@4 [e4,g4,c5] ~ e4 [g4,c5]", // C Em C C5
  E: "~@4 [d4,g4,b4] ~ g4 [d4,b4] ~@4 [d4,g4,b4] ~ [d4,g4,b4] ~", // G
  F: "~@4 [d4,g4,b4] ~ [d4,g4,b4] ~@5 [d4,g4,b4] ~ b4 [d4,g4]", // G G5
  G: "~@4 [e4,g4,c5] ~ [e4,c5] g4 ~@4 [e4,g4,c5] ~ e4 [g4,c5]", H: "[e4,g4,c5]",
  I: "~@4 [e4,g4,c5] ~ [e4,g4,c5] ~@5 [e4,g4,c5] ~ e4 [g4,c5]", // C C5
  J: "~@4 [d4,g4,b4] ~ d4 [g4,b4] ~@4 [d4,g4,b4] ~ [d4,b4] g4", // G
  K: "~@4 [d4,g4,b4] ~ [g4,b4] d4 ~@4 [d4,g4,b4] ~@2 [d4,g4,b4]", // G
  L: "~@4 [d4,g4,b4] ~ g4 [d4,b4] ~@4 [d4,g4,b4] ~ [g4,b4] d4", // G
  M: "~@4 [e4,g4,c5] ~ g4 [e4,c5] ~@4 [e4,g4,c5] ~ g4 [e4,c5]", // C
  N: "~@4 [e4,g4,c5] ~ [g4,c5] e4 ~@4 [e4,g4,c5] ~ c5 [e4,g4]", // C C5 C Em
  O: "~@4 [e4,g4,c5] ~ [e4,g4,c5] ~@5 [e4,g4,c5] ~ [e4,c5] g4", // C
  P: "~@4 [e4,g4,a#4,c5] ~ [e4,g4,a#4,c5] ~@5 [e4,g4,a#4,c5] ~ [e4,a#4,c5] g4", // C7
  Q: "~@4 [f4,a4,c5] ~ [a4,c5] f4 ~@4 [f4,a4,c5] ~ [a4,c5] f4", // F Am F Am
  R: "~@4 [f4,a4,c5] ~@2 [f4,a4,c5] ~@4 [f4,a4,c5] ~ [f4,c5] a4", // F F5
  S: "~@4 [d4,g4,b4] ~ [g4,b4] d4 ~@4 [d4,g4,b4] ~ [g4,b4] d4", // G
  T: "~@4 [d4,g4,b4] ~ [d4,b4] g4 ~@4 [d4,g4,b4] ~@2 [d4,g4,b4]", // G
  U: "~@4 [e4,g4,c5] ~ g4 [e4,c5] ~@4 [e4,g4,c5] ~ e4 [g4,c5]", // C C5
  V: "~@4 [e4,g4,c5] ~ [e4,g4,c5] ~@5 [e4,g4,c5] ~ g4 [e4,c5]", // C
  W: "~@4 [e4,g4,c5] ~ g4 [e4,c5] ~@4 [e4,g4,c5] ~ [e4,g4,c5] ~", // C
  X: "~@4 [e4,g4,c5] ~ [e4,g4,c5] ~@5 [e4,g4,c5] ~ [e4,g4] c5", // C Em
  Y: "~@4 [d4,g4,b4] ~@2 [d4,g4,b4] ~@4 [d4,g4,b4] ~@2 [d4,g4,b4]", // G
  Z: "~@4 [d4,g4,b4] ~ [d4,g4] b4 ~@4 [d4,g4,b4] ~ b4 [d4,g4]", // G G5 G G5
  AA: "~@4 [d4,g4,b4] ~ [d4,g4,b4] ~@5 [d4,g4,b4] ~ [d4,g4] b4", // G G5
  AB: "~@4 [d4,g4,b4] ~ [d4,b4] g4 ~@4 [d4,g4,b4] ~ [d4,g4,b4] ~", // G
  AC: "~@4 [e4,g4,c5] ~ [e4,g4,c5] ~@5 [e4,g4,c5] ~ [e4,g4,c5] ~", // C
  AD: "~@4 [e4,g4,c5] ~ [e4,c5] g4 ~@4 [e4,g4,c5] ~ [e4,g4] c5", // C Em
  AE: "~@4 [e4,g4,a#4,c5] ~ [e4,g4,a#4,c5] ~@5 [e4,g4,a#4,c5] ~ [e4,g4,c5] a#4", // C7 C
  AF: "~@4 [f4,a4,c5] ~ [f4,a4] c5 ~@4 [f4,a4,c5] ~ f4 [a4,c5]", // F Am
  AG: "~@4 [f4,a4,c5] ~ [a4,c5] f4 ~@4 [f4,a4,c5] ~ [f4,a4] c5", // F Am F
  AH: "~@4 [d4,g4,b4] ~@2 [d4,g4,b4] ~@4 [d4,g4,b4] ~ [d4,g4] b4", // G G5
  AI: "~@4 [d4,g4,b4] ~ [d4,b4] g4 ~@4 [d4,g4,b4] ~ g4 [d4,b4]", // G
  AJ: "~@4 [e4,g4,c5] ~ [e4,g4] c5 ~@4 [e4,g4,c5] ~ [e4,g4,c5] ~", // C Em C
  AK: "~@4 [e4,g4,c5] ~ [e4,g4,c5] ~@5 [e4,g4,c5] ~ c5 [e4,g4]", // C Em
  AL: "~@4 [d4,g4,b4] ~ [d4,b4] g4 ~@4 [d4,g4,b4] ~ [d4,b4] g4", // G
  AM: "~@4 [d4,f#4,a4] ~ [d4,f#4] a4 ~@4 [d4,f#4,a4] ~ [f#4,a4] d4", // D F#m
  AN: "~@4 [d4,f#4,a4] ~ [d4,f#4,a4] ~@5 [d4,f#4,a4] ~ [f#4,a4] d4", // D F#m
  AO: "~@4 [d4,f#4,a4] ~ [d4,f#4] a4 ~@4 [d4,f#4,a4] ~ [d4,f#4,a4] ~", // D
  AP: "~@4 [d4,f#4,a4] ~ [f#4,a4] d4 ~@4 [d4,f#4,a4] ~ a4 [d4,f#4]", // D F#m D
  AQ: "~@4 [d4,g4,b4] ~ [d4,g4,b4] ~@5 [d4,g4,b4] ~ [g4,b4] d4", // G
  AR: "~@4 [d4,g4,b4] ~ b4 [d4,g4] ~@4 [d4,g4,b4] ~ b4 [d4,g4]", // G G5 G G5
  AS: "~@4 [d4,f#4,a4] ~ [d4,f#4,a4] ~@5 [d4,f#4,a4] ~ [d4,f#4,a4] ~", // D
  AT: "~@4 [d4,f#4,a4] ~ [d4,f#4] a4 ~@4 [d4,f#4,a4] ~ [d4,f#4] a4", // D
  AU: "~@4 [d4,g4,b4] ~ [d4,g4,b4] ~@5 [d4,g4,b4] ~ g4 [d4,b4]", // G
  AV: "~@4 [d4,f4,g4,b4] ~ [f4,g4,b4] d4 ~@4 [d4,f4,g4,b4] ~ [d4,f4,g4,b4] ~", // G7
  AW: "~@4 [d4,g4,b4] ~ [d4,g4,b4] ~@5 [d4,g4,b4] ~ [d4,g4,b4] ~", // G
  AX: "~@4 [d4,g4,b4] ~ [d4,b4] g4 ~@4 [d4,g4,b4] ~ [d4,g4] b4", // G G5
  AY: "~@4 [e4,g4,c5] ~ [g4,c5] e4 ~@4 [e4,g4,c5] ~ [e4,g4,c5] ~", // C C5 C
  AZ: "~@4 [e4,g4,a#4,c5] ~ [e4,g4,c5] a#4 ~@4 [e4,g4,a#4,c5] ~ [e4,g4,a#4,c5] ~", // C7 C C7
  BA: "~@4 [f4,a4,c5] ~ [f4,a4,c5] ~@5 [f4,a4,c5] ~ [f4,a4,c5] ~", // F
  BB: "~@4 [e4,g4,c5] ~ c5 [e4,g4] ~@4 [e4,g4,c5] ~ [g4,c5] e4", // C Em C C5
  BC: "~@4 [e4,g4,a#4,c5] ~ g4 [e4,a#4,c5] ~@4 [e4,g4,a#4,c5] ~ [g4,a#4,c5] e4", // C7
  BD: "~@4 [f4,a4,c5] ~ [f4,c5] a4 ~@4 [f4,a4,c5] ~ [f4,a4,c5] ~", // F F5 F
  BE: "~@4 [e4,g4,c5] ~ [e4,c5] g4 ~@4 [e4,g4,c5] ~ [e4,g4,c5] ~", // C
  BF: "~@4 [d4,g4,b4] ~ b4 [d4,g4] ~@4 [d4,g4,b4] ~ [d4,b4] g4", // G G5 G
  BG: "~@4 [e4,g4,c5] ~ e4 [g4,c5] ~@4 [e4,g4,c5] ~ [g4,c5] e4", // C C5 C C5
  BH: "~@4 [e4,g4,c5] ~ [g4,c5] e4 ~@4 [e4,g4,c5] ~ [e4,g4] c5", // C C5 C Em
  BI: "~@4 [e4,g4,a#4,c5] ~ [e4,g4,a#4,c5] ~@5 [e4,g4,a#4,c5] ~ [e4,a#4] [g4,c5]", // C7 Edim C5
  BJ: "~@4 [d#4,f#4,g#4,c5] ~ [d#4,f#4,g#4,c5] ~@5 [d#4,f#4,g#4,c5] ~ [d#4,f#4,g#4,c5] ~", // G#7
  BK: "~@4 [f4,g#4,c#5] ~ [f4,g#4,c#5] ~@5 [f4,g#4,c#5] ~ [f4,g#4,c#5] ~", // C#
  BL: "~@4 [d#4,g#4,c5] ~ [d#4,g#4,c5] ~@5 [d#4,g#4,c5] ~ [d#4,g#4,c5] ~", // G#
  BM: "~@4 [f4,g#4,b4,c#5] ~ [f4,g#4,b4,c#5] ~@5 [f4,g#4,b4,c#5] ~ [f4,g#4,b4,c#5] ~", // C#7
  BN: "~@4 [f#4,a#4,c#5] ~ [f#4,a#4,c#5] ~@5 [f#4,a#4,c#5] ~ [f#4,a#4,c#5] ~", // F#
})).s("gm_electric_guitar_clean").gain(0.06)

// chords · piano · "HONKY TONK"
const piano = note(`<
  A B@2 C@2 D@2 E@2 F@2 G H I@2 J F J K L M N@2 J@2 F@2 G H I@2 J F J K L O P N J@2 Q@2 R@2 S T U@3 V W R X S U Q Y@2
  U@2 Q@2 Y@3 Z AA AB AC@2 Y@2 F@2 G H I@2 J F J K L AD P N J@2 AE AF AG AH@2 AI AJ AK AL AM AN AD AO AP AQ J Q@2 R@2 S
  T U@3 V W R X S U AR AS@2 AT AU AV@2 AW AS AW AX AY AZ BA@2 AW@2 BA BB BC@2 BA BB BC BD BA@2 AW BE@2
>`.pickRestart({
  A: "~@3 c3@5 [b2,b4] ~@3 [a2,a4] ~@3, ~ c5@3 ~@4", // B A
  B: "[[g2,g4]@4 [b3,d4,f4] ~ a#4@2 b4@2 ~ d5 [b3,d4,f4,g4] ~@3 g2@4 [b3,d4,f4,g4] ~@3 [d3,e5] ~@3 [b3,d4,f4,g4,d5] ~@3, ~@4 [g4,g5]@4 d3 ~@6 f5@5 f5@4 ~@8]/2", // G Bdim G7 Dsus2 G7 G
  C: "[[c3,c5]@4 [c4,e4,g4] ~@3 e5@2 g5 ~ [c4,e4,g4] ~@3 c3 ~@2 c5@5 [b3,b4] ~@3 [a3,a4] ~@3, ~@4 c6@2 ~ d#5@2 ~@6 c5@3 c4@6 ~@8, ~@8 c3 ~@23]/2", // C B A
  D: "[[g3,g4]@4 [b3,d4,f4,g4] ~@2 a#4 b4@2 ~ d5 [b3,d4,f4,g4] ~@3 g3@4 [b3,d4,f4,g4] ~@3 e5@2 ~@2 [b3,d4,f4,g4,d5] ~@3, ~@4 g5@25 ~@3, ~@8 d3 ~@5 f5@5 ~ f5@4 d3 ~@7]/2", // G G7
  E: "[[c3,c5]@4 [c4,e4,g4] ~@2 d#5 g2@3 ~ [c4,e4,g4] ~@3 c3 ~@3 [g2,g4]@12, ~@4 c6@2 ~@2 e5@2 ~ g5@2 ~@2 c5@2 ~@15]/2", // C G
  F: "c3@4 [c4,e4,g4] ~@3 g2@3 ~ [c4,e4,g4] ~@3", G: "g2@4 [b3,d4,f4,g4] ~@3 g3@4 [b3,d4,f4,g4] ~@3",
  H: "g2@3 ~ [b3,d4,f4,g4] ~@3 g3@4 [b3,d4,f4,g4] ~@3", I: "d3@3 ~ [b3,d4,f4,g4] ~@3 g3@3 ~ [b3,d4,f4,g4] ~@3",
  J: "c3@4 [c4,e4,g4] ~@3 g2@4 [c4,e4,g4] ~@3", K: "c3@4 [a#3,c4,e4,g4] ~@3 g2@3 ~ [a#3,c4,e4,g4] ~@3",
  L: "f3@4 [a3,c4,f4] ~@3 c3@4 [a3,c4,f4] ~@3", M: "f3@2 ~ e3@5 f3 ~@3 f#3 ~@3",
  N: "g3@4 [b3,d4,f4,g4] ~@3 d3@4 [b3,d4,f4,g4] ~@3", O: "f3@2 ~ [e3,g#4]@5 [f3,a4] ~@3 [f#3,a#4] ~@3",
  P: "g3@4 [b3,d4,f4,g4] ~@3 d3@4 [b3,d4,f4,g4] ~@3, b4", Q: "~@4 [b3,d4,f4,g4] ~@7 [b3,d4,f4,g4] ~@3",
  R: "~@4 [a3,d4,f#4] ~@7 [a3,d4,f#4] ~@3", S: "~@4 [a3,c4,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@3",
  T: "~@4 [a3,c4,d4,f#4] ~@7 [a3,c4,d4] ~@3, ~@6 f#4 ~", U: "~@4 [b3,d4,g4] ~@7 [b3,d4,g4] ~@3",
  V: "~@4 [b3,d4,g4]@3 ~@5 [b3,d4,g4] ~@3", W: "~@4 [a3,d4] ~@7 [a3,d4,f#4] ~@3, ~@2 f#4 ~@5",
  X: "~@4 [a3,c4,f#4] ~@7 [a3,c4,d4,f#4] ~@3, ~@2 d4 ~@5", Y: "~@4 [c4,e4,g4] ~@7 [c4,e4,g4] ~@3",
  Z: "~@4 [c4,e4,g4] ~@7 [a#3,c4,e4,g4]@2 ~@2", AA: "~@4 [a3,c4,f4] ~@7 [a3,c4,f4] ~@3",
  AB: "~@3 [g#4,b4]@5 [f3,a4,c5]@2 ~@2 [f#3,a#4]@2 ~@2, ~@2 e3@5 ~@5 c#5 ~@3", // G#m F F#
  AC: "[g3@3 ~ [b3,d4,f4,g4] ~@7 [b3,d4,f4,g4] ~@7 [b3,d4,f4,g4] ~@7 [b3,d4,f4,g4] ~@3, [b4,d5]@21 ~@11]/2", // G7 Bm
  AD: "f3@2 [e3,g#4]@6 [f3,a4] ~@3 [f#3,a#4] ~@3", // E F F#
  AE: "c3@3 e5 [c4,e4,g4] ~@3 [g2,g5]@4 [c4,e4,g4] ~@2 e5, d#5 ~ a5 ~@3 d#5 ~", // C G C
  AF: "c3@4 [c4,e4,g4] ~@3 [g2,d#5]@2 e5 ~ [c4,e4,g4,a5] ~@3, a5 ~ g5@2 ~@4", // C Cm Am7
  AG: "[g2,g5]@4 [b3,d4,f4,g4] ~ a#4@2 b4@2 g5@2 [b3,d4,f4,g4] ~ a#4@2, ~@2 a4 ~ g3@2 b4 ~", // G G7
  AH: "[[g2,a4]@2 f5 ~ [b3,d4,f4,g4] ~ g#4@2 [g3,g4]@4 [b3,d4,f4] ~@3 d3@2 a#4@2 [b3,d4,f4,g4] ~ g5@2 [g3,f5]@4 [b3,d4,f4,g4] ~ a#4 ~, ~@4 a4@2 ~@6 g4@3 a4@4 ~ b4@2 ~@6 a4@2 ~@2]/2", // Gsus2 G7 G Bdim G7
  AI: "[d3,b4]@3 ~ [b3,d4,f4,g4] ~@3 [g3,a4]@2 a#4@2 [b3,d4,f4,g4] ~ f5@2, ~@3 g5@2 ~@11, ~@2 f5@2 ~@2 b4 ~", // G G7 Gsus2 G7
  AJ: "c3@4 [c4,e4,g4] ~@3 f#4@2 g4 ~ [c4,e4,g4] ~ c5 ~, e5@4 g2@2 b4 ~", // C
  AK: "d#5@2 e5 ~ [c4,e4,g4] ~ g5 ~ [g2,c6]@3 ~ [c4,e4,g4] ~ e5@2, c3@2 f#5 ~@3 d#5 ~", // C C5 C
  AL: "c3@4 [c4,e4,g4] ~@3 d#5@2 e5@2 [c4,e4,g4] ~@3, a5 ~ g5@2 g2@2 a5 ~", // C
  AM: "[c3,g5]@4 [a#3,c4,e4,g4] ~@3 [g2,d#5]@2 c5 ~ [a#3,c4,e4,g4] ~ a4 ~, ~@4 a4@2 ~ c5@2 ~@3 d5@2 ~@2", // C5 C7 Cm C7
  AN: "f3@4 [a3,c4,f4] ~@3 c3@4 [a3,c4,f4] ~@3, c5@13 ~@3", // F
  AO: "b3@2 d4@2 [b3,f4,g4] ~@5 d4 ~ [b3,d4,f4,g4] ~ g4 ~, b4, g3@2 [d4,e4] f4@2 ~ f#4 ~, ~@2 d3 ~", // G7 Dsus2
  AP: "a4@2 a#4 ~ [b3,d4,f4,g4] ~@5 g4 ~ [b3,d4,f4,g4] ~@3, g3@4 b4@2 d5@4 ~@2 b4@3 ~, ~@8 d3@5 ~@3", // G7
  AQ: "c3@4 [c4,e4,g4] ~@3 g2@4 [c4,e4,g4] ~@3, c5", AR: "~@4 [c4,d#4,g#4] ~@7 [c4,d#4,g#4] ~@3",
  AS: "c#3@4 [c#4,f4,g#4] ~@3 g#2@3 ~ [c#4,f4,g#4] ~@3", AT: "g#2@4 [c4,d#4,f#4,g#4] ~@3 g#3@4 [c4,d#4,f#4,g#4] ~@3",
  AU: "g#2@3 ~ [c4,d#4,f#4,g#4] ~@3 g#3@4 [c4,d#4,f#4,g#4] ~@3", // G#7
  AV: "d#3@3 ~ [c4,d#4,f#4,g#4] ~@3 g#3@3 ~ [c4,d#4,f#4,g#4] ~@3", AW: "c#3@4 [c#4,f4,g#4] ~@3 g#2@4 [c#4,f4,g#4] ~@3",
  AX: "c#3@4 [b3,c#4,f4,g#4] ~@3 g#2@3 ~ [b3,c#4,f4,g#4] ~@3", AY: "f#3@4 [a#3,c#4,f#4] ~@3 c#3@4 [a#3,c#4,f#4] ~@3",
  AZ: "f#3@2 f3@6 f#3 ~@3 g3 ~@3", BA: "g#3@4 [c4,d#4,f#4,g#4] ~@3 d#3@4 [c4,d#4,f#4,g#4] ~@3",
  BB: "g#3@3 ~ [c4,d#4,f#4,g#4] ~@3 d#3@3 ~ [c4,d#4,f#4,g#4] ~@3", // G#7
  BC: "c#3@3 ~ [c#4,f4,g#4] ~@3 g#2@4 [c#4,f4,g#4] ~@3", BD: "c#3@3 ~ [c#4,f4] ~@3 g#2@4 [c#4,f4,g#4] ~@3, ~@2 g#4 ~@5",
  BE: "[[c#3,c#4,f4,g#4] ~@3 [c3,e3,c4,e4,g4] ~@3 [c#3,c#4,f4,g#4]@24]/2", // C# C C#
})).s("gm_piano").gain(0.36)

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

// drums · rim
const rim = s("rim").struct("<~ A@3 ~ A@3 ~@33 A@16 ~@48 A@16 ~@29>".pickRestart({
  A: "~ x ~ x",
})).gain(0.52)

// drums · clap
const clap = s("cp").struct("<~@9 [~ x ~ x]!32 ~@16 [~ x ~ x]!48 ~@16 [~ x ~ x]!27 [~ x ~@2] ~>").gain(0.39)

// drums · snare
const snare = s("sd").struct("<[~@3 x] ~@3 [~@3 x] ~@4 [~ x ~ x]!139 [x!3 ~] ~>").gain(0.46)

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

// drums · open hat
const open_hat = s("oh").struct("<~ x!88 ~@16 x!43 [x!3 ~] ~>").gain(0.26)

// drums · crash
const crash = s("cr").struct("<[~ x ~@6] x ~@2 [~ x ~@6] x ~@99 x ~@44>").gain(0.2)

// drums · ride
const ride = s("rd").struct("<~@89 [x!4]!16 ~@45>").gain(0.33)

stack(bass, electric_guitar_clean, piano, kick, rim, clap, snare, hihat, open_hat, crash, ride)

More by Nancy Sinatra