Strudelify

Lei

Adamo

KeyE♭ majorTempo108 bpm
0:00/0:00
// Lei — Adamo
// 108 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 83 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(108/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.

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  A B@3 C D E F G B@3 C D H B I J K L M N O P Q L@3 M N O P Q L R D@3 H B@3 C D@5 E F G B C D E F G B@3 C D H B I S K L
  M N O P Q L@3 M N O P Q L T
>`.pickRestart({
  A: "~@8 [g3,bb3,eb4]@2 [g3,bb3,eb4]!2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2", // Eb
  B: "[g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]!2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2", // Eb
  C: "[g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]!2 [ab3,c4,f4]@2 [ab3,c4,f4]@2", // Eb Fm
  D: "[ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]!2 [ab3,c4,f4]@2 [ab3,c4,f4]@2", // Fm
  E: "[ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]!2 [bb3,d4,f4]@2 [bb3,d4,f4]@2", // Fm Bb
  F: "[bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]!2 [bb3,d4,f4]@2 [bb3,d4,f4]@2", // Bb
  G: "[bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]!2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2", // Bb Eb
  H: "[ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]!2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2", // Fm Eb
  I: "[g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]!2 [bb3,d4,f4]@2 [bb3,d4,f4]@2", // Eb Bb
  J: "[bb3,d4,f4]!5 ~@3", K: "~@4 [bb3,d4,f4]!2 ~ [bb3,d4,f4] [g3,bb3,eb4]@4 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2",
  L: "[g3,bb3,eb4]@2 [g3,bb3,eb4]!2 [g3,bb3,eb4]@2 [g3,bb3,eb4]!2", // Eb
  M: "[g3,bb3,eb4]@2 [g3,bb3,eb4]!2 [ab3,c4,eb4]@2 [ab3,c4,eb4]!2", // Eb Ab
  N: "[ab3,c4,eb4]@2 [ab3,c4,eb4]!2 [ab3,c4,eb4]@2 [ab3,c4,eb4]!2", // Ab
  O: "[ab3,c4,eb4]@2 [ab3,c4,eb4]!2 [f3,bb3,d4]@2 [f3,bb3,d4]!2", // Ab Bb
  P: "[f3,bb3,d4]@2 [f3,bb3,d4]!2 [f3,bb3,d4]@2 [f3,bb3,d4]!2", // Bb
  Q: "[f3,bb3,d4]@2 [f3,bb3,d4]!2 [g3,bb3,eb4]@2 [g3,bb3,eb4]!2", // Bb Eb
  R: "[g3,bb3,eb4]@4 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]!2 [ab3,c4,f4]@2 [ab3,c4,f4]@2", // Eb Fm
  S: "[bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4] ~@7", T: "[g3,bb3,eb4]@2 [g3,bb3,eb4]!2 ~@4",
})).s("gm_acoustic_guitar_nylon").gain(0.17).pan(0.3)

// chords · pad warm
const pad_warm = note("<A@8 B@8 C@2 D@16 E@8 F@8 G@8 H@8 D@16 ~>".pickRestart({
  A: "[~ [g3,bb3,eb4]@4 [g3,bb3,eb4]@4 [ab3,c4,f4]@4 [bb3,d4,f4]@3]/8", // Eb Fm Bb
  B: "[~ [g3,bb3,eb4]@4 [g3,bb3,eb4]@4 [ab3,c4,f4]@4 [g3,bb3,eb4]@3]/8", C: "[~@8 [bb3,d4,f4]@17 ~@7]/2",
  D: "[~ [g3,bb3,eb4]@4 [ab3,c4,eb4]@4 [bb3,d4,f4]@4 [g3,bb3,eb4]@3]/8", // Eb Ab Bb Eb
  E: "[~ [ab3,c4,f4]@4 [ab3,c4,f4]@4 [g3,bb3,eb4]@4 [g3,bb3,eb4]@3]/8", // Fm Eb
  F: "[~ [ab3,c4,f4]@4 [ab3,c4,f4]@4 [ab3,c4,f4]@4 [bb3,d4,f4]@3]/8", // Fm Bb
  G: "[~ [g3,bb3,eb4]@4 [ab3,c4,f4]@4 [bb3,d4,f4]@4 [g3,bb3,eb4]@3]/8", // Eb Fm Bb Eb
  H: "[~ [g3,bb3,eb4]@4 [ab3,c4,f4]@4 [g3,bb3,eb4]@4 [bb3,d4,f4]@2 ~]/8", // Eb Fm Eb Bb
})).s("gm_pad_warm").gain(0.19)

// bass · acoustic bass
const bass = note(`<
  A B C B D E F G H B C B I E J B K L M N O P Q R S N T N U V W X Y Z AA AB AC AD AE Z AF Z AG AH AI AH AJ AK AL AM AN B
  D E F G H B C B I E J B K AO M N O P Q R S N T N U V W X Y Z AP
>`.pickRestart({
  A: "~@8 eb2@6 bb2 ~", B: "g2@4 bb2@2 bb2@2 eb2@6 bb2 ~", C: "g2@4 bb2@2 bb1@2 eb2@6 bb2 ~",
  D: "g2@4 bb2@2 eb2@2 f2@6 c3 ~", E: "ab2@4 c3@2 c3@2 f2@6 c3 ~", F: "ab2@4 c3@2 ab2@2 f2@6 bb2 ~",
  G: "d2@4 bb2@2 bb2@2 f2@6 bb2 ~", H: "d2@4 bb2@2 f2@2 eb2@6 bb2 ~", I: "g2@4 bb2@2 g2@2 f2@6 c3 ~",
  J: "ab2@4 c3@2 f2@2 eb2@6 bb2 ~", K: "g2@4 bb2@2 eb2@2 f2@6 bb1 ~", L: "d2@2 bb1 d2 bb1 ~@3",
  M: "~@4 bb1!2 ~ bb1 eb2@5 ~ g2 ~", N: "bb2@3 ~ g2@2 bb2@2 eb2@5 ~ g2 ~", O: "bb2@3 ~ eb2@4 ab2@5 ~ c3 ~",
  P: "eb2@4 c3@2 eb2@2 ab1@5 ~ c3 ~", Q: "eb2@3 ~ ab2@4 bb1@5 ~ d2 ~", R: "f2@3 ~ d2@2 f2 ~ bb1@5 ~ d2 ~",
  S: "f2@3 ~ bb1@4 eb2@5 ~ g2 ~", T: "bb2@3 ~ eb2@4 eb2@6 g2 ~", U: "bb2@3 ~ eb2@4 ab2@5 ~ c3@2",
  V: "eb2@3 ~ c3 ~ eb2 ~ ab1@5 ~ c3@2", W: "eb2@3 ~ d2@2 c2@2 bb1@5 ~ d2 ~", X: "f2@3 ~ d2@2 f2@2 bb1@5 ~ d2 ~",
  Y: "f2@4 bb1@3 ~ eb2@5 ~ g2@2", Z: "bb2@3 ~ g2@2 bb2@2 eb2@5 ~ g2@2", AA: "bb2@4 g2@4 f2@5 ~ ab2 ~",
  AB: "c3@3 ~ ab2 ~ c3@2 f2@5 ~ ab2 ~", AC: "c3@4 ab2@4 f2@5 ~ ab2 ~", AD: "c3@4 ab2 ~ c3@2 f2@5 ~ ab2 ~",
  AE: "c3@4 f2@4 eb2@5 ~ g2@2", AF: "bb2@4 g2@3 ~ eb2@5 ~ g2@2", AG: "bb2@4 g2@3 ~ f2@6 ab2 ~",
  AH: "c3@4 ab2 ~ c3@2 f2@6 ab2@2", AI: "c3@4 ab2@3 ~ f2@5 ~ ab2 ~", AJ: "c3@4 ~@4 f2@5 ~ ab2@2",
  AK: "c3@2 f2 c2 f2@3 ab2", AL: "c3@2 f2 c2 bb1@3 d2", AM: "f2@3 ~ d2@2 f2@2 bb1@6 d2@2",
  AN: "f2@4 bb1@3 ~ eb2@6 bb2 ~", AO: "d2@4 bb1@2 d2@2 bb1 ~@7", AP: "bb2 g2 ~@2",
})).s("gm_acoustic_bass").gain(0.32)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  A B@2 C@2 D@2 E F ~@2 G H I@2 J ~ K ~@3 L ~@2 M N@2 ~@2 O@2 ~@2 P Q R S ~ T U V ~ W R X ~@2 Y@2 ~@2 Z@2 D@2 AA AB@2 ~
  AC AD AE ~ AF ~ K ~@3 L ~@2 M N@2 ~@2 AG@2 ~@2 AH AI
>`.pickRestart({
  A: "~@3 [eb5,eb6]", B: "[[d5,d6]@4 [g4,g5]@3 [bb4,bb5] [c5,c6]@4 [bb4,bb5]@8 ~@12]/2",
  C: "[~@3 g4 [ab4,c5]@2 [g4,bb4]@4 ~@6, ~ bb3@3 ~@12, ~ eb4 ~@6]/2", // Ab Gm
  D: "[~@4 f4@2 c5@2 ab4@4 g5@4 eb5@5 ~@11, ~ c4@3 ~@12, ~@4 ab4@4 c5@13 ~@11]/2", E: "~@12 d5 eb5 f5 [g5,ab5]",
  F: "bb5@3 [f5,ab5] [eb5,g5]!2 [g5,bb5]@2", G: "[bb4,bb5] [ab4,ab5] [g4,g5]@2 [eb4,g5] ~@3",
  H: "~ [eb4,eb5]@3 [c4,c5]@2 [ab4,ab5]@2", I: "[[f4,f5]@4 ab4 g4 f4 c4 g4@4 f4@11 ~@9]/2",
  J: "~@2 [bb4,bb5] ~ [g4,g5] ~ [bb4,bb5] ~ [eb5,eb6] ~@7", // Bb G Bb Eb
  K: "[bb3,bb4] [c4,c5] [d4,d5] [eb4,eb5] [f4,f5] [g4,g5] [ab4,ab5] [a4,a5] [bb4,bb5] ~@7", // Bb C D Eb F G Ab A …
  L: "[f5,f6]@2 [c5,c6] ~@3 [ab5,ab6]@2 [f5,f6]@8", M: "~@12 [bb3,bb4]@3 [g4,g5]",
  N: "[[ab4,ab5] [g4,g5] [f4,f5] [eb4,eb5]@2 ~@3]/2", // Ab G F Eb
  O: "[[ab5,ab6]@2 [f5,f6]@2 [eb5,eb6]@2 [c5,c6]@2 [bb4,bb5]@2 [ab4,ab5]@2 [eb4,eb5]@11 ~@9]/2", // Ab F Eb C Bb Ab Eb
  P: "~ [eb3,eb4] [f3,f4] [g3,g4] [ab3,ab4] [bb3,bb4] [c4,c5] [d4,d5] [eb4,eb5] [bb3,bb4] [c4,c5] [d4,d5] [eb4,eb5] [d4,d5] [eb4,eb5] [f4,f5]", // Eb F G Ab Bb C D Eb …
  Q: "[g4,g5] [ab4,ab5] [bb4,bb5] [b4,b5] [c5,c6] [d5,d6] [eb5,eb6] [e5,e6] [f5,f6]@8", // G Ab Bb B C D Eb E …
  R: "~@2 [f4,f5] [g4,g5] [ab4,ab5]@2 [g4,g5] [f4,f5]", S: "[c4,c5]@7 ~@3 [ab3,ab4] [bb3,bb4] [c4,c5]@2 ~@2",
  T: "[c5,c6] [bb4,bb5] [ab4,ab5] [g4,g5] [f4,f5] [eb4,eb5] [d4,d5] [c4,c5] [bb3,bb4]@7 ~", U: "~@2 eb4 f4 g4@2 f4 eb4",
  V: "bb3@8 bb3@7 ~", W: "~@4 [bb4,bb5] [c5,c6] [d5,d6] [eb5,eb6] [f5,f6]@8", X: "[c4,c5]@7 ~@9", Y: "[[f5,ab5]@3 ~]/2",
  Z: "[~ bb3 eb4 [eb4,g4] [ab4,c5]@2 [g4,bb4]@4 ~@6]/2", AA: "~@6 f5 ab5", AB: "[bb5@8 [eb5,g5]@4 [g5,bb5]@7 ~@13]/2",
  AC: "[bb4,bb5] [ab4,ab5] [g4,g5]@6", AD: "~@2 [c5,c6] [g4,g5]", AE: "[f4,f5] [c4,c5] ~@2",
  AF: "[eb5,eb6] ~ [bb4,bb5] ~ [g4,g5] ~ [bb4,bb5] ~ [eb5,eb6] ~@7", // Eb Bb G Bb Eb
  AG: "[[g5,g6]@2 [f5,f6]@2 [eb5,eb6]@2 [c5,c6]@2 [bb4,bb5]@2 [ab4,ab5]@2 [eb4,eb5]@11 ~@9]/2", // G F Eb C Bb Ab Eb
  AH: "~@2 [f3,f4] [g3,g4] [ab3,ab4] [bb3,bb4] [c4,c5] [d4,d5] [eb4,eb5] [bb3,bb4] [c4,c5] [d4,d5] [eb4,eb5] [d4,d5] [eb4,eb5] [f4,f5]", // F G Ab Bb C D Eb Bb …
  AI: "[g4,g5] [ab4,ab5] [bb4,bb5] [c5,c6] [d5,d6] [eb5,eb6] ~@10", // G Ab Bb C D Eb
})).s("gm_string_ensemble_1").gain(0.32)

// chords · harpsichord
const harpsichord = note(`<
  A B@3 C D E F G B@3 C D H B I J K L M N O P Q L@3 M N O P Q L R ~@13 S T U B C D E F G B@3 C D H B I V K L M N O P Q
  L@3 M N O P Q L R
>`.pickRestart({
  A: "~@4 [eb3,eb4] [g3,g4] [bb3,bb4] [g3,g4]", // Eb G Bb G
  B: "[eb4,eb5] [bb3,bb4] [g3,g4] [bb3,bb4] [eb3,eb4] [g3,g4] [bb3,bb4] [g3,g4]", // Eb Bb G Bb Eb G Bb G
  C: "[eb4,eb5] [bb3,bb4] [g3,g4] [bb3,bb4] [f3,f4] [ab3,ab4] [c4,c5] [ab3,ab4]", // Eb Bb G Bb F Ab C Ab
  D: "[f4,f5] [c4,c5] [ab3,ab4] [c4,c5] [f3,f4] [ab3,ab4] [c4,c5] [ab3,ab4]", // F C Ab C F Ab C Ab
  E: "[f4,f5] [c4,c5] [ab3,ab4] [c4,c5] [f3,f4] [bb3,bb4] [d4,d5] [bb3,bb4]", // F C Ab C F Bb D Bb
  F: "[f4,f5] [d4,d5] [bb3,bb4] [d4,d5] [f3,f4] [bb3,bb4] [d4,d5] [bb3,bb4]", // F D Bb D F Bb D Bb
  G: "[f4,f5] [d4,d5] [bb3,bb4] [d4,d5] [eb3,eb4] [g3,g4] [bb3,bb4] [g3,g4]", // F D Bb D Eb G Bb G
  H: "[f4,f5] [c4,c5] [ab3,ab4] [c4,c5] [eb3,eb4] [g3,g4] [bb3,bb4] [g3,g4]", // F C Ab C Eb G Bb G
  I: "[eb4,eb5] [bb3,bb4] [g3,g4] [bb3,bb4] [f3,f4] [bb3,bb4] [d4,d5] [bb3,bb4]", // Eb Bb G Bb F Bb D Bb
  J: "[f4,f5] [d4,d5] [bb3,bb4] [d4,d5] [f3,f4] ~@3", // F D Bb D F
  K: "~@8 [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~", // Eb
  L: "[g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~", // Eb
  M: "[g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~", // Eb Fm
  N: "[ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~", // Fm
  O: "[ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~", // Fm Bb
  P: "[bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~", // Bb
  Q: "[bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~", // Bb Eb
  R: "[g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~@9", S: "~@5 [bb4,bb5] [d5,d6] [bb4,bb5]",
  T: "[f5,f6]@2 [d5,d6]@2 [bb4,bb5]@2 [d5,d6] ~@3 [bb4,bb5]@2 [d5,d6]@2 [bb4,bb5]@2", // F D Bb D Bb D Bb
  U: "[f5,f6]@2 [d5,d6]@2 [bb4,bb5]@2 [d5,d6] ~ [eb3,eb4]@2 [g3,g4]@2 [bb3,bb4]@2 [g3,g4]@2", // F D Bb D Eb G Bb G
  V: "[f4,f5]@2 [d4,d5]@2 [bb3,bb4]@2 [d4,d5]@2 [f3,f4] ~@7", // F D Bb D F
})).s("gm_harpsichord").gain(0.28).pan(0.7)

// other · french horn
const french_horn = note(`<
  ~@3 A@2 B C D@2 ~@2 E ~ F@5 G H@2 ~ I J@2 ~ G K@2 ~ L M@2 ~@15 N O P ~@4 Q R ~@2 P ~ S@2 ~ T U G V@2 ~ I J@2 ~ W X@2 ~
  L Y@2 ~@2
>`.pickRestart({
  A: "[~ bb3 eb4 g4 c5@2 bb4@4 ~@6]/2", B: "~@2 c5 ab4", C: "c5 ~", D: "[~@4 bb4@2 c5@2 bb4@15 ~@9]/2", E: "bb4@13 ~@3",
  F: "[f4@8 g4@4 f4@12 g4@16 g4@16 f4@17 ~@7]/5", G: "~@3 bb3", H: "[bb4@3 g4 bb4@6 ~@6]/2", I: "~@6 f4 g4",
  J: "[ab4 f4 bb4@3 ~@3]/2", K: "[c5@6 bb4@2 g4@13 ~@11, bb4 ~@31]/2", L: "~@6 bb4 c5", M: "[bb4 f4 bb4@3 ~@3]/2",
  N: "~@6 bb4 ab4", O: "bb4@2 f4@2 bb4@3 ab4", P: "bb4 ~", Q: "~@2 bb4 ab4 bb4@2 f4@2", R: "bb4@7 ~@9",
  S: "[~@4 c4@2 f4@2 g4@4 f4@11 ~@9]/2", T: "~@6 d4 bb3", U: "f4@4 d4@4 bb4 ~@7", V: "[bb4@3 g4 bb4@6 ~@6, g4 ~@31]/2",
  W: "~@12 bb3@2 g4 bb4", X: "[c5@3 bb4 g4@6 ~@6]/2", Y: "[bb4@4 f4@4 bb4@13 ~@11]/2",
})).s("gm_french_horn").gain(0.4)

// chords · piano
const piano = note("<~@36 A@3 ~ B@3 ~ C@3 ~@36>".pickRestart({
  A: "[~@32 [ab6,c7]@11 ~@5, ~@5 bb5@16 ~@3, ~@12 c6@6 c6@4 c6@2 f6@19 ~@5, ~@14 bb6@6 bb6@4 ab6@2 c6@2 [g6,bb6]@15 ~@5, ~@16 c7@14 c6@13 ~@5]/3", // Ab Gm
  B: "[~@7 g6 ~@8 [g6,bb6]@4 ~@4, ~@6 bb5@3 bb5 [f6,ab6]@3 bb5 [f6,ab6]@6 ~@4, ~@7 eb6@4 bb5 g6@3 bb5@5 ~@4, ~ bb6 ~, ~@2 g6 eb6@2 ~]/3", // Gm Fm
  C: "[~@4 [f6,ab6] ~, ~@5 c6@2 c6@2 c6 ab6 c6 ab6@3 c6@5 ~@4, ~@3 c7@3 c7@4 ~@2, ~@3 ab6@2 f6@3 ~@4, ~@8 [g6,bb6]@5 c6 [g6,bb6]@6 ~@4]/3", // Fm Gm
})).s("gm_piano").gain(0.4)

// drums · kick
const kick = s("bd").struct("<A B@16 C D B@46 C D B@15 E>".pickRestart({
  A: "~@4 x ~@2 x", B: "x ~@3 x ~@2 x", C: "x!2", D: "~@4 x!2 ~ x!2 ~@5 x ~", E: "x",
})).gain(0.54)

// drums · clap
const clap = s("cp").struct("<A B C@15 D E C@46 D E C@15 D>".pickRestart({
  A: "~@6 x!2", B: "~@2 x!2 ~@2 x ~", C: "~@2 x!2 ~@2 x!2", D: "~@2 x!2 ~@4", E: "~@4 x!2 ~ x ~@4 x ~ x ~",
})).gain(0.42)

// drums · mid tom
const mid_tom = s("mt").struct("<~ [~@7 x] ~@81>").gain(0.48)

// drums · crash
const crash = s("cr").struct("<[~ x] ~ [~ x] ~@80>").gain(0.36)

// drums · ride
const ride = s("rd").struct("<A B C B@14 D E F@15 B@31 D E F@15 G>".pickRestart({
  A: "~@10 x!3 ~ x ~", B: "x ~ x ~ x ~ x ~ x ~ x!3 ~ x ~", C: "x ~ x ~ x ~ x ~@3 x!3 ~ x ~", D: "x!5 ~@3", E: "~@4 x!4",
  F: "x!8", G: "x!4 ~@4",
})).gain(0.36)

stack(
  acoustic_guitar_nylon, pad_warm, bass, string_ensemble_1, harpsichord, french_horn, piano, kick, clap, mid_tom, crash,
  ride
)

More by Adamo