Strudelify

Aria di mezzanotte

Pooh

KeyA majorTempo86 bpm
0:00/0:00
// Aria di mezzanotte — Pooh
// 86 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 88 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(86/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 A B A E A E C F G A E A E A E C F H A E I@2 J K A E L M N O P Q R@2 A E A E A E C F H A E I@2 J K A E L S T
  O P Q U@2 A E A E I@2 J K A E V W X Y Z Q AA@2 A E A AB@3
>`.pickRestart({
  A: "[e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,b3,c#4] ~ [e3,b3,c#4] ~ [e3,b3,c#4] ~ [e3,b3,c#4] ~", // A C#m7
  B: "[e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [g#3,c#4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~", // A C#5 C#m
  C: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~", // D F#m
  D: "[d4,f#4]@2 b3 ~ [d4,f#4]@2 b3 ~ [g#3,b3,e4]@8, b3 ~@3 b3 ~@11", // D E
  E: "[e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~", // A C#m
  F: "[d4,f#4]@2 b3 ~ [d4,f#4]@2 b3 ~ [d4,f#4]@2 b3 ~ [d4,f#4]@2 b3 ~, b3 ~@3 b3 ~@3 b3 ~@3 b3 ~@3", // D
  G: "[g#3,b3,e4] [g#3,b3,d4,e4]", H: "[g#3,b3,e4]",
  I: "[d4,f#4,a4,d5] ~ [d4,f#4,a4,d5] ~ [d4,f#4,a4,d5] ~ [d4,f#4,a4,d5] ~ [d4,f#4,a4,c#5] ~ [d4,f#4,a4,c#5] ~ [d4,f#4,a4,c#5] ~ [d4,f#4,a4,c#5] ~", // D Dmaj7
  J: "[b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~", // Bm
  K: "[b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~", // Bm E
  L: "[b3,d4,f#4,b4]@2 [b3,d4,f#4,b4]@2 [b3,d4,f#4,b4]@2 [b3,d4,f#4,b4]@4 [b3,d4,f#4,b4]@5 ~", // Bm
  M: "[d4,f#4,a4]!3 [d4,f#4,a4]@2 [d4,f#4,a4]@2 ~", // D
  N: "[b3,e4,g#4]@2 [b3,e4,g#4]@2 [b3,e4,g#4]@2 [b3,e4,g#4]@2 [b3,e4,g#4]@2 [b3,e4,g#4]@2 [b3,e4,g#4]@2 [b3,e4] ~, ~@7 g#4", // E E5
  O: "[a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@3 ~ [a3,c#4,e4,a4]@3 ~ [a3,c#4,e4,a4] ~", // A
  P: "[d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~", // D
  Q: "[g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4] ~ [g#3,b3,c#4,e4]@2", // C#m7
  R: "[[b3,d4,f#4]@2 [b3,d4,f#4]@2 [b3,d4,f#4]@2 [b3,d4,f#4]@3 ~ [b3,d4,f#4]@4 [g#3,b3,e4]@18]/2", // Bm E
  S: "[d4,f#4,a4]@2 [d4,f#4,a4]@2 [d4,f#4,a4]@2 [d4,f#4,a4]@4 [d4,f#4,a4]@5 ~", // D
  T: "[b3,e4,g#4]@2 [b3,e4,g#4]@2 [b3,e4,g#4]@2 [b3,e4,g#4]@2 [b3,e4,g#4]@2 [b3,e4,g#4]@2 [b3,e4,g#4]@2 [b3,e4,g#4] ~", // E
  U: "[[b3,d4,f#4]@2 [d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4]@3 ~ [b3,d4,f#4]@4 [g#3,b3,e4]@18, ~ b3 ~@14]/2", // Bm D Bm E
  V: "[d4,f#4,b4]@2 [b3,d4,f#4,b4]@2 [b3,d4,b4] ~ [b3,d4,f#4,b4]@4 [b3,d4,f#4,b4]@5 ~, b3 ~@3 f#4@2 ~@10", // Bm
  W: "[d4,f#4,a4]@2 [d4,f#4,a4]@2 [f#4,a4] ~ [d4,f#4,a4]@4 [d4,f#4,a4]@4 ~@2, ~@2 d4 ~@5", // D F#m D
  X: "[b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [e4,g#4]@2 [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~, ~@8 b3 ~@7", // E
  Y: "[a3,c#4,e4,a4]@2 [a3,c#4]@2 [a3,a4]@2 [a3,c#4,e4,a4]@3 ~ [a3,c#4,e4,a4]@3 ~ [a3,c#4,e4,a4] ~, ~@2 [e4,a4] ~ [c#4,e4] ~@11", // A A5 C#m
  Z: "[d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~", // D
  AA: "[[b3,d4,f#4]@2 [b3,f#4]@2 [b3,d4,f#4]@2 [b3,d4,f#4]@3 ~ [b3,d4,f#4]@4 [g#3,b3,e4]@18, ~@2 d4 ~@29]/2", // Bm B5 Bm E
  AB: "[[e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,a3,c#4] ~ [e3,g#3,c#4]@2 [e3,g#3,c#4]@2 ~ [e3,g#3,c#4]@2 [e3,g#3,c#4]@2 ~ [a3,c#4,e4]@20 ~@10]/3", // A C#m A
})).s("gm_piano").gain(0.47).pan(0.4)

// bass · fretless bass · "tk2"
const bass = note(`<
  ~ A B C D A E A B A B F G H A B A B A B F I H A J K L M N A J O P Q R S T U@2 A B A B A B F I H A V K L W X A Y Z AA
  AB AC AD AE AF@2 A AG A V K L AH AI A V AJ AK AL R AM AN AF@2 A B A AO@3
>`.pickRestart({
  A: "a1@6 e2 f#2 a2@6 f#2 a2", B: "a1@6 e2 f#2 a2 ~ f#2 ~ e2 f#2 e2@2", C: "d2@6 ~ d2 d2@4 d3 d2 d2@2",
  D: "b1@6 b1@2 e2@2 b2 ~ e3 b2 e2@2", E: "a1@6 e2 f#2 a2 ~ b2 ~ c#3 b2 a2@2", F: "d2@7 d2 d2@4 d3 d2 d2@2",
  G: "b1@6 ~ b1!2 ~ b1 ~ d2 e2 f#2@2", H: "e2@5 ~ e2!2 a#2 b2 e3 ~ e3@2 b2@2", I: "b1@7 b1!2 ~ b1 ~ d2 e2 f#2@2",
  J: "a1@6 e2 f#2 a2 ~ b2 ~ e3 c#3 a2@2", K: "d2@5 ~ d2!2 d2@7 d2", L: "d2@5 ~ d2!2 d2@8", M: "b1@5 ~ b1@2 f#2@6 f#2@2",
  N: "b1@6 f#2 b1 e2@2 b2 ~ f#3 e3 c#3@2", O: "b1 ~ b1@6 b1 ~ b1@6", P: "d2 d2@3 d2 d2@3",
  Q: "d2@2 d2@2 f#2 g#2 b2@6 b2 a2 e2@2", R: "a2@6 e2 ~ f#2@2 a2@2 f#2 e2 f#2@2", S: "d2@5 ~ d2@2 d3@6 d2@2",
  T: "c#2@3 c#2 c#3@3 c#2", U: "[b1@5 ~ b1@2 g#2@2 b2@2 g#2@2 e2@13 ~ e2@4]/2", V: "a1@6 e2 f#2 a2 ~ b2 ~ e2 c#2 a1@2",
  W: "b1@6 b1@2 f#2@5 ~ f#2@2", X: "b1@6 f#2 b1 e2@2 b2@2 f#2 e2 c#2@2", Y: "a1@6 e2 f#2 a2 ~ b2@2 e2 c#2 a1@2",
  Z: "b1@2 b1@6 b1 ~ b1@6", AA: "d2 ~ d2@6 d2 ~ d2@6", AB: "d2 ~ d2@2 f#2 g#2 b2@6 b2 a2 e2@2",
  AC: "a1@6 e2 ~ f#2@2 a2@2 f#2 e2 f#2@2", AD: "d2@3 d2 d3 d2@2 d2", AE: "c#2@3 c#2 c#3 c#2@2 c#2",
  AF: "[b1@3 b1 g#2 b2 g#2 e2@7 e2@2]/2", AG: "a1@6 e2 f#2 a2 ~ f#2@2 e2 f#2 e2 ~", AH: "b1@3 b1 f#2@3 f#2",
  AI: "b1@6 f#2 b1 e2@2 b2 ~ f#2 e2 c#2@2", AJ: "b1@2 b1@5 ~ b1 ~ b1@6", AK: "d2 ~ d2@5 ~ d2 ~ d2@6",
  AL: "d2@2 d2@2 f#2 g#2 b2@2 d2@2 d2@2 b2 a2 e2@2", AM: "d2@6 d2@2 d3@4 d2@2 d2 ~", AN: "c#2@3 c#2 c#3@2 c#2!2",
  AO: "[a1@6 e2 f#2 a2 ~ f#2 ~@2 e2 f#2 e2@3 a1@22 ~@8]/3",
})).s("gm_fretless_bass").gain(0.65)

// chords · synth strings 1 · "tk3"
const synth_strings_1 = note(`<
  ~ A@2 B C D E F@4 G H I J@2 F@4 G H I K@2 L@2 M@2 K@2 N O P Q O R S@2 T@2 F@4 G H I K@2 L@2 M@2 K@2 N O P Q O R S@2
  T@2 K@2 L@2 U@2 K@2 N O P Q O R S@2 T@2 V@4
>`.pickRestart({
  A: "[e4,a4]/2", B: "d4 c#4, f#4", C: "[b3,d4,b4] [d4,f#4,b4]", D: "[c#4,e4,a4] [e4,a4,b4]",
  E: "[e4,a4,c#5] [e4,a4,b4]", F: "[a4 g#4 f#4 g#4 a4 g#4 f#4 g#4, [a3,c#4]]/4", G: "d5 c#5, [f#4,a4]",
  H: "[d4,f#4,b4]", I: "[d4,f#4,g#4,b4]", J: "[a4 g#4 f#4 e4, e4@23 ~@9]/2", K: "c#5 b4, [e4,a4]",
  L: "[d5 c#5 b4 c#5, d4, [f#4,a4] [f#4,a4]]/2", M: "[~ a4 ~ [e4,g#4], b3, [d4,f#4]@3 ~]/2", N: "[b3,d4,f#4]",
  O: "[d4,f#4,a4]", P: "[d4,g#4,b4]", Q: "[e4,a4,c#5]", R: "[c#4,e4,g#4]", S: "[[d4,f#4,b4]@14 [b3,e4,g#4]@11 ~@7]/2",
  T: "[c#5@3 e5 b4@3 e5 a4@3 a4 g#4 a4 b4 c#5, [a3,e4]]/2", U: "[[d4,f#4]@3 [e4,g#4], b3]/2",
  V: "[c#5@6 e5@2 b4@6 e5@2 a4@6 a4@2 g#4@2 ~ a4@2 b4@2 c#5@3 [a3,c#4]@22 ~@8, [a3,e4]@17 ~@15]/4", // A A5
})).s("gm_synth_strings_1").gain(0.25)

// chords · accordion · "tk5"
const accordion = note(`<
  ~ A@2 B C D E ~@7 A@2 ~@7 F@2 G H I@2 F@2 J K L M K N O@2 A@2 ~@7 F@2 G H I@2 F@2 J K L M K N O@2 A@2 P F Q R S@2 F@2
  J K L M K N O@2 A@2 T@4
>`.pickRestart({
  A: "[c#5@3 e5 b4@3 e5 a4@3 a4 g#4 a4 b4 c#5, e4]/2", B: "d5@5 ~ f#5@2 c#5@6 f#5@2, f#4, d4 c#4",
  C: "[b3,d4,b4] [d4,f#4,b4]", D: "[c#4,e4,a4] [a4,b4]", E: "[a4,c#5] [a4,b4]", F: "c#5 b4, a4", G: "d5 c#5, a4",
  H: "b4 c#5, a4", I: "[f#4 a4 f#4 [e4,g#4], d4@3 ~]/2", J: "[d4,f#4]", K: "[f#4,a4]", L: "[g#4,b4]", M: "[a4,c#5]",
  N: "[e4,g#4]", O: "[[f#4,b4]@14 [e4,g#4]@13 ~@5]/2", P: "c#5 b4, [e4,a4]", Q: "d5 c#5, [f#4,a4]",
  R: "b4 c#5, [f#4,a4]", S: "[[d4,f#4]@3 [e4,g#4]]/2",
  T: "[c#5@6 e5@2 b4@6 e5@2 a4@6 a4@2 g#4@2 a4@2 ~ b4@2 c#5@3 [e4,a4]@22 ~@8, e4@17 ~@15]/4", // A5
})).s("gm_accordion").gain(0.36).pan(0.6)

// other · overdriven guitar · "tk6"
const overdriven_guitar = note(`<
  A B C D@2 E F ~ G ~ H I J K ~ L ~ M N O P@2 Q ~@6 R S T ~@7 U V ~ W N X P@2 Q ~@6 R S T ~@7 U V ~@16 U V Y Z AA@2
>`.pickRestart({
  A: "~@9 e4 f#4 a4 b4@2 a4 ~", B: "b4@2 e5 ~@3 c#5@9 ~", C: "~@4 b4 c#5 e5 ~ a5 ~ f#5 ~@3 [c#5,e5] a4",
  D: "[f#4@10 e4 f#4 a4 e4 f#4@4 e4 f#4 a4 e4 f#4@4 e4 f#4 a4 b4 a4 ~]/2", E: "b4@5 ~ e5 ~@3 e5 ~@3 [b4,c#5] a4",
  F: "a4 f#4 e4 ~@2 [b3,c#4] e4!2 ~ e4 ~ a4 ~ a4 b4 ~", G: "~@10 [e5,a5] ~ c#5@2 a4@2",
  H: "~@2 [e5,a5] ~@3 [e5,a5] ~@3 [e5,a5] ~ c#5@2 a4@2", I: "f#4@14 e4 f#4", J: "a4 f#4 f#4@8 ~@6",
  K: "~@4 [e4,g#4]@2 ~@2 [e4,g#4]@3 ~ g#4 [e4,f#4] e4 ~", L: "~@7 [e4,f#4] a4 b4 a4 f#4 e4 c#4 b3 a3",
  M: "~@10 a5 ~@3 c#5 [a4,b4]", N: "b4@7 ~@9", O: "~@2 [c#5,a5] ~@3 [c#5,a5] ~@3 [c#5,a5] [f#4,a4] a4 b4 a4 ~",
  P: "[f#4@12 ~@3 f#4@16 ~]/2", Q: "~@2 f#4@2 b4 ~ e4@4 b3@4 a3@2", R: "~@9 f#3 a3 b3 b3@2 c#4 f#4",
  S: "e4 c#4!2 b3 ~ b3 a3 f#3 e3!2 c#3 c3 b2 f#3 c#3 c3", T: "b2@7 ~@9", U: "~@3 [a4,e5]@3 ~@2",
  V: "~ e4 f#4 a4 b4@2 ~@2 c#5 [a4,b4] a4 b4 a4 b4 a4 ~", W: "~@10 [c#5,a5] ~@3 c#5 [a4,b4]",
  X: "~@2 [c#5,a5] ~@3 [c#5,a5] ~@3 b4@5 a4", Y: "~ c#5 e5 c#5 e5@5 ~ [e5,a5] ~@5",
  Z: "c#5 [e5,a5] c#5 [e5,a5] c#5 [e5,a5] c#5 e5 [c#5,a5] e5 [c#5,a5] e5 a5 c#5 [e5,a5] c#5", // A5 F#m A5
  AA: "[e5 a5 c#5@21 ~@9]/2",
})).s("gm_overdriven_guitar").gain(0.48)

// chords · electric guitar clean · "tk8"
const electric_guitar_clean = note(`<
  ~@16 A@4 B C D ~@7 E@6 F@2 ~@3 A@4 B C D ~@7 G@6 F@2 ~@10 H@6 F@2 ~@7
>`.pickRestart({
  A: "~@2 [a4,c#5] ~@3 [a4,c#5] ~@3 [a4,c#5] ~@3 [a4,c#5]!2", // A
  B: "~@2 [a4,d5]!2 ~@2 [a4,d5] ~@3 [a4,c#5]!2 ~@2 [a4,c#5] ~", // D5 A
  C: "~@2 [f#4,b4] ~@3 [f#4,b4] ~@3 [f#4,b4] ~@3 [f#4,b4] ~", // B5
  D: "~@2 [g#4,b4] ~@3 [g#4,b4]!2 ~@2 [g#4,b4] ~@3 [e4,g#4,b4] ~", // G#m E
  E: "[~@16 [d4,f#4]@2 ~@4 f#4@6 d4@2 ~@2 [d4,f#4]@6 ~@2 d4@2 ~@6 [e4,g#4]@6 ~@6 e4@2 b3 ~ [e4,a4]@6 ~@8 c#4 ~@7 d4@4 ~@2 d4@2 a3@2, ~@15 b3@2 ~ b3@8 ~@5 a3@6 ~ a3@6 d4@3 b3@6 ~ b3@5 ~@4 [a3,c#4]@6 ~ a3@9 a3@3 f#3@8 f#4@5 ~, ~@20 d4@7 ~@15 f#4@6 ~@8 e4@4 ~@12 c#4@4 a4@4 [d4,f#4]@4 a3@8 ~@4, ~@46 a3@2 ~@10 g#4@6 ~@10 e4@5 ~ d3@12 ~@4]/6", // D E A5 A D
  F: "[~@6 g#4@9 ~ [e3,b3]@14 ~@2, c#3@14 ~ b2@14 ~@3, ~@2 g#3@13 ~@17, ~@4 c#4@11 ~@17]/2", // E5
  G: "[~@16 [d4,f#4]@2 ~@4 f#4@6 d4@2 ~@2 [d4,f#4]@6 ~@2 d4@2 ~@6 [e4,g#4]@6 ~@6 e4@2 b3 ~ [e4,a4]@6 ~@8 c#4 ~@7 d4@4 ~@4 a3@2, ~@15 b3@2 ~ b3@8 ~@5 a3@6 ~ a3@6 d4@3 b3@6 ~ b3@5 ~@4 [a3,c#4]@6 ~ a3@9 a3@3 f#3@13 ~, ~@20 d4@7 ~@15 f#4@6 ~@8 e4@4 ~@12 c#4@4 a4@4 [d4,f#4]@4 a3@8 d4@4, ~@46 a3@2 ~@10 g#4@6 ~@10 e4@5 ~ d3@14 ~@2, ~@15 f#4]/6", // D E A5 A D
  H: "[~@16 [d4,f#4]@2 ~@4 f#4@6 d4@2 ~@2 [d4,f#4]@6 ~@2 d4@2 ~@6 [e4,g#4]@6 ~@6 e4@2 b3 ~ [e4,a4]@6 ~@8 c#4 ~@7 d4@4 ~@4 a3@2, ~@15 b3@2 ~ b3@8 ~@5 a3@6 ~ a3@6 d4@3 b3@6 ~ b3@5 ~@4 [a3,c#4]@6 ~ a3@9 a3@3 f#3@13 ~, ~@20 d4@7 ~@15 f#4@6 ~@8 e4@4 ~@12 c#4@4 a4@4 [d4,f#4]@4 a3@8 d4@4, ~@46 a3@2 ~@10 g#4@6 ~@10 e4@5 ~ d3@14 ~@2, ~@90 f#4@5 ~]/6", // D E A5 A D
})).s("gm_electric_guitar_clean").gain(0.27).pan(0.6)

// other · acoustic guitar steel · "tk9"
const acoustic_guitar_steel = note("<~@66 A B C D E F G H ~@14>".pickRestart({
  A: "e4 f#4 e4 ~ a4@2 ~ e4!2 f#4 e4 a4@2 ~@3", B: "~ g#4 a4@2 ~@3 a4 b4@3 a4 c#5 b4 a4 ~",
  C: "~@2 e4 f#4 a4 e4 f#4@3 ~ f#4 a4 b4 e4 f#4@2", D: "~ f#4 b4 b4@2 ~ f#4 f#4@2 ~ f#4!2 b4 e4 f#4@2",
  E: "~@2 b3 [a#3,b3] d4 [b3,d4] f#4 [d4,f#4] a#4 f#4 ~ a#4 c#5 a#4 ~ e4", // Bmaj7 Bm D
  F: "f#4@5 b3 f#4 g4 g#4 ~ b4 e5 d5@3 [b4,c5], f4 ~@15", G: "c5 c#5@7 [c#5,e5] [b4,c#5] a4 ~@3 [g#4,a4] [f#4,g#4]",
  H: "e4 ~@3 [e4,f#4] [c#4,e4] b3 ~@3 [b3,c#4] [g#3,b3] f#3 e3@3", // Esus2 C#m Bsus2 G#m
})).s("gm_acoustic_guitar_steel").gain(0.57).pan(0.4)

// other · electric guitar muted · "tk11"
const electric_guitar_muted = note(`<
  ~@23 A@2 B@2 C@2 D ~@2 E F G ~@13 A@2 B@2 C@2 D ~@2 E F G ~@15 E F G ~@10
>`.pickRestart({
  A: "~ a2 a3 a2 c#3@2 e3 ~@2 a2 a3 a2 c#3@2 e3 ~", B: "~ d3 d4 d3 f#3@2 a3 ~@2 d3 d4 d3 f#3@2 a3 ~",
  C: "~ b2 b3 b2 e3@2 f#3 ~@2 b2 b3 b2 e3@2 f#3 ~", D: "~ a2 a3 a2 c#3@2 e3 ~@9",
  E: "~@2 [d3,a3]!3 ~ [d3,a3]!3 ~ [d3,a3]!3 ~ [d3,a3]@2", F: "d3!3 ~@3 d3!3 ~ d3@4 d3 ~",
  G: "~@2 b2!2 c#3@2 e3@2 ~@2 a3 ~ e3@4",
})).s("gm_electric_guitar_muted").gain(0.28).pan(0.4)

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

// drums · snare
const snare = s("sd").struct("<~ A@37 ~ A@24 ~ A@17 ~ A@3 B ~@2>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.66)

// drums · low tom
const low_tom = s("lt").struct("<~@30 [~@7 x] ~@24 [~@7 x] ~@17 [~@10 x ~@2 x!2 ~] ~@14>").gain(0.59)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@30 [~@11 x!2 ~@3] ~@24 [~@11 x!2 ~@3] ~@17 [~@5 x ~@3 x ~@6] ~@14>").gain(0.52)

// drums · open hat
const open_hat = s("oh").struct("<~@6 [~@7 x] ~@8 [~@7 x] ~@3 [~@7 x] ~@68>").gain(0.52)

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

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~ A@22 B C D E F G B G H I G@4 J ~ A@9 K L M G N O P B Q G P G@2 H J ~ A@10 R S T@2 G@2 J ~ G@3 K U ~
>`.pickRestart({
  A: "~ x ~ x", B: "x!9 ~ x!6", C: "x!5 ~ x!3 ~ x!6", D: "x!9 ~ x ~ x!4", E: "x!13 ~ x!2", F: "x!3 ~ x!5 ~ x!3 ~ x!2",
  G: "x!16", H: "x!3 ~ x!12", I: "x ~ x!7 ~ x!6", J: "x!15 ~", K: "x!11 ~ x!4", L: "x ~ x!3 ~ x!7 ~ x ~",
  M: "x!7 ~ x!8", N: "x!13 ~ x ~", O: "x ~ x!5 ~ x ~ x!6", P: "x!5 ~ x!10", Q: "x ~ x ~ x!7 ~ x!3 ~",
  R: "x!10 ~ x!2 ~ x ~", S: "x ~ x ~ x!5 ~ x!6", T: "x ~ x!14", U: "~ x ~@14",
})).gain(0.26)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct(`<
  ~@23 A B C D E ~ A ~ F G ~@15 H I J ~ K L M A N ~ M ~@2 F ~@12 O P Q@2 ~@10
>`.pickRestart({
  A: "~@9 x ~@6", B: "~@5 x ~@3 x ~@6", C: "~@9 x ~ x ~@4", D: "~@13 x ~@2", E: "~@3 x ~@5 x ~@3 x ~@2",
  F: "~@3 x ~@12", G: "~ x ~@7 x ~@6", H: "~@11 x ~@4", I: "~ x ~@3 x ~@7 x ~ x", J: "~@7 x ~@8", K: "~@13 x ~ x",
  L: "~ x ~@5 x ~ x ~@6", M: "~@5 x ~@10", N: "~ x ~ x ~@7 x ~@3 x", O: "~@10 x ~@2 x ~ x", P: "~ x ~ x ~@5 x ~@6",
  Q: "~ x ~@14",
})).gain(0.2)

// … 13 more lines

More by Pooh