Strudelify
In silenzio cover art

La storia dei Pooh

In silenzio

Pooh

KeyE♭ majorTempo96 bpm
0:00/0:00
// In silenzio — Pooh
// 96 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 74 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(96/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 · "tk2"
const bass = note(`<
  A B A C D E F G H I J K L M N O P Q R D E F S H I J K T M U V W X Y D E F G H I J K L M N O P Q R D E F S H I J K T M
  U V W X Y D E F G H I J K L ~
>`.pickRestart({
  A: "eb2@11 ~ eb2@3 ~ bb2@7 ~ eb3@7 ~", B: "eb2@11 ~ eb2@2 ~@2 bb2@7 ~ eb3@6 ~@2",
  C: "eb2@11 ~ eb2@2 ~@2 bb2@7 ~ eb3@7 ~", D: "eb3@11 ~ eb3@3 ~ d3@11 ~ d3@3 ~",
  E: "c3@10 ~@2 c3@3 ~ bb2@10 ~@2 bb2@3 ~", F: "ab2@10 ~@2 ab2@3 ~ g2@10 ~@2 g2@3 ~",
  G: "f2@10 ~@2 f2@3 ~ eb2@3 ~ eb2@3 ~ g2@4 ab2@3 ~", H: "bb2@10 ~@2 bb2@2 ~@2 ab2@10 ~@2 ab2@3 ~",
  I: "g2@11 ~ g2@3 ~ f2@10 ~@2 f2@3 ~", J: "eb2@10 ~@2 eb2@3 ~ d2@10 ~@2 d2@3 ~",
  K: "ab2@10 ~@2 ab2@3 ~ eb3@7 ~ bb2@3 ~ eb3@4", L: "eb2@10 ~@2 eb2@2 ~@2 bb2@7 ~ eb2@3 ~ bb2@3 ~",
  M: "eb2@9 ~@3 eb2@3 ~ bb2@6 ~@2 eb2@3 ~ bb2@3 ~", N: "ab2@10 ~@2 ab2@4 eb3@7 ~ ab2@4 eb3@3 ~",
  O: "ab2@10 ~@2 ab2@3 ~ eb3@8 ab2@4 eb3@4", P: "eb2@10 ~@2 eb2@3 ~ bb2@8 eb2@3 ~ e2@4",
  Q: "f2@9 ~@3 f2@2 ~@2 f2@8 ab2@4 a2@4", R: "bb2@10 ~@2 bb2@3 ~ bb2@3 ~ bb2@4 c3@4 d3@3 ~",
  S: "f2@5 ~ f2 e2 eb2@5 ~ eb2@2", T: "eb2@10 ~@2 eb2@2 ~@2 bb2@6 ~@2 eb2@3 ~ bb2@3 ~", U: "ab2@6 bb2@2 gb3@7 ~",
  V: "ab2@8 ~@4 ab2@3 ~ ab2@8 bb2@7 ~", W: "eb2@10 ~@2 eb2@3 ~ eb2@9 ~@3 eb2@2 e2@2", X: "f2@9 ~@3 bb2@4 f3@11 ~ g3@4",
  Y: "bb1@8 ~@4 bb2@4 eb3@4 bb2@4 eb3@4 bb2@3 ~",
})).s("gm_electric_bass_finger").gain(0.48)

// other · string ensemble 1 · "tk3"
const string_ensemble_1 = note(`<
  A@4 ~@8 B C D E@3 F G@8 B C D E@3 H I J K L M N O P@3 Q E@3 F R@8 B C D E@3 H I J K L M N O S@3
>`.pickRestart({
  A: "[~@25 [bb5,bb6]@95 ~@8]/4", B: "bb4@8 c5@7 d5@8 ~ ab5@8", C: "bb5@7 c6@8 f6@9 bb6@5 ~@3",
  D: "~@16 [c6,eb6] ~@3 [c6,eb6]@2 [bb5,db6]@2 eb6@2 ~@2 [c6,eb6]@2 [bb5,db6]@2, ~@24 c6 ~@7", // Cm Bbm Cm Bbm
  E: "[[c6,eb6]@16 [bb5,db6]@7 ~@9 [g5,bb5] ~@6 c6@8 d6@8 ~ g6@16 f6@4 eb6@17 ~@3, ~@23 b5@16 ~@57, ~@8 ab5@11 ~@13]/3", // Cm Bbm Gm
  F: "c6@5 bb5 g5 f5",
  G: "[g5@24 bb5@8 c6@32 eb6@31 ~ c5@31 ~ d6@32 ~@31 bb5 ~@32 bb5@4 ~@11 g5 ~@8 f5@6 ~@2, eb5@95 f6@32 d5@64 eb5@64 ~, ~@160 b5@63 ~@5 ab5@20 ~@8]/8",
  H: "c6@19 bb6@5 g6@3 f6@5", I: "[eb5,eb6]@5 [bb4,bb5] [c5,c6] [d5,d6]",
  J: "[f5,f6] [eb5,eb6]@4 [g4,g5] [ab4,ab5] [bb4,bb5]", K: "[d5,d6] [c5,c6]@4 [eb4,eb5] [f4,f5] [g4,g5]",
  L: "[ab4,ab5]@6 [bb4,bb5]@2 [ab4,ab5]@7 ~", M: "[d5,d6]@5 [bb4,bb5] [c5,c6] [d5,d6]",
  N: "[f5,f6]@2 [d5,d6]@7 ~ [d5,d6]@2 [eb5,eb6]@2 [f5,f6]@2", // F D Eb F
  O: "~@4 [g5,g6] ~@15 [eb5,eb6]@4 [f5,f6]@4 [g5,g6]@4, [ab5,ab6]@5 ~@3", // G Eb F G Ab
  P: "[[bb5,bb6]@4 [ab5,ab6]@17 ~@3 [eb5,eb6]@44 ~@4 [eb5,eb6]@8 [bb4,bb5]@8 [g4,g5]@8]/3", // Bb Ab Eb Bb G
  Q: "[eb4,eb5]@14 ~@2 [c6,eb6] ~@3 [c6,eb6]@2 [bb5,db6]@2 eb6@2 ~@2 [c6,eb6]@2 [bb5,db6]@2, ~@24 c6 ~@7", // Eb Cm Bbm Cm Bbm
  R: "[g5@24 bb5@8 c6@32 eb6@31 ~ c5@31 ~ d6@32 ~@31 bb5 ~@32 bb5@4 ab5@12 g5@8 f5@8, eb5@95 f6@32 d5@64 eb5@64 ~, ~@80 b5@31 ~@17]/8",
  S: "[[bb5,bb6]@4 [ab5,ab6]@17 ~@3 [eb5,eb6]@44 ~@28]/3", // Bb Ab Eb
})).s("gm_string_ensemble_1").gain(0.35)

// other · french horn · "tk5"
const french_horn = note(`<
  A B A B C D E F G H I J K@2 L M N O P C D E F G H I J K@2 L M N O P C D E F G H I J K@2 L M N O P C D E F G H I J K@2
  L M N O P C D E F G H I J P ~
>`.pickRestart({
  A: "f4@3 g4@23 ~@6", B: "f4@3 g4@22 ~@7", C: "eb4@7 ~ d4@7 ~", D: "c4@14 ~@2 bb3@15 ~", E: "ab3@15 ~ g3@15 ~",
  F: "f3 ~", G: "bb3@15 ~ ab3@15 ~", H: "g3@12 ~@4 g4@7 ~ f4@8, ~@16 f4 ~@15", I: "eb4@15 ~ d4@7 ~ eb4@5 ~@3",
  J: "eb4@15 ~ db4@8 b3@8", K: "[bb3@31 ~]/2", L: "~@16 eb4 ~@3 eb4@2 db4@2 eb4 ~@3 eb4 ~ db4@2",
  M: "eb4@16 db4@7 ~ b3@7 ~", N: "bb3@15 ~", O: "ab3@15 ~", P: "bb3",
})).s("gm_french_horn").gain(0.34)

// chords · string ensemble 2 · "tk6"
const string_ensemble_2 = note(`<
  ~@3 A@7 B@8 C@2 D@2 E F@2 G@2 H I J@3 K A@7 B@8 C@2 D@2 E F@2 G@2 H I J@3 K A@7 L@4
>`.pickRestart({
  A: "[~@47 d4 ~@15 c4@16 bb3@16 ~@16 g3 ~@31 eb4@16 bb3@15 ~ ab3@16 g3@16 f3@16 [bb3,eb4,g4], ~@31 g4@64 c4@48 ~@16 f4@31 ~ b3@32 ~, ~@31 [eb4,bb4]@32 eb4@64 ~@32 d4@64 ~, ~@95 ab3@32 [f3,ab3]@31 ~@66]/7", // Eb Eb5 Fm
  B: "[~@15 [d4,f4]@16 [ab3,b3]@32 g4@32 f4@32 [ab3,c4]@64 [g4,bb4]@32 [f4,ab4,c5]@32 [bb3,d4], ~@31 eb4@193 ~@32, ~@63 bb4@63 ~@130]/8", // Dm Abm Ab Gm Fm Bb
  C: "[~@31 [eb4,g4,bb4]@33]/2", D: "[~ eb5@3, [bb3,d4,f4] ~]/2", E: "f5", F: "[bb5@23 d5@8 f5@16 ~ ab5@16]/2",
  G: "[g5@23 f5@4 eb5@4 bb5@8 ab5@17 g5@4 f5@4]/2", H: "bb5@7 ~ ab5@12 g5@6 eb5@6", I: "bb4@24 d5@3 eb5@5",
  J: "[bb5@8 ab5@23 eb5@65]/3", K: "c6@31 f5",
  L: "[~@15 [d4,f4]@16 [ab3,b3]@32 g4@32 f4@16 ~@17, ~@31 eb4@80 ~@17, ~@63 bb4@48 ~@17]/4", // Dm Abm
})).s("gm_string_ensemble_2").gain(0.25)

// chords · electric guitar clean · "tk7"
const electric_guitar_clean = note(`<
  A@5 B C D E F G H I ~ J@2 K ~@2 A B C D E F G H I ~ J@2 K ~@2 A B C D E F G H I ~ J@2 K ~@2 A B C D E F G H I ~ J@2 K
  ~@2 A B C D E F G H I ~
>`.pickRestart({
  A: "f4@3 g4@23 ~@6, [bb3,eb4]@25 ~@7", B: "f4@2 g4@19 ~@11, [c4,eb4]@11 ~@5", C: "[ab3,c4,f4]@13 ~@3, eb4 ~@15",
  D: "[c4,f4]@3 ~", E: "[bb3,d4,f4]@3 ~", F: "[b3,d4,g4]@23 ~@9", G: "[bb3,eb4,g4]@11 ~@5", H: "[b3,eb4,ab4]@7 ~",
  I: "[bb3,eb4,g4]@27 ~@5", // Eb
  J: "[~@16 [c4,eb4]@2 ~@2 eb4 ~ db4 ~ eb4@2 ~@2 [c4,eb4] ~ db4 ~ eb4@13 ~@19, ~@20 c4@6 ~@4 c4@15 ~@19]/2", // Cm
  K: "[g3,bb3,eb4]@27 ~@5", // Eb
})).s("gm_electric_guitar_clean").gain(0.23).pan(1)

// chords · piano · "tk8"
const piano = note(`<
  A B C D E F G H I J K L M N O@2 M P Q E R G H I J K L M N O@2 M P Q S T U V W X Y Z M N O@2 M P Q E R G H I J K L M N
  O@2 M P Q S T U V W X Y Z M ~
>`.pickRestart({
  A: "[bb4,eb5]@3 bb4@2 eb5@3 g5@3 ~@2 g5@3 bb5@3 g5@2 eb5@3 g5@3 ~ eb4 bb4@3, eb4@11 eb5@3 ~@13 eb5@3 ~@2, ~@12 eb4@3 ~ eb4@9 ~@7", // Eb5
  B: "[bb4,eb5]@3 bb4@2 eb5@3 g5@3 eb5@2 g5@3 bb5@3 g5@2 eb5@3 g5@3 eb5@2 bb4@3, eb4@7 ~ eb4@7 ~", // Eb5
  C: "~@3 bb4@2 eb5@3 g5@3 ~@2 g5@3 bb5@3 g5@2 eb5@3 g5@3 ~ eb4 bb4@2 ~, eb4@11 eb5@3 ~@13 eb5@3 ~@2, ~@12 eb4@3 ~ eb4@9 ~@7",
  D: "[bb4,eb5]@3 bb4@3 eb5@2 g5@3 eb5@2 g5@3 bb5@3 g5@3 eb5@2 g5@3 eb5@2 bb4@2 ~, eb4@7 ~ eb4@7 ~", // Eb5
  E: "[bb4,eb5]@3 bb4@2 eb5@3 g5@3 ~@2 g5@3 bb5@3 g5@2 eb5@3 g5@3 ~ d4 bb4@3, eb4@11 eb5@3 ~@13 eb5@3 ~@2, ~@12 eb4@3 ~ d4@10 ~@6", // Eb5
  F: "eb5@2 ~ c5@2 eb5@3 g5@3 ~@2 g5@3 c6@3 g5@2 eb5@2 ~ g5@3 ~@2 c5@2 ~, g4@29 ~@3, c4@11 eb5@3 ~@13 eb5@3 ~@2, ~@12 c4@3 ~ bb3@10 ~@2 bb3@2 ~@2",
  G: "eb5@2 ~ c5@2 eb5@3 ab5@3 ~@2 ab5@3 c6@3 ab5@2 eb5@3 ab5@3 [g3,eb5]@2 c5@3, eb4@15 ~, ab3@11 eb5@3 ~@18, ~@12 ab3@3 ~ g3@10 ~@6", // Cm
  H: "f5@2 ~ c5@2 f5@3 ab5@3 [f3,f5]@2 ab5@3 c6@3 ab5@2 f5@2 ~ ab5@3 [eb3,f5]@2 c5@2 ~, c4@7 ~, f3@11 ~@5 eb3@10 ~@6", // F Ebsus2
  I: "f5@2 ~ d5@2 f5@3 bb5@3 ~@2 bb5@3 d6@3 bb5@2 f5@3 bb5@3 ~@2 d5@3, f4@29 ~@3, bb3@11 f5@3 ~@13 f5@3 ~@2, ~@6 bb3@2 ab3@5 ~ ab3 ~",
  J: "g5@2 ~ d5@2 g5@3 b5@3 ~@2 b5@3 d6@3 b5@2 g5@2 ~ b5@3 ~@2 d5@2 ~, d4@27 ~@5, g3@10 ~ g5@3 ~@13 g5@3 ~@2, ~@6 g3@2 f3@5 ~ f3 ~",
  K: "g5@2 ~ eb5@2 g5@3 bb5@3 ~@2 bb5@3 eb6@3 bb5@2 g5@3 bb5@3 g5@2 eb5@3, bb3@3 ~, eb3@10 ~ g5@3 ~@18, ~@12 eb3@4 d3@9 ~@7",
  L: "ab5@2 ~ eb5@2 ab5@3 c6@3 ab5@2 c6@3 eb6@3 c6@2 ab5@2 ~ b5@3 ab5@2 eb5@2 ~, [ab3,eb4]@7 ~ ab3@8, ~@2 db4 b3", // Ab5
  M: "~@6 eb4@4 g4 ~ bb3@2 eb4@2 bb4@11 ~@5, eb3@29 ~@3, g4@5 ~@11, [bb3,eb4] bb3 ~@6, ~@2 g3@7 ~@23", // Eb5
  N: "bb3@4 ~@2 bb3@4 eb4@6 g4@5 ~ eb4@5 ~ bb3@3 ~, [eb3,bb4]@27 ~@5, eb4@5 ~@11, ~@2 g3@3 ~@11", // Eb5
  O: "[eb4@4 ~@2 eb4@4 ~@6 c5@6 ab4@5 ~@15 c5@6 ~@6 eb5@9 ~, ab3@28 ~@10 eb4@9 ~ eb4@13 ~@3, c5@8 ~@8 eb5@11 ~@5, ab4@5 ab4@5 ~@6 [ab4,c5]@4 ab4@4 ~ ab4@6 ~, ~@2 c4@3 ~@9 eb4@4 c4@3 ~@5 c5@5 ~]/2", // Ab
  P: "ab3@4 ~@6 ab4@6 ~@6 c5@5 ~@5, ab4@10 ~@10 ab4@7 ~@5, ~@4 ab3@4 f4@8 ~@2 f4@9 ~@5, ~@6 c4@9 ~ c4@11 ~@5",
  Q: "~@6 bb4@4 d5 ~@5 bb4@15 ~, bb3@15 ~, d5@5 ~ f5@9 ~, [f4,bb4]@2 f4@2 ~@3 f4@8 ~, ~@2 d4@7 ~@23", // Bb5
  R: "c7@3 c5@2 eb5@3 g5@3 ~@2 g5@3 c6@3 g5@2 eb5@2 ~ g5@3 ~@2 c5@2 ~, g4@29 ~@3, c4@11 ~ c4@3 ~ bb3@10 ~@2 bb3@2 ~@2, eb5@2 ~@9 eb5@3 ~@13 eb5@3 ~@2",
  S: "[bb3,eb4]@3 bb3@2 eb4@3 g4@3 ~@2 g4@3 bb4@3 g4@2 eb4@3 g4@3 ~ d3 bb3@3, eb3@11 eb4@3 ~@13 eb4@3 ~@2, ~@12 eb3@3 ~ d3@10 ~@6", // Eb5
  T: "eb4@2 ~ c4@2 eb4@3 g4@3 ~@2 g4@3 c5@3 g4@2 eb4@2 ~ g4@3 ~@2 c4@2 ~, g3@29 ~@3, c3@11 eb4@3 ~@13 eb4@3 ~@2, ~@12 c3@3 ~ bb2@10 ~@2 bb2@2 ~@2",
  U: "eb4@2 ~ c4@2 eb4@3 ab4@3 ~@2 ab4@3 c5@3 ab4@2 eb4@3 ab4@3 [g2,eb4]@2 c4@3, eb3@15 ~, ab2@11 eb4@3 ~@18, ~@12 ab2@3 ~ g2@10 ~@6", // Cm
  V: "f4@2 ~ c4@2 f4@3 ab4@3 [f2,f4]@2 ab4@3 c5@3 ab4@2 f4@2 ~ ab4@3 [eb2,f4]@2 c4@2 ~, c3@7 ~, f2@11 ~@5 eb2@10 ~@6", // F Ebsus2
  W: "f4@2 ~ d4@2 f4@3 bb4@3 ~@2 bb4@3 d5@3 bb4@2 f4@3 bb4@3 ~@2 d4@3, f3@29 ~@3, bb2@11 f4@3 ~@13 f4@3 ~@2, ~@6 bb2@2 ab2@5 ~ ab2 ~",
  X: "g4@2 ~ d4@2 g4@3 b4@3 ~@2 b4@3 d5@3 b4@2 g4@2 ~ b4@3 ~@2 d4@2 ~, d3@27 ~@5, g2@10 ~ g4@3 ~@13 g4@3 ~@2, ~@6 g2@2 f2@5 ~ f2 ~",
  Y: "g4@2 ~ eb4@2 g4@3 bb4@3 ~@2 bb4@3 eb5@3 bb4@2 g4@3 bb4@3 g4@2 eb4@3, bb2@3 ~, eb2@10 ~ g4@3 ~@18, ~@12 eb2@4 d2@9 ~@7",
  Z: "ab4@2 ~ eb4@2 ab4@3 c5@3 ab4@2 c5@3 eb5@3 c5@2 ab4@2 ~ b4@3 ab4@2 eb4@2 ~, [ab2,eb3]@7 ~ ab3@8, ~@2 db4 b3", // Ab5
})).s("gm_piano").gain(0.2).pan(0)

// chords · electric guitar clean · "tk9"
const electric_guitar_clean_2 = note(`<
  A B A B C D E F G H C I C J E K L K M C D E F G H C I C J E K L K M C D E F G H C I C J E K L K M C D E F G H C I C J
  E K L K M C D E F G H C I C ~
>`.pickRestart({
  A: "~@4 [g3,bb3,eb4]@6 [g3,bb3,eb4]@2 [g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@5 ~ [g3,bb3,eb4]@3 ~ [g3,bb3,eb4] ~ [g3,bb3,eb4]@2 ~@2", // Eb
  B: "~@4 [g3,bb3,eb4]@5 ~ [g3,bb3,eb4]@2 [g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@5 ~ [g3,bb3,eb4]@3 ~ [g3,bb3,eb4] ~ [g3,bb3,eb4]@2 ~@2", // Eb
  C: "~@4 [g3,bb3,eb4]@6 [g3,bb3,eb4]@5 ~ [g3,bb3,eb4]@5 ~ [g3,bb3,eb4]@3 ~ [g3,bb3,eb4] ~ [g3,bb3,eb4]@2 ~@2", // Eb
  D: "~@4 [g3,c4,eb4]@5 ~ [g3,c4,eb4]@5 ~ [g3,c4,eb4]@5 ~ [g3,c4,eb4]@3 ~ [g3,c4,eb4] ~ [g3,c4,eb4]@2 ~@2", // Cm
  E: "~@4 [ab3,c4,eb4]@6 [ab3,c4,eb4]@5 ~ [ab3,c4,eb4]@5 ~ [ab3,c4,eb4]@3 ~ [ab3,c4,eb4] ~ [ab3,c4,eb4]@2 ~@2", // Ab
  F: "~@4 [ab3,c4,f4]@5 ~ [ab3,c4,f4]@5 ~ [ab3,c4,f4]@5 ~ [ab3,c4,f4]@3 ~ [ab3,c4,f4] ~ [ab3,c4,f4]@2 ~@2", // Fm
  G: "~@4 [f3,bb3,d4]@6 [f3,bb3,d4]@5 ~ [f3,bb3,d4]@16", // Bb
  H: "~@4 [g3,b3,d4]@5 ~ [g3,b3,d4]@5 ~ [g3,b3,d4]@5 ~ [g3,b3,d4]@3 ~ [g3,b3,d4] ~ [g3,b3,d4]@2 ~@2", // G
  I: "~@4 [ab3,c4,eb4]@5 ~ [ab3,c4,eb4]@5 ~ [ab3,c4,eb4]@5 ~ [ab3,b3,eb4]@3 ~ [ab3,b3,eb4] ~ [ab3,b3,eb4]@2 ~@2", // Ab Abm
  J: "~@4 [g3,bb3,eb4]@5 ~ [g3,bb3,eb4]@5 ~ [g3,bb3,eb4]@5 ~ [g3,bb3,eb4]@3 ~ [g3,bb3,eb4] ~ [g3,bb3,eb4]@2 ~@2", // Eb
  K: "~@4 [ab3,c4,eb4]@5 ~ [ab3,c4,eb4]@5 ~ [ab3,c4,eb4]@5 ~ [ab3,c4,eb4]@3 ~ [ab3,c4,eb4] ~ [ab3,c4,eb4]@2 ~@2", // Ab
  L: "~@4 [g3,bb3,eb4]@6 [g3,bb3,eb4]@5 ~ [g3,bb3,eb4]@16", // Eb
  M: "~@4 [f3,bb3,d4]@6 [f3,bb3,d4]@5 ~ [f3,bb3,d4]@5 ~ [f3,bb3,d4]@3 ~ [f3,bb3,d4] ~ [f3,bb3]@2 ~@2, ~@27 d4@2 ~@3", // Bb Bb5
})).s("gm_electric_guitar_clean").gain(0.16)

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

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

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

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@4 A B C D ~ B C D E B C D ~ B D A B C D ~ B C D E B C D ~ B D A B C D ~ B C D E B C D ~ B D A B C D ~ B C D E B C D
  ~ B D A B C D ~ B C D E ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@5 x ~@2", C: "~@7 x", D: "~@2 x ~@4 x", E: "~@3 x",
})).gain(0.33)

// drums · mid tom
const mid_tom = s("mt").struct("<~@33 [~@28 x!3 ~] ~@29 [~@28 x!3 ~] ~@10>").gain(0.38)

// drums · high tom
const high_tom = s("ht").struct("<~@3 [~@7 x] ~@29 [~@24 x!3 ~@5] ~@29 [~@24 x!3 ~@5] ~@10>").gain(0.44)

// drums · crash
const crash = s("cr").struct("<A ~@3 A ~@14 A ~@14 A ~@14 A ~@14 A ~@9>".pickRestart({
  A: "x",
})).gain(0.33)

// drums · ride
const ride = s("rd").struct("<[x!8]!4 ~@70>").gain(0.27)

stack(
  bass, string_ensemble_1, french_horn, string_ensemble_2, electric_guitar_clean, piano, electric_guitar_clean_2, kick,
  snare, hihat, open_hat, mid_tom, high_tom, crash, ride
)

More by Pooh