Strudelify

Padre del fuoco padre del tuono padre del nulla

Pooh

KeyA minorTempo36 bpm
0:00/0:00
// Padre del fuoco padre del tuono padre del nulla — Pooh
// 36 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 3/4 at bar 12, 4/4 at bar 12, 3/4 at bar 17, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 7 tubular bells (copy of ch 6 choir aahs)
// note: Full arrangement: all 52 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(36/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("<~@16 A@7 B@2 C D E F G H I J K@5 L M N O P@2 ~@4 Q R@3>".pickRestart({
  A: "[~@24 [a1,a5,c6,e6,a6]@13 [g5,d6,g6]@3 [a5,e6,a6]@3 ~ [b5,g6,b6]@3 [f5,c6,f6]@3 [a1,e5,a5,c6,e6]@12 [d5,f5,d6]@3 [e5,g5,e6]@3 ~ [f5,a5,f6]@3 [d5,f5,d6]@3 [a1,e5,a5,c6,e6]@12 [b1,g5,b5,d6,g6]@12 [a5,f6,a6]@3 [b5,g6,b6]@3 [c6,a6,c7]@3 [a5,f6,a6]@3 [c2,g5,c6,e6,g6]@12 [f5,c6,f6]@3 [g5,d6,g6]@3 [a5,e6,a6]@3 [f5,c6,f6]@3 [a1,e5,a5,c6,e6]@12 [d5,a5,d6]@3 [e5,c6,e6]@3 [f5,d6,f6]@3 [d5,a5,d6]@3 [a1,c5,e5,a5,c6]@11 ~ [f4,a4,c5,f5]@4 ~@2 [f#4,a4,d5,f#5]@5 ~ [a3,c4,e4,a4]@12 [c4,f4] a3 c4 f4 c4 ~ [d4,f#4] a3 d4 [d4,f#4] a3 [c4,e4,a4]@11 ~ f4 [a3,c4] c4 f4 c4 ~, ~@37 a1@13 ~@12 a1@12 ~@25 b1@12 ~@12 b1@11 ~@13 d2@12 ~@47 d4 ~@17]/7", // Am G5 A5 Em F5 Am Dm Em …
  B: "[[d4,f#4] a3 [d4,f#4] d4 a3 [c4,e4,a4]@11 f4 c4 a3 [c4,f4] ~ c4 f#4 [a3,d4] d4 [d4,f#4] a3 [c4,e4,a4]@11 ~ [c4,f4] a3 [c4,f4] ~ c4 f#4 [a3,d4] d4 f#4 [a3,d4] d4 [a3,c4,e4]@4 [a3,c4,e4] [a3,c4,e4]@5 ~ [a3,d4,f4]@3, ~@5 d4 ~@21 d4 ~@36]/2", // D Am F5 D5 D Am F5 D5 …
  C: "~ [a3,d4,f4] [a3,d4,f4]@5 [g3,b3,d4]@3 ~ [g3,b3,d4] ~ [g3,b3,d4]@5 [a3,c4,e4]@3 ~ [a3,c4,e4] [a3,c4,e4]@5 ~ [a3,c4,e4]@3", // Dm G Am
  D: "~ [a3,c4,e4] [a3,c4,e4]@5 ~ [a3,d4,f4]@4 [a3,d4,f4] [a3,d4,f4]@4 ~@2 [g3,b3,d4]@3 ~ [g3,b3,d4] [g3,b3,d4]@5 [a3,c4,e4]@3", // Am Dm G Am
  E: "~ [a3,c4,e4] [a3,c4,e4]@5 ~ [b3,d4,g4]@2 b3@2 d4!2 b3@2 ~ g4 [c4,e4,g4]@3 c4 [c4,e4]@2 ~ g4 e4 [c4,g4] ~ [a3,d4,f4]@3, ~@13 g4@2 ~ d4@2 ~@7 c4@2 ~@5", // Am G C C5 Dm
  F: "~ [a3,d4,f4] ~@2 d4@2 a3 [c4,e4]@3 ~ c4 [c4,e4]@2 ~@2 e4 ~ [d4,g4]@2 ~ d4 ~ b3 ~ d4 ~ [d4,g4] c4 c4@2 e4, ~@2 [a3,d4]@3 ~@2 a3 ~@2 a3@2 ~@2 a3@3 ~@7 b3@4 ~@4, ~@3 f4@3 ~@9 c4@2 ~ b3 ~ b3@3 [d4,g4]@2 ~@3 [e4,g4]@2 ~@2", // Dm C G5 D5 G5 Em
  G: "~ e4 ~@2 [e4,g4]@2 [d4,f4]@4 a3 ~@3 a3@2 ~@16, g4@3 c4@3 a3@2 ~@4 d4@5 ~@15, ~@6 a3 ~@9, ~@13 f4@3 ~@16", // Em Dm
  H: "~@5 [a3,c4,e4]@4 ~ [a3,c4,e4] [a3,c4,e4]@5 ~ [a3,d4,f4]@4 [a3,d4,f4] [a3,d4,f4]@5 ~ [g3,b3,d4]@3 ~", // Am Dm G
  I: "[g3,b3,d4] [g3,b3,d4]@5 [a3,c4,e4]@3 ~ [a3,c4,e4] [a3,c4,e4]@5 [a3,c4,e4]@4 [a3,c4,e4] ~ [a3,c4,e4]@5 [a3,d4,f4]@4 [a3,d4,f4]", // G Am Dm
  J: "[a3,d4,f4]@4 ~@2 [g3,b3,d4]@3 ~ [g3,b3,d4] [g3,b3,d4]@4 ~ [a3,c4,e4]@3 ~ [a3,c4,e4] [a3,c4,e4]@5 ~ [b3,d4,g4]@2 b3@2 d4", // Dm G Am G
  K: "[d4 b3@2 ~ g4 [c4,e4,g4]@3 c4 [c4,e4]@2 ~ g4 e4 [c4,g4] [a3,d4,f4]@3 ~ [a3,d4,f4] ~@4 a3 ~ [c4,e4]@2 a3@2 c4 ~ a3@2 ~ e4 [d4,g4]@2 b3@2 d4 [d4,g4]@2 ~ d4 [d4,g4] ~ c4 ~ e4 ~@2 e4 c4@2 [e4,g4]@2 [d4,f4]@4 a3 a3@2 ~ a3@2 ~ [a1,a2,a3,c4,e4]@20 ~ [a3,c4,e4]@3 ~ [a3,c4,e4] [c4,e4,a4]@3 a3 [a3,c4,e4] ~ [a3,c4,e4] ~ [c4,e4] [a3,c4,e4] ~@3 a3@2 ~ [a3,c4,e4]@3 ~ [a3,c4,e4] ~@3 a3@2 ~ [a3,c4,e4] [a3,c4,e4]@2 ~ [a3,c4,e4] ~ a3 a3@2 ~ [a3,c4,e4]@3 ~ [a3,c4,e4] [c4,e4,a4]@4 a3 [a3,c4,e4] ~ [a3,c4,e4]@2 [a3,c4,e4] ~ [c4,e4,a4]@2 [c4,e4,a4]@2 ~ [a3,c4,e4]@3 ~ [a3,c4,e4] [c4,e4,a4]@3, g4@2 ~ d4@2 ~@7 c4@2 ~@7 [a3,d4]@2 d4@2 ~ a3 ~@4 [c4,e4]@2 ~ c4@2 b3 ~@4 b3 ~ b3@4 ~ c4@3 ~@6 a3@2 ~@3 d4@5 ~@34 a3@2 ~@2 [c4,e4,a4]@4 ~@6 [c4,e4,a4]@5 ~@6 [c4,e4,a4]@4 ~@30, ~@22 f4@3 ~@22 [e4,g4]@2 ~@2 g4@3 ~@10 f4@3 ~@93]/5", // C C5 Dm C G5 Em Dm Am …
  L: "~ [c4,e4,a4] [a3,c4,e4] [a3,c4,e4]@2 ~ [a3,c4,e4] [c4,e4,a4]@2 ~ [c4,e4,a4]@2 [d4,g4]@2 [d4,g4]@2 [d4,g4] g4 ~ g4 ~ g4 [c4,e4]@3 ~ c4@2 ~@3 e4, ~@12 b3@5 [b3,d4]@5 ~@3 g3@3 ~ g3@3, ~@10 a4 ~@3 e4 c4", // Am G5 C Bm
  M: "~ [a3,d4]@2 d4 ~ d4!3 e4 ~ d4 [a3,c4,e4]@3 ~@3 a3@2 ~ e4 d4@2 [b3,d4]@2 [d4,g4] g4 ~ g4 a4 g4 ~, ~ f3 ~ [f3,a3]@8 ~@3 a3@2 e4@2 ~@3 g4@4 ~@7, ~@15 c4@3 ~ c4@2 b3 ~@4 [b3,d4]@5 ~", // D5 Am Bm G5 F Bm
  N: "[c4,e4]@2 ~ c4@2 ~@2 c4@2 e4 [a3,d4]@2 a3@2 [a3,d4] a3@2 ~ e4 d4 [a3,c4,e4]@11 ~, ~@2 g3@3 e4@2 ~@5 d4 ~@2 d4 ~@16, ~@6 g3@3 ~@8 a3@3 ~@12", // C D5 Am
  O: "[f4,a4,c5,f5]@5 [f#4,a4,d5,f#5]@5 ~ [e4,a4,c5,e5]@11 ~ [f4,a4,c5,f5]@5 [f#4,a4,d5,f#5]@4", // F D Am F D
  P: "[~@2 [e4,a4,c5,e5]@11 [f4,a4,c5,f5]@5 ~ [f#4,a4,d5,f#5]@5 [e4,a4,c5,e5]@11 ~@29]/2", // Am F D Am
  Q: "~@19 [a1,a5,c6,e6,a6]@13", // Am
  R: "[[g5,d6,g6]@3 [a5,e6,a6]@3 [b5,g6,b6]@3 [f5,c6,f6]@3 ~ [a1,e5,a5,c6,e6]@12 [d5,f5,d6]@3 [e5,g5,e6]@3 [f5,a5,f6]@3 ~ [d5,f5,d6]@3 [b4,g5,b5]@3 [c5,a5,c6]@3 [d5,b5,d6]@3 [b4,g5,b5]@3 [a1,a4,c5,e5,a5]@43 ~@3, a1@13 ~@12 a1@12 ~ a1@12 ~@46]/3", // G5 A5 Em F5 Am Dm Em F …
})).s("gm_piano").gain(0.35)

// bass · fretless bass
const bass = note("<~@18 A@3 B@2 C D E F G@3 H I J K L M N O P Q R@2 ~@10>".pickRestart({
  A: "[~@23 b1@24 c2@12 b1@9 b1@3 a1@12 d2@9 d3 ~@3]/3",
  B: "[~@24 a3@17 ~ e3@2 g3 a3 a2@11 ~ a2 a3@4 ~, ~@23 a1@19 ~@22]/2",
  C: "a2 a3 e3@3 a2@3 ~ a2 a3@6 a2 ~ b2 c3 ~ d3 e3 f3 ~ g3 a3 a1@3 ~@2",
  D: "e1 a1@3 a1!2 ~ e3 a2@3 f2 a2 b2 ~ c3 d3 ~ a2@4 a2 a2@3 ~ a2 ~ a2@3",
  E: "~ a2 a2@3 a2!2 g2@3 ~ g2 ~ d3@3 g3@2 a2 ~ a3 e3 a2 a3 ~ e3 c3 e3 ~ a2 a1@2",
  F: "~ a2 a2@2 ~ a2@3 a2@2 a2 ~ a2 a2@2 a2 ~ a2@2 b1@4 g2 d3 b2@2 ~ g2 a2@2 ~",
  G: "[a2!2 e3 e2 [c2,c3] b2 [b1,a2] a1 g1@3 ~ g1 b1@3 d2@2 c2@3 b1@2 c2@2 ~ e2@2 ~ d2@2 d2@3 d2@2 f2@2 ~@2 e3 ~ a3@2 e3@3 a2@2 ~ b1@2 g1@3 b1@2 d2@2 ~ c2@3 b1@2 c2@2 ~ e2@2 d2@3 c2@3 d2@2 f2@2 ~@16, ~@39 a2@2 ~@55]/3", // C B7
  H: "~@5 a2@4 ~ a2 a2@4 a2 ~ a2@4 a2 a2@2 ~ a2@2 ~ a2 a1@3",
  I: "a2 b2 d3 ~ g3@2 g3 ~ a3 e3 a2 a3 g3 [d3,e3] e3 [c3,d3] [g2,a2] ~ a1@2 a2 ~ a2 a2@2 ~ a2!2 a1@3 a2", // Dsus2 Csus2 Gsus2
  J: "a2 ~ a2@2 a2 ~ b1@4 g2 d3 b2@2 ~ g2 a2@2 ~ a2!2 e3 e2 [c2,c3] b2 [b1,a2] a1 g1@3 ~ g1", // C B7
  K: "b1@3 d2@2 c2@3 b1@2 c2@2 ~ e2@2 d2@3 d2@3 d2@2 f2@2 ~ a2!3 ~ a2!2",
  L: "[e2,g2] d2 [d2,e2] b1 b1@3 g1@2 b1@2 ~ d2@2 ~ c2@2 b1@3 c2@2 ~ e2@2 d2@3 c2@2 d2@2, ~@4 g1 ~@27", // Em Dsus2
  M: "~ f2@2 ~ a1@20 ~ a1 a2@2 ~ a2 a2@2",
  N: "~ a2@2 ~ a2 a2@2 a2 ~ a2@2 a2@2 ~ a2@2 ~ a2!3 g2 [d2,e2] e2 [b1,d2] g1 a1@3 ~ a1 c2 d2", // Dsus2 Bm
  O: "e2 ~ g2!2 a2@2 ~ a2 a2@2 ~ a2@2 a2 ~ a2@2 a2 ~ a2@2 a2@2 ~ a2@4 a2 a2@2 ~",
  P: "a2@2 a2 a2@2 ~ a2!2 [e2,g2] d2 [d2,e2] b1 b1@3 g1@2 b1@3 d2@2 c2@2 ~ b1@3 c2@2 e2@2, ~@12 g1 ~@19", // Em Dsus2
  Q: "~ d2@2 c2@2 ~ d2@2 f2@2 ~ a1 a2@2 ~ a2!3 ~ a3@2 b1@3 g1@2 b1@3 d2@3",
  R: "[c2@2 b1@3 c2@2 e2@3 d2@2 c2@3 d2@3 f2@2 a3@23 ~@21]/2",
})).s("gm_fretless_bass").gain(0.35)

// chords · pad warm
const pad_warm = note("<A@8 ~@27 B@2 ~@5 C@7 ~@3>".pickRestart({
  A: "[~@5 [a3,c4,e4,g4]@59]/8", B: "[~ [a4,c5,e5,a5]@8 ~@7]/2", C: "[~@6 [a3,c4,e4,g4]@49 ~]/7",
})).s("gm_pad_warm").gain(0.01)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@23 A@7 B@5 C@4 D E@2 F@2 ~@8>".pickRestart({
  A: "[~@16 [a3,c4,f4]@5 ~ [a3,d4,f#4]@5 [a3,c4,e4]@11 ~ [a3,c4,f4]@5 [a3,d4,f#4]@5 ~ [a3,c4,e4]@11 [a3,d4,f4]@10 [g3,b3,d4]@11 [a3,c4,e4]@11 [a3,c4,e4]@11 [a3,d4,f4]@11 [g3,b3,d4]@10 [a3,c4,e4]@10 ~ [b3,d4,g4]@10 [c4,e4,g4]@10 ~ [a3,d4,f4]@10 [a3,c4,e4]@10 ~ [b3,d4,g4]@10 [c4,e4,g4]@10 [a3,d4,f4]@10 ~ [a3,a4,a5,a6]@2 ~ [g3,g4,g5,g6]@2 [f3,f4,f5,f6]@2 ~ [g3,g4,g5,g6]@2 [a3,a4,a5,a6]@2 ~ [f3,f4,f5,f6]@2]/7", // F D Am F D Am Dm G …
  B: "[[g3,g4,g5,g6]@2 ~ [e3,e4,e5,e6]@2 [a3,c4,e4]@11 ~ [a3,d4,f4]@11 [g3,b3,d4]@10 [a3,c4,e4]@10 [a3,c4,e4]@11 [a3,d4,f4]@11 [g3,b3,d4]@10 [a3,c4,e4]@10 ~ [b3,d4,g4]@10 [c4,e4,g4]@10 [a3,d4,f4]@10 ~ [a3,c4,e4]@10 [b3,d4,g4]@10 ~ [c4,e4,g4]@10 [a3,d4,f4]@7]/5", // G E Am Dm G Am Dm G …
  C: "[~@2 [a3,e4,a4,c5,e5]@52 [b3,d4,g4]@5 [c4,e4,g4]@5]/4", D: "~ [a3,d4,f4]@10 [a3,c4,e4]@10 [b3,d4,g4]@10 ~",
  E: "[[c4,e4,g4]@5 [a3,d4,f4]@5 [a4,c5,e5,a5]@8 ~@14]/2", F: "[~@6 [c5,e5,g5,b5]@9 ~]/2",
})).s("gm_string_ensemble_2").gain(0.12)

// other · whistle
const whistle = note("<~ A@8 ~@7 B@7 C@2 ~@15 D E F G@8 ~>".pickRestart({
  A: "[~ e6@63]/8", B: "[~@24 e6@63 g6@24 e6@12 f6@12 e6@12 d6@12 e6@12 f6@6 f#6@6 e6@12 f6@6 f#6@5 e6@12 f6@6]/7",
  C: "[f#6@5 e6@11 f6@5 ~ f#6@5 e6@11 ~ f6@5 f#6@5 ~@15]/2", D: "~@20 e6@11 ~", E: "f6@5 f#6@6 e6@11 ~ f6@5 f#6@4",
  F: "~@2 e6@11 f6@6 f#6@5 e6@8", G: "[~ e6@255]/8",
})).s("gm_whistle").gain(0.07).pan(0.6)

// other · pad sweep
const pad_sweep = note("<~ A@5 B@2 C@2 D E F@5 ~ G@2 ~@20 H@5 I@4 J@3>".pickRestart({
  A: "[~@13 e4@17 d5@31 c5@15 g4@15 ~@41 c5@21 b4@7, ~@91 a5@23 ~ c6@21 ~@24, ~@106 e4@23 ~@31]/5",
  B: "[~ g4@3 ~@20 c5@40]/2", C: "[b4@3 a4@10 c5@15 d6@4]/2", D: "~@2 c6@14 e6@15 ~", E: "g4@8 c5@21 ~@3",
  F: "[~@7 c5@7 ~ d5@24 ~ a4@15 ~ g4@15 a4@9 c5@24 b4@15 a4@23 c5@9 ~@9]/5", G: "[~@23 g5@25 ~@16]/2",
  H: "[~@20 a4@80 ~@2 e4@9 d5@28 c5@21]/5",
  I: "[~@87 c5@22 b4@6 ~@13, ~ g4@13 ~@10 e4@17 ~@23, ~@25 a5@33 ~@3 c6@31 ~@36]/4",
  J: "[~@19 a4@19 ~@18 a5@38 ~@2, ~@25 a4@22 ~]/3",
})).s("gm_pad_sweep").gain(0.25).pan(0.4)

// other · pad sweep · soft notes
const pad_sweep_soft = note("<~@16 A@7 ~@25 B@2 C ~>".pickRestart({
  A: "[~@24 [a4,a5]@63 g4@24 c5@12 b4@12 a4@47 ~ a4@23 ~@18]/7", B: "[~@9 c5@16 ~@7]/2", C: "~@3 a4@4 ~@9",
})).s("gm_pad_sweep").gain(0.16).pan(0.4)

// chords · timpani · A5
const timpani = note(`<
  ~@29
  [~@17 e3@2 ~ [a2,e3]@2 [a2,e3] ~@2 [a2,e3] ~ [a2,e3] ~@2 [a2,e3] ~, ~@17 a2 ~@14]
  [[a2,e3] ~@2 [a2,e3]@2 ~@27]
  ~@21
>`).s("gm_timpani").gain(0.35)

// other · overdriven guitar
const overdriven_guitar = note("<~@22 A@2 B@2 C D E@2 F G H I J@2 ~@16>".pickRestart({
  A: "[~@3 a2 f3@4 ~ a2 f#3@2 d3 a2 a2@2 e3@3 ~ e3@3 a2@2 e3 a2 f3@4 f#3@4 ~ [a2,f5] a2@2 e3@2 a2@2 e3@3 ~ e3 a2 ~ f3@4 a2 f#3@2 d3 a2 a2@2 e3@3, ~@19 a2@2 ~@25 a2@2 ~@16]/2", // Dm
  B: "[~ e3@3 ~ e3 ~ a2 f3@4 a2 f#3@2 d3 a2!2 a2@8 e3@3 f3@10 g3@11 a2@2 e3@2 a2 [e3,e4] [d3,d4] [b2,c3,b3,c4] [d3,d4] [b2,c3,b3,c4] [g2,g3] ~ e3@2, a2@2 ~@2 a2@2 ~@55 a2@2 ~]/2", // E D Cmaj7 D Cmaj7 G
  C: "~ a2 e3@5 ~ a2@5 f3@5 ~ a2 g3@2 ~ g3 g3@2 g3@2 g3 a2@3", D: "a4@2 [g4,a4] g4 a4!3 ~ g4@4 ~@20",
  E: "[~@7 a3@2 c4 [c4,d4] e4 [a3,c4] d4 [d4,e4] e4 [b3,c4] a3 g3@10 c3@10 d3@10 ~@16]/2", // Csus2 Am Dsus2 Cmaj7
  F: "~@5 a2@2 e3@3 a2 e3@5 ~@2 f3@2 ~ a2 f3@5 ~@2 g3@3, ~@17 a2@2 ~@9 a2@2 ~@2",
  G: "a2 g3@5 a2 ~ a3 a2 a3 a4 g4 [d4,e4] e4 [c4,d4] [a2,b3] ~ e3@2 a2 ~ e3@5 a2 f3@3 a2", // Dsus2 Csus2 Asus2
  H: "f3@5 ~ a2 g3@3 a2 g3@5 a2@3 e3 g3 a3@2 c4 d4 [b3,c4] a3 g3@5", I: "~@13 a2@3",
  J: "[a2 c3 [d3,e3] g3 g3@5 ~ g2@5 c3@10 d3@10 ~ a2@10 ~@18, ~@4 a3 ~@59]/2", // Dsus2
})).s("gm_overdriven_guitar").gain(0.48).pan(0.4)

// other · overdriven guitar
const overdriven_guitar_2 = note("<~@35 A@2 B C D E@2 ~@10>".pickRestart({
  A: "[~@21 [a2,c3] d3 [e3,g3] a3 c4@2 a3@3 g3 a3@5 e4@7 d4 c4 a3 g3 [a3,c4] ~ d4 c4 [d4,e4] ~ [e4,g4] a4 g4 ~ a4 a4@6]/2", // Am Em Am Dsus2 Em
  B: "e4@2 ~ g4!2 ~ [g4,a4] a4 c5 c5@6 ~ a4 [e4,g4] e5@6 ~ e5 d5 c5 b4 g4 [e4,g4] b4, ~@18 g4 ~@13", // Gsus2 Em
  C: "[e4,c5] d4 e4@3 [d4,e4] c4 e4@5 g3!2 a3 b3 [b3,c4] [c4,d4] d4 [c5,d5] d5@2 e5@3 g5@2 ~ a5@4, ~@7 d4 ~@14 c5 ~@9", // C Dsus2 Cmaj7 Csus2
  D: "~ [a5,c6] [c5,a5,c6] [c5,a5] [f5,a5] [a5,c6] [c5,a5] [a5,c6] [e5,f5] ~ a5@4 [g5,a5] e5 a5@5 g3!2 b3 c4 [c4,d4] d4 e4@2 e4 [c4,d4] ~", // Am F Am F Am Fmaj7 Gsus2 Csus2
  E: "[e4 g4 [c4,e4] [a3,c4] d4 e4@7 d4 c4 [a3,a4] c5 g4!4 a4 ~ a4@18 ~@24]/2", // C Am A
})).s("gm_overdriven_guitar").gain(0.45)

// drums · kick
const kick = s("bd").struct("<~@23 A B C D E F G H I J K L M N O P Q R ~@11>".pickRestart({
  A: "~@27 x ~@4", B: "x ~@4 x ~ x ~@3 x ~@4 x ~ x ~@3 x ~@4 x ~ x ~@2",
  C: "~ x ~@4 x!2 ~@3 x ~@5 x!2 ~@3 x ~@4 x ~ x ~@2", D: "~ x ~@4 x ~ x ~@3 x ~@4 x ~ x ~@3 x ~@4 x!2 ~@2",
  E: "~ x ~@2 x!3 ~ x ~@3 x ~@4 x!2 ~@3 x ~@4 x ~ x ~@2", F: "~ x ~@4 x!2 ~@3 x ~@2 x ~ x ~ x ~@2 x ~@5 x!2 ~@3",
  G: "x ~@4 x!2 ~@3 x ~@5 x!2 ~@2 x ~ x ~@2 x ~ x ~@2 x ~", H: "x ~@2 x ~ x ~@4 x ~@4 x ~ x ~@3 x ~@4 x ~ x ~@3",
  I: "x ~@4 x!2 ~@3 x ~@4 x!2 ~@3 x ~@5 x!2 ~@3 x", J: "~@4 x ~ x ~@3 x ~@4 x!2 ~@3 x ~@2 x!3 ~ x ~@3 x",
  K: "~@4 x!2 ~@3 x ~@4 x!2 ~@3 x ~@4 x ~ x ~@3 x ~", L: "x ~@2 x!2 ~@3 x ~@4 x ~ x ~@3 x ~@4 x!2 ~@3 x ~@2",
  M: "~@2 x ~ x ~@20 x ~@3 x ~@2", N: "~@2 x ~ x ~@2 x ~@5 x!2 ~@3 x ~@4 x ~ x ~@3 x ~@2",
  O: "~@2 x!2 ~@3 x ~@4 x!2 ~@3 x ~@5 x!2 ~@3 x ~@3", P: "~ x!2 ~@3 x ~ x ~ x!3 ~@3 x ~@4 x!2 ~@3 x ~@4 x",
  Q: "~ x ~@3 x ~@4 x!2 ~@3 x ~ x ~@2 x!2 ~@3 x ~@4 x ~", R: "x ~@2 x ~@5 x!2 ~@3 x ~@4 x!2 ~@11",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct("<~@24 A B C B D E F G H I J K L M N O P ~@11>".pickRestart({
  A: "~ x ~@10 x ~@10 x ~@8", B: "~@2 x ~@10 x ~@9 x ~@8", C: "~@2 x ~@10 x ~@10 x ~@7",
  D: "~@2 x ~@9 x ~@2 x ~@7 x ~@8", E: "~ x ~@10 x ~@19", F: "~@11 x ~@10 x ~@9", G: "~ x ~@9 x ~@10 x ~@9",
  H: "x ~@10 x ~@9 x ~@10", I: "x ~@9 x ~@10 x ~@9 x", J: "~@2 x ~@6 x ~@10 x ~@9 x ~", K: "~@15 x",
  L: "~@9 x ~@9 x ~@10 x ~", M: "~@8 x ~@10 x ~@9 x ~@2", N: "~@7 x ~@9 x ~@10 x ~@3", O: "~@6 x ~@9 x ~@2 x ~@6 x ~@5",
  P: "~@5 x ~@9 x ~@16",
})).gain(0.4)

// drums · hihat
const hihat = s("hh").struct("<~@23 A B C D E F G H I J K L M N O P Q R ~@11>".pickRestart({
  A: "~@29 x!2 ~", B: "x ~ x ~ x!2 ~ x!3 ~ x ~ x ~ x!2 ~@2 x!2 ~ x ~ x ~ x!2 ~ x!3",
  C: "~ x ~ x ~ x!3 ~ x!3 ~ x!2 ~ x!3 ~ x!4 ~@2 x!2 ~@2 x!2",
  D: "~ x ~@2 x!3 ~ x!3 ~ x ~ x ~ x!2 ~ x!3 ~ x ~ x ~ x!4 ~",
  E: "x!3 ~ x!3 ~@2 x!2 ~ x ~ x ~ x!4 ~ x!2 ~@2 x!3 ~@2 x!2",
  F: "~ x ~ x!2 ~ x!3 ~ x!2 ~@2 x!3 ~@2 x!3 ~@2 x!2 ~ x!3 ~ x", G: "x ~@2 x!3 ~@2 x!3 ~@2 x!2 ~ x ~@3 x ~@4 x ~@4 x ~",
  H: "~@3 x ~@3 x!2 ~ x ~@2 x!3 ~ x!3 ~ x ~ x ~ x!2 ~ x!3 ~", I: "x!3 ~ x!3 ~ x!4 ~@2 x!2 ~@2 x!3 ~@2 x!2 ~ x!3 ~ x!2",
  J: "~@2 x!3 ~ x!3 ~ x ~ x ~ x!3 ~ x!4 ~ x!3 ~@2 x!2 ~ x", K: "~ x ~ x!4 ~ x!2 ~@2 x!3 ~@2 x!3 ~@2 x!3 ~ x!3 ~ x ~",
  L: "x ~ x!2 ~@2 x!3 ~@2 x!3 ~ x!3 ~ x ~ x ~ x!2 ~ x ~ x!2 ~@2", M: "x!3 ~ x ~@21 x!2 ~ x ~ x",
  N: "~ x!2 ~ x!4 ~@2 x!2 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3", O: "x ~ x ~ x ~ x!2 ~ x ~ x!3 ~ x!3 ~@2 x!2 ~ x!4 ~ x ~ x ~",
  P: "x!4 ~ x!3 ~@2 x!2 ~@2 x!3 ~@2 x!4 ~ x!3 ~@2 x!3", Q: "~@2 x!2 ~ x ~ x!2 ~ x!3 ~ x!2 ~ x ~ x!2 ~@2 x!3 ~@2 x!3 ~",
  R: "x!4 ~@2 x!2 ~ x ~ x!2 ~ x ~ x ~ x!2 ~@12",
})).gain(0.2)

// drums · mid tom
const mid_tom = s("mt").struct("<~@23 [~@17 x!3 ~ x ~ x!4 ~@5] ~@28>").gain(0.4)

// drums · open hat
const open_hat = s("oh").struct("<~@25 [~@25 x ~@6] ~@5 [~@13 x ~@18] ~@6 [~ x ~@2] ~@13>").gain(0.45)

// drums · high tom
const high_tom = s("ht").struct("<~@23 [~@16 x ~@2 x ~@5 x ~@6] ~@28>").gain(0.4)

// drums · crash
const crash = s("cr").struct("<~@23 A B C D E F G H I J K L M N O P Q R ~@11>".pickRestart({
  A: "~@27 x ~@4", B: "~ x ~@10 x ~@5 x ~@4 x ~@8", C: "~@2 x ~@26 x ~@2", D: "~@2 x ~@10 x ~@10 x ~@7",
  E: "~@8 x ~@4 x ~@9 x ~@5 x ~@2", F: "~@2 x ~@9 x ~@5 x ~@4 x ~@8", G: "~ x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@4",
  H: "x ~@4 x ~@5 x ~@10 x ~@9", I: "~@8 x ~@2 x ~@4", J: "x ~@10 x ~@15 x ~@4", K: "x ~@9 x ~@4 x ~@5 x ~@9 x",
  L: "~@4 x ~@4 x ~@10 x ~@4 x ~@4 x ~", M: "~@25 x ~@4 x ~", N: "~@9 x ~@22", O: "~@3 x ~@4 x ~@10 x ~@9 x ~@2",
  P: "~@12 x ~@4 x ~@10 x ~@3", Q: "~ x ~@4 x ~@9 x ~@4 x ~@4 x ~@5", R: "~@5 x ~@4 x ~@4 x ~@4 x ~@11",
})).gain(0.25)

stack(
  piano, bass, pad_warm, string_ensemble_2, whistle, pad_sweep, pad_sweep_soft, timpani, overdriven_guitar,
  overdriven_guitar_2, kick, snare, hihat, mid_tom, open_hat, high_tom, crash
)

More by Pooh