Strudelify

Disperato erotico stomp

Dalla Lucio

KeyG majorTempo149 bpm
0:00/0:00
// Disperato erotico stomp — Dalla Lucio
// 149 bpm, 4/4, key G 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 213 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(149/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(`<
  ~@28 A B C D E F C G E F C G E F C H E F C I E B C G E B C J E K C G E F C L E F C M E B C G E B C I E B C L E F C M E
  F C G E K C G E F C N E B C M E B C G E F C G E F C N E F C M E B C G E B C G E F C N E O C M E O C G E B C J E B C G
  E F C G E F C N E F C M P Q R S E B C I E F C N E F C M E K C G E K C G E F C I E O C G E O C G E O T ~ E F C I E F C
  G E O C G E B C G U
>`.pickRestart({
  A: "c2@3 c2@2 ~@17 c2@2", B: "g1@3 ~ g1@2 ~@16 b1@2", C: "c2@3 ~ c2@2 ~@16 c2@2",
  D: "g1@3 ~ g2@2 f2@3 ~@2 d#2@7 d2@3 ~@3", E: "c2 ~ c2 ~@8 c2", F: "g1 ~ g1 ~@8 b1", G: "g1 ~ g1 ~@9",
  H: "g1@5 ~ d2@4 ~@2 e2@4 ~@2 d2@3 ~@3", I: "g1@3 ~ g1@2 ~@18", J: "g1@3 ~@3 g1@4 ~@2 a1@4 ~@2 b1@5 ~",
  K: "g1@2 ~@2 g1@3 ~@15 b1@2", L: "g1@2 ~@2 g1@2 ~@3 g1 ~ g1 a1@6 b1@4 ~@2", M: "g1@2 ~@4 g1@4 ~@2 a1@4 ~@2 b1@5 ~",
  N: "g1@2 ~@2 g1@2 ~@3 g1!2 ~ a1@6 b1@4 ~@2", O: "g1@3 ~ g1@3 ~@15 b1@2", P: "c2@3 ~ c2@2 ~@10 g1@2 a1@4 c2 ~",
  Q: "d2@3 ~ d2@2 ~@10 g1 ~ d2@4 g1 ~", R: "e2@3 ~ e2@3 ~@5 d2@3 ~@3 e2@3 ~@3", S: "d2@3 ~@3 a1@5 ~ g1@6 a1@4 ~@2",
  T: "c2 ~@7", U: "c2@5 ~@19",
})).s("gm_electric_bass_finger").gain(0.53)

// chords · epiano2 · "E.PIANO"
const epiano2 = note(`<
  A B C@6 D E F G ~@3 H I J K J L M N O P Q R S T U T V T U T V W X Y Z T AA T AB AC AD AE AD ~@2 AF AG AH AI AJ AK AL
  AM AN AO AC AD AC AD AP AQ AC AR AS AT AU AV AC AW AX AY AZ BA BB BC BD AQ AC BE AS BF AU AV BG AW AX BH AC AD AC AD
  BI BJ BK BL BM BN BO BP BQ BR BS BT BU AD AC BV AX BW BX BY BZ CA CB CC@2 CD CE CF AC AD AC BV CG CH CI CJ CK CL CM CN
  CO CP AL CJ AL CJ CQ CR AL CH CS CT AC AD AC BV AX BW CU CV BZ CW CX CC@2 CD CY CZ AC AD AE BV AX BW BX CV DA DB CB
  DC@2 CD CE CF AC AD AC BV AX DD DE CJ AL DF DG DH DI DJ DK ~ AC AD AC AD AC AD AC AD AC AD AC BV AC AD AC AD DL
>`.pickRestart({
  A: "g5", B: "f5", C: "[~@24 f5@24 g5@31 ~@5 f5@3 e5@3 d5@3 e5@6 c5@3 g4@42, e5 ~@5, ~@6 g4@43 ~@95]/6",
  D: "~ c5, g5, ~@6 c4@17 ~", E: "~ f4@3, f5, f3@19 ~@5", F: "~ e4, [c3,e5], ~ c4@3",
  G: "~@12 d4@11 ~, [g3,d5], ~@6 b3@17 ~", H: "~@4 g4@2 f4@2 ~@4 d#4@2 ~@4 d4@3 ~@3, ~@4 f#4 ~@19",
  I: "~@2 [d4,e4,g4] ~@3 [c4,d4,e4,g4] ~, c3", J: "~@6 [b3,d4,g4]@2 ~@10 [b3,d4,g4]@3 ~@3, g2",
  K: "~@3 [c4,d4,e4,g4] ~@5 [c4,d4,e4,g4] ~@2, c3", // C
  L: "~@6 [d4,e4,g4]@2 ~@2 e4 ~ c5@4 e4 ~ [c4,d4,e4,g4]@2 ~@2 e4 ~, c3, ~@3 [c4,c5]@2 ~@4 c5@2 ~", // Em7 C
  M: "[g4,c5] ~ g4@2 e4 ~ [b3,d4,g4]@2 [g4,c5] ~ e4 ~ [g4,c5] ~ [g4,c5]@2 e4 ~ [b3,d4,g4]@2 [g4,c5] ~ e4 ~, g2, ~@2 c5 ~@3 c5 ~@11 c5 ~@5", // C5 G C5 G C5
  N: "[g4,c5] ~ [g4,c5] ~ e4 ~ [c4,d4,e4,g4]@2 [g4,c5]@2 e4 ~ [g4,c5] ~ [g4,c5] ~ e4 ~ [c4,d4,e4,g4,c5]@2 g4@2 e4 ~, c3, ~@6 [a#4,c5] ~@11 f#4 ~@5", // C5 C C5 C A#sus2
  O: "~@2 g4 f4 ~@2 d#4 ~@2 d4 ~@2, g2, ~@4 f#4 ~@19", P: "~@3 [c4,d4,e4,g4] ~@5 [d4,e4,g4] ~@2, c3, ~@18 c4 ~@5",
  Q: "~@3 [b3,d4,g4] ~@5 [c4,d4,e4,g4] ~@2, g2@23 ~", R: "~@3 [d4,e4] ~@5 [d4,e4,g4] ~@2, c3, ~@6 [c4,g4] ~@11 c4 ~@5",
  S: "~@6 [b3,d4] ~@11 [b3,d4,g4]@2 ~@4, g2@7 ~, ~@3 g4 ~@8", T: "~@2 [g3,c4,e4] ~@3 [g3,c4,e4] ~",
  U: "~@6 [g3,b3,d4,f4]@2 ~@10 [g3,b3,d4,f4]@3 ~@3", V: "~@2 [g3,b3,d4,f4] ~@3 [g3,b3,d4,f4] ~",
  W: "~@3 e4@2 ~ [g4,c5]@4 e4 [g4,c5]@5 e4 ~ [g4,c5]@4 e4 ~", // C5
  X: "[g4,c5]@4 [d4,e4] ~ [g4,c5]@4 e4 ~ [g4,c5]@4 d4 ~ [g4,c5]@4 e4@2", // C5 Dsus2 C5
  Y: "[g4,c5] ~ [g4,c5]@2 e4 ~ [g4,c5] ~ [g4,c5]@2 e4 ~ [g4,c5] ~ [g4,c5]@2 e4 ~ [g4,a#4,c5] ~ [g4,c5]@2 e4 ~", // C5 C7 C5
  Z: "~@4 [f#4,a4] ~ f4@3 ~@2 [f4,g4] d#4@3 ~@3 d4@3 ~@3, ~@2 g4 ~@9", AA: "~@6 [g3,b3,d4,f4]@2 ~ [g3,b3,d4,f4]@2 ~",
  AB: "a#3 b3@3 g3 ~ a3@3 ~@3 [g3,b3]@4 d3@2 g3@3 ~@3, [a3,d4]@4 ~ e3@3 ~@16", AC: "~@2 [e4,g4] ~@3 [e4,g4] ~",
  AD: "~@2 [d4,g4] ~@3 [d4,g4] ~", AE: "~@6 [e4,g4]@3 ~@9 [e4,g4]@2 ~@4",
  AF: "~@6 [c4,d4,e4,g4]@3 ~@9 [c4,d4,e4,g4]@2 ~@4", AG: "~@6 [b3,d4,g4]@4 ~@9 [b3,d4]@4 ~, ~@9 g4@2 ~",
  AH: "~@4 c4 ~ [d4,e4,g4]@4 c4 ~ [d4,e4,g4]@4 c4 ~ [d4,e4,g4]@4 c4 ~", // Em7
  AI: "~@4 b3@2 [d4,g4]@4 b3 ~ [d4,g4]@4 ~@2 [d4,g4]@4 b3 ~", // G5
  AJ: "~@4 c4 ~ [d4,e4,g4]@4 c4 ~ [d4,e4,g4]@4 c4@2 [d4,e4,g4]@4 c4 ~", AK: "~@6 [d4,g4]@2 ~@10 [b3,d4,g4]@3 ~@3",
  AL: "~@2 [c4,d4,e4,g4] ~@3 [c4,d4,e4,g4] ~", AM: "~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~",
  AN: "~@6 [c4,d4,e4,g4]@3 ~@9 d#4 e4@3 c4 ~, ~@6 [d4,g4] ~", // C G5
  AO: "~@6 [g3,b3,d4]@2 ~@4 a#3 b3@3 g3 ~ e3@3 ~@3, ~@4 d4 ~@3", AP: "~@6 [c4,e4]@2 ~@10 e4@3 ~@3, ~@17 c4@3 ~@4",
  AQ: "~@2 [d4,f4] ~@3 [d4,f4] ~", AR: "~@6 [d4,f4]@3 ~@9 [d4,f4]@2 ~@4", AS: "~@4 c4 ~ [e4,g4]@4 ~@9 [e4,g4]@3 ~@2",
  AT: "~@4 c4@2 [d4,f4]@3 ~@10 [d4,f4]@3 ~@2", AU: "~@6 [e4,g4]@3 ~@10 [c4,e4,g4]@2 ~@3, ~@5 c4@2 ~@17",
  AV: "~@4 c4@2 [d4,f4]@2 ~@10 [d4,f4]@3 ~@3", AW: "~@6 [d4,f4]@3 ~@10 [d4,f4]@3 ~@2", AX: "~@2 [c4,e4] ~@3 [c4,e4] ~",
  AY: "~@6 [b3,d4]@3 ~@3 a#3 b3@3 ~ g3 ~@6, ~@6 a#3 ~@5 d4@4 ~@8", // Bm
  AZ: "~@4 c5@2 [e5,g5] ~ [e5,g5] ~ c5@2 [e5,g5] ~ [e5,g5] ~ c5@2 [e5,g5] ~ g5@2 c5 ~, ~@20 e5 ~@3", // Em
  BA: "[d5,g5] ~ [d5,g5]@2 b4@2 [d5,g5] ~ [d5,g5] ~ b4 ~ [d5,g5] ~ [d5,g5] ~ b4@2 [d5,g5] ~ g5@2 b4 ~, ~@20 d5 ~@3", // G5
  BB: "~@10 d#5 e5@2 ~ c5 ~ [d5,e5] ~@7, ~@5 [d5,g5]@2 ~@5", BC: "~@4 d#5 e5 c5 ~@2 a4 ~@3 c5@2 ~@9, ~@2 d5 ~@9",
  BD: "~@6 [c4,e4]@2 ~@10 [c4,e4]@3 ~@3", BE: "~@3 [d4,f4] ~@5 [d4,f4] ~@2",
  BF: "~@4 c4 ~ [d4,f4]@3 ~@10 [d4,f4]@3 ~@2", BG: "~@6 [e4,g4]@3 ~@10 [e4,g4]@3 ~@2",
  BH: "~@6 [b3,d4]@2 ~@4 a#3 b3@3 ~ g3 ~@6, ~@6 a#3 ~@5 d4@3 ~@9", BI: "~@4 c3 ~ [d4,e4,g4]@4 c4 ~@12 g3",
  BJ: "[b3,d4,g4]@3 ~ g3 ~ [b3,d4,g4]@3 ~ g3 ~ [b3,d4,g4]@3 ~ g3 ~ [b3,d4,g4]@3 g3 ~@2", // G
  BK: "[d4,e4,g4]@4 c4 ~@11 c3 ~ d#4 e4@3 c4 ~, ~@9 [d4,g4]@2 ~", // Em7 G5
  BL: "~@4 g3 ~@2 b3@2 ~ g4@2 ~@6 [b3,d4,g4]@3 ~ [d4,e4,g4]@2, ~@3 a#3 ~@8", BM: "~@3 [c4,e4,g4] ~@5 [c4,e4,g4] ~@2",
  BN: "~@6 [b3,d4,f4]@2 ~@8 [b3,d4,f4] ~ d#5 e5@3 ~ c5, ~@6 d5 ~", BO: "~@3 [c4,e4] ~@5 [c4,e4] ~@2",
  BP: "~@6 [b3,d4]@3 ~@9 [b3,d4]@2 ~@4", BQ: "[d#5,g5]@3 ~ e5@2 [e4,c5] ~@11 c4 e4 ~@4, ~@3 c4 ~@8",
  BR: "~@3 b3 ~@5 b3 ~@2, ~@6 d4 ~@11 d4 ~@5", BS: "~@6 [c4,e4] ~@5 [d5,d#5]@2 e5@2 c5 ~ a4 [c4,e4] g4 ~ c5 ~",
  BT: "~@6 [b3,d4] ~@4 f4 g4 f4@2 d#4@2 e4 ~ c4@2 ~@3, ~@10 [f#4,c5]@3 ~@11", BU: "~@6 [e4,g4]@3 ~@9 [e4,g4]@4 ~@2",
  BV: "~@6 [d4,g4]@3 ~@9 [d4,g4]@2 ~@4", BW: "~@4 g3 ~ [d4,f4]@3 ~@9 [d4,f4]@3 ~@3",
  BX: "~@4 c3 ~ [c4,e4,g4]@3 ~ c3 ~ [c4,e4,g4]@3 ~ c3 ~ [c4,e4,g4]@4 c3 ~", // C
  BY: "g2 ~@3 g2 ~ [b3,d4,f4]@3 ~@7 g2 ~ [b3,d4,f4]@3 ~@3", // Bdim
  BZ: "~@4 c3 ~ [d4,g4]@3 ~ c3 ~ [d4,e4,g4]@4 c3 ~ [d4,e4,g4]@4 c3 ~, ~@5 e4@3 ~@16", // G5 Em7
  CA: "g2@2 ~@2 g2 ~ [b3,d4,f4]@3 ~ g2 ~ [b3,d4,f4]@3 ~ g2 ~ [b3,d4,f4]@3 g2@2 ~", // Bdim
  CB: "c3@2 ~@2 c3 ~ [c4,d4,e4,g4]@3 ~@9 [c4,d4,e4,g4]@3 ~@3", // C
  CC: "[~@4 g2 ~ [b3,d4,f4]@4 g2 ~ [b3,d4,f4]@4 g2 ~ [b3,d4]@3 ~ d#4 e4@2 ~@3 c3 ~ [c4,e4]@3 ~@7 c3 ~ [g3,c4,e4]@3 ~@3, ~@18 f4@4 d4@2 ~@6 d4 ~@17]/2", // Bdim Bm C
  CD: "~@4 g2 ~ [g3,b3,d4]@3 ~@7 g2 ~ [g3,b3,d4]@3 ~@3", // G
  CE: "~@4 c3 ~ [c4,e4]@3 ~@7 c3 ~ [g3,c4,e4]@3 ~@3, ~@6 g3 ~@17", // C
  CF: "~@4 g2 ~ d#4 e4@3 c4 ~ [a3,d4]@4 g3 ~ e4@3 ~@3, ~@3 [d4,g4]@2 ~ b3 ~@5", CG: "~@2 [c4,e4] ~@3 [g3,c4,e4] ~",
  CH: "~@6 [b3,d4,f4]@4 ~@8 [b3,d4,f4]@3 ~@3", CI: "~@6 [c4,e4,g4]@3 ~@9 [c4,e4,g4]@4 ~@2",
  CJ: "~@2 [b3,d4,f4] ~@3 [b3,d4,f4] ~", CK: "~@2 [c4,e4,g4] ~@3 [c4,e4,g4] ~",
  CL: "~@6 [b3,d4,f4]@3 ~@9 [b3,d4,f4]@4 ~@2", CM: "~@6 [c4,e4]@3 ~@9 [g3,c4,e4]@4 ~@2",
  CN: "~@6 [g3,b3,d4]@4 ~@6 c4@2 [d4,e4,g4]@4 c4 ~", CO: "~@7 [d4,g4]@2 ~@10 [c4,d4,e4,g4]@3 ~@2, ~@2 [c4,e4] ~@5",
  CP: "~@7 [b3,d4,f4]@3 ~@8 [b3,d4,f4]@3 ~@3", CQ: "~@4 c3 ~ [d4,e4,g4]@4 c3 ~ [d4,e4,g4]@3 ~ c3 ~ [d4,e4,g4]@4 c3 ~",
  CR: "~@4 c3 ~ [b3,d4,f4]@4 c3 ~ [b3,d4,f4]@3 ~@3 [b3,d4,f4]@4 ~@2", // Bdim
  CS: "~@6 [g3,c4,e4]@3 ~@9 [c4,e4]@4 ~@2, ~@9 g3 ~@2", // C
  CT: "~@6 d#4 [d4,e4]@3 c4 ~ a3@3 ~ g3 ~ [a3,d4]@4 ~@2, ~@6 g4@3 ~@9 b3@2 ~@4", // Dsus2 D5
  CU: "~@4 c3 ~ [c4,e4,g4]@3 ~ c3 ~ [c4,e4,g4]@3 ~ c3 ~ [c4,e4,g4]@4 c3@2", // C
  CV: "~ g2 ~@2 g2 ~ [b3,d4,f4]@3 ~@7 g2 ~ [b3,d4,f4]@3 ~@3", // Bdim
  CW: "g2@2 ~@2 g2 ~ [b3,d4,f4]@3 ~ g2 ~ [b3,d4,f4]@3 ~ g2 ~ [b3,d4,f4]@3 g2 ~@2", // Bdim
  CX: "c3 ~@3 c3 ~ [c4,d4,e4,g4]@3 ~@9 [c4,d4,e4,g4]@3 ~@3", // C
  CY: "~@4 c3 ~ [c4,e4]@3 ~@6 c3@2 ~ [g3,c4,e4]@3 ~@3, ~@6 g3 ~@17", // C
  CZ: "~@4 g2 d#4 ~ e4@3 c4 ~ [a3,d4]@4 g3 ~ e4@3 ~@3, ~@3 [d4,g4]@2 ~ b3 ~@5", // D5 G5
  DA: "~@4 c3 ~ [d4,e4,g4]@3 ~ c3 ~ [d4,e4,g4]@4 c3 ~ [d4,e4,g4]@3 c3@2 ~", // Em7
  DB: "g2@2 ~@2 g2 ~ [b3,d4,f4]@3 ~ g2 ~ [b3,d4,f4]@3 ~ g2 ~ [b3,d4,f4]@4 g2 ~", // Bdim
  DC: "[~@4 g2 ~ [b3,d4,f4]@4 g2 ~ [b3,d4,f4]@4 g2 ~ [b3,d4]@3 ~ d#4 e4@2 ~@3 c3 ~ [c4,e4]@3 ~@7 c3 ~@2 g3@3 ~@2, ~@18 f4@4 d4@2 ~@6 d4 ~@11 [c4,e4]@3 ~@3]/2", // Bdim Bm C
  DD: "~@6 [b3,d4,f4]@3 ~@10 [b3,d4]@2 ~@3, ~@6 f4 ~", DE: "~@2 [g3,c4,e4,g4] ~@3 [g3,c4,e4,g4] ~",
  DF: "~@4 g3 ~ [b3,d4,f4]@4 ~ g3 [b3,d4,f4]@3 ~ g3 ~ [b3,d4,f4]@4 g3 ~", // Bdim
  DG: "~@6 [c4,d4,e4,g4]@2 ~@10 [c4,d4,e4,g4]@3 ~@3", // C
  DH: "~@4 e4@2 [g4,c5]@4 e4 ~ [g4,c5]@4 e4 ~ [g4,c5]@4 e4 ~, ~@18 f#4 ~@5", // C5
  DI: "~@7 [c4,e4,g4]@2 ~@9 [c4,e4,g4]@2 ~@4", DJ: "~@3 [b3,d4,f4] ~@5 [b3,d4,f4] ~@2", DK: "[g3,c4,e4] ~@7",
  DL: "[g3,c4,e4] ~@5", // C
})).s("gm_epiano2").gain(0.54)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@12 A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B A D A B C D A B C D A
  B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D C B C D A B C D A B C D A B C D A B C D A B C D A B C D
  A B A D A B C D A B C D A B C D A B C D A B C D A B C D A B C D C B C D A B C D A B C D A B C D A B C D A B C D A B C
  D A B C D A B ~@2 A B C D A B C D A B C D A D C D ~
>`.pickRestart({
  A: "~@6 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@6 [g3,c4,e4]@3 ~@3", B: "~@6 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 ~@6 [b3,d4,g4]@3 ~@3",
  C: "~@6 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@6 [g3,c4,e4]@2 ~@4", D: "~@6 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 ~@6 [b3,d4,g4]@2 ~@4",
})).s("gm_electric_guitar_muted").gain(0.35)

// chords · trumpet
const trumpet = note(`<
  ~@44 A B C D E ~@11 A F C F E ~@27 A G C G E ~@11 H I J K L ~@11 M F N F E ~@19 A F C F E ~@11 A F O P E ~@11 A F C F
  E ~@11 A F C G A G N Q A F C F A F C F R
>`.pickRestart({
  A: "[c4,e4,c5]@3 ~@9 [c4,e4,c5]@3 ~ [e4,e5]@2 ~@3 [c4,e4,c5]@2 ~, ~@5 g4 ~@2", // C E C
  B: "[d4,f4,d5]@3 ~@9 [d4,f4,d5]@3 ~ [f4,a4,a5]@3 ~@2 [e4,g4,g5]@2 ~", // Dm F Em
  C: "[c4,e4,c5]@2 ~@10 [c4,e4,c5]@3 ~ [e4,e5]@2 ~@4 e4@2, ~@15 g4@2 ~@4 [c4,c5]@3", // C E C
  D: "[d4,f4,d5]@3 ~@9 [d4,f4,d5]@4 [f4,a4,a5]@2 ~@3 [e4,g4,g5]@2 ~", E: "[c4,e4,c5] ~@11",
  F: "[d4,f4,d5]@3 ~@9 [d4,f4,d5]@3 ~ [f4,a4,a5]@2 ~@3 [e4,g4,g5]@2 ~", // Dm F Em
  G: "[d4,f4,d5]@3 ~@9 [d4,f4,d5]@3 ~ [f4,a4,a5]@2 ~@3 [e4,g4,g5]@3", // Dm F Em
  H: "[c4,c5,e5]@2 ~@10 [c4,c5,e5]@4 [e4,e5,g5]@2 ~@3 [c4,c5,e5]@2 ~", // C Em C
  I: "[d4,d5,f5]@3 ~@9 [d4,d5,f5]@3 ~ [a4,f5,a5]@2 ~@3 [g4,e5,g5]@2 ~", // Dm C
  J: "[c4,c5,e5]@3 ~@9 [c4,c5,e5]@3 ~ [e4,e5,g5]@2 ~@3 [c4,c5,e5]@2 ~", // C Em C
  K: "[d4,d5,f5]@3 ~@9 [d4,d5,f5]@3 ~ [a4,f5,a5]@2 ~@3 [g4,d5,g5]@2 ~", L: "[c4,c5,e5] ~@7",
  M: "[c4,e4,c5]@3 ~@9 [c4,e4,c5]@3 ~ [e4,e5]@2 ~@3 [c4,e4,c5]@3, ~@5 g4 ~@2", // C E C
  N: "[c4,e4,c5]@2 ~@10 [c4,e4,c5]@3 ~ [e4,e5]@2 ~@4 e4@2, ~@5 g4 ~ [c4,c5]", // C E C
  O: "[c4,e4,c5]@3 ~@9 [c4,e4,c5]@3 ~ [e4,e5]@2 ~@4 e4@2, ~@15 g4@2 ~@4 [c4,c5]@3", // C E C
  P: "[d4,f4]@3 ~@9 [d4,f4,d5]@3 ~ [f4,a4,a5]@2 ~@3 [e4,g4,g5]@2 ~, d5 ~@23", // Dm F Em
  Q: "[d4,f4,d5]@2 ~@10 [d4,f4,d5]@3 ~ [f4,a4,a5]@2 ~@3 [e4,g4,g5]@3", R: "[c4,e4,c5] ~@7",
})).s("gm_trumpet").gain(0.57)

// chords · trumpet · soft notes
const trumpet_soft = note(`<
  ~@44 A B C D E ~@11 A B C F E ~@27 A B C D E ~@27 A B C F E ~@19 A G C D E ~@11 A B C D E ~@11 A B C D E ~@11 A B C F
  A B C F A B C F A B C F E
>`.pickRestart({
  A: "c3@3 ~@9 c3@3 ~ e3@2 ~@3 c3@3", B: "d3@3 ~@9 d3@3 a3@2 ~@4 g3@3", C: "c3@3 ~@9 c3@4 e3@2 ~@3 c3@3",
  D: "d3@3 ~@9 d3@4 f3@2 ~@3 e3@2 ~", E: "c3 ~@7", F: "d3@3 ~@9 d3@3 ~ f3@2 ~@3 e3@2 ~",
  G: "d3@3 ~@9 d3@3 a3@2 ~@4 g3@2 ~",
})).s("gm_trumpet").gain(0.13)

// drums · kick
const kick = s("bd").struct(`<
  ~@28 A@15 B A@4 C@15 A C@11 B C@3 A C@15 A C@15 A C@15 A C@23 A C@15 A C@12 A@4 C@10 A ~ A@17
>`.pickRestart({
  A: "x", B: "x ~@2 x", C: "x ~@10 x",
})).gain(0.69)

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

// drums · hihat
const hihat = s("hh").struct("<~@11 [~ x] ~@16 [x ~ x!2 ~ x!2 ~ x!2 ~ x]!166 ~@2 [x ~ x!2 ~ x!2 ~ x!2 ~ x]!16 ~>")
  .gain(0.69)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<[x!2]!11 x [x!4]!16 ~@185>").gain(0.28)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@43 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A
  ~@25
>`.pickRestart({
  A: "~@3 x",
})).gain(0.48)

// drums · high tom
const high_tom = s("ht").struct("<~@200 x ~@5 [~ x] ~@5 x>").gain(0.55)

// drums · crash
const crash = s("cr").struct("<~@27 A ~@166 B ~@9 B ~@3 B ~@4>".pickRestart({
  A: "~@3 x", B: "x",
})).gain(0.62)

// drums · claves
const claves = s("clave:2").struct("<~@12 [x!2 ~ x ~@2]!16 ~@185>").gain(2.03)

stack(
  bass, epiano2, electric_guitar_muted, trumpet, trumpet_soft, kick, snare, hihat, hihat_soft, open_hat, high_tom,
  crash, claves
)

More by Dalla Lucio