Strudelify

Shake It Up

The Cars

KeyC majorTempo151 bpm
0:00/0:00
// Shake It Up — The Cars
// 151 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 4 "ORGAN LINES" named as an organ, played on drawbar organ (its piano patch is not one)
// note: duplicate parts dropped: ch 13 "INTRO BAS" synth bass 2 (copy of ch 1 "SYNTH LINE" clavinet)
// note: Full arrangement: all 130 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(151/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · piano · "SYNTH LINE"
const piano = note(`<
  ~@17 A B C D A E F G A E H I A E J K A B C D A E F G L M N O P Q R S T U V W T U X Y A B C D A E F G T U V W T U X Y A
  B C D A E F G L M N O P Q R Z T U V W T U X Y A B C D A E F G AA AB AC AD AA AB AC AD AA AB AC AD AA AB AC AD AA AB AC
  AD AA AB AC AD ~
>`.pickRestart({
  A: "~ c7 g6 e6 c6 g5 c6 e6", B: "g6 c7 g6 e6 c6 g5 c6 ~", C: "~@2 a6@2 e6@2 c6@2 a5@2 ~@2 c6@2 e6 ~, ~@5 e5@2 ~",
  D: "d6 f6 ~ a#5 ~ d6 f6 a#6, ~@4 a#6@4 f5@5 ~@3", E: "g6 c7 g6 e6 c6 g5 c6 e6",
  F: "~@2 a6@2 e6@2 c6@2 a5@2 e5@2 c6@2 e6 ~", G: "d6@2 f6@2 ~@2 a#5@2 f5@3 ~ f6@2 a#6@2, ~@4 a#6@4 ~@3 d6@2 ~@3",
  H: "~@2 a6@2 e6@2 c6@3 ~ e5@2 a5@2 c6@2, ~@9 a5@2 ~@5", I: "e6@2 a6@2 e6@2 c6@3 a5@2 ~ a5 ~ c6@2, ~@11 e5@2 ~@3",
  J: "~ a6 e6 c6 a5 e5 a5 c6", K: "e6@2 a6@2 e6@2 c6@2 a5@2 e5@2 a5@3 ~", L: "~ g6 ~ b5 g5 d5 g5 d6, ~ d6 ~@2",
  M: "e5@2 g5 ~ c6@2 e6@2 a6@2 e6@2 c6@2 e6@2, ~@2 a5@5 ~@9", N: "~@2 g6@2 d6@2 b5@2 g5@2 d5@2 ~ d6@2 ~, ~@6 g5 ~",
  O: "e5 a5 c6 e6 a6 e6 c6 e6", P: "~ g6 d6 b5 g5 d5 g5 d6", Q: "e5 a5 ~ e6 a6 e6 c6 e6, ~ c6 ~@2",
  R: "f5@2 a5@2 ~@2 f6@2 a6@2 f6@2 ~ f6 ~@2, ~@2 c6@2 ~@2 c6 ~",
  S: "g5@2 b5@2 ~@2 g6@2 b6@2 g6@2 ~ g6 ~@2, ~@4 d6@5 ~@3 d6@2 ~@2", T: "~ c6 g5 e5 c5 g4 c5 e5",
  U: "g5 c6 g5 e5 c5 g4 c5 e5", V: "~@2 a5@2 e5@2 c5@3 ~ e4@2 a4@2 c5@2, ~@9 a4@2 ~@5",
  W: "e5@2 a5@2 e5@2 c5@3 a4@2 ~ a4 ~ c5@2, ~@11 e4@2 ~@3", X: "~ a5 e5 c5 a4 e4 a4 c5",
  Y: "e5@2 a5@2 e5@2 c5@2 a4@2 e4@2 a4@3 ~", Z: "g5@2 b5@2 ~@2 g6@2 b6@2 g6!2 d6@2 ~@2, ~@4 d6@5 ~@7",
  AA: "c7 g6 e6 c6 g5 c6 e6 g6", AB: "c7 g6 e6 c6 g5 c6 ~@2", AC: "a6@2 e6@2 c6@2 a5@2 ~@2 c6@2 e6 ~ d6@2, ~@2 e5 ~",
  AD: "f6 ~ a#5 ~ d6 f6 a#6 ~, ~@2 a#6@4 f5@5 ~@5",
})).s("gm_piano").gain(0.2)

// chords · drawbar organ · "ORGAN LINES"
const drawbar_organ = note(`<
  ~@25 A B C D E F G H I J K L M N O P Q R Q S T U V Q E W X Y Z AA AB AC I AD K AE AF AG AH AI AJ AK AL AM Z AN O AO AP
  AQ AR AS I AT K AU Q U T AV AW S V Q AX AY AZ BA BB BC O BD BE BF BG BH BI BJ BK BL BM BN AB BO BP BQ BR BS BT BU BV
  BO BW BX BY BZ CA CB CC CD CE CF O CG CH
>`.pickRestart({
  A: "[c6,e6,g6]@2 ~@2 [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6]@3 ~@3", // C
  B: "[c6,e6,g6]@3 ~@3 [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6] ~ [e6,g6] ~", // C Em
  C: "[e6,a6]@3 ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6] ~@3 [c6,e6,a6] ~, ~@5 a6 ~@2", // A5 Am C Am
  D: "[e6,a6]@3 ~ e6 ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6] ~ [c6,e6] ~", // A5 Am C
  E: "[c6,e6,g6]@3 ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6]@3 ~@3", // C
  F: "[c6,e6,g6]@3 ~ e6 ~ [c6,e6,g6]@3 ~ [e6,g6] ~ [c6,e6,g6] ~ e6 ~", // C Em C
  G: "[c6,e6,a6]@3 ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~, b6 ~@15", // Am
  H: "[c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6] ~ [e6,a6] ~", // Am A5
  I: "[c6,e6,g6]@3 ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6]@3 ~ [e6,g6] ~", // C Em
  J: "[c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6] ~ [c6,e6,g6] ~", // C
  K: "[c6,e6,a6]@3 ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~", // Am
  L: "[d6,f6,a#6]@3 ~ [f6,a#6] ~ [d6,f6,a#6]@3 ~ [f6,a#6] ~ [f6,a#6] ~ a#6 ~", // A# A#5 A# A#5
  M: "[c6,e6,g6]@3 ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6]@3 ~ [c6,e6] ~", // C
  N: "[c6,e6,g6]@3 ~ e6 ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6] ~ [c6,e6] ~", // C
  O: "[e6,a6]@3 ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~", // A5 Am
  P: "[d6,f6]@2 ~@2 [f6,a#6] ~ [d6,f6,a#6]@3 ~ [f6,a#6] ~ [d6,f6,a#6] ~@3", Q: "[b5,d6,g6]@15 ~",
  R: "[e6,a6]@7 ~, g6 ~@15", S: "[c6,e6,a6]@7 ~", T: "[d6,g6]@7 ~", U: "[c6,e6,a6]@15 ~", V: "[a5,c6,f6]@15 ~",
  W: "[c6,e6,g6]@3 ~@3 [c6,e6,g6]@3 ~ [e6,g6] ~ [e6,g6] ~ [c6,g6] ~", // C Em C5
  X: "[e6,a6]@3 ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6]@3 ~ c6 ~", // A5 Am
  Y: "[c6,e6,a6]@3 ~ e6 ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6] ~ [c6,e6] ~", // Am C
  Z: "[c6,e6,g6]@3 ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~", // C
  AA: "[c6,e6,g6]@2 ~@2 [c6,e6,g6] ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6] ~ [e6,g6] ~", // C Em
  AB: "[e6,a6]@3 ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6]@3 ~ [e6,a6] ~", // A5 Am A5
  AC: "[c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6] ~ [c6,e6,a6] ~", // Am
  AD: "[c6,e6,g6]@3 ~ [e6,g6] ~ [c6,e6,g6]@3 ~ [e6,g6] ~ [c6,e6,g6] ~ [e6,g6] ~", // C Em C Em C Em
  AE: "[d6,f6]@3 ~ [f6,a#6] ~ [f6,a#6]@3 ~ [f6,a#6] ~ a#6 ~ a#6 ~", // Dm A#5
  AF: "[c6,e6,g6]@3 ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [e6,g6]@3 ~ [c6,e6,g6] ~", // C Em C
  AG: "[c6,e6,g6]@3 ~ [e6,g6] ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6] ~ e6 ~", // C Em C
  AH: "[c6,e6,a6]@3 ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6]@3 ~ [e6,a6] ~", // Am A5
  AI: "d6@2 ~@2 [f6,a#6] ~ [d6,f6,a#6]@3 ~ a#6 ~ [f6,a#6] ~ [f6,a#6] ~, f6 ~@15", // A#5 A# A#5
  AJ: "[c6,e6,g6]@2 ~@2 [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6] ~ [c6,e6,g6]@3 ~", // C
  AK: "[c6,e6,g6]@3 ~ e6 ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6] ~ e6 ~", // C
  AL: "[c6,e6,a6]@3 ~ [c6,e6,a6]@3 ~ [e6,a6] ~ [c6,e6,a6]@3 ~ e6 ~", // Am A5 Am
  AM: "[c6,e6,a6]@2 ~@2 [c6,e6,a6] ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6] ~ e6 ~", // Am
  AN: "[c6,e6,g6]@2 ~@2 [c6,e6,g6] ~ [c6,e6,g6]@3 ~ [e6,g6] ~ [c6,e6,g6] ~ e6 ~", // C Em C
  AO: "[c6,e6,a6]@3 ~ [c6,e6] ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6] ~ e6 ~", // Am C Am
  AP: "[c6,e6,g6]@3 ~ [c6,e6,g6]@3 ~ [e6,g6] ~ [e6,g6]@3 ~ e6 ~", // C Em
  AQ: "[e6,g6]@3 ~ [e6,g6] ~ [c6,e6,g6]@3 ~ [e6,g6] ~ [e6,g6] ~ e6 ~", // Em C Em
  AR: "[e6,a6]@3 ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6]@3 ~@3", // A5 Am
  AS: "[d6,f6]@2 ~@2 [f6,a#6] ~ [f6,a#6]@3 ~ a#6 ~ [f6,a#6] ~ [f6,a#6] ~", // Dm A#5
  AT: "[c6,e6,g6]@2 ~@2 [e6,g6] ~ [c6,e6,g6]@3 ~ [e6,g6] ~ [c6,e6,g6] ~ e6 ~", // C Em C Em C
  AU: "[d6,f6] ~@3 [f6,a#6] ~ [f6,a#6]@3 ~ [f6,a#6] ~ [f6,a#6] ~ f6 ~", AV: "[e6,a6]@15 ~", AW: "[b5,d6,g6]@7 ~",
  AX: "[c6,e6,g6]@3 ~ [e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6]@3 ~ [e6,g6] ~", // C Em C Em
  AY: "[c6,e6,g6]@3 ~ e6 ~ [c6,e6,g6]@3 ~ [e6,g6] ~ [c6,e6,g6] ~ [c6,e6] ~", // C Em C
  AZ: "[e6,a6]@3 ~ [c6,e6,a6]@3 ~ [e6,a6] ~ [e6,a6]@3 ~ [c6,e6,a6] ~", // A5 Am A5 Am
  BA: "[c6,e6,a6]@3 ~ [e6,a6] ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6] ~ e6 ~", // Am A5 Am
  BB: "[e6,g6]@3 ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~", // Em C
  BC: "[c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6]@3 ~ [e6,g6] ~ [e6,g6] ~ e6 ~", // C Em
  BD: "[c6,e6,a6]@3 ~ [e6,a6] ~ [c6,e6,a6]@3 ~ [e6,a6] ~ [c6,e6,a6] ~ [c6,e6,a6] ~", // Am A5 Am A5 Am
  BE: "[c6,e6,g6]@3 ~ [c6,e6,g6]@3 ~ [e6,g6] ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~", // C Em C
  BF: "[c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6] ~ e6 ~", // C
  BG: "[e6,a6]@2 ~@2 [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6]@3 ~ e6 ~", // A5 Am
  BH: "[d6,f6] ~@3 a#6 ~ [f6,a#6]@3 ~ a#6 ~ [f6,a#6] ~ a#6 ~", // Dm A#5
  BI: "[c6,e6,g6]@3 ~ [c6,e6,g6]@3 ~ [e6,g6] ~ [c6,e6,g6]@3 ~@3", // C Em C
  BJ: "[c6,e6,g6]@3 ~ [e6,g6] ~ e6@3 ~ e6 ~ [e6,g6] ~ [e6,g6] ~", // C Em
  BK: "[c6,e6,a6]@3 ~ [c6,e6,a6]@3 ~ [c6,e6,a6] ~ [c6,e6,a6]@3 ~ e6 ~", // Am
  BL: "f6 ~@3 f6 ~ [f6,a#6]@3 ~ [f6,a#6] ~ [f6,a#6] ~ a#6 ~", // A#5
  BM: "[c6,e6,g6]@3 ~ [c6,e6,g6]@3 ~ [e6,g6] ~ [c6,e6,g6]@3 ~ [e6,g6] ~", // C Em C Em
  BN: "[c6,e6,g6]@2 ~@2 [e6,g6] ~ [c6,e6,g6]@3 ~ [e6,g6] ~ [e6,g6] ~ [e6,g6] ~", // C Em C Em
  BO: "[d6,f6]@3 ~ [f6,a#6] ~ [f6,a#6]@3 ~ [f6,a#6] ~ [f6,a#6] ~ [f6,a#6] ~", // Dm A#5
  BP: "[c6,e6,g6]@3 ~ [c6,e6,g6]@3 ~ [e6,g6] ~ [e6,g6]@3 ~ [c6,e6,g6] ~", // C Em C
  BQ: "[c6,e6,g6]@2 ~@2 [c6,e6,g6] ~ [e6,g6]@3 ~ [c6,e6,g6] ~ [e6,g6] ~ e6 ~", // C Em C Em
  BR: "[e6,a6]@3 ~ [c6,e6,a6]@3 ~ [e6,a6] ~ [c6,e6,a6]@3 ~ e6 ~", // A5 Am A5 Am
  BS: "[d6,f6,a#6]@3 ~ [f6,a#6] ~ [f6,a#6]@3 ~ [f6,a#6] ~ [f6,a#6] ~ [f6,a#6] ~", // A# A#5
  BT: "[c6,e6,g6]@2 ~@2 [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [e6,g6]@3 ~ [e6,g6] ~", // C Em
  BU: "[c6,e6,g6]@2 ~@2 [c6,e6,g6] ~ [e6,g6]@3 ~ [e6,g6] ~ [e6,g6] ~ e6 ~", // C Em
  BV: "[e6,a6]@3 ~ [c6,e6,a6]@3 ~ [e6,a6] ~ [e6,a6]@3 ~ [c6,e6] ~", // A5 Am A5 C
  BW: "[c6,e6]@3 ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [e6,g6]@3 ~ e6 ~", // C Em
  BX: "[c6,e6,g6]@2 ~@2 e6 ~ [c6,e6,g6]@3 ~ e6 ~ [e6,g6] ~@3", // C Em
  BY: "[e6,a6]@3 ~ [e6,a6]@3 ~ [e6,a6] ~ [c6,e6,a6]@2 ~@2 [c6,e6,a6] ~", // A5 Am
  BZ: "f6@2 ~@2 a#6 ~ [f6,a#6]@3 ~@3 [f6,a#6] ~ f6 ~, d6 ~@15", CA: "[c6,e6]@2 ~@2 [c6,e6,g6]@3 ~ [e6,g6] ~ e6 ~@5",
  CB: "[e6,g6]@3 ~ [e6,g6] ~ [e6,g6]@3 ~ e6 ~ [e6,g6] ~ e6 ~", // Em
  CC: "[c6,e6,a6]@3 ~ [e6,a6]@3 ~ [e6,a6] ~ e6 ~@3 [e6,a6] ~", CD: "[d6,f6]@3 ~ a#6 ~ [f6,a#6]@3 ~ a#6 ~ [f6,a#6]@3 ~",
  CE: "[c6,e6,g6]@2 ~@2 [c6,e6,g6]@3 ~ [e6,g6] ~ [c6,e6,g6]@3 ~ [e6,g6] ~", // C Em C Em
  CF: "[e6,g6]@2 ~@2 [e6,g6] ~ [c6,e6,g6]@3 ~ [c6,e6,g6] ~ [c6,e6,g6] ~ [e6,g6] ~", // Em C Em
  CG: "[d6,f6]@3 ~ [f6,a#6] ~ [f6,a#6]@3 ~ [f6,a#6] ~ [d6,f6,a#6]@2 ~@2, a#6 ~@15", CH: "[c6,e6,g6] ~@7",
})).s("gm_drawbar_organ").gain(0.2)

// chords · drawbar organ · "ORGAN LINES" · soft notes
const drawbar_organ_soft = note(`<
  ~@25 A B C D A E ~ F G ~@2 H I J C K ~ L ~@2 M ~@3 N O P Q ~ F R ~ F S ~ T U V F W X Y Z AA ~ AB C AC AD AE AF AG F E
  ~ AH ~@2 M L ~@4 AI AJ AK AL C AM C AN AO AP AQ AR AS AT AA AU AV AW R AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM
  BN AV BO C BP ~
>`.pickRestart({
  A: "~@14 [c6,e6,g6] ~", B: "~@4 [c6,e6,g6] ~@9 c6 ~", C: "c6@3 ~@13", D: "c6@3 ~ [c6,a6] ~@9 a6 ~",
  E: "~@4 c6 ~@5 c6 ~@3 [c6,g6] ~", F: "~@14 c6 ~", G: "~@15 c6", H: "~@4 d6 ~@5 d6 ~ d6 ~ [d6,f6] ~", I: "f6 ~@14 g6",
  J: "~@4 [c6,g6] ~@9 g6 ~", K: "~ a#6@2 ~ d6 ~@5 d6 ~@5", L: "c6@15 ~", M: "b5@7 ~", N: "~@14 e6 ~",
  O: "~@4 [c6,e6,g6] ~@5 c6 ~ c6 ~ e6 ~", P: "c6@3 ~@12 [e6,a6]", Q: "~@4 [c6,a6] ~@9 a6 ~", R: "c6@3 ~@11 c6 ~",
  S: "~@4 c6 ~@5 c6 ~@3 c6 ~", T: "~ a#6@2 ~ d6 ~ d6@3 ~ d6 ~ [d6,f6] ~ [d6,f6] ~", U: "~@10 c6@3 ~@3",
  V: "~@4 c6 ~@9 [c6,g6] ~", W: "~@4 d6 ~@5 [d6,f6] ~ d6 ~ d6 ~", X: "f6 ~@15", Y: "~@4 [c6,g6] ~@9 [c6,g6] ~",
  Z: "~@8 c6 ~@5 [c6,a6] ~", AA: "~@14 [c6,a6] ~", AB: "~@10 c6 ~@3 [c6,g6] ~", AC: "~@4 a6 ~@9 [c6,a6] ~",
  AD: "~@8 c6 ~ c6@3 ~ [c6,g6] ~", AE: "c6@2 ~@2 c6 ~@5 c6 ~ c6 ~ [c6,g6] ~", AF: "c6@2 ~@12 [c6,e6,a6] ~",
  AG: "a#6@2 ~@2 d6 ~ d6@2 ~@2 [d6,f6] ~ d6 ~ d6 ~", AH: "~@4 d6 ~ d6@3 ~ d6 ~ d6 ~ a#6 ~", AI: "~@4 c6@3 ~@7 c6 ~",
  AJ: "~@4 [c6,g6] ~@5 c6 ~@3 g6 ~", AK: "c6@3 ~@5 c6 ~ c6@3 ~@3", AL: "~@4 c6 ~@9 [c6,a6] ~",
  AM: "~@10 c6 ~ c6 ~ [c6,g6] ~", AN: "~@4 c6 ~@5 c6 ~@5", AO: "~@8 c6 ~@7", AP: "~@14 [c6,g6] ~",
  AQ: "c6@2 ~@12 [c6,a6] ~", AR: "[g#6,a#6] ~@3 [d6,f6] ~ d6@3 ~ [d6,f6] ~ d6 ~ [d6,f6] ~",
  AS: "~@8 c6 ~@5 [c6,e6,g6] ~", AT: "~@4 c6 ~ [c6,g6]@3 ~ [c6,g6] ~ c6 ~ c6 ~",
  AU: "d6 ~@3 [d6,a#6] ~ d6@3 ~ d6 ~ d6 ~ [d6,f6] ~", AV: "~@8 c6 ~@5 c6 ~", AW: "~@4 c6 ~@5 c6 ~ c6 ~ c6 ~",
  AX: "~ a#6@2 ~ d6 ~ d6@3 ~ d6 ~ d6 ~ d6 ~", AY: "~@8 c6 ~ c6@3 ~@3", AZ: "~@6 c6@2 ~@4 c6 ~ [c6,g6] ~",
  BA: "c6@2 ~@6 c6 ~@5 [c6,a6] ~", BB: "~@4 d6 ~ d6@3 ~ d6 ~ d6 ~ d6 ~", BC: "~@10 c6@3 ~ c6 ~",
  BD: "~@6 c6@2 ~@2 c6 ~ c6 ~ [c6,g6] ~", BE: "c6@2 ~@6 c6 ~ c6@2 ~@2 a6 ~", BF: "a#6@2 ~@2 d6 ~ d6@3 ~ d6 ~ d6 ~ d6 ~",
  BG: "g6@2 ~@8 c6@3 ~ [c6,g6] ~", BH: "~@4 [c6,g6] ~@5 [c6,g6] ~ c6 ~ [c6,e6,g6] ~", BI: "c6@2 ~@2 c6@3 ~ c6 ~@7",
  BJ: "~@4 f6 ~ d6@2 ~@2 [f6,a#6] ~ d6 ~ [d6,a#6] ~", BK: "g6@2 ~@6 c6 ~ [c6,g6] ~ [c6,e6,g6] ~@3",
  BL: "c6@2 ~@2 c6 ~ c6@3 ~ [c6,g6] ~ c6 ~ [c6,g6] ~", BM: "~@4 c6@2 ~@2 c6 ~ [c6,a6] ~@3 c6 ~",
  BN: "~ a#6@2 ~ [d6,f6] ~ d6@3 ~ [d6,f6] ~ d6@2 ~@2", BO: "c6@2 ~@2 c6 ~@9 c6 ~", BP: "g#6 ~@3 d6 ~ d6@2 ~@2 d6 ~@5",
})).s("gm_drawbar_organ").gain(0.1)

// drums · snare
const snare = s("sd").struct(`<
  ~ A ~@7 A ~@7 A ~@3 A ~@11 A ~@3 A ~@3 A ~@5 A ~ A ~@7 A ~@14 A@2 ~@3 A ~@3 A ~@5 A ~ A ~@6 A@2 ~@3 A ~@3 A ~@3 A ~@2
  A@2 ~@3 A ~@3 A ~@3 A ~@4
>`.pickRestart({
  A: "x",
})).gain(0.51)

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

// drums · high tom
const high_tom = s("ht").struct("<~@32 A ~@14 B C ~@23 B ~@14 B C ~@7 B ~@15 B ~@16 D>".pickRestart({
  A: "~@6 x!2", B: "~@2 x!2 ~@4", C: "~@4 x!3 ~@9", D: "x",
})).gain(0.51)

// drums · china
const china = s("cr").struct("<A B@3 C B@42 A@2 B@23 A B@14 A@2 B@7 A B@15 A B@15 D E>".pickRestart({
  A: "x!4", B: "x!8", C: "x!7 ~", D: "x!3 ~ x ~ x ~", E: "x",
})).gain(0.15)

// drums · ride bell
const ride_bell = s("rd").struct("<~@32 A ~@14 B C ~@23 B ~@14 B C ~@7 B ~@15 B ~@17>".pickRestart({
  A: "~@6 x!2", B: "x!2 ~@6", C: "x!3 ~@13",
})).gain(0.51)

// drums · tambourine
const tambourine = s("tb").struct("<~ A@3 B A@27 C A@14 D E A@23 D A@14 D E A@7 D A@15 D A@15 B ~>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2 x ~ x ~", C: "~@2 x ~@3 x!2", D: "~@6 x!2", E: "~@7 x",
})).gain(0.51)

// drums · bongos
const bongos = s("bongo:4").struct("<~@4 A ~@41 A ~ B ~@37 A ~ B ~@40 C>".pickRestart({
  A: "~@3 x", B: "~@7 x", C: "x",
})).gain(1.35)

stack(piano, drawbar_organ, drawbar_organ_soft, snare, mid_tom, high_tom, china, ride_bell, tambourine, bongos)

More by The Cars