Strudelify

E' passata una nuvola

Cocciante

KeyE majorTempo60 bpm
0:00/0:00
// E' passata una nuvola — Cocciante
// 60 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 61 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(60/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 · piano
const piano = note(`<
  ~@8 A@2 B C@2 D@2 E F G H I J K L M@2 N O ~@4 P@5 Q R S T U V I J K W@2 X Y Z M@2 N O ~@7
>`.pickRestart({
  A: "[e3@16 ~@7 e4@9, e2@21 e3@11, ~ [a2,e5], ~@9 a4@7, ~@19 b4@13]/2", // A5
  B: "~@3 b4@2 ~@6 f#5@5, [d#4,f#4], ~@5 f#3@4 ~@7, ~@7 b5@9", // D#m
  C: "[~@8 c#4@8 ~@10 c#4 c#4@2 ~ c#3@2, [g#2,g#3]@24 [c#4,g#4] c#3@2 f#4@2 [c#4,g#4]@3, ~ e4@3, ~@8 [c#2,g#4]@11 c#5@13, ~@2 c#4 [c#2,f4]]/2", // G# C#5 C#
  D: "[[f#2,f#3,c#4,a4]@8 ~@2 c#4 ~@14 f#3@2 ~@2 f#4@3, f#4@9 f#3@5 f#3@9 f#3 b4@8, ~@8 f#2@8 [b3,d#4]@11 d#4@5, ~@8 e4@5 e4@3 f#4@12 f#3@4, ~@8 [c#4,a4]@3 [c#4,f#4,a4]@5 b2@16]/2", // F#m B F#m
  E: "~@8 [e3,e4]@3 ~ [b3,e4]@2 [b3,e4,g#4]@2, [d2,d3,a3,d4,f#4], ~ e2, ~@2 g#4 a4, ~@8 b3@2 ~ e3@5", // E E5 E D
  F: "a3@3 a3@2 ~@3 [c#4,e4]@3 ~@3 a3@2, [a2,c#4] a2, e4@5 b3@11, ~@5 [a3,e4]@3 ~@4 [c#4,e4]@4, ~@6 e3@5 e3 a3 e3@3", // C#m A A5 C#m
  G: "[d#3,g#3,c4,d#4]@4 ~@2 g#3@2 [c#3,g#3]@2 ~@2 g#3 ~ c#3@2, g#2 c#2, ~@4 [c4,d#4]@4 [c#4,e4]@5 ~@3, ~@4 g#3@2 ~@4 g#3@2 ~ [g#3,c#4,e4]@3, ~@5 d#3@3 ~@3 c#3@3 ~@2", // G# C#5 Cm C#m
  H: "[a2,e3,a3,c4,e4] [b2,b3,d#4,f#4]", // Am B
  I: "[g#3,b3]@2 g#3 [g#3,b3]@2 ~ [g#3,b3]@3 [g#3,b3,e4]@3 g#3 ~@2 g#3, e2, [e3,d#4]@5 e3@6 ~@2 [g#3,b3,e4]@3, ~@3 e4@6 ~@5 e3@2, ~@3 d#4@5", // G#m E Emaj7 E
  J: "g#3@2 [g#3,d#4] ~@7 g#3 g#3@2 ~ g#3@2, [c#2,b3], e4@9 c#3@4 c#3@3, c#3@3 d#4@13, ~@3 g#3 c#3@2 [g#3,c#4]@5 [c#4,e4]@5", // G#5 C#7 C#5 C#m
  K: "[f#3,a3]@2 ~@9 f#3@2 ~ f#2@2, e4@13 ~@3, [f#1,f#2]@5 c#4@8 [f#3,a3,c#4,e4]@3, c#4@3 a3@7 f#2@4 ~@2, ~@2 f#3@7 f#1@7", // F#m F# F#m7
  L: "[b2,f#3]@2 ~ f#3@2 ~@2 f#3 [f#3,b3]@2 ~@4 b2@2, b1 [b1,e4], [b3,d#4]@5 [f#3,b3,d#4]@3 ~@2 d#4@6, ~@2 b2@4 b2@2 ~@3 b3@5, ~@11 f#3 b2 f#3@3", // B5 E5 B
  M: "[[g#3,b3]@2 g#3 [g#3,b3,e4]@2 ~@7 g#3 ~ d#4@2 c#3@3 g#3@2 ~ [g#3,c#4] g#3@2 ~ g#3 [g#3,b3,d#4]@2 ~@2 g#3, e2 [c#2,e4], d#4@5 e3@4 e4@4 b3@6 [b3,d#4]@8 ~@2 [g#3,d#4]@3, ~@6 d#4@7 [g#3,e4]@3 g#3 ~@6 c#4@9, ~@6 [g#3,b3]@5 e3@5 ~@9 c#3@5 c#3@2]/2", // G#m E C#5 G#m C#m B G#5 C#m …
  N: "[g#3,c#4]@3 ~@5 g#3 ~@2 f#3 ~@2 f#3@2, f#1, f#2@7 f#2@3 f#2@2 ~ f#2@3, e4@5 [g#3,e4]@4 [g#3,c#4,e4]@3 [a3,c#4,e4]@4, ~@3 c#4@6 ~@3 f#3@2 ~@2", // C#5 C#m A
  O: "[f#3,b3]@2 ~ b3@2 ~@2 f#3 f#3@2 ~@3 b3@3, b1 [b1,d#4], e4@5 ~ b2@2 ~@3 c#4@4 ~, ~@2 f#3@3 [f#3,b3,e4]@3 ~@2 f#3@6", // B5 B Esus2
  P: "[~@2 [g#3,e4] g#3 [g#3,b3]@3 ~ [g#3,b3,e4] [g#3,b3] g#3@3 ~ g#3@2 ~@2 [a3,c#4,e4] c#4 [a3,c#4]@3 ~@3 c#4 [a3,c#4]@2 ~ g#4@2 [b3,d#4]@2 f#4 [b3,d#4]@5 [b3,d#4]@3 ~@8 d#4 ~@2 d#4 ~@2 e4 ~@4 c#3@2 g#3 ~@2 c#3@2 ~ c#3@2 ~@6 c#3@2, e2@13 e3@9 ~@2 [a3,c#4] e3@2 f#4@3 [a3,c#4]@2 g#4@3 f#4@5 g#4@3 [b3,f#4]@13 c#2@2 e4@19 f4@3, e3@7 e3@3 [b3,f#4]@6 a2@27 d#4@8 ~ d#4@2 ~ d#4@6 g#3@2 ~ c#4@5 c#4@5 g#3@6, ~@3 e4@5 ~ e4@7 ~@3 e4@5 e4@24 g#2@5 g#2@11 ~@5 g#3@2 ~ f4@3 c#4@5, ~@4 d#4@12 ~@4 d#4@9 e3@19 g#1@16 c#2@8 c#2@8]/5", // C#m G#m E G#m A B A B5
  Q: "c#4@2 c#4 [c#4,g#4]@3 c#4 c#4@4 f#3@2 ~ f#3@2, f#2, f#4@13 [c#4,f#4,a4]@3, a4@9 ~@7, ~@7 g#4@9", // C#5 F#m
  R: "~ f#3@2 ~@4 f#3@2 ~@3 d#4 [d#4,f#4]@3, b2, d#4@9 d#4@3 ~@4, f#4@6 f#4@3 ~ f#3@6, b3@2 ~ b4@13", // D#m
  S: "a3 ~ a3 ~@2 f#4@3 ~ e3@2 ~@3 e3@2, [d2,d4] e2, f#4@5 ~@3 g#4@5 g#4@3, ~ d3@5 ~@10, ~@3 [a3,e4]@5 [b3,e4]@3 e4@5", // D A5 E5
  T: "a3@3 a3@2 ~@3 c#4@5 [a3,c#4,e4]@3, c#4@7 a3@3 ~@6, e4@5 b3@6 ~@5, ~@5 [a3,e4]@3 a2@8, ~@6 e3@2 e4@3 ~@5", // A A5
  U: "g#3@3 g#3@2 ~@3 [c#4,e4]@3 [g#3,e4]@2 ~ g#3@2, g#2@7 g#3@4 ~@5, [c4,d#4]@5 [g#3,c4,d#4]@3 c#3@5 c#3@3, ~@3 d#3 c#2@4", // C#m Cm G#
  V: "~ a4 ~@4 [d#4,f#4]@2, [a2,a3] [b2,b4], ~ e5@7, ~ [a4,d5]@3, ~@3 c5@5", // D#m A B D5
  W: "[[b2,f#3]@2 ~ f#3@2 ~@2 f#3 [f#3,b3]@2 ~@6 [b3,d4]@2 b3 [b3,d4]@2 ~ [b3,d4]@3 [b3,d4,g4]@3 b3 ~@2 b3, b1@8 [b1,e4]@8 [g2,g3,f#4]@3 g4@2 g3 f#4@7 [b3,d4,g4] g3@2, [b3,d#4]@5 [f#3,b3,d#4]@3 ~@2 d#4@22, ~@2 b2@4 b2@2 ~@3 b3@3 b2@18, ~@11 f#3 b2 f#3@19]/2", // B5 Bm G E5 Gmaj7 G B
  X: "b3@2 [b3,f#4] ~@7 b3 b3@2 ~ b3@2, [e2,d4], g4@9 e3@4 e3@3, e3@3 f#4@13, ~@3 b3 e3@2 [b3,e4]@5 [e4,g4]@5", // B5 E7 E5 Em
  Y: "[a3,c4]@2 ~@9 a3@2 ~ a2@2, g4@13 ~@3, [a1,a2]@5 e4@8 [a3,c4,e4,g4]@3, e4@3 c4@7 a2@4 ~@2, ~@2 a3@7 a1@7", // Am A Am7
  Z: "[d3,a3]@2 ~ a3@2 ~@2 a3 [a3,f#4]@2 ~@4 d#3@2, d2 [d2,d4], [d4,f#4]@5 [a3,d4,f#4]@3 ~@2 f#4@6, ~@2 d3@4 d3@2 ~@3 a3 d#3 a3@3, ~@3 [d#2,d#4]", // D5 D D#
})).s("gm_piano").gain(0.33).pan(0.6)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@9 A B ~ C ~ D E F ~@2 G H I J K L M N ~@4 O P Q R S T U V W X D G H I J Y Z AA AB K L M N ~@7
>`.pickRestart({
  A: "~ e3@4 ~ a3@10", B: "~@6 b4@3 ~ b4@6, b2, ~ f#3@4 ~@4 f#3@7, ~ b3@7", C: "~@15 c#4", D: "~@5 b3@3",
  E: "~@5 b3 ~@2", F: "~@2 e3@4 ~ a3 a3@2 a3@2 ~@4", G: "~@11 e3@3 ~@2", H: "~@5 [g#3,c#4] ~@10", I: "~@12 a3 ~@3",
  J: "~@9 b2@3 ~@4", K: "~ e3@4 ~@7 b3 ~@3", L: "~@2 [g#3,d#4] ~@2 g#3 ~@7 b3@3, ~@4 c#3@5 ~@7", M: "~@2 g#3@3 ~@11",
  N: "~ b2@5 ~@3 b2@7", O: "~@2 b3!2 ~@12", P: "~@3 a3 ~@3 [a3,c#4] ~@2 a3 ~@5, ~@6 e3@3 ~@7",
  Q: "~@7 b3 ~@2 [b3,f#4] ~@2 b2@3, b1, ~@6 b2@3 b2@4 ~@3", R: "~@11 c#3@3 ~ g#3",
  S: "~@2 g#3@3 ~@2 g#3@2 c#3@5 ~@2, ~ c#3@2 ~@13", T: "~ f#3@4 ~@4 a4@3 c#4 ~@3, ~@5 f#3@6 ~@5",
  U: "~@2 b3@2 ~ b3@3 ~@3 b3@5, ~@4 f#3@3 ~ b3@3 ~@5, ~@9 f#4@4 ~@3", V: "~@3 d3 ~@2 e3 ~, ~@5 b3@3",
  W: "~@2 a2@6 ~@3 e4@2 ~ e3@2, a1, ~@9 e3@5 ~@2, ~@10 a3@3 ~@3, ~@11 b3@5",
  X: "~@4 c4 ~@6 c#4@3 e4 [c#4,e4], ~ d#3@2 ~@5", Y: "~@11 g3@3 ~@2", Z: "~@5 [b3,e4] ~@10", AA: "~@12 c4 ~@3",
  AB: "~@9 d3@7",
})).s("gm_piano").gain(0.17).pan(0.6)

// bass · fretless bass · "basso"
const bass = note(`<
  ~@8 A B C@3 D E F G H I J K L M J K L N A B O@2 P Q M R S T M U V W X J K L M Y Z AA AB J K L N A B AC@4 ~
>`.pickRestart({
  A: "~@13 e2@3", B: "a1@7 ~", C: "[~@3 f#2@18 ~ d#2@2 c#2@24]/3", D: "~@3 a2", E: "b1@12 ~@3 e3", F: "e3",
  G: "a2@2 ~ a2 a2@4 a2@2 ~ a2 a2@4", H: "g#2@3 g#2 g#2@4 c#2@2 ~ c#2 c#2@2 b1@2", I: "a1@2 ~ a1 a1@4 b1@8",
  J: "e2@2 ~ e2 e2@3 ~ e2@2 ~ e2 e2@2 d#2@2", K: "c#2@2 ~ c#2 c#2@3 ~ c#2@2 ~ c#2 c#2@2 g#1@2",
  L: "f#1@2 ~ f#1 f#1@3 ~ f#1@2 ~ f#1 f#1@4", M: "b1@2 ~ b1 b1@3 ~ b1@2 ~ b1 b1@4",
  N: "b1@2 ~ b1 b1@3 ~ b1@2 ~ b1 b1@3 ~", O: "[~@3 f#2@18 ~ d#2@2 c#2@8]/2", P: "e2@2 ~ e2 e2@3 ~ e2@3 e2 e2@4",
  Q: "a1@2 ~ a1 a1@3 ~ a1@3 a1 a1@4", R: "g#1@2 ~ g#1 g#1@4 c#2@2 ~ c#2 c#2@3 ~",
  S: "c#2@2 ~ c#2 c#2@3 ~ c#2@2 ~ c#2 c#2@4", T: "f#2@2 ~ f#2 f#2@3 ~ f#2@2 ~ f#2 f#2@4",
  U: "d2@3 d2 d2@4 e2@2 ~ e2 e2@4", V: "a1@3 a1 a1@3 ~ a1@2 ~ a1 a1@4", W: "g#1@2 ~ g#1 g#1@4 c#2@3 c#2 c#2@2 b1@2",
  X: "a1@3 a1 a1@4 b1@8", Y: "g2@2 ~ g2 g2@3 ~ g2@2 ~ g2 g2@2 f#2@2", Z: "e2@2 ~ e2 e2@3 ~ e2@2 ~ e2 e2@2 b1@2",
  AA: "a1@2 ~ a1 a1@3 ~ a1@2 ~ a1 a1@4", AB: "d2@2 ~ d2 d2@3 ~ d2@2 ~ d2 b1@4",
  AC: "[~@3 f#2@19 ~ d#2@2 ~ c#2@29 ~@9]/4",
})).s("gm_fretless_bass").gain(0.4)

// other · string ensemble 2 · "archi"
const string_ensemble_2 = note(`<
  ~@8 A@2 B@3 C@2 D E F G@2 ~@6 H@2 ~@3 I J K ~ L M N O J P@2 ~@7 Q ~@3 H@2 ~@6
>`.pickRestart({
  A: "[b2@5 [c#3,c#4]@3]/2", B: "[[d#3,d#4]@7 e3@3 [f3,f4]@2]/3", C: "[f#3,f#4]/2", D: "[a3,a4] b4",
  E: "[e3,e4]@2 [a3,a4] [c#4,c#5]", F: "[d#4,d#5]@2 [g#4,g#5] [f#4,f#5]", G: "[[e4,e5]@9 ~@7]/2",
  H: "[~@8 [e2,e4,f#4,b4]@23 ~]/2", I: "~@2 [b3,b4] [e4,e5]", J: "[c#4,c#5]@2 [e4,e5] [a4,a5]", K: "[b4,b5]",
  L: "[c#3,c#4] [f3,f4]", M: "f#4@2 [g#3,g#4] [a3,a4]", N: "b4@2 [c#4,c#5] [d#4,d#5]", O: "d5 [e4,e5]",
  P: "[[g#4,g#5]@5 [f#4,f#5] e5@4 [d4,d5] [c4,c5] [b3,b4]@4]/2", Q: "[a3,a4]@2 [c4,c5] [g4,g5]@3 [f#4,f#5]@2",
})).s("gm_string_ensemble_2").gain(0.18).pan(0.3)

// other · string ensemble 2 · "archi" · soft notes
const string_ensemble_2_soft = note("<~@8 A@2 ~ B@2 ~@2 C ~@10 D@2 ~@8 E F G ~ H@2 ~@11 D@2 ~@2 I@4>".pickRestart({
  A: "[b3@5 ~@3]/2", B: "[~@3 e4@3 ~@2]/2", C: "~ b3", D: "[~@8 e3@23 ~]/2", E: "f#3 ~", F: "b3 ~", G: "d4 ~",
  H: "[~@3 e4@2 ~@3]/2", I: "[~@10 [c#2,c#3,c#4,d#4,g#4]@39 ~@15]/4",
})).s("gm_string_ensemble_2").gain(0.13).pan(0.3)

// chords · epiano1 · "e. piano"
const epiano1 = note("<A B C@2 A B C@2 A B C@2 ~@11 D E F G@3 H@2 ~@19 D E F G@3 I@3 ~@2>".pickRestart({
  A: "~@2 [g#3,b3,e4] [g#3,b3] [g#3,b3,d#4]@3 [b3,d#4] [g#3,b3,e4] [g#3,b3] [g#3,b3,f#4]@6, [e1,e2]!2, ~@3 e4@5 ~ e4@7", // E G#m B E G#m G#m7 E
  B: "~@2 [a3,c#4,e4] [a3,c#4] [a3,c#4,d#4] [a3,c#4,d#4]@2 [a3,c#4] [a3,c#4,e4]!2 [a3,c#4] [a3,c#4,f#4]@4 d#4, a1, a2@7 d#4@8 ~, ~@3 e4@5 a2@8, ~@5 e4@3", // A D#m7b5 A F#m
  C: "[[b3,d#4]@2 [d#4,f#4] [b3,d#4]@4 b3 [b3,d#4]@2 [d#4,f#4] f#4@5 ~@2 [b3,d#4]!6 ~ [g#3,c#4,e4] [g#3,c#4,e4]@6, [b1,b2]@2 [g#1,g#2] [c#2,c#3], g#4!2 ~@2, ~@3 f#4@7 ~ [b3,d#4]@7 ~@14]/2", // B D#m B D#m B C#m B G# …
  D: "[b3,d#4,f#4]@2 ~ [b3,e4,g#4]@2 ~ [b3,d#4,f#4]@3 [b3,e4,g#4]@7", E: "~@2 [b3,d#4,f#4] ~ [e4,g#4]@8 ~@4, ~ c#4 ~@2",
  F: "[c#4,e4,g#4]@2 ~ [c#4,f#4,a4]@3 [c#4,e4,g#4]@3 [c#4,f#4,a4]@6 ~", // C#m F#m C#m F#m
  G: "[~@2 [c#4,e4,a4] ~ f#4@12 ~@2 e4 [g#3,b3] [g#3,b3,d#4]@3 b3 [b3,e4]!2 ~ f#4@5 ~@2 [c#4,e4] c#4 [a3,c#4,d#4] [c#4,d#4]@2 ~ [a3,c#4,e4] e4 c#4 ~@3 g#4@2, ~@4 b4@20 g#3@2 e4@6 ~@3 e4@5 ~@2 e4@3 e3@3, ~@4 d#4@15 e4@4 d#4@9 ~@7 d#4@9, ~@16 e3@27 [a3,c#4,f#4]@5, ~ e2 a2]/3", // A G#m E5 C#m D#m7b5 C#sus2 A F#m
  H: "[[b3,d#4]@2 [d#4,f#4] d#4@5 b3@2 f#4 ~@7 d#4!5 ~@2 e4 e4@6, g#4 g#4@2 ~, ~@3 f#4@7 ~ [b3,f#4]@13 [c#2,c#3]@8, ~@8 d#4@10 ~@5 d#4@8 ~]/2", // B D#m B5 C#
  I: "[[b3,d#4]@2 [d#4,f#4] d#4@5 b3@2 f#4 ~@7 d#4 ~ d#4!4 ~@3 e4 e4@7 ~@13, g#4@8 g#4@17 ~@23, ~@3 f#4@7 ~ [b3,f#4]@14 ~ [c#2,c#3]@10 ~@12, ~@4 d#4@5 ~@3 d#4@5 ~@7]/3", // B D#m B5 C#
})).s("gm_epiano1").gain(0.32).pan(0.6)

// chords · epiano1 · "e. piano" · soft notes
const epiano1_soft = note("<A B C ~ A B C ~ A B C ~@13 D ~@2 E F G@2 ~@20 D ~@2 E F H@2 ~@3>".pickRestart({
  A: "~@7 g#3 ~@8", B: "~@15 [b3,g#4]", C: "~@2 b3 ~@7 b3 ~@5", D: "~@5 c#4 ~@2", E: "~@2 [g#3,b3] ~@7 b3 [g#3,b3]@5",
  F: "~@2 a3!2 ~ a3@2 [a3,c#4] ~ [a3,c#4] a3 ~@5", G: "[~@2 b3 b3@4 b3 ~@2 b3 ~@21, b2@3 ~]/2",
  H: "[~@2 b3 b3@4 b3 ~@2 b3 ~@21, b2@25 ~@7]/2",
})).s("gm_epiano1").gain(0.16).pan(0.6)

// chords · pad new age · "fantasia"
const pad_new_age = note("<~@12 A@2 ~ B C ~ D ~@27 E ~ F ~@12>".pickRestart({
  A: "[[c#3,c#4]@8 [f3,f4]@8 ~@3 a4@13, g#4 [f#3,f#4], e4@3 ~ c#4@12]/2", // C# F F#
  B: "~@2 [d4,e4] e4@5 ~@2 e4 a4@2 b4@3, d3@7 ~ e3@8, d5 ~@3 g#4 ~@3, ~ a3@7 ~ b3@7", C: "a3@15 ~",
  D: "~ a4 g#4 f#4 e4@2 c#4@2", E: "[d4,f#4,a4]@2 ~ [d4,g4,b4]@2 ~ [d4,f#4,a4]@2 ~ [d4,g4,b4]@7, [g2,g3]",
  F: "[e4,g4,b4]@2 ~ [e4,a4,c5]@2 ~ [e4,g4,b4]@2 ~ [e4,a4,c5]@7, [a2,a3]", // Em Am Em Am A
})).s("gm_pad_new_age").gain(0.2).pan(0)

// other · string ensemble 1 · "strings"
const string_ensemble_1 = note("<~@22 A@2 B C ~@7 D@2 ~@16 B C ~@8>".pickRestart({
  A: "[~@13 [b2,b3] [c#3,e3,c#4,e4] [e3,e4]@9 ~@8, ~@15 [f#3,f#4] ~@16]/2", B: "~@9 g#5 f#5 g#5 e5 g#5 d#5 g#5",
  C: "c#5",
  D: "[~@12 [b3,b4]@8 [d#3,d#4] [b3,b4]@2 [d#3,d#4]@2 [e3,e4] [e3,e4]@6, ~@5 [f#5,f#6]@2 [c#5,c#6]@2 [f#4,f#5]@2 [c#4,c#5]@2 ~@19, ~@3 [d#5,d#6] [b4,b5] [d#4,d#5] ~@10]/2", // B D# B D# E F# C# F# …
})).s("gm_string_ensemble_1").gain(0.27).pan(0.8)

// other · orchestra hit · "orch hit"
const orchestra_hit = note("<~@24 A ~ B ~@24 A ~ B ~@7>".pickRestart({
  A: "~@2 [e3,e4] ~@5", B: "~@2 [b3,b4] ~@5",
})).s("gm_orchestra_hit").gain(0.3).pan(0.4)

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

// drums · snare
const snare = s("sd").struct("<~@15 A B@2 ~ B@7 C ~@4 D@8 B@2 ~ B@11 C ~@7>".pickRestart({
  A: "~@7 x", B: "~ x ~ x ~ x ~ x", C: "~ x ~ x ~@2 x ~", D: "~@3 x ~@3 x",
})).gain(0.59)

// drums · low tom
const low_tom = s("lt").struct("<~@26 [~@7 x] ~@11 [~@7 x] ~@14 [~@7 x] ~@7>").gain(0.37)

// drums · hihat
const hihat = s("hh").struct("<~@16 A@2 ~ A@7 B ~@12 A@2 ~ A@11 B ~@7>".pickRestart({
  A: "x!8", B: "x!5 ~@3",
})).gain(0.44)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@16 A@2 ~ A@7 B ~@12 A@2 ~ A@11 B ~@7>".pickRestart({
  A: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2", B: "~ x ~ x ~ x ~ x ~@8",
})).gain(0.22)

// drums · mid tom
const mid_tom = s("mt").struct("<~@15 A ~@2 B ~@19 C ~@2 B ~@7 D ~@11>".pickRestart({
  A: "~@11 x!2 ~@3", B: "~@13 x!2 ~", C: "~@12 x!2 ~@2", D: "~@14 x!2",
})).gain(0.52)

// drums · open hat
const open_hat = s("oh").struct("<~@16 A@2 ~ A@7 ~@12 A@3 ~ A@11 ~@8>".pickRestart({
  A: "~@15 x",
})).gain(0.44)

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

// drums · crash
const crash = s("cr").struct("<~@16 A ~ B A ~@3 A ~@2 C A ~@11 A ~ B A ~ A D A ~@3 A ~@2 C A ~@6>".pickRestart({
  A: "x", B: "x!2", C: "~ x", D: "~@7 x",
})).gain(0.37)

// drums · ride
const ride = s("rd").struct("<~@30 [~@7 x!2 ~@7] [x!16]!8 ~@22>").gain(0.22)

// drums · shaker
const shaker = s("sh").struct("<~@23 [x!16]!4 x ~@22 [x!16]!4 x ~@6>").gain(0.37)

stack(
  piano, piano_soft, bass, string_ensemble_2, string_ensemble_2_soft, epiano1, epiano1_soft, pad_new_age,
  string_ensemble_1, orchestra_hit, kick, snare, low_tom, hihat, hihat_soft, mid_tom, open_hat, high_tom, crash, ride,
  shaker
)

More by Cocciante