Strudelify
Ninna nanna cover art

1975 · Forse ancora poesia

Ninna nanna

Pooh

KeyF majorTempo63 bpm
0:00/0:00
// Ninna nanna — Pooh
// 63 bpm, 4/4, key F 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: duplicate parts dropped: ch 5 "tk5" choir aahs (copy of ch 4 "tk4" vibraphone)
// note: Full arrangement: all 53 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(63/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 · "tk1"
const piano = note("<A B C D E F G H I J A B C D E F G H I J K@4 L@5 M@7 N@3 O@8 P@2 Q@4>".pickRestart({
  A: "[c4,f4]@2 ~ a3 [c4,f4]@2 ~ a3, f2, a3 ~ f4@2 ~@2 [c4,f4]@2, ~@6 a3 ~, ~@13 f3@3", // F5
  B: "~@3 a3 ~ a3!3, d2, d3@11 ~@5, [d4,f4]!4, ~ a3@2 ~@5", // Dm
  C: "~@2 [c4,e4]@2 ~@3 a3, a1, [c4,e4]@4 ~@4 [c4,e4]@3 a2@2 a2@3, ~ a3@2 ~@2 a3 [c4,e4]@2, ~@6 a3 ~", // C
  D: "[c4,e4]@4 ~@2 g3@2 ~@7 c3, c2, ~@4 [c4,e4]@4 [c4,e4]@3 c3@2 c3@2 ~, ~@5 g3 [c4,e4]@2, ~@6 g3!2", // C
  E: "~@3 g3 ~@3 g3, g2, [bb3,d4]@4 d4@4 d4@3 d3@2 d3@3, ~ g3@2 ~@2 g3 [bb3,d4]@2, ~@6 g3 ~", // Bb
  F: "~@2 [c4,e4]@2 [c4,e4]@2 ~ g3, c2, c3@11 ~@2 c3@3, [c4,e4] ~@2 [c4,e4], ~ g3@2 ~@3 g3 ~", // C
  G: "a3 ~ f4 a3 ~ a3 ~ a3, f2, [c4,f4] c4 [c4,f4]!2, ~ a3@2 ~@3 a3 ~, ~@13 f3@2 ~", // F5
  H: "~@2 d4@2 d4@2 ~ f3, d4 ~@2 d4, ~ f3@2 ~@3 f3 ~, ~@13 bb2@3", I: "~ [c4,e4] e4 ~ [c4,e4]@4, c2, c3@7 ~",
  J: "~ e4!3 e4@4, c2",
  K: "[a3@4 a3@4 a3@3 ~@4 a3@4 ~@4 a3@2 ~@4 a3@2 a3@3 ~@4 a3@4 ~@2 d3@2 ~@4 [a3,f4]@2 ~@4 a3 a3@2 a3@2 a3@4 ~@4 a3@4 a3@2 ~@13 c4@4 g3@4 ~@3 g3@4 g3@2 c3@2 ~@8 c3@2 ~ c3@4 [g2,g3,bb3,d4]@6, f1@13 f2@17 ~ d2@30 a1@31 c2@25 e4@6 ~@5, [c4,f4]@8 [c4,f4]@7 [c4,f4]@10 ~@6 [d4,f4]@7 [d4,f4]@7 ~ d4@8 d3@7 ~@4 a3@4 ~@8 c4@7 a2@8 ~@5 c3@8 ~@2 [g3,c4]@2 c3@2 g3@11 ~@6, ~@11 a3@4 ~@4 a3@4 ~@2 [a3,c4,f4]@5 ~@4 a3@4 ~@4 a3@4 [a3,f4]@4 ~@2 e4@9 ~@6 a2@8 a2@2 ~ a2@2 a3@2 a4@4 a3@5 ~ [c4,e4]@7 [c4,e4]@7 ~ g4@15 ~@6, ~@21 f3@6 f3@4 ~@5 d3@8 ~@4 d3@4 [a3,f4]@5 [d4,f4]@4 [c4,e4]@8 [c4,e4]@7 e4@15 ~@5 g3@3 ~@8 e4@6 c4@9 ~@6]/4", // Dm Gm F5 Dm C5 F Dm C …
  L: "[~@2 g3@4 ~@4 g3@3 g3@2 ~@6 d3@4 a3@4 ~@4 a3@3 a3@2 ~@2 a3@4 ~@4 a3@2 ~@6 a3@3 ~@8 a3@4 a3@4 ~@3 a3@2 ~@2 c3@4 f3@4 f3@4 f3@3 f3@2 bb2@2 ~@4 f3@2 ~@10 [c4,f4]@7 [c4,f4]@4 ~@4 [a3,c4,f4]@15 ~@4 e4@4 [g3,e4]@4 ~, d3@17 d3@4 ~@10 a2@7 db3@8 db3@6 db3@4 d2@15 d2@15 ~@21 bb3@4 d4@4 g3@2 ~@43, ~@2 [bb3,d4]@6 g2@17 a1@15 db2@15 f4@6 d3@4 d3@6 ~@5 c3@6 ~@4 bb2@13 ~@4 bb2@6 bb2@4 bb2@4 ~@43, ~@6 g3@4 d4@9 ~@6 [db4,e4]@7 db4@7 ~ [db4,e4]@10 ~@4 a3@2 d4@7 [d4,f4]@7 ~ [c4,f4]@9 ~@21 f4@15 a3@4 ~@40, ~@10 bb3@5 [g3,bb3]@4 [g3,bb3,d4]@5 ~@5 a3@4 e4@7 ~@4 a3@4 ~@2 [a3,db4,e4]@6 ~@3 a3@4 a3@4 ~@8 a3@3 ~@2 [a3,c4,f4]@6 [bb3,d4]@8 [bb3,d4]@7 ~@6 f3@9 f2@30 ~@14]/5", // F5 F C Bb Dbm Dm F5 Gm …
  M: "[~@2 e4@15 ~ a3@4 ~@7 a3@2 ~@6 a3@3 ~@4 a3@4 ~@12 a3@3 ~@8 a3@4 a3@4 ~@11 a3@4 ~@6 a2@2 ~@3 a3@4 [c4,e4]@8 ~@4 g3@2 ~@15 c3@2 ~@11 g3@4 ~@12 g3@3 ~@12 g3@3 ~@12 g3@4 a3@4 ~@3 f4@4 a3@3 ~@7 f3@2, ~@18 f2@30 d2@30 ~ a1@30 c2@30 ~@5 g3@7 ~@8 g3@4 g3@4 ~@3 c3@21 c3@4 c3@5 ~@20 a3@4, ~@18 [c4,f4]@7 [c4,f4]@7 ~ [c4,f4]@7 a3@4 ~@8 a3@8 ~@7 a3@4 ~@11 a3@8 ~@8 a3@4 a3@3 ~@23 g3@4 g3@4 g3@4 ~@4 d3@17 d3@4 d3@6 ~@3 g3@8 ~@7 g3@4 g3@4 ~@8 a3@7 f3@10 ~@2, ~@22 a3@7 ~@2 f3@10 [c4,f4]@7 [d4,f4]@8 [d4,f4]@7 [d4,f4]@8 [d4,f4]@7 ~ [c4,e4]@7 [c4,e4]@7 ~ [c4,e4]@8 [c4,e4]@7 ~@8 [c4,e4]@7 [c4,e4]@8 [c4,e4]@8 [bb3,d4]@7 [bb3,d4]@7 ~ [bb3,d4]@8 [bb3,d4]@7 [c4,e4]@8 [c4,e4]@7 ~ [c4,e4]@7 [c4,e4]@8 [c4,f4]@7 c4@7 ~ [c4,f4]@8, ~@42 f3@6 d3@21 d3@9 ~@25 a2@6 ~@14 c3@7 c3@4 c3@4 ~@2 g2@30 c2@30 ~ f2@23]/7", // C F5 Dm C Bb C F5
  N: "[~@6 f3 ~@12 f3@3 ~@5 f3@3 ~@4 f3@4 ~@4 [g3,c4,e4]@3 ~ e4@3 ~ c4@3 [g3,c4,e4]@15 ~@4 [g3,e4]@4 [g3,e4]@4 [g3,e4]@4 [g3,e4]@12, [c4,f4]@7 [bb3,d4]@8 [bb3,d4]@7 ~ d4@7 [bb3,d4]@8 ~@7 [g3,c4]@4 [g3,e4]@4 ~@43, a3@4 a3@4 ~@3 f3@7 ~@12 f3@4 ~@4 c3@27 ~@31, ~@2 f3@4 ~ bb2@25 bb2@6 c2@30 ~ c2@27]/3", // C F5 Bb C5 C
  O: "[~@3 [c4,f4]@8 a3@4 ~@4 a3@4 ~@4 a3@2 ~@4 a3@2 a3@4 ~@4 a3@4 ~@2 d3@2 ~@4 a3@2 ~@4 a3@2 a3@2 a3@2 a3@4 ~@4 a3@4 ~@2 a2@2 ~@12 c4@4 g3@4 ~@4 g3@4 ~@2 c3@2 ~@12 c3@4 [bb3,d4]@6 ~@2 g3@4 ~@4 [g3,bb3]@4 g3@2 ~@6 d3@4 a3@4 ~@4 a3@4 ~@4 a3@4 ~@4 a3@2 ~@4 a3@2 a3@4 a3@4 ~@4 a3@4 a3@4 ~@4 a3@2 ~@2 c3@4 f3@4 f3@4 f3@4 ~@2 bb2@2 ~@4 f3@2 ~@4 d4@2 bb2, ~@3 f1@14 f2@18 d2@32 a1@26 a3@6 [c4,e4]@8 [c4,e4]@8 g4@8 c3@2 e4@6 ~@12 g3@4 ~@6 [g3,bb3]@4 [g3,bb3,d4]@6 ~@4 a3@4 ~@4 a3@4 ~@4 a3@4 ~@2 [a3,db4,e4]@6 ~@8 a3@4 ~@8 a3@4 ~@2 [a3,c4,f4]@6 [bb3,d4]@8 [bb3,d4]@8 f4@13, ~@3 a3@4 ~@4 [c4,f4]@8 [c4,f4]@10 ~@6 [d4,f4]@8 [d4,f4]@8 d4@8 d3@8 ~@4 a3@4 ~@4 a3@4 c4@8 a2@8 c2@32 g2@14 g2@18 a1@14 db3@8 db3@6 db3@4 ~@10 d3@6 ~@6 c3@6 ~@4 bb2@14 ~@4 bb2@6 bb2@4 ~, ~@15 a3@4 ~@4 a3@4 ~@2 [a3,c4,f4]@6 ~@4 a3@4 ~@4 a3@4 [a3,f4]@4 ~@2 e4@10 ~@6 a2@8 ~@4 a2@2 a3@2 a4@10 ~@6 c3@8 ~@2 [g3,c4]@2 c3@2 g3@12 g3@4 ~@2 d3@18 d3@4 ~@10 a2@10 db2@16 d2@16 d2@16 ~@22 bb3@4 ~@3, ~@25 f3@6 f3@4 ~@6 d3@8 ~@4 d3@4 [a3,f4]@6 [d4,f4]@4 [c4,e4]@8 [c4,e4]@8 e4@16 ~@4 g3@4 ~@4 g3@4 e4@6 c4@10 ~@8 [bb3,d4]@8 d4@10 ~@6 [db4,e4]@8 [db4,e4]@8 [db4,e4]@10 ~@6 [d4,f4]@8 [d4,f4]@8 [c4,f4]@10 ~@18 f3@4 ~@6 f3@7]/8", // F5 Bb Gm C Gm A F Bb …
  P: "[~@3 c4@8 ~@8 [a3,c4,f4]@16 ~@8 e4@4 ~@17, ~@3 f2@32 ~@29]/2", // F
  Q: "[~@7 [a3,c4,f4]@4 [c4,f4]@4 ~@5 f4@16 ~@5 [a3,c4]@4 ~ [a3,c4,f4]@4 [a3,c4,f4]@5 [a3,c4,f4]@54 ~@19, ~@3 f1@65 ~@60, ~@3 f2@33 ~ f2@64 ~@27]/4", // F F5 Am F
})).s("gm_piano").gain(0.36)

// chords · piano · "tk1" · soft notes
const piano_soft = note(`<
  A B C D E F G H I@2 A B C D E F G H I@2 ~@3 J@2 ~@2 K L@2 ~ M@2 ~@2 N O ~ P@2 Q ~@2 R S T U@2 V@3 W@2
>`.pickRestart({
  A: "~@4 c4@3 ~@3 a3@2 ~@4, ~ a3@2 ~@5, ~@3 f3@4 f3@6 ~@3", B: "~@11 d3@5", C: "~@3 a3!2 ~@3, ~@2 a2@9 ~@5",
  D: "g3@2 [c3,g3]@5 c3@4 ~@5", E: "~ bb3!2 ~, ~@2 d3@9 ~@5", F: "~@6 g3@2 ~@3 c3@2 ~@3, ~@5 g3 ~@2",
  G: "~@6 f3@5 f3@2 ~@2 f3, ~@3 f4 ~@4", H: "bb3@2 ~ f3 ~ f3 bb3@2, bb2@13 ~@3, f3 ~ bb3@2 bb3@2 ~@2",
  I: "[~ g3 [g3,c4] [g3,c4,e4] ~@5 [g3,bb3]!3 [g3,bb3]@4, ~ g3 ~@2, ~@7 c3@9]/2", J: "[~@30 g3@4 ~@21 bb3@2 ~@7]/2",
  K: "~@15 bb3@6 ~@3 a3@4 a3@4",
  L: "[[a3,c4,f4]@4 ~@19 [g3,bb3]@4 bb3@3 ~ [g3,e4]@3 [g3,bb3]@15 ~@6 f3@8 ~, ~@19 [c2,c3]@31 ~@14, ~@30 bb3@3 ~@31]/2", // F Gm C Gm C
  M: "[~@30 a3@4 ~@11 g3@4 [c3,g3]@10 ~@5, ~@18 a2@17 ~@29]/2", N: "~@5 f4 ~@2", O: "~@7 f3@4 ~@12 bb3@7 ~@2",
  P: "[~@8 bb3@4 bb3@4 bb3@4 bb3@14 ~@5 a3@4 ~@21, ~ c3@34 ~@29]/2", Q: "~@23 f4@2 ~@7", R: "~@7 g3@4 ~@21",
  S: "~ bb3@2 ~@29", T: "~@9 d3@4 ~@19",
  U: "[~@29 bb3@4 g3@2 a3@4 a3@4 [a3,c4,f4]@4 [a3,c4,f4]@4 ~@13, ~@35 f4@8 ~@21]/2", // F
  V: "[~@7 [g3,bb3,e4]@4 [g3,bb3]@4 [g3,bb3,e4]@4 [g3,bb3,e4]@16 ~@8 a3@4 ~ [a3,c4,f4]@4 [a3,c4]@16 ~@5 f4@4 ~@19, ~@3 [c2,c3]@32 ~@61]/3", // Edim Gm Edim F Am C
  W: "[~@9 f1@36 ~@19]/2",
})).s("gm_piano").gain(0.21)

// bass · electric bass finger · "tk2"
const bass = note("<~@10 A B C D E F G H D@2 I@4 J K@4 L@4 M N@2 O P Q ~@14>".pickRestart({
  A: "f2", B: "d2@30 g2 ab2", C: "a2@3 a2", D: "c2", E: "g2@11 d2 g2@2 f2@2", F: "e2@15 ~", G: "f2@12 c3 f2 c2@2",
  H: "d2",
  I: "[f2@11 f2@4 f3@8 c3@4 f2@3 ~ d2@12 ~ d2!2 a2@4 d2@3 a2@2 d2@2 f2@4 a2@11 ~ e2@3 a1@5 ~ a1@4 a1@2 bb1@4 c2@13 c2!3 ~@3 c2@4 ~ e2 ~@3 f2@2 g2@6, ~@115 d2@2 ~@11]/4",
  J: "~@2 g2@6 [d2,g2] g1 ~@3 g1@6 g2@2 g1@4 a1@7", // G5
  K: "[e2@6 e2!2 a2@4 a2@4 db2@3 a2@2 e2@2 d2@13 ~ a2!2 d3@3 a2@8 a2@4 bb1@4 bb1@9 bb2!2 bb2@4 bb2@2 bb2@2 bb2@4 d2@3 c2@19 c3@4 f2@4 c2@2 ~@2 c2@13]/4",
  L: "[~@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@3 f1@11 ~@3 f1@2 c2@4 f1@3 f1@2 c2@2 f1@4 d2@11 ~@2 d2@2 a2@4 d2@2 ~@2 d2@2 a2@2 d2@4 a2@3 e2@4 a1@8 a1@6 a1 a1@4 bb1@4 c2@4 c2@4 c3@4 c2@3 g2@4]/4",
  M: "c2@2 e2@4 f2@2 gb2@4 g2@5 d2@2 g2@6 d2@2 g2@5",
  N: "[~ d2@2 g2@3 f2@4 e2@13 ~@2 c2@2 ~@2 c2@6 c2@6 f1@13 c2@2 f2@2 c2@2 f1@4, ~@12 e2 ~@19]/2",
  O: "~@3 f1@4 bb1@13 ~ f1@2 bb1@2 ~ bb1@6, ~ c2 ~@14", P: "~@4 bb1@2 c2@23 c3@3", Q: "~ g2 ~@2 c2@28",
})).s("gm_electric_bass_finger").gain(0.53)

// chords · string ensemble 2 · "tk3"
const string_ensemble_2 = note("<A@2 B@7 C@2 D E F@2 G H I J K@5 L@8 M@7 N@5 O P@4 Q@3 ~>".pickRestart({
  A: "[f3@31 d3@32 ~]/2", B: "[a3@31 c4@32 g3@32 c4@32 f3@32 bb3@32 c4@32 ~]/7", C: "[~@31 f3@32 ~]/2", D: "d3",
  E: "a3", F: "[c4@31 g3@32 ~]/2", G: "c4", H: "f3", I: "bb3", J: "c4@31 bb3",
  K: "[~@31 c4@30 ~ d4@30 ~@31 g3@30 ~ [bb3,d4]@6, ~@31 f4@61 c4@30 ~@38, ~@93 e4@61 ~@6]/5", // Bb
  L: "[~@25 [g3,e4]@30 g5@15 f5@15 g5@15 ~ f5@15 [a3,c4,f5]@30 ~ e5@30 f3@30 ~ d3@30 a3@18, ~@24 db4@30 ~ f4@91 ~@110, ~@55 d4@61 ~@140, ~@55 a3@30 bb3@30 ~@31 [g3,bb3,e4]@30 ~@80]/8", // C F Edim
  M: "[~@12 c4@30 ~ g3@30 ~ c4@30 f3@30 ~ bb3@30 c4@30 ~ bb3@28]/7",
  N: "[~@2 c4@32 d4@32 ~ c4@31 g3@32 [bb3,d4]@30, ~ f4@32 e4@32 ~@15]/5", O: "~ [g3,db4,e4]@15",
  P: "[~@34 bb3@32 ~ a3@31 [g3,bb3,e4,e5]@30, ~ d4@32 c4@16 ~@15, ~ a3@16 ~@47, ~@3 f4@96 ~@29]/4", // Edim
  Q: "[~@3 a3@79 ~@14, ~@2 [c4,f4,f5]@79 ~@15]/3", // F5
})).s("gm_string_ensemble_2").gain(0.28)

// chords · string ensemble 2 · "tk3" · soft notes
const string_ensemble_2_soft = note("<~@9 c4 ~@35 [~@3 g5@15 f5@14]!2 [~ f5@15] ~@5>")
  .s("gm_string_ensemble_2").gain(0.17)

// other · vibraphone · "tk4"
const vibraphone = note("<~@10 A B C D E F A G H I J@8 K L@2 M@5 N@2 O P@4 Q@2 R@3 S@2 ~@3>".pickRestart({
  A: "c4 a3", B: "f4@8 d4@6 ~ d4", C: "c4@3 a3", D: "g3@7 ~", E: "d4 bb3", F: "g4@8 c4@6 ~ c4", G: "f4@13 ~ d4@2",
  H: "c4@2 d4 c4@4 d4", I: "~@2 c4 ~@5",
  J: "[c4@23 a3@7 ~ f4@15 d4@15 c4@23 a3@7 ~ g3@28 ~@2 d4@15 ~ bb3@11 bb3@4 a4@15 g4@11 ~@2 f4@2 f4@23 d4@7 ~ bb4@25 ~@2 g4@3 a4@11 ~]/8",
  K: "c4@2 c4@15 ~@2 g4@13", L: "[~@2 a4@15 ~ c4@23 a3@7 f4@15 ~]/2",
  M: "[d4@15 c4@23 a3@7 g3@23 ~@8 d4@23 bb3@7 g4@15 ~ c4@13 ~@2 c4@23]/5",
  N: "[a3@7 ~ f4@26 d4@4 c4@7 ~ d4@3 c4@13 ~@2]/2", O: "~ d4@4 ~@7 c4@4 ~@16",
  P: "[~@3 c4@24 a3@8 f4@16 d4@16 c4@28 a3@4 g3@29]/4", Q: "[~@3 d4@24 bb3@8 a4@16 g4@12 ~]/2",
  R: "[~ f4@2 f4@4 f4@20 d4@8 bb4@26 ~@2 g4@4 a4@12 ~@2 c4@15]/3", S: "[~@3 g4@16 a4@16 ~@29]/2",
})).s("gm_vibraphone").gain(0.48)

// other · vibraphone · "tk4" · soft notes
const vibraphone_soft = note("<A@2 ~@17 B ~@18 C ~@8 D ~ E@2 F ~>".pickRestart({
  A: "~@3 c-1 ~@28", B: "bb3@2 ~ bb3@3 ~@2", C: "~@4 bb3@7 ~@5 bb3@15 ~", D: "~@15 c4@2 ~@15",
  E: "[~@3 f4@33 ~@3 c-1 ~@24]/2", F: "~@13 c-1 ~@18",
})).s("gm_vibraphone").gain(0.24)

// other · string ensemble 2 · "tk7"
const string_ensemble_2_2 = note("<A B@2 C D E F@4 G H I@2 J K@2 L@2 M ~@19 N@7 O@3 P@3 ~>".pickRestart({
  A: "c5@23 a4@8 ~", B: "[f5@23 d5@8 c5@24 ~ a4@8]/2", C: "g4", D: "d5@3 bb4", E: "g5@23 c5@8 ~",
  F: "[c5@24 a4@7 f5@28 d5@4 c5@8 d5@4 ~ c5@15 d5@4 bb4@8 c5@4 bb4@20 ~]/4",
  G: "~@3 a4@4 c5@4 ~ f5@3 g5@2 f5@2 a5@2 ~ g5@2 a5@4 f5@4", H: "~@3 a4@4 d5@4 ~ f5@3 g5@2 ~ f5@2 a5@2 g5@2 a5@4 f5@4",
  I: "[~@3 a4@4 a4@4 c5@4 d5@2 ~@2 e5@2 d5@2 e5@4 c5@4 c5@4 c5@4 d5@4 ~ c5@2 ~ e5@4 g5@4 d5@4 ~ c5@4, ~@9 c5 ~@13 d5 ~@8]/2",
  J: "d5@7 bb4@4 a4@4 bb4@2 a4@2 g4@12 ~", K: "[e4@7 d5@4 c5@4 d5@8 c5@16 g5@4 a5@4 ~ f5@7 c5@8 ~]/2",
  L: "[bb4@7 g5@4 a5@4 ~ f5@7 c5@12 ~ d5@28]/2", M: "bb4@8 c5@3 d5@4 ~ e5@14 ~@2, ~@15 c5@14 ~@3",
  N: "[~@6 a4@4 c5@4 f5@4 ~ g5@2 ~ a5@2 ~@2 a5@4 f5@6 ~@2 a4@4 d5@4 f5@4 g5@2 ~@2 a5@2 g5@2 a5@4 f5@6 ~@2 a4@4 a4@4 c5@4 d5@2 c5@2 e5@2 d5@2 e5@4 c5@4 ~ c5@3 c5@4 d5@4 c5@2 d5@2 ~ e5@4 g5@3 d5@4 c5@4 d5@8 bb4@4 a4@4 bb4@2 a4@2 ~ g4@11 e4@8 db5@4 b4@4 ~ db5@7 g5@12 a5@4 f5@4 e5@4 f5@14, ~@21 f5@2 ~@2 g5@2 ~@26 f5@2 ~@169]/7",
  O: "[~@2 g5@4 ~ a5@3 f5@4 e5@4 f5@48 e5@30]/3", P: "[~ c5@23 ~@8]/3",
})).s("gm_string_ensemble_2").gain(0.32).pan(0)

// other · string ensemble 1 · "tk8"
const string_ensemble_1 = note("<A B A C D E A F G H I J K L M L I N L O P@8 Q@8 R@3 S@3 T@7 U@3 ~>".pickRestart({
  A: "c4@3 a3", B: "f4@23 d4@8 ~", C: "g3", D: "d4@3 bb3", E: "g4@3 c4", F: "f4@7 d4", G: "c4@2 d4 c4@4 d4",
  H: "bb3@2 c4 bb3@5", I: "f4", J: "d4", K: "a4", L: "c5", M: "g4", N: "bb4", O: "bb4@15 ~",
  P: "[f2@30 d2@30 ~ a2@30 ~@2 c4@2 d4@2 c4@2 e4@2 g4@2 d4@2 c4@2 ~ c4@2 d4@2 c4@2 e4@2 g4@2 d4@2 c4@2 g2@30 a2@30 ~ d3@30 bb2@30 ~ f2@12, ~@91 c3@30 ~@135]/8",
  Q: "[~@19 c3@30 f4@30 ~ d4@30 a4@30 ~ c5@30 g4@30 ~ c5@30 f4@24]/8", R: "[~@7 bb4@30 c5@30 ~ bb4@28]/3",
  S: "[~@3 f2@32 d2@31 a2@30]/3", T: "[~@3 c3@32 g2@32 a2@32 d3@32 bb2@32 f2@31 c3@30]/7", U: "[~@3 f2@79 ~@14]/3",
})).s("gm_string_ensemble_1").gain(0.16)

// other · pizzicato strings · "tk9"
const pizzicato_strings = note("<A B C D E D A F G H ~@43>".pickRestart({
  A: "~ a3 c4 f4 a4 f4 c4 a3", B: "~ a3 d4 f4 a4 f4 d4 a3", C: "~ a3 c4 e4 a4 e4 c4 a3", D: "~ g3 c4 e4 g4 e4 c4 g3",
  E: "~ g3 bb3 d4 g4 d4 bb3 g3", F: "~ bb3 d4 f4 bb4 f4 d4 bb3", G: "~@2 c4!3 ~@3", H: "~ bb3 ~@6",
})).s("gm_pizzicato_strings").gain(0.18).pan(0.6)

// other · pizzicato strings · "tk9" · soft notes
const pizzicato_strings_soft = note("<~@8 [~ c4 ~@6] [~@2 bb3!3 ~@3] ~@43>")
  .s("gm_pizzicato_strings").gain(0.11).pan(0.6)

// chords · acoustic guitar steel · "tk11"
const acoustic_guitar_steel = note("<~@29 A@2 B C D@2 E F G@3 ~@13>".pickRestart({
  A: "[~@18 f4@5 [a3,c4]@2 [a3,c4]@5 ~ [a3,c4]@4 [a3,c4]@2 [a3,c4]@4 ~@2 [a3,c4] [a3,c4]@2 [a3,c4,f4]@2 [d4,f4]@4 a3@2 [a3,d4,f4]@2 [d4,f4]@4 a3@2 [a3,d4,f4]@2, ~@17 [a3,c4]@5 ~@3 f4@9 ~ f4@5 ~ [a3,c4,f4]@2 ~@5 a3@3 ~@5 a3@3 ~@5, ~@42 f4@3 ~@19]/2", // Am F Dm Am F
  B: "a3 [a3,d4]@2 [a3,d4]@4 [a3,d4,f4]@2 [a3,f4]@4 [a3,d4]@2 [a3,c4,e4]@5 [a3,c4]@2 [a3,e4]@4 [a3,c4]@2 [a3,c4,e4]@4, ~ f4@6 ~@2 d4@3 ~@10 c4@3 ~@7", // D5 Dm D5 Am A5 Am
  C: "[a3,c4,e4]@2 [a3,c4,e4]@3 ~ [a3,c4,e4]@2 [a3,c4,e4]@3 [a3,c4,e4]@2 g3@3 ~ g3@2 [g3,c4]@2 [g3,c4,e4]@5 ~ [g3,c4,e4]@4 [g3,c4,e4], ~@13 [c4,e4]@7 ~@12", // Am C5 C
  D: "[[g3,c4,e4]@3 ~ [g3,c4]@2 [g3,c4]@4 [g3,c4]@2 [bb3,d4,g4]@7 ~ bb3@5 [bb3,d4,g4]@4 [bb3,d4]@2 [bb3,d4]@4 [bb3,d4,g4]@2 [bb3,d4,g4]@4 ~ [g3,c4,e4]@6 [g3,c4]@2 [g3,c4,e4]@4 g3@2 [g3,c4]@3 ~ g3 [g3,c4]@3, ~@4 e4@7 ~@8 [d4,g4]@5 ~@5 g4@5 ~@7 [bb3,d4,g4]@2 ~@13 e4@8, ~@59 c4@2 ~@3]/2", // C C5 Gm Bb Gm C C5 C …
  E: "~ [g3,c4,e4]@2 [g3,c4,e4]@5 ~ [a3,c4,f4]@6 a3@2 a3@3 a3@2 [a3,c4,f4]@4 [a3,c4]@2 [a3,c4]@4, ~@17 [c4,f4]@5 ~@4 f4@6", // C F Am F5
  F: "[a3,c4,f4]@2 [a3,c4,f4]@4 ~@2 [bb3,f4]@5 [bb3,d4]@2 [bb3,d4]@4 [bb3,d4]@2 [bb3,d4]@4 bb3@2 bb3@3 [bb3,d4,f4]@2, ~@3 [a3,c4] ~@12, ~@7 d4@5 ~@3 f4@9 ~ [d4,f4]@5 ~@2", // F Bb5 Bb Am Dm
  G: "[[bb3,d4,f4]@4 ~@2 c4@4 c4@4 [c4,e4]@7 [c4,e4]@14 ~@5 c4@3 ~ [c4,e4]@7 ~ [c4,e4]@15 ~@29, ~@5 [e3,g3]@29 ~ e3@32 ~@29, ~@6 e4@7 ~@23 bb3@30 ~@30, ~@9 c4 ~@14, ~@37 e4@7 ~@52]/3", // Bb C Em
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.3)

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

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@23 A ~@5 B ~ C D ~ E ~ F ~@16>".pickRestart({
  A: "~@17 x!2 ~@13", B: "~@6 x!2 ~@8", C: "~ x ~@30", D: "~@15 x", E: "~@27 x ~@4", F: "~@3 x",
})).gain(0.4)

// drums · low tom
const low_tom = s("lt").struct("<~@29 [~@6 x!2 ~@8] ~@23>").gain(0.48)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@27 [~@17 x ~@14] ~@9 [~ x ~@14] ~@15>").gain(0.48)

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

// drums · open hat
const open_hat = s("oh").struct("<~@27 [~@15 x ~@16] ~@9 x ~@15>").gain(0.48)

// drums · crash
const crash = s("cr").struct("<~@20 A ~ B C ~ D E F ~ G ~@3 H ~ I ~ J ~@15>".pickRestart({
  A: "x", B: "~@5 x ~@26", C: "~@13 x ~@2", D: "~@23 x ~@8", E: "~@11 x ~@4", F: "~@5 x ~@2", G: "~@17 x ~@14",
  H: "~@3 x ~@4", I: "~@9 x ~@22", J: "~@3 x ~@12",
})).gain(0.32)

// drums · ride bell
const ride_bell = s("rd").struct("<~@20 A B C D E F G H ~ I J K L M N O P Q ~@15>".pickRestart({
  A: "~@4 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x", B: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@2",
  C: "~ x ~@7 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x", D: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@7 x ~",
  E: "~@2 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2", F: "x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@7 x ~@3 x",
  G: "~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@7 x ~@2 x ~@2", H: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@14",
  I: "~@21 x ~@3 x ~@3 x ~@2", J: "~ x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x",
  K: "~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~", L: "~@2 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3",
  M: "x ~@3 x ~@3 x ~@6 x ~@3 x ~@3 x ~@3 x ~@3 x", N: "~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@2",
  O: "~ x ~@3 x ~@7 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3", P: "x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~",
  Q: "~@25 x!3 ~ x ~@2",
})).gain(0.56)

stack(
  piano, piano_soft, bass, string_ensemble_2, string_ensemble_2_soft, vibraphone, vibraphone_soft, string_ensemble_2_2,
  string_ensemble_1, pizzicato_strings, pizzicato_strings_soft, acoustic_guitar_steel, kick, snare, snare_soft, low_tom,
  pedal_hat, mid_tom, open_hat, crash, ride_bell
// … 1 more lines

More by Pooh