Strudelify

Ambos Polka

Last

KeyB♭ majorTempo104 bpm
0:00/0:00
// Ambos Polka — Last
// 104 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 5 "HARPSICHRD" harpsichord (copy of ch 4 "A.PIANO" piano)
// note: Full arrangement: all 79 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(104/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@2 B C@2 D E@2 F G@2 H I@2 J K@2 L M@2 N O@2 P Q@2 R S@2 N T@2 U V@2 W X@2 N Y@2 Z AA@2 F G@2 H I@2 J K@2 L M@2 N O@2
  P Q@2 R S@2 N T@2 U V@2 W X@2 N Y@2 AB AC
>`.pickRestart({
  A: "[~@12 f1@8 ~@2 c2@2 f1@4 a1@3 ~]/2", B: "c2@3 ~ bb1@8 ~@2 f1@2",
  C: "[bb1@4 d2@4 f2@3 ~ eb2@8 ~@2 eb2@2 f2@3 ~ f1@3 ~]/2", D: "c2@4 bb1@8 ~@2 f1 ~",
  E: "[bb1@4 d2@4 f2@3 ~ bb1@10 ~@2 f1@4 g1@4]/2", F: "a1@4 bb1@11 ~", G: "[bb1@4 d2@4 f2@4 eb2@11 ~ f1@6 ~@2]/2",
  H: "f1@2 bb1@4 ~ bb1", I: "[f1@4 g1@3 ~ a1@2 ~@2 bb1@11 ~ f1@3 ~ g1@3 ~]/2", J: "a1@3 ~ bb1@11 ~",
  K: "[bb1@4 d2@3 ~ f2@3 ~ eb2@12 f1@6 ~@2]/2", L: "f1@2 bb1@4 ~ f2",
  M: "[f1@4 g1@3 ~ a1@3 ~ bb1@9 ~ bb1 ~ f1@3 ~ g1@3 ~]/2", N: "a1@3 ~ bb1@8 ~@2 f1@2",
  O: "[bb1@4 d2@4 f2@3 ~ eb2@8 ~@2 bb1@2 eb2@7 ~]/2", P: "eb2@3 ~ bb1@8 ~@2 f1 ~",
  Q: "[bb1@3 ~ a1@4 g1@3 ~ f1@8 ~@2 c2@2 f1@3 ~ a1@4]/2", R: "c2@3 ~ bb1@8 ~@2 f1 ~",
  S: "[bb1@3 ~ d2@4 f2@3 ~ bb1@8 ~@2 bb1@2 f1@3 ~ g1@3 ~]/2", T: "[bb1@3 ~ d2@4 f2@3 ~ eb2@8 ~@2 bb1@2 eb2@7 ~]/2",
  U: "eb2@3 ~ bb1@7 ~@3 f1@2", V: "[bb1@3 ~ a1@3 ~ g1@3 ~ f1@8 ~@2 f1 ~ gb1@7 ~]/2", W: "d1@3 ~ g1@8 ~@2 d2@2",
  X: "[g1@4 bb1@4 d2@4 eb2@9 ~ eb2 ~ f2@4 f1@4]/2", Y: "[bb1@4 d2@4 f2@3 ~ eb2@8 ~@2 eb2 ~ f2@4 f1@4]/2",
  Z: "c2@2 bb1@4 ~ f1", AA: "[bb1@2 d2@2 f2 ~ bb1@5 ~ f1@2 g1@2]/2", AB: "c2@4 bb1@4 d2@3 ~ f2@3 ~", AC: "bb1@9 ~@7",
})).s("gm_electric_bass_finger").gain(0.5)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<A@2 B@6 C@4 D@6 E@8 F@3 G@6 H@6 I@3 J@2 K@6 L@4 M@6 N@3 O@6 P@8>".pickRestart({
  A: "[~@8 [d4,f4]@2 ~@2 [eb4,c5]@10 d5@2 [g4,eb5]@3 ~ [f4,d5]@4, ~@3 f3@5, ~@22 f4 ~@9]/2", // Dm Cm Dm
  B: "[[eb4,c5]@3 ~ [eb4,c5]@12 [d4,bb4]@12 [bb3,eb4]@12 [f4,d5]@2 ~@6 c5@4 [bb3,d4,f4,bb4]@23 ~ [bb3,d4]@11 [a3,c4]@9, ~@4 bb3@23 ~ g4@10 ~@2 f3@12 ~@24 f3@20, ~@44 [eb4,f4]@7 ~@45]/6", // Cm Gm Eb5 Dm Bb Am Ebsus2
  C: "[~@4 [f3,bb3,d4]@23 ~ [g3,bb3,eb4]@12 a3@3 ~ bb3@3 ~ a3@3 ~ [bb3,d4]@11 c4, ~@20 f3@11 ~, ~@10 [c4,eb4]@3 ~@3]/4", // Bb Eb Bb Cm
  D: "[[f3,f4]@12 d4@12 [a3,c4,eb4]@12 [bb3,d4]@23 ~ [g3,bb3,eb4]@12 c4@3 ~ bb3@3 ~ c4@4 [bb3,d4]@12, a3@5 ~ f3@23 ~@7 f3@11 ~, ~@12 bb3@10 ~@50 f4@13 ~@11, ~@72 a3@11 ~@13]/6", // F Adim Bb Eb Bb
  E: "[[f3,a3,c4,f4]@11 ~ [bb3,f4,d5]@12 [g4,eb5]@4 [f4,d5]@4 [eb4,c5]@3 ~ [eb4,c5]@12 d4@11 ~ g4@4 [gb4,a4]@4 [g4,bb4]@3 ~ [a4,c5]@4 [g4,bb4]@7 ~ [bb3,f4,bb4]@24 [eb4,c5]@9 ~ [d4,bb4] ~@2 eb4@7, ~@24 f3@12 bb3@23 ~ [bb3,eb4]@24 d4@22 ~@2 f3@20, ~@6 bb4@2 ~@7 [c4,a4]]/8", // F Bb Cm Dm Cm Gbm Gm Am …
  F: "[[d4,f4]@3 ~ [f4,d5]@10 [eb4,c5]@2 ~@8 f4@3 ~ [bb3,f4,d5]@12 [g4,eb5]@4 [f4,d5]@4, ~@4 bb3@23 ~@13 f3@8, ~@4 [d4,bb4]@3 ~@5]/3", // Dm Cm Bb Cm Dm Gm
  G: "[[eb4,c5]@3 ~ [eb4,c5]@12 d4@8 ~@8 [gb4,a4]@4 [g4,bb4]@4 [a4,c5]@4 g4@6 ~@2 [d4,f4]@23 ~ [f3,eb4,c5]@11 ~ eb5@4 d5@4, ~ bb3@18 ~@3 [gb3,gb4]@2, ~@4 bb4@4 ~@3 bb4@8 ~@5, ~@24 g4@7 ~@65, ~@28 eb4@23 ~@45]/6", // Cm Gbm Gm Am Dm F7 Gb
  H: "[[a4,c5]@3 ~ [a4,c5]@12 [d4,g4,bb4]@12 [g4,bb4]@12 d5@4 ~@4 a4@3 ~ f4@24 [eb4,g4]@11 ~ d5@4 eb4@4, ~@2 g3@11 ~ eb4@5 ~ f3@6 bb3@18 [f3,f4]@4, ~@20 f4@4 ~@2 bb4@17 ~@5, ~@44 [eb4,c5]@7 ~ d4@22 ~@22]/6", // Am Gm Eb F Cm
  I: "[[a4,c5]@4 [bb3,d4,f4,bb4]@23 ~ [bb3,d4]@12 [a3,c4]@8, ~@7 f3@5]/3", J: "[~@4 [f3,bb3,d4]@23 ~ [g3,bb3,eb4]@4]/2",
  K: "[~@8 a3@3 ~ bb3@3 ~ a3@3 ~ [bb3,d4]@11 ~ c4@12 [bb3,d4]@11 a3 ~@4 a3@7 ~ [bb3,d4]@23 ~ [g3,bb3,eb4]@4, ~@8 f3@83 ~@5, ~@8 c4@12 ~@11 a3@11 ~@14 [c4,f4]@12 ~@28, ~@16 f4@5 ~@27]/6", // Bb Eb F5
  L: "[~@8 a3@3 ~ bb3@4 a3@3 ~ [bb3,d4]@11 ~ a3@11 ~ [bb3,f4,d5]@12 [g4,eb5]@3 ~ [f4,d5]@4, ~@2 [f3,f4]@9 ~@3 f3@2, ~@8 c4@12 ~@11 c4@13 ~@20]/4", // Bb Cm Dm F
  M: "[[eb4,c5]@3 ~ [eb4,c5]@12 d4@8 ~@8 [gb4,a4]@4 [g4,bb4]@3 ~ [a4,c5]@4 g4@8 f4@24 [eb4,c5]@10 [d4,bb4] ~ [c4,eb4,a4]@8, ~ bb3@18 f3@5, ~@4 bb4@4 ~@3 bb4@5 ~@8, ~@3 g4 ~@8, ~@28 eb4@23 ~ d4@22 ~@22]/6", // Cm Gbm Gm Am Cm Gm Adim
  N: "[[d4,f4]@3 ~ [f4,d5]@10 [eb4,c5]@2 ~@8 f4@3 ~ [f4,d5]@11 ~ [g4,eb5]@3 ~ [f4,d5]@4, ~ bb3@9 f3@2, ~@16 [d4,bb4]@11 ~@21]/3", // Dm Cm Dm Cm Dm Gm
  O: "[[eb4,c5]@2 ~@2 [eb4,c5]@11 ~ d4@8 ~@8 [gb4,a4]@4 [g4,bb4]@3 ~ [a4,c5]@4 g4@7 ~ [d4,f4]@24 [f3,eb4,c5]@12 eb5@3 ~ d5@4, ~ bb3@18 ~@3 [gb3,gb4]@2, ~@4 bb4@4 ~@3 bb4@8 ~@5, ~@3 g4 ~@8, ~@7 eb4@6 ~@11]/6", // Cm Gbm Gm Am Dm F7 Gb
  P: "[[a4,c5]@3 ~ [a4,c5]@12 [d4,g4]@12 [g4,bb4]@12 [c4,c5]@12 d4@23 ~ g4@7 ~ [g4,eb5]@3 ~ [f4,d5]@4 ~@4 c5@4 [bb3,d4,f4,bb4]@21 ~@7, ~@4 g3@36 f4@36 eb4@10 ~@6 eb4@7 ~@29, ~@16 bb4@10 ~@2 eb4@23 ~ bb3@36 f3@12 ~@28, ~@13 bb4@8 ~@11]/8", // Am G5 Gm C Cm Dm Bb
})).s("gm_string_ensemble_1").gain(0.24)

// chords · piano · "A.PIANO"
const piano = note(`<
  A B C D E F ~@12 G H I J K L@2 M N O P C Q R@3 S T U V W@2 V X@2 ~@11 G H Y Q Z L@2 M AA AB AC Y Q K AD@2 AE T AF AG
  AH@2 AI AJ@2
>`.pickRestart({
  A: "~@8 [d5,f5]@3 ~ [eb5,c6]@3 ~", B: "[eb5,c6]@5 ~ [f5,d6] ~ [g5,eb6]@3 ~ [f5,d6]@3 ~",
  C: "[eb5,c6]@3 ~ [eb5,c6]@11 ~", D: "[d5,bb5]@2 [d5,f5] [eb5,g5]",
  E: "[eb5,bb5]@3 ~ [g5,eb6]@2 ~@2 [f5,d6]@2 ~@2 [eb5,f5]@3 ~", F: "[eb5,c6]@3 ~ [d5,bb5]@12",
  G: "~@8 [d5,f5]@3 ~ [f5,d6]@3 ~", H: "[f5,d6]@4 ~@2 [f5,d6] ~ [g5,eb6]@3 ~ [f5,d6]@3 ~", I: "[eb5,c6] ~ [eb5,c6]@6",
  J: "[d5,bb5]@7 ~ [d5,bb5]@3 ~ [g5,bb5]@4", K: "[gb5,a5]@3 ~ [g5,bb5]@3 ~ [a5,c6]@3 ~ [g5,bb5]@4",
  L: "[~@2 [eb5,g5] ~ [d5,f5]@19 ~ [d5,f5]@3 ~ [eb5,c6]@3 ~]/2", M: "[eb5,c6]@5 ~ [d5,bb5] ~ [c5,a5]@8",
  N: "[d5,f5]@3 ~ [f5,d6]@3 ~ [f5,d6]@5 ~ [eb5,c6] ~", O: "bb5@8 [d5,f5]@3 ~ [f5,d6]@3 ~, d5@3 ~@5",
  P: "[f5,d6]@5 ~ d6@2 [g5,eb6]@3 ~ [f5,d6]@3 ~, ~@6 f5 ~@9", Q: "[d5,bb5]@7 ~ [g5,bb5]@3 ~ [g5,bb5]@4",
  R: "[[gb5,a5]@4 [g5,bb5]@3 ~ [a5,c6]@4 [g5,bb5]@6 [eb5,g5] ~ [d5,f5]@23 ~ [eb5,c6]@3 ~]/3", // Gbm Gm Am Gm Eb Dm Cm
  S: "[eb5,c6]@5 ~ [eb5,c6] ~ [gb5,eb6]@3 ~ [gb5,d6]@4", T: "[a5,c6]@3 ~ [a5,c6]@12",
  U: "[g5,bb5]@7 ~ [d5,f5]@3 ~ [eb5,g5]@3 ~", V: "[eb5,bb5]@3 ~ [g5,eb6]@3 ~ [f5,d6]@2 ~@2 [eb5,f5]@3 ~",
  W: "[~@2 [eb5,c6]@2 [d5,bb5]@18 ~@2 [d5,f5]@3 ~ [eb5,g5]@3 ~]/2", X: "[[eb5,c6]@3 ~ [d5,bb5]@19 ~@9]/2",
  Y: "[eb5,c6]@2 ~@2 [eb5,c6]@11 ~", Z: "[gb5,a5]@4 [g5,bb5]@3 ~ [a5,c6]@3 ~ [g5,bb5]@4",
  AA: "[d5,f5]@3 ~ [f5,d6]@3 ~ [f5,d6]@5 ~ c6@2, ~@14 eb5 ~", AB: "[d5,bb5]@8 [d5,f5]@3 ~ [f5,d6]@3 ~",
  AC: "[f5,d6]@5 ~ [f5,d6] ~ [g5,eb6]@3 ~ [f5,d6]@3 ~", AD: "[~@2 [eb5,g5] ~ [d5,f5]@23 ~ [eb5,c6]@3 ~]/2",
  AE: "[eb5,c6]@4 ~@2 [eb5,c6] ~ [gb5,eb6]@3 ~ [gb5,d6]@3 ~", AF: "[g5,bb5]@3 ~ [d5,f5]@2 [eb5,g5]@2",
  AG: "[eb5,bb5]@3 ~ [g5,eb6]@2 ~@2 [f5,d6]@3 ~ [eb5,f5]@4", // Eb5 Cm Dm Ebsus2
  AH: "[~@2 [eb5,c6] ~ [d5,bb5]@17 ~@3 [d5,f5]@3 ~ [eb5,g5]@4]/2", // Cm Gm Dm Eb
  AI: "[eb5,bb5]@3 ~ [g5,eb6]@2 ~@2 [f5,d6]@3 ~ [eb5,f5]@3 ~", AJ: "[[eb5,c6]@3 ~ [d5,bb5]@18 ~@10]/2",
})).s("gm_piano").gain(0.36)

// chords · trumpet
const trumpet = note(`<
  A B C D E F ~@12 G H I J K L@2 M N O P I Q R@3 S T U V W X Y Z@2 ~@11 G P C Q K AA@2 M N AB P I Q K AC@2 S T AD AE AF
  AG Y F AH
>`.pickRestart({
  A: "~@8 [d4,f4]@3 ~ [eb4,c5]@3 ~", B: "[eb4,c5]@5 ~ [f4,d5] ~ [g4,eb5]@3 ~ [f4,d5]@3 ~",
  C: "[eb4,c5]@3 ~ [eb4,c5]@11 ~", D: "[d4,bb4]@7 ~ [d4,f4]@3 ~ [eb4,g4]@3 ~",
  E: "[g4,bb4]@3 ~ [g4,eb5]@3 ~ [f4,d5]@3 ~ [eb4,f4]@3 ~", F: "[eb4,c5]@3 ~ [d4,bb4]@11 ~",
  G: "~@8 [d4,f4]@3 ~ [f4,d5]@3 ~", H: "[f4,d5]@5 ~ d5@2 [g4,eb5]@3 ~ [f4,d5]@3 ~, ~@6 f4 ~@9",
  I: "[eb4,c5]@2 ~@2 [eb4,c5]@11 ~", J: "[d4,bb4]@6 ~@2 [d4,bb4]@3 ~ [g4,bb4]@4",
  K: "[gb4,a4]@3 ~ [g4,bb4]@3 ~ [a4,c5]@3 ~ [g4,bb4]@4", // Gbm Gm Am Gm
  L: "[~@2 [eb4,g4] ~ [d4,f4]@17 ~@3 [d4,f4]@3 ~ [eb4,c5]@3 ~]/2", M: "[eb4,c5]@5 ~ [d4,bb4] ~ [c4,a4]@7 ~",
  N: "[d4,f4]@3 ~ [f4,d5]@3 ~ [f4,d5]@5 ~ [eb4,c5] ~", O: "[d4,bb4]@8 [d4,f4]@3 ~ [f4,d5]@3 ~",
  P: "[f4,d5]@5 ~ [f4,d5] ~ [g4,eb5]@3 ~ [f4,d5]@3 ~", Q: "[d4,bb4]@7 ~ [g4,bb4]@3 ~ [g4,bb4]@4",
  R: "[[gb4,a4]@3 ~ [g4,bb4]@3 ~ [a4,c5]@3 ~ [g4,bb4]@6 [eb4,g4] ~ [d4,f4]@21 ~@3 [eb4,c5]@3 ~]/3", // Gbm Gm Am Gm Eb Dm Cm
  S: "[eb4,c5]@5 ~ [eb4,c5] ~ [gb4,eb5]@3 ~ [gb4,d5]@3 ~", T: "[a4,c5]@3 ~ [a4,c5]@12",
  U: "[g4,bb4]@6 ~@2 [d4,f4]@4 [eb4,g4]@3 ~", V: "[eb4,bb4]@3 ~ [g4,eb5]@2 ~@2 [f4,d5]@3 ~ [eb4,f4]@4",
  W: "~ c5 [d4,bb4]@6, ~@2 eb4 ~@13", X: "~@8 [d4,f4]@3 ~ [eb4,g4]@4",
  Y: "[eb4,bb4]@3 ~ [g4,eb5]@3 ~ [f4,d5]@4 [eb4,f4]@3 ~", Z: "[[eb4,c5]@3 ~ [d4,bb4]@22 ~@6]/2",
  AA: "[~@2 [eb4,g4] ~ [d4,f4]@19 ~ [d4,f4]@3 ~ [eb4,c5]@3 ~]/2", AB: "[d4,bb4]@8 [d4,f4]@2 ~@2 [f4,d5]@3 ~",
  AC: "[~@2 [eb4,g4] ~ [d4,f4]@21 ~@3 [eb4,c5]@3 ~]/2", AD: "[g4,bb4]@7 ~ [d4,f4]@3 ~ [eb4,g4]@3 ~",
  AE: "[eb4,bb4]@3 ~ [g4,eb5]@2 ~@2 [f4,d5]@4 [eb4,f4]@3 ~", AF: "~@2 [eb4,c5] ~ [d4,bb4]@12",
  AG: "~@2 [d4,f4] [eb4,g4]", AH: "[d4,bb4] ~@15",
})).s("gm_trumpet").gain(0.55)

// chords · acoustic guitar nylon · "A.GUITAR"
const acoustic_guitar_nylon = note(`<
  ~ A B C D E C F G H I J K L J M I J N O P M Q R M S T M U V C W X M Y Z AA AB AC AD AB AC M F G H I J K L J M I J N O
  P M Q R M S T M U V C W X M Y Z AA AB AC AD AB AE AF
>`.pickRestart({
  A: "[eb4,f4,c5] ~@3 [eb4,f4,c5] ~@7 [f4,d5] ~@3", B: "[eb4,c5]@2 ~@6 [eb4,f4,c5] ~@3 [eb4,f4,c5] ~@3",
  C: "~@4 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@7", D: "[eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~@7 [eb4,f4,c5] ~@3",
  E: "[eb4,f4,c5] ~@7 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3", F: "[f4,bb4,d5] ~@3 [f4,bb4,d5] ~@7 [eb4,bb4] ~@3",
  G: "[eb4,c5] ~@7 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~@3", H: "~@4 [d4,f4,bb4] ~@3 [f4,bb4,d5] ~@7",
  I: "[g4,bb4,eb5] ~@3 [g4,bb4,eb5] ~@7 [f4,bb4,c5] ~@3", J: "[f4,a4,c5] ~@7 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~@3",
  K: "~@4 [f4,a4,c5,f5] ~@3 [f4,a4,c5,f5] ~@7", L: "[f4,bb4,d5] ~@3 [f4,bb4,d5] ~@7 [f4,bb4,c5] ~@3",
  M: "~@4 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~@7", N: "~@4 [a4,c5,f5] ~@3 [a4,c5,f5] ~@7",
  O: "[f4,bb4,d5] ~@3 [f4,bb4,d5] ~@7 [f4,bb4,d5] ~@3", P: "[eb4,a4,c5] ~@7 [eb4,c5] ~@3 [eb4,f4,c5] ~@3",
  Q: "[gb4,a4,eb5] ~@3 [g4,bb4,eb5] ~@7 [g4,bb4,eb5] ~@3", R: "[g4,bb4,eb5] ~@7 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~@3",
  S: "[eb4,f4,c5] ~@3 [eb4,f4,c5] ~@7 [eb4,f4,c5] ~@3", T: "[d4,f4] ~@7 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~@3",
  U: "[f4,bb4,d5] ~@3 [f4,bb4,d5] ~@7 [f4,d5] ~@3", V: "[eb4,c5] ~@7 [eb4,f4,c5] ~@3 [eb4,f4,c5] ~@3",
  W: "[eb4,gb4,a4] ~@3 [eb4,g4,bb4] ~@7 [eb4,g4,bb4] ~@3", X: "[eb4,g4,bb4] ~@7 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~@3",
  Y: "[eb4,f4,c5] ~@3 [eb4,f4,c5] ~@7 [gb4,d5] ~@3", Z: "[gb4,a4,c5] ~@7 [d4,a4,c5] ~@3 [d4,a4,c5] ~@3",
  AA: "~@4 [d4,g4,bb4] ~@3 [d4,f4,bb4] ~@7", AB: "[g4,bb4,eb5] ~@3 [g4,bb4,eb5] ~@7 [eb4,f4,c5] ~@3",
  AC: "[eb4,f4,c5] ~@7 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~@3", AD: "~@4 [f4,bb4,d5] ~@3 [f4,bb4,d5]@2 ~@6",
  AE: "[eb4,f4,c5] ~@7 [bb4,d5,f5] ~@3 [f4,bb4,d5] ~@3", AF: "[d4,f4,bb4]@3 ~@5",
})).s("gm_acoustic_guitar_nylon").gain(0.4).pan(0.7)

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

// drums · snare
const snare = s("sd").struct(`<
  ~ A B C A B C D E F D E F D E F D E G A B C A B C A B C A B C A B C A B C A B H A B H A B C A B C A B C A B G A B C A
  B H A B C A B C A B C A B C A B H A B ~
>`.pickRestart({
  A: "x!2 ~ x", B: "x ~ x!2", C: "~ x!2 ~", D: "~ x ~@2", E: "x ~@2 x", F: "~ x", G: "~ x!2 ~@5", H: "~@2 x ~ x!2 ~@2",
})).gain(0.51)

// drums · low tom
const low_tom = s("lt").struct("<~@6 A ~@11 B ~@20 A ~@2 C ~@11 B ~@11 A ~@10 D ~>".pickRestart({
  A: "~@5 x ~@2", B: "~@10 x!2 ~@4", C: "~@11 x ~@4", D: "~@7 x",
})).gain(0.36)

// drums · hihat
const hihat = s("hh").struct(`<
  A B C D C D E F@11 G C D E C D H C D H I@2 H I H C I E@2 C J H I@2 H K I H C I@2 C D I C D I C D E C I H C I@6 H@2 C D
  E C I H D@2 L
>`.pickRestart({
  A: "~@6 x!2", B: "x!5 ~ x ~", C: "x!5 ~ x!2", D: "x!3 ~ x!4", E: "x!7 ~", F: "x!4", G: "x ~ x ~ x ~ x!2",
  H: "x ~ x!6", I: "x!8", J: "x!3 ~ x ~ x!2", K: "x ~ x!3 ~ x ~", L: "x",
})).gain(0.31)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~ A B C B C ~@13 B C D B C E B C E ~@2 E ~ E B ~ D@2 B F E ~@2 E G ~ E B ~@2 B C ~ B C ~ B C D B ~ E B ~@6 E@2 B C D B
  ~ E C@2 ~
>`.pickRestart({
  A: "~@5 x ~ x", B: "~@5 x ~@2", C: "~@3 x ~@4", D: "~@7 x", E: "~ x ~@6", F: "~@3 x ~ x ~@2", G: "~ x ~@3 x ~ x",
})).gain(0.2)

// drums · mid tom
const mid_tom = s("mt").struct("<~@6 A ~@11 A ~@20 B ~@2 C ~@11 A ~@11 D ~@10 E ~>".pickRestart({
  A: "~@3 x!2 ~@3", B: "~@7 x!2 ~@7", C: "~@5 x ~@2", D: "~ x", E: "~@3 x",
})).gain(0.36)

// drums · high tom
const high_tom = s("ht").struct("<~@6 A ~@11 A ~@20 B ~@2 C ~@11 A ~@11 D ~@10 E ~>".pickRestart({
  A: "~@2 x!3 ~@11", B: "~ x!2 ~@5", C: "~@6 x!3 ~@7", D: "~@3 x ~@4", E: "~@5 x ~@2",
})).gain(0.36)

// drums · crash
const crash = s("cr").struct("<A ~@5 A ~@11 A ~@20 A ~@14 A ~@20 A ~@2 B>".pickRestart({
  A: "~@3 x", B: "x",
})).gain(0.26)

stack(
  bass, string_ensemble_1, piano, trumpet, acoustic_guitar_nylon, kick, snare, low_tom, hihat, hihat_soft, mid_tom,
  high_tom, crash
)

More by Last