Strudelify

Mas Que Nada (original Sergio Mendes & Brasil '66 version)

Sergio

KeyF majorTempo86 bpm
0:00/0:00
// Mas Que Nada (original Sergio Mendes & Brasil '66 version) — Sergio
// 86 bpm, 2/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "Ac.Bass" named as a bass, played on electric bass finger (its piano patch is not one)
// note: Full arrangement: all 119 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(86/2)

// 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.

// chords · electric bass finger · "Ac.Bass"
const electric_bass_finger = note(`<
  A B@2 C@2 D@2 E@2 F G@2 H I J K L M N@2 O P Q R S T U V U V W X Y Z AA AB AC@2 AD AE AF AG AH AI AJ AK AL AM AN F G@2
  H I J K L M N@2 O P Q R S T U V U V W X Y Z AA AB AC@2 AD AE AF AO AP AQ AR V AS AM AN F G@2 H I J K L M N@2 O P Q AT
  AU AV AW AX AY@2 AZ BA BB BC BD BE BF ~@2
>`.pickRestart({
  A: "~@8 [c2,c3] ~ [c2,c3]@2 [eb2,eb3]@2 [c2,c3]@2", // C Eb C
  B: "[[f2,f3]@4 [ab3,c4]@2 f3@2 [bb3,d4] ~ [bb3,d4]@3 ~ [f2,f3]@4 [g3,ab3,c4]@4 eb2@2 [c2,c3] ~ [c2,c3]@2 eb3@2 [c2,c3]@2, ~@28 eb2 ~@3]/2", // F Ab Bb F Abmaj7 C
  C: "[~@4 [ab3,c4]@2 f3 ~ [bb3,d4] ~ [bb3,d4]@3 ~ [f2,f3]@4 [g3,ab3,c4]@4 eb2 ~ [c2,c3] ~ [c2,c3] ~ eb3@2 [c2,c3]@2, [f2,f3]@7 ~@21 eb2 ~@3]/2", // Ab Bb F Abmaj7 C F
  D: "[~@4 [ab3,c4]@2 f3@2 [bb3,d4] ~ [bb3,d4]@3 ~ [f2,f3]@4 [g3,ab3,c4]@4 eb2 ~ [c2,c3] ~ c2@2 eb3@2 [c2,c3]@2, [f2,f3]@7 ~@19 c3 ~ eb2 ~@3]/2", // Ab Bb F Abmaj7 C F
  E: "[~@4 ab3@2 f3 ~ [bb3,d4] ~ [bb3,d4]@3 ~ [f2,f3]@4 [ab3,c4] ~ [bb3,d4]@8 ~@4, [f2,f3]@7 ~@25, ~@4 c4 ~@27]/2", // Bb F Ab Bb F
  F: "~@4 [f3,ab3,c4]@4 ~@2 [f3,bb3,d4] ~@3 [ab3,c4] ~, ~@7 eb4", // Fm Bb Ab
  G: "[~@2 [ab3,c4] ~@3 [bb3,d4]@2 ~@2 [c4,eb4] ~ [g3,bb3,d4] ~ [f3,ab3,db4]@7 ~ [f3,ab3,db4]@3 ~@3 [f3,ab3,db4] ~@3, ~@2 eb4@2 ~@2 f3 ~@3 ab3@2 ~@20]/2", // Ab Bb Cm Gm Db
  H: "[g3,db4,f4,g4] ~@3 [g3,db4,f4,g4]@4 ~@2 [g3,db4,f4,g4] ~@5", // Gm7b5
  I: "[ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~ [f3,bb3,d4] ~@3 [f3,bb3,d4]@2 ~@4", // Ab Bb
  J: "~@4 [ab3,c4,eb4] ~@5 [f3,bb3,d4] ~@3 [ab3,c4,eb4] ~", // Ab Bb Ab
  K: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~@3", // Ab Bb
  L: "[ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,d4] ~ [ab3,c4,d4]@3 ~@3", // Ab Dm7b5
  M: "~@4 [ab3,c4,eb4]@3 ~@3 [bb3,d4]@2 ~@2 [ab3,c4,eb4]@2, ~@10 f3 ~@5", // Ab Bb Ab
  N: "[~@2 [ab3,c4] ~@3 [ab3,c4] ~@3 [f3,bb3,d4] ~@3 [f3,ab3,db4]@6 ~@2 [f3,ab3,db4] ~@3 [f3,ab3,db4]@3 ~@3, ~ eb4 ~ eb4 ~@12]/2", // Ab Bb Db
  O: "[g3,db4,f4] ~@3 [g3,db4,f4] ~@5 [g3,db4,f4] ~@3 [ab3,c4,f4] ~", // Gm7b5 Fm
  P: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,d4] ~@3 [ab3,c4,d4]@3 ~@3", // Ab Dm7b5
  Q: "[ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@5 [ab3,c4,d4] ~@3 [ab3,c4,eb4] ~", // Ab Dm7b5 Ab
  R: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,d4] ~@3 [ab3,c4,d4]@4 ~@2", S: "~ [e3,bb3,eb4]@2 ~",
  T: "[f3,ab3,c4,eb4]@4 ~@2 [f3,ab3,eb4] ~ [f3,ab3,c4,eb4] ~ [f3,ab3,c4,eb4]@3 ~@3", // Fm7
  U: "[e3,bb3,eb4] ~@3 [e3,bb3,eb4]@4 ~@2 [e3,bb3,eb4] ~@3 [ab3,c4,f4] ~", // Eb Fm
  V: "~@2 [f3,ab3,c4,eb4] ~@3 [f3,ab3,c4,eb4] ~@3 [f3,ab3,c4,eb4]@2 ~@4", // Fm7
  W: "[e3,bb3,c4] ~@3 [e3,bb3,c4] ~ [e3,g3,bb3,db4] ~@3 [e3,g3,bb3,db4]@4 ~@2", // C7 Edim
  X: "~@2 [f3,ab3,c4] ~@3 [ab3,c4] ~ [f3,bb3,d4] ~@2 bb3 [f3,d4] ~@3", // Fm Ab Bb Dm
  Y: "[ab3,c4,eb4] ~ [ab3,c4,eb4] ~@3 [f3,bb3,d4] ~@3 [f3,bb3,d4]@3 ~@3", Z: "~@6 [ab3,db4,f4]@4 ~@2 [ab3,db4,f4] ~@3",
  AA: "[g3,db4,f4] ~ [g3,db4,f4] ~@3 [g3,db4,f4] ~ [g3,db4,f4] ~@3 [db4,f4] ~ [c4,eb4,bb4] ~", // Gm7b5 Db Cm7
  AB: "~@2 [c4,eb4,bb4] ~@3 [c4,eb4,ab4] ~ [c4,eb4,bb4] ~@3 [c4,eb4,bb4] ~@3", // Cm7 Ab Cm7
  AC: "[[c4,eb4,ab4]@4 [c4,eb4,ab4]@3 ~@3 [c4,eb4,ab4] ~@3 f4@8 bb3@8 ~@2, ~@7 d3@8 ~]/2", // Ab
  AD: "[db3,f3,bb3]@3 [c3,e3,bb3,eb4]@4 f4, g4@3 ~@13", // Bbm C7
  AE: "~@2 f2 ~ [g3,ab3,c4]@2 f2 ~ [g3,ab3,c4] ~ [g3,ab3,c4]@4 ~@2", AF: "~@4 [c2,e3,bb3,eb4]@7 ~@5",
  AG: "~@2 f5@2 f4 ~ [f3,ab3,eb4] ~ [f3,ab3,c4,eb4] ~ [f3,ab3,c4,eb4]@3 ~@3, [f3,ab3,c4,eb4] ~@3, ~@2 e5 ~@13", // Fm7
  AH: "[e3,bb3,eb4] ~ [g4,g5] ~@3 [g4,g5] ~@3 [e3,bb3,eb4] ~@3 [ab3,c4,f4] ~, ~ [e3,bb3,eb4] ~@2", // Eb G Eb Fm Eb
  AI: "~@2 [f3,ab3,c4,eb4,f5] eb5 c5 ~ [f3,ab3,c4,eb4,a4] ~ ab4@2 [f3,ab3,c4,eb4,f4]@2 ab4@2 bb4 ~, ~@3 bb4 ~@4", // Fm7 F7 Fm7
  AJ: "[e3,bb3,eb4] ~ [e4,bb4,eb5] ~@3 [e4,bb4,eb5] ~@3 [e3,bb3,eb4,e4,bb4,eb5] ~@3 [ab3,c4,f4] ~, ~ [e3,bb3,eb4] ~@2", // Eb Fm Eb
  AK: "~@2 [f3,ab3,c4,eb4,e5,f5] ~ f4 ~ [f3,ab3,c4,eb4] ~@3 [f3,ab3,c4,eb4]@2 ~@4, ~@6 f4@2 ~@2 f4 ~@5", // Fm7
  AL: "[e3,bb3,d4] ~@3 [e3,bb3,d4] ~ [e3,g3,bb3,db4] ~@3 [e3,g3,bb3,db4]@4 ~@2", // Em7b5 Edim
  AM: "~@2 [f3,ab3,c4] ~@3 [f3,ab3,c4] ~ [f3,bb3,d4] ~@3 [f3,bb3,d4] ~@3", // Fm Bb
  AN: "[f3,c4,eb4] ~@3 [f3,c4,eb4] ~ [f3,bb3,d4] ~@3 [f3,c4,eb4] ~ [f3,bb3,d4] ~@3", // F7 Bb F7 Bb
  AO: "[f3,ab3,c4,eb4]@3 [e5,f5] ~@2 [f3,ab3,eb4] ~ [f3,ab3,c4,eb4] ~ [f3,ab3,c4,eb4]@3 ~@3", // Fm7 Fmaj7 Fm7
  AP: "[e3,bb3,eb4] ~ [f5,g5] ~ [e3,bb3,eb4]@4 ~@2 [e3,bb3,eb4] ~@3 [ab3,c4,f4] ~", // Eb Fsus2 Eb Fm
  AQ: "~@2 [f3,ab3,c4,eb4,f4,b4,c5] ~ [f4,b4,c5] ~ [f3,ab3,c4,eb4,f4,b4,c5] ~ [f4,b4,c5] ~ [f3,ab3,c4,eb4]@2 [f4,b4,c5] ~ [f4,b4,c5] ~, ~@10 [f4,b4,c5] ~@5", // Fm7 F Fm7 F Fm7 F
  AR: "[e3,bb3,eb4,f4] ~ [f4,ab4] ~@3 [f4,ab4] ~@3 [e3,bb3,eb4] ~@3 [ab3,c4,f4] ~, bb4 ~ [e3,bb3,eb4]@2 ~@4", // Ebsus2 Fm Eb Fm Eb
  AS: "[e3,bb3,d4] ~@3 [e3,bb3,c4] ~ [e3,g3,bb3,db4] ~@3 [e3,g3,bb3,db4]@4 ~@2", // Em7b5 C7 Edim
  AT: "[ab3,c4,f4] ~@7 [f4,d5] ~ [f4,d5] ~ [ab4,d5] ~ [bb4,d5] ~", // Fm Dm Abdim Bb
  AU: "bb4 b4@2 ~ [bb4,d5] [ab4,d5] ~ [bb4,d5] ~@2 [f4,f5]@3 ~@3, d5@3 ~@13", // Bb Abdim Bb F
  AV: "[f4,f5] ~ f4 ~ [f4,f5]!2 [f3,c4,eb4,f5] f4 [f4,f5] f5 f4 f5!2 f4 f5@2, ~@14 f4 ~", // F F7 F
  AW: "~@2 [f3,c4,eb4] ~ ab4@2 bb4 ~ c5@2 [f3,eb5] [ab3,c4,eb4] f5 ~ g5@2, ~@2 f4@2 ~@10 gb5 ~", // F7 Ab
  AX: "~@2 [bb3,d4] ~@3 [ab3,d4,g4] ~@7 [f3,ab3,bb3,d4] ~", // Bb G Bb7
  AY: "[~@2 f3 [ab3,bb3,d4] ~@2 [g5,d6] ~ d6@2 ~ [bb5,d6,e6] ~@2 [bb5,d6] b5@2 ~ [bb3,d4,b5,d6] ~ [b5,d6] ~ [f3,ab3,bb3,d4,b5,d6] ~ [b5,d6] ~ [b5,d6] ~ [b5,d6] ~ b5 ~, ~@2 [f5,d6]@2 ~@4 ab5 ~@23]/2", // Bb7 G5 Em7b5 Bb Bm Bb7 Bm Dm
  AZ: "c6 ~ [f3,c4,eb4,bb5] ~ ab5 ~ [ab3,bb3,d4,f5] ~ ab5 ~ g5 g5@2 f5 ~@2, ~@10 ab5@3 ~@3", // Fsus4 Bb7
  BA: "eb5@2 c5 ~ [ab3,c4,eb4,eb5] ~@3 eb5@2 ~@2 eb5 ~ d5@2, ~@14 db5 ~", // Ab
  BB: "~@2 [f3,ab3,c4,eb4,bb4] ~@3 [f3,ab3,bb3,d4] ~@3 [ab3,d4,g4]@3 ~@3", // Fm7 Bb7 G
  BC: "~@2 [g4,ab4,c5,eb5] ~ [g4,ab4,c5,eb5] ~ [g4,ab4,c5,eb5] ~ [g4,ab4,c5,eb5] ~@5 [c4,eb4] ~", // Abmaj7 Cm
  BD: "[c4,eb4] ~ [ab3,c4,eb4,ab4,c5,d5] ~ [f3,c4,eb4] ~ [ab4,d5] ~ [ab4,c5,d5] ~ [ab4,c5,d5] ~ [ab4,c5,d5] ~ [ab4,c5,d5,f5] ~", // Cm Ab F7 Abdim Dm7b5
  BE: "~@2 [f2,f4] ~ [ab2,ab4] ~ [f2,f4] ~ [bb2,bb4]@3 [ab2,ab4]@2 ~ [f2,f4] ~, ~@8 a4 ~@7", // F Ab F Bb Ab F
  BF: "~@2 [f2,f3,ab4,c5,d5,f5] ~@13", // Dm7b5
})).s("gm_electric_bass_finger").gain(0.26)

// other · brass section
const brass_section = note(`<
  ~@9 A@5 B C@2 D E@4 F D ~@25 G@5 H@3 D I@4 J@2 ~@25 K@5 L C@2 D M@4 N O ~ P Q R ~@7 S T ~@2
>`.pickRestart({
  A: "[[f3,f4]@38 [ab3,ab4]@4 [c4,c5]@4 [bb3,bb4]@12 [ab3,ab4]@4 [f3,f4]@15 c4@2 ~, ~@77 c3 ~@2]/5", // F Ab C Bb Ab F
  B: "[f3,f4]@6 [c3,c4] ~ [f3,f4]@6 c4@2, ~@14 c3 ~", C: "[[f3,f4]@15 ~]/2", D: "[f3,f4]",
  E: "[~@2 [c4,c5]@3 [bb3,bb4]@4 ~ ab4@3 [f3,f4]@8 ~ ab3@4 [c4,c5]@2 ~@2 [bb3,bb4]@12 [ab3,ab4]@4 ~ f3@14 c4@2 ~, ~@9 ab3@4 ~@8 ab4@3 ~@22 f4@16 ~@2, ~@47 e3@2 ~@12 c3 ~@2]/4", // C Bb F C Bb Ab
  F: "[f3,f4]@6 [c3,c4] ~ [f3,f4]@5 ~ c4 ~, ~@13 c3@2 ~", // F C F
  G: "[[f3,f4]@19 [ab3,ab4]@2 [c4,c5]@2 [bb3,bb4]@6 [ab3,ab4]@2 [f3,f4]@8 c4, ~@78 c3 ~]/5", // F Ab C Bb Ab F
  H: "[[f3,f4]@6 [c3,c4] ~ [f3,f4]@5 c3@2 [f3,f4]@30 ~@3, ~@13 c4 ~@34]/3", // F C F
  I: "[~@2 [c4,c5]@3 ~ [bb3,bb4]@3 ~ [ab3,ab4]@3 ~ [f3,f4]@8 [ab3,ab4]@4 [c4,c5]@2 ~@2 [bb3,bb4]@12 [ab3,ab4]@3 ~ [f3,f4]@15 [c3,c4]@2 ~]/4", // C Bb Ab F Ab C Bb Ab …
  J: "[[f3,f4]@5 ~ c4 ~ [f3,f4]@5 [c3,c4]@2 ~ f3@16, ~@5 c3@2 ~@8 f4@16 ~]/2", // F C
  K: "[[f3,f4]@38 [ab3,ab4]@4 [c4,c5]@4 [bb3,bb4]@11 ~ ab4@4 [f3,f4]@15 ~ c3 ~, ~@57 ab3@4 ~@16 c4@2 ~]/5", // F Ab C Bb F
  L: "[f3,f4]@6 [c3,c4] ~ [f3,f4]@5 [c3,c4] ~@2", // F C F C
  M: "[~@2 [c4,c5]@4 [bb3,bb4]@4 [ab3,ab4]@3 ~ f4@8 [ab3,ab4]@4 [c4,c5]@4 [bb3,bb4]@11 [ab3,ab4]@4 ~ f4@15 c4@2 ~, ~@13 f3@8 ~@24 f3@16 c3 ~@2]/4", // C Bb Ab C Bb Ab
  N: "[f3,f4]@6 c4@2 [f3,f4]@4 ~ c4@2 f4, ~@6 c3 ~@5 c3@3 ~", O: "f3 ~@15", P: "~@7 c3, ~@13 c4@2 ~",
  Q: "[f3,f4]@6 c4@2 [f3,f4]@5 [c3,c4]@2 ~, ~@6 c3 ~@9", R: "[f3,f4] ~@7",
  S: "~@2 f4 ab3 ab4 f4@2 ~ bb4@2 ~ ab3@2 ~ [f3,f4] ~, ~ f3@2 ~@2 f3 ~@2 bb3 ~@2 ab4 ~@4", T: "~@2 [f3,f4] ~@13",
})).s("gm_brass_section").gain(0.26)

// other · rock organ
const rock_organ = note(`<
  ~@26 A B C D E F G@4 H I J K L M N O P Q R S T@3 ~@15 U V W X Y Z AA@3 AB AC AD J K AE AF AG AH AI AJ AK AL AM@3 ~@12
  AN AO AP ~@13
>`.pickRestart({
  A: "~@4 eb5@5 ~ db5@3 ~ c5@2", B: "~@2 f5@2 ~@9 c5 ~ eb5", C: "~ eb5 ~ eb5 ~@2 db5 ~ eb5 ~ db5 ~@2 c5@2 ~",
  D: "~@2 f5 ~@2 c5 ~@4 c5 ~@2 c5 ~@2", E: "eb5 ~ eb5!2 ~@2 db5 ~ eb5 db5 ~@4 c5 ~", F: "~@2 c5 ~@3 c5 ~ c5 ~@3 c5 ~@3",
  G: "[c5 ~@2 c5 ~@2 e5 ~@3 e5 ~@3 f5@23 ~@2 f5@3 ~ g5@3 ~ ab5@6 ~ f5@3 ~ bb5@3 g5 ~@2]/4",
  H: "ab5@2 f5 ~@2 f5 ~ eb5@2 ~ c5@2 ~ eb5 ~@2", I: "f5@3 eb5@5, eb5 ~@15", J: "~@4 f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ c6 ~",
  K: "c6@4 ~ bb5@3 ~@2 bb5 ~@2 g5 ~@2", L: "g5 ~@2 eb5 ~ eb5 ~@2 eb5@2 c5 ~@2 eb5 ~@2", M: "f5@15 ~",
  N: "~@4 eb5@5 ~ db5@2 ~@2 c5@2", O: "~@2 f5@2 ~@9 c5 ~@2", P: "eb5 ~ eb5 ~ eb5 ~ db5 ~ eb5 db5@2 ~@2 c5@2 ~",
  Q: "~@2 f5 ~@2 c5 ~@4 c5 ~@3 c5 eb5", R: "~ eb5 ~ eb5 ~ db5 ~ eb5 ~@2 db5 ~@3 c5 ~",
  S: "~@2 c5 ~@2 c5 ~@2 c5 ~@3 c5 ~@3", T: "[c5 ~@2 c5 ~ e5@2 ~@2 e5 ~@4 f5@31 ~@3]/3", U: "~@4 eb5@6 db5@3 ~ c5@2",
  V: "~@2 f5@2 ~@10 c5 ~", W: "eb5 ~ eb5 ~ eb5 db5 ~@2 eb5 ~ db5 ~@3 c5 ~", X: "~ f5 ~@3 c5 ~@3 c5 ~@4 c5 ~",
  Y: "eb5 ~ eb5 ~ eb5 db5 ~@2 eb5 ~ db5 ~@2 c5 ~@2", Z: "~ c5 ~@3 c5 ~@2 c5 ~@3 c5 ~@3",
  AA: "[c5 ~@3 c5 ~ e5 ~@3 e5 ~@3 f5@24 ~@2 f5@3 g5@3 ~@2]/3", AB: "ab5@6 f5@3 ~ bb5@2 ~ g5 ~@2",
  AC: "ab5@2 f5@3 f5@2 eb5@2 c5@2 ~@2 eb5 ~@2", AD: "f5@5 ~ eb5@10", AE: "g5 ~ eb5 ~@2 eb5 ~@2 eb5 ~ c5 ~@3 eb5 ~",
  AF: "f5", AG: "~@4 eb5@5 ~ db5 ~@3 c5@2", AH: "~@2 f5 ~@11 c5 eb5", AI: "~@2 eb5!2 ~ db5 ~@2 eb5 ~ db5 ~@3 c5 ~",
  AJ: "~@2 f5 ~@3 c5 ~@2 c5 ~@4 c5 ~", AK: "eb5 ~ eb5 ~ eb5 ~ db5 ~ eb5 ~ db5 ~@2 c5 ~@2",
  AL: "~@2 c5 ~@2 c5 ~@2 c5 ~@2 c5 ~@4", AM: "[c5 ~@2 c5 ~@2 e5 ~@3 e5 ~@3 f5@30 ~@4]/3", AN: "~@14 c5 ~",
  AO: "f5@3 f5@2 ~ c5 f5@2 ~@3 f5 c5 ~@2", AP: "f5 ~@15",
})).s("gm_rock_organ").gain(0.36)

// other · piano
const piano = note("<~@33 A B C@2 ~@36 D E@4 F G ~@25 H@3 I J@4 K L ~ M ~@2>".pickRestart({
  A: "[f3,ab4]", B: "[eb3,g4]", C: "[[c3,f4]@7 ~]/2", D: "[bb3,c5]", E: "[g3 ~@2 d4, bb4 ab4, ~@16 c4@31 ~@17]/4",
  F: "[bb3,g4]", G: "[ab3,f4]", H: "[[f3,f4]@9 [ab3,ab4] [bb3,bb4] [c4,c5]]/3", I: "[eb4,eb5] [f4,f5]",
  J: "[~ g4@25 [f4,f5]@2 [eb4,eb5]@2 [c4,c5]@2, g5@13 ~@3]/4", K: "[bb3,bb4]@3 [c4,c5]",
  L: "[ab3,ab4]@8 [g3,g4]@5 ~ [f3,f4] ~", M: "~@2 [f4,f5] ~@13",
})).s("gm_piano").gain(0.2)

// drums · kick
const kick = s("bd").struct("<~@2 A B@7 C B@15 C B@15 ~ B@23 C B@15 ~ B@22 C ~ B@10 ~ D>".pickRestart({
  A: "~@3 x", B: "x ~@2 x!2 ~@2 x", C: "x", D: "~ x ~@6",
})).gain(0.26)

// drums · rim
const rim = s("rim").struct(`<
  ~@3 A B A B A B A ~ A B A B A B ~@2 A B A B A B ~ C D@8 E F E F E F E C D@8 A B A B A B ~@2 A B A B A B ~ C D@8 E F E
  F E F E C D@8 A B A B A B ~@2 A B A B A B C ~ D@10 ~ G
>`.pickRestart({
  A: "~ x!2 ~ x!2 ~@2", B: "~ x!2 ~ x!2 ~ x", C: "x", D: "~ x ~@2", E: "x ~@2 x ~@2 x ~", F: "~@2 x ~@2 x ~@2",
  G: "~ x ~@6",
})).gain(0.31)

// drums · low tom
const low_tom = s("lt").struct("<~@10 A ~@23 B ~@15 B ~@23 B ~@15 B ~@26 C ~>".pickRestart({
  A: "~@6 x!2", B: "~@3 x", C: "~@7 x",
})).gain(0.31)

// drums · hihat
const hihat = s("hh").struct("<~@3 A@7 ~ B@15 ~@9 C@7 D ~@8 B@15 ~@9 C@7 D ~@8 B@14 D ~@13>".pickRestart({
  A: "~ x ~ x", B: "x ~@2 x ~@4", C: "x!2", D: "x",
})).gain(0.26)

// drums · mid tom
const mid_tom = s("mt").struct("<~@10 A ~@23 B ~@15 B ~@23 B ~@15 B ~@26 C ~>".pickRestart({
  A: "~@3 x!3 ~@2", B: "~@5 x ~@2", C: "~@2 x!2",
})).gain(0.31)

// drums · open hat
const open_hat = s("oh").struct("<~@26 A ~@11 B ~@3 A ~@23 A ~@11 B ~@3 A ~@33 C ~ B>".pickRestart({
  A: "~ x ~@2", B: "~ x ~@6", C: "~@7 x",
})).gain(0.26)

// drums · high tom
const high_tom = s("ht").struct("<~@10 [~ x!2 ~@5] ~@106 [~ x!3 ~@4] ~>").gain(0.31)

// drums · ride
const ride = s("rd").struct("<~@17 A B ~@6 C ~@31 A B ~@6 C ~@31 A B ~@20>".pickRestart({
  A: "~@2 x!6", B: "x!4 ~ x ~@2", C: "~ x!4 ~@3",
})).gain(0.31)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@3 A B@6 C A B@7 A B@6 C ~@24 A B@7 A B@6 C ~@24 A B@7 A B@5 C ~ A B@3 A B@3 A B ~@2
>`.pickRestart({
  A: "x ~ x!6", B: "x!8", C: "x",
})).gain(0.26)

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

// drums · claves
const claves = s("clave:2").struct(`<
  ~@27 A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~@17 A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~@17 A ~ A ~ A ~ A ~ A ~@3
>`.pickRestart({
  A: "~ x ~@2",
})).gain(1.76)

stack(
  electric_bass_finger, brass_section, rock_organ, piano, kick, rim, low_tom, hihat, mid_tom, open_hat, high_tom, ride,
  tambourine, cabasa, claves
)

More by Sergio