Strudelify
Cosa dici di me cover art

1984 · Tropico del nord

Cosa dici di me

Pooh

KeyF majorTempo71 bpm
0:00/0:00
// Cosa dici di me — Pooh
// 71 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 3 epiano2 (copy of ch 5 synth choir)
// 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.
// note: The whole transcription plays 43 ms ahead of the beat; the grid follows it, so its parts stay together.
setcpm(71/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, A@4 for four bars: edit a riff to change every repeat.

// chords · piano
const piano = note(`<
  A B C D E F G H@4 I@2 J@2 K L M N O@4 P@2 Q@2 R S T U V W X Y Z AA AB AC AD AE AF AG V AG AH AI AJ AK AL@4 AM@2 Q@2 R
  S T U V W X Y Z AA AB AC AD AE AF AG V AG AH A B C D AN AO G AP@3 ~@2
>`.pickRestart({
  A: "~@3 g4 ~@2 a4@2, f2@5 c4@3, c5 [a3,f4]@3, ~ c3@7, ~ c4@3 g4@4", // Dm
  B: "~@3 a4 ~@2 bb4@2, [g2,c5], ~ [d3,d4]@7, ~ [bb3,g4]@3, ~ a4", // C5 D Eb
  C: "~@3 bb4 ~@2 c5@2, a2, c5 a4 bb4@2, ~ [f3,c4]@7, ~ a3@3", // F5
  D: "~ bb4 ~ [bb2,a4] ~@3 c4, [d4,c5]@4 c4@3 ~, bb2@3 ~ [c3,g3,a4]@4, ~ f3@3 ~@2 e4@2, ~@2 [bb3,bb4]@2 ~ g4@3", // Bbmaj7 D7 Am7 Bb
  E: "d4 ~@2 g4 ~@2 a4@2, [gb2,a3,d5], ~ d4@4 ~@3, ~ gb4@3, ~ g4", // D
  F: "d4 ~@2 a4 ~@2 bb4@2, [g2,d5], d3@3 ~ a4@4, bb3 [bb3,g4]@3, ~ d4@4 ~@3", // G5 Eb
  G: "~@3 g4 ~@2 [f3,a4]@2, [bb2,db5], f4 f4@3, ~ db4@7, ~ f3 bb3 f3 g4@4", // F Bbm
  H: "[c4 ~@5 f4@2 ~@4 g4@3 ~ [f2,a3,c4,f4]@15 ~ [g2,bb3,d4,f4]@15 ~ [a2,c4,e4,f4]@16, [c2,c3,c5]@15 f3@16 g3@17 ~@16, ~@2 c4@14 ~@31 a3@17, ~ e4@3 ~@12, ~ f4 ~@6]/4", // F Gm7 Fmaj7 C
  I: "[[bb2,bb3,f4,a4]@8 c4@4 c4@3 ~ [f2,a3,c4,f4]@16, d4@4 ~@4 [c3,e4,g4]@7 f3@16 ~]/2", // Bbmaj7 F C
  J: "[[g2,g3,d4,f4]@15 ~ [a2,c4,e4,f4]@15 ~, bb3@12 ~@3 a3@15 ~@2]/2", // G7 Fmaj7
  K: "[bb2,bb3,d4,f4,a4]@8 d4@3 d4@3 e4@2, ~ [c3,c4,g4], ~@4 [g3,e4]@3 ~", // Bbmaj7 C5 C
  L: "bb3@2 [f3,bb3]@2 g3 ~ c4@2, [bb1,bb2]@4 ~ g3@3, d4@3 ~ c4@2 ~@2, f3 ~@3 [bb2,e4]@4", // Bb5 Bb Bbdim
  M: "g3 ~ c4@2 [d2,a3,c4,f4]@4, [a1,a2] ~, g4@3 ~@5, c4 ~@3, ~ g3@3 ~@4", N: "[g2,f3,bb3,d4]",
  O: "[[c2,c3,f3,bb3,d4]@15 ~ [a3,c4,f4]@15 ~ [bb3,d4,f4]@15 ~ [c4,e4,f4]@16, ~@15 f3@16 g3@16 a3@17]/4", // Bb F Bb Fmaj7
  P: "[[bb3,f4,a4]@8 c4@4 c4@3 ~ [a3,c4,f4]@16, d4@4 ~@4 [e4,g4]@7 f3@16 ~]/2", // Bbmaj7 F Em
  Q: "[[g3,d4,f4]@15 ~ [c4,e4,f4]@15 ~, bb3@12 ~@3 a3@15 ~@2]/2", // G7 Fmaj7
  R: "[bb3,d4,f4,a4]@8 d4@3 d4@3 e4@2, ~@8 [c4,e4,g4]@7 ~, ~@8 g3@5 ~@3", // Bbmaj7 C
  S: "f3!2 ~ d4 [g3,c4]@2 c4@2, d4@3 ~ e4@4, bb3@2 [f3,bb3]@2 ~@2 g3 ~", T: "c4!2 a3!2, e4 [c4,f4], g3 ~@7",
  U: "[f3,bb3] [f3,bb3]@2 [f3,bb3,d4,g4]@5, d4@3 ~@5", V: "[f3,bb3,d4]@6 [f3,bb3,d4]@9 ~",
  W: "[f3,a3,c4,f4]@3 [a3,c4]@3 [f3,a3,c4]@2, ~@3 f4@5, ~@3 f3@2 ~@3", // F Am F
  X: "[g3,d4,f4]@3 bb3@3 [g3,bb3]@2, bb3@2 ~ [d4,f4]@5, ~@3 g3@2 ~@3", // G7 Gm Dm
  Y: "[g3,a3,c4,f4]@3 [g3,a3]@2 ~ [g3,a3,c4]@2, ~@3 f4@5, ~@3 c4@3 ~@2", // F Gsus2 Am7
  Z: "[bb3,d4] d4 c4 [g3,c4], [f4,a4] [d4,e4,g4], ~@2 bb3 ~@5", // Bb C5 F Em7
  AA: "a3@2 a3 [f3,a3]@3 ~ c4, [f3,g3,c4]@3 g3@5, ~@3 c4@4 ~, ~@3 [f3,a3]", // F Fsus2 F
  AB: "bb3@2 bb3 [bb3,d4]@3 ~ f4, [g3,d4,f4]@3 f4@4 ~, ~@3 g3@2 ~ [g3,bb3,d4]@2", // Bb G7 Gm
  AC: "[g3,a3,c4,f4]@3 [g3,a3]@2 ~@2 f4, ~@3 f4@4 ~, ~@3 c4@3 [g3,a3,c4]@2", // F Gsus2 Am7
  AD: "[bb3,d4]@4 d4@4 [a3,c4,e4,g4]@4 [a3,c4,d4,gb4]@3 ~, [f4,a4] ~, ~@2 bb3 ~@5", // Bb Am7 D7 F
  AE: "f3!4 g3!2 [c4,e4]@2, [bb3,d4]@2 [bb3,d4]@2 [c4,e4]@2 g3 ~", // C Bb C
  AF: "g3!2 ~ g4 [c4,f4]@2 a3!2, g4@3 ~@5, [c4,e4]@2 [g3,c4,e4]@2 a3 ~ [c4,f4]@2", AG: "[f3,bb3,d4]@3 [f3,bb3,d4,g4]@5",
  AH: "[f3,bb3,d4]@7 ~", AI: "~@3 g4 ~@2 a4@2, c5, ~ [c3,c4]@7, ~ [a3,f4]@3, ~ g4",
  AJ: "~@3 a4 ~@2 bb4@2, [g2,c5], ~ [f3,d4]@7, ~ [bb3,g4]@3, ~ a4", // C5 Dm Eb
  AK: "~@3 bb4 ~@2 c5@2, a2, c5 bb4, ~ [f3,c4]@7, ~ [a3,a4]@3", // F5 A
  AL: "[~@2 bb4@2 ~@2 a4@2 ~@8 [a3,c4,f4]@15 ~ [bb3,d4,f4]@15 ~ [c4,e4,f4]@16, f4@12 e4@3 f3@16 ~@33, [bb2,c5] c3 ~@6, ~@2 f3@6 ~@2 [g3,g4]@6 ~@15 g3@17 ~@16, ~@4 [bb3,bb4]@4 a4@4 ~@2 c4@2 ~@31 a3@17]/4", // F Bb Fmaj7 Bbsus2 G Bb
  AM: "[d4@4 d4@4 c4@4 [g3,c4]@3 ~ [a3,c4,f4]@16, [bb3,f4,a4]@8 [e4,g4]@7 f3@16 ~]/2", // C5 F Bbmaj7 Em
  AN: "d4 ~@2 g4 ~@2 a4@2, [gb2,a3,d5], ~ d4@4 d4@3, ~ gb4@3, ~ g4", // D
  AO: "d4 ~@2 a4 ~@2 bb4@2, [g2,d5], d3@3 d3@5, bb3 [bb3,g4]@3, ~ d4@3 a4@4", // G5 Eb
  AP: "[c4 ~@5 f4@2 ~@4 g4@3 ~ [f2,c3,a3,c4,f4]@32, [c2,c3,c5]@15 f3@32 ~, ~ c4@7 ~@16, ~ e4@3 ~@8, ~ f4 ~@4]/3", // F C
})).s("gm_piano").gain(0.41)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@4 A B C ~@4 D ~ E ~ F G H ~@5 D ~ E ~ F I J ~@2 K L M N ~ O M N I P ~@13 E ~ F I J ~@2 K L M N ~ O M N I P ~@9 A C
  ~@5
>`.pickRestart({
  A: "~@5 d4@3", B: "~@5 d4@3, ~@3 d3@5", C: "~@5 bb3@3", D: "~ d4 ~ g3", E: "~@3 bb3", F: "~@13 g3@3",
  G: "~ f3 ~ d4 ~@4", H: "~@3 g4 ~@4", I: "~@7 g3", J: "~ g3@3 ~@4", K: "~@5 f3 ~@2", L: "~@2 bb3 ~@2 g3 ~@2",
  M: "~@5 [g3,a3] ~@2", N: "~@3 bb3 ~@4", O: "~@5 g3 ~@2", P: "~@5 a3 ~@2",
})).s("gm_piano").gain(0.2)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  A B C D E@2 F G ~@12 H I J K H I J K L@2 M N O P@3 Q@2 O R S T U@3 V H W@3 ~@8 L@2 M N O P@3 Q@2 O R S T U@3 V A B C D
  E@2 F G X@2 ~@2
>`.pickRestart({
  A: "[f2,f3,a3,c4]", B: "[g2,f3,bb3,c4]", C: "[a2,f3,g3,c4]", D: "[bb1,d3,f3] [c2,e3,g3], c4",
  E: "[[gb2,a3,d4] [g2,g3,bb3,d4], d3@31 ~]/2", F: "[bb2,f3,bb3,db4]", G: "[c2,c3,e3,g3,c4]@15 ~", H: "[f3,g3,a3,c4]",
  I: "[f3,g3,bb3,d4]", J: "[f3,a3,c4]", K: "[f3,bb3,d4] [e3,g3,c4]",
  L: "[[f3,bb3,d4,f4]@8 g3@7 ~@9 [d4,f4]@7 ~, ~@4 c4@11 ~, ~ [e4,g4]@2 ~, ~@8 b3 ~@7 a3@14 ~@2]/2", // Bb Dm Em
  M: "[g3,bb3,d4,f4]@2 ~ [g3,bb3,d4,f4] ~@2 [g3,bb3,d4,f4]@6 ~@4", N: "[g3,bb3,d4,f4]@2 ~ [g3,bb3,d4,f4]@4 ~",
  O: "[a3,c4,f4]", P: "[[bb3,d4]@16 [a3,c4]@15 ~ a3@7 ~ [g3,c4,e4]@8, f4@5 ~, ~@32 d4@15 ~]/3",
  Q: "[~ [bb3,d4], [f3,a3,c4] ~, ~@6 f4@25 ~]/2", R: "[a3,d4,f4]@8 [c4,e4,g4]@4 [d4,gb4,a4]@3 ~",
  S: "[f3,bb3,d4] [g3,c4,e4]", T: "[c4,e4,g4] [a3,c4,f4]", U: "[f3,bb3,d4]@6 [f3,bb3,d4]@9 ~", V: "[f3,bb3,d4]@7 ~",
  W: "[[f3,g3,bb3]@15 ~ [f3,g3,a3]@15 ~ [f3,bb3,d4]@8 [e3,g3,c4]@8, c4@13 ~@3]/3", X: "[f3,a3,c4,f4]/2",
})).s("gm_string_ensemble_2").gain(0.19)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@8 A B C D A B C E F G H I A B C D A B C E J K L M N@2 O P Q R@2 S T U V@3 M ~@4 A B C D A B C E J K L M N@2 O P Q
  R@2 S T U V@3 M ~@8 W@4
>`.pickRestart({
  A: "~@3 c3@5, c3 a3@3, ~@2 g3@13 ~", B: "~@6 d3@9 ~, d3@4 bb3@11 ~, ~@2 a3@13 ~",
  C: "~@6 f3@9 ~, e3@3 ~@5, ~@2 b3@5 ~@9, ~@4 c4@11 ~", D: "~@2 f3@4 bb3 ~@7 c4@2, d3@7 ~ e3@7 ~, ~@5 g3@3, ~@3 d4",
  E: "~@2 f3@4 bb3 ~@7 c4@2, d3@7 ~ e3@8, ~@5 g3@3, ~@3 d4", F: "~@3 f3 ~@3 e3, bb2!2, ~ f3@2 ~@2 g3@3, ~ bb3 ~ c4",
  G: "~@3 g3 ~@3 a3, a2 d3, ~@2 g3@4 ~@3 f3@7, ~@2 c4@2 ~ c4 f4@2, ~@11 e4@2 c4@3",
  H: "~@6 f4@9 ~, g2@15 ~, ~@2 bb3@3 bb3@10 ~, ~@3 g4@12 ~",
  I: "~@6 f4@9 ~, c3@15 ~, f4@5 bb3@10 ~, ~ bb3@2 g4@12 ~, ~@2 d4@13 ~",
  J: "~@3 d4 ~@3 c4, bb2!2, ~ f3@3 ~ e3@3, ~ bb3 ~ g3",
  K: "~@6 c4@2 ~@3 e4 ~@2 a3@2, a2@4 ~ c4 f4@2, ~ e3@3 d3@4, ~@4 g3@4 ~ a3@4 c4@3",
  L: "~@6 f4@9 ~, d4@5 d4@10 ~, ~ bb3@14 ~, ~@2 f3@13 ~, ~@3 g4@12 ~",
  M: "~@3 f4@4 ~, d4@5 d4@9 ~@2, ~ bb3@13 ~@2, ~ f3@6 ~, ~@3 g4@11 ~@2",
  N: "e4@2 ~ d4@2 ~@4 bb3@2 ~@2 bb3 c4@2, ~@2 f4@3 f4@3 f4@3 f4@5, ~@3 c4@3 a3 ~",
  O: "e4@2 ~ d4@2 ~ c4@2 ~ bb3@2 ~@2 bb3 c4@2, ~@2 f4@3 f4@3 f4@3 f4@5, ~@6 a3 ~",
  P: "~@6 a3@2 ~@4 g4@2 g3 ~, d4@8 ~@2 d4@5 ~, a3@6 ~@2 [g3,c4]@7 ~, ~ f4 ~@2", // C5
  Q: "e4@2 f4 d4@2 f4 ~@2 f4 bb3@2 ~ a3 bb3 c4@2, ~@6 c4@7 ~@3, ~@11 f4@5",
  R: "e4@2 ~ d4@2 ~@4 bb3@2 ~@2 bb3 c4@2, ~@2 f4@3 f4@3 f4@3 f4@5, ~@3 c4@4 ~, ~@3 a3",
  S: "a3@4 a3@2 d4 ~ [g3,c4,e4]@4 [a3,d4,gb4]@3 ~, d4@3 ~@5", T: "~@3 d4 ~@3 e4, bb2!2, ~ f3@3 ~ g3@3, ~ bb3 ~ c4",
  U: "~@6 c4@2 ~@7 d3, a2@4 ~ c4 f4@2, ~@2 e3@6 d3@7 ~, ~@4 g3@4 ~ a3@4 c4@3, ~@11 e4@2 ~ a3@2",
  V: "~@6 f4@9 ~, d4@15 ~, ~ bb3@14 ~, ~@2 f3@3 f3@10 ~, ~@3 g4@12 ~",
  W: "[~@15 c3@16 ~, f2 f2@2 ~, ~ g3@4 g3@4 g3@4 g3@16 ~@3, ~ a3@2 a3@2 a3@2 a3@8 ~, ~@3 c3@4 c3@4 c3@4 ~@17]/4",
})).s("gm_electric_guitar_clean").gain(0.36).pan(0.3)

// chords · electric guitar clean
const electric_guitar_clean_2 = note("<~@8 A B C ~ A B C ~@3 D@2 ~@68>".pickRestart({
  A: "~@7 c3, ~@5 g3@3, ~@3 a3", B: "~@7 d3, ~@5 a3@3, ~@3 bb3", C: "~@7 f3, ~@5 b3@2 ~, ~@3 c4",
  D: "[~@7 f4@3 ~@5 f4, ~@2 d4@3 ~@3, ~@9 bb3@4 bb3@7 ~@5 bb3@4 bb3@3, ~@5 f3@5 ~@3 f3@3, ~@11 g4@9 ~@7 g4@5]/2",
})).s("gm_electric_guitar_clean").gain(0.18)

// chords · pad warm
const pad_warm = note("<~@8 A B C D A B C D E F G H ~@30 A B C D A B C D ~@30>".pickRestart({
  A: "[a3,c4,f4]@7 ~@9", B: "[g3,bb3,d4,f4]@7 ~@9", C: "[a3,c4,e4,f4]@7 ~@9", D: "[bb3,d4,f4,a4]@8 [c4,e4,g4]@7 ~",
  E: "~ [g3,c4,e4], [f3,bb3,d4]@5 ~@3", F: "[g3,c4,e4] [a3,c4,f4]", G: "[f3,bb3,d4]@7 ~", H: "[f3,bb3,d4]@3 ~",
})).s("gm_pad_warm").gain(0.11)

// bass · fretless bass
const bass = note(`<
  ~@20 A B C D A B C D E F G H I J K L M N O P E Q R S R T A U V W A B C D A B C D E F G H I J K L M N O P E Q R S R T A
  U X Y Z AA AB AC AD@4
>`.pickRestart({
  A: "f2@5 ~ f2 ~ f2@5 ~ f2 gb2", B: "g2@5 ~ g2@7 ~ g2 ab2", C: "a2@10 f2@2 a2@2 f2 ~",
  D: "bb2@5 ~ bb2 b2 c3@4 g2 c2@3", E: "bb1@5 ~ bb1 ~ bb1@6 g1 ab1", F: "a1@5 ~ c2 db2 d2@4 d3 a2 d2 ~",
  G: "g2@2 ~ d3@3 g3@6 g3 d3 g2@2", H: "c2@3 g2@3 c3@3 g2 c3@3 g2 c2 ~", I: "f2@7 f1 f1@5 f2 f1 gb1",
  J: "g1@6 ~ g1 g1@5 ~ g1 ab1", K: "a1@5 ~ a1@2 f1@2 a1@2 c2 ~ f2@2", L: "bb1@5 f2 bb2 bb1 c2@2 g2 ~ c3 g2 c2@2",
  M: "f1@6 ~ f1 f1@5 f2 f1 gb1", N: "g1@6 ~ g1 g1@4 g2@2 g1 ab1", O: "a1@6 f1 ~ f1@2 a1 ~ c2@2 f2 ~",
  P: "bb1@4 bb2 bb1 c2 db2 d2@2 a2@2 d3 a2 d2@2", Q: "a1@6 c2 a1 d2@4 d3 a2 d2@2", R: "g2@3 d3@3 d3@8 ~@2",
  S: "c2@3 g2@3 g2@7 ~ bb2 a2", T: "c2@3 g2@3 g2@9 ~", U: "~@6 g1@8 g2 ab2, g2@13 ~@3",
  V: "a2@5 ~ a2@2 f2 ~ c2 ~ a1@2 c2@2", W: "bb1@5 ~ bb1 b1 c2@2 g2@2 c3 a2 g2@2", X: "a2@5 ~ a2@2 f2 ~ c2 ~ a1 ~ c2 b1",
  Y: "bb1@5 ~ bb1 b1 c2@4 g2@2 c2 ~", Z: "gb1@5 ~ gb1 ~ gb1@6 gb2 gb1", AA: "g1@5 ~ g1 ~ g1@4 g2 d2 g1 a1",
  AB: "bb1@5 ~@2 bb1 bb1@5 ~ bb1 b1", AC: "c2 g2@2 c3@2 g2 c2@2", AD: "f2/4",
})).s("gm_fretless_bass").gain(0.45)

// other · string ensemble 2
const string_ensemble_2_2 = note("<~@32 A B C D E F G H I@2 J@2 ~@18 A B C D E F G H I@2 J@2 ~@14>".pickRestart({
  A: "a5 c6", B: "bb5 d6", C: "c6 f6", D: "d6 c6", E: "a5@3 c6", F: "bb5@3 d6", G: "c6@3 f6", H: "d6",
  I: "[[d5,bb5,d6] [e5,c6] [g5,g6] [f5,d6,f6], ~ e6@2 ~]/2", J: "[c6@31 ~]/2",
})).s("gm_string_ensemble_2").gain(0.35)

// drums · kick
const kick = s("bd").struct(`<
  ~@20 A@2 B C A C B D E C F@2 A@4 G H A@3 I F@2 ~@2 J A J K A@2 B C A C B D E C F@2 A@4 G H A@3 I F@2 ~@2 J A G H@2 A@2
  H L ~@3
>`.pickRestart({
  A: "x!2", B: "x ~@7 x ~@4 x ~@2", C: "x ~@7 x ~@2 x ~@4", D: "x ~@7 x ~@2 x ~@2 x ~", E: "x ~@3 x ~@2 x",
  F: "x ~@2 x ~@4", G: "x ~@6 x!2 ~@7", H: "x ~@3 x!2 ~@2", I: "x ~@7 x ~ x ~@2 x ~@2", J: "x ~@2 x!2 ~@3",
  K: "x ~@3 x!2 ~ x", L: "x",
})).gain(0.8)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@21 A@2 B A@2 C A@3 ~@2 A@2 ~ A ~ A@3 D B ~@5 A ~ A ~ A@2 B A@2 C A@3 ~@2 A@2 ~ A ~ A@3 D B ~@5 E ~ A@2 C A@2 ~@4
>`.pickRestart({
  A: "~@7 x ~@8", B: "~@7 x ~@7 x", C: "~@7 x ~@3 x ~@4", D: "~@6 x ~@8 x", E: "~@3 x ~@4",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct("<~@20 A@10 ~@2 A@7 B A@2 ~@4 A@14 ~@2 A@7 B A@2 ~@4 A@8 ~@4>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.8)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@20 A B C D E F C B E F ~@2 G F@2 H I J K L ~@2 M@2 ~@2 E F B@2 A B C D E F C B E F ~@2 G F@2 H I J K L ~@2 M@2 ~@2 I
  F@3 E F@2 N ~@4
>`.pickRestart({
  A: "~ x!2 ~ x!3 ~", B: "x ~ x!3 ~ x ~", C: "x ~ x!3 ~ x!2", D: "x ~ x ~ x ~ x!2", E: "~ x!3", F: "x!4",
  G: "~ x!4 ~ x!2", H: "x!7 ~", I: "~ x!2 ~ x ~ x ~", J: "x!3 ~ x ~ x ~", K: "x!5 ~ x!2", L: "x!4 ~@4", M: "~@3 x",
  N: "x ~ x ~ x!2 ~@2",
})).gain(0.64)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@20 A B@2 C D@2 B@2 E D ~@2 F D@2 ~ G@2 F ~@3 H@2 ~@2 E D I J A B@2 C D@2 B@2 E D ~@2 F D@2 ~ G@2 F ~@3 H@2 ~@2 G K
  D@5 C ~@4
>`.pickRestart({
  A: "~@3 x ~@4", B: "~ x ~@3 x ~@2", C: "~ x ~ x ~@4", D: "~ x ~ x ~ x ~@2", E: "~ x ~ x ~ x ~ x", F: "~@5 x ~@2",
  G: "~@3 x ~ x ~@2", H: "~@7 x", I: "~ x ~@3 x ~ x", J: "~ x ~@5 x", K: "~@2 x ~@3 x ~@3 x ~@2 x ~@2",
})).gain(0.32)

// drums · low tom
const low_tom = s("lt").struct("<~@39 [~@7 x] ~@29 [~@7 x] ~@18>").gain(0.8)

// drums · mid tom
const mid_tom = s("mt").struct("<~@39 A ~@5 A ~@23 A ~@5 A ~@12>".pickRestart({
  A: "~@11 x!2 ~@3",
})).gain(0.72)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@39 A ~@5 A ~@23 A ~@5 A ~@12>".pickRestart({
  A: "~@5 x ~@2",
})).gain(0.32)

// drums · open hat
const open_hat = s("oh").struct(`<
// … 37 more lines

More by Pooh