Strudelify

Notte a sorpresa

Pooh

KeyD minorTempo85 bpm
0:00/0:00
// Notte a sorpresa — Pooh
// 85 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 65 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(85/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.

// other · electric guitar jazz
const electric_guitar_jazz = note("<A B C D E@2 ~@6 F G H@2 I@2 ~@19 J@2 K@2 L ~@23>".pickRestart({
  A: "~@6 f4 ~ f4!2 ~@2 c4 ~ c4!2 ~ c4!3 ~ c4!2 ~, ~@11 f4@2 ~@11",
  B: "[bb3,b3] ~@2 bb3@8 ~@2 a3@2 c4@3 f4@2 ~ a4@2 c5, c4@3 ~@9 g3@2 ~@6 g4@2 ~@2", // Bmaj7
  C: "c5@9 f4 ~ f4 f4@2 ~ d4 ~@3 d4@2 a3@2 bb3, ~@7 e4 ~ c4 ~@2",
  D: "c4@3 bb3@5 ~@2 c4@2 db4 d4@2 ~ gb4 ~@2 a4@2 b4 db5 ~, b3 ~@8 b3@2 ~@4 e4@2 ~ g4@2 ~@4",
  E: "[~ e5@2 ~ g5@2 ~ g5@2 ~ g5@2 a5@19 ~@17, d5@2 ~ gb5@2 ~ gb5@2 ~ gb5@2 ~@37]/2",
  F: "~@16 b3 ~@2 d4 ~@2 gb4@2, ~@15 d4@2 ~@4 g4@2 ~",
  G: "d4 b3@2 a3 g3@3 ~@2 d4@2 ~ g4@2 ~ d4 a3@8, ~@11 e4@2 ~ gb4@2 ~@8",
  H: "[~@6 a3 b3@2 d4 e4 ~@2 d4@2 g4@18 ~@4 e3@2 ~ a3@2 gb3 gb3@2 a3!2 ~, ~@12 b3@2 ~@22 d3@2 ~ gb3@2 ~@7]/2",
  I: "[a3 ~@2 db4 ~@3 gb4 ~@2 a4@2 ~ db5 ~@2 e5@2 ~ g5@2 gb5@2 ~ a5@2 ~@22, ~@2 b3@2 ~ d4@2 ~@41, ~@6 e4@2 ~ g4@2 ~ b4@2 ~ d5@2 ~ gb5@2 ~@3 g5@2 ~@23]/2",
  J: "[~@13 g4@2 gb4 d4 ~@4 b3@5 ~ a3 ~ a3 ~ d4@2 ~ g4@2 gb4@2 d4 a3@9, ~@12 gb4@2 ~@16 b3@2 ~ gb4@2 ~@13]/2",
  K: "[~@6 a3@2 ~ d4@2 ~ g4@2 ~ d4 ~ b3@12 ~@8 e3@2 ~ g3@2 ~ gb3@2 ~ gb3@2, ~@8 b3@2 ~ e4@2 ~ gb4@2 ~@20 d3@2 ~ gb3@2 ~ a3@2 ~ g3@2 ~]/2",
  L: "~ [gb3,b3]@2 ~ [a3,d4]@2 ~ [db4,gb4]@2 ~@5 db5 ~ [b4,e5]@2 ~ [d5,g5]@2 ~ d5 g5, [e3,a3]@2 ~ [g3,db4]@2 ~ [b3,e4]@2 ~ [d4,g4]@2 a4@2 g4@2 [a4,d5]@2 ~ [db5,gb5]@2 ~ [db5,gb5]@2 ~, ~@5 e4 [gb4,b4] ~@5", // B5 D5 Gb5 E5 G5 A5 Gdim E5 …
})).s("gm_electric_guitar_jazz").gain(0.31).pan(0.4)

// bass · electric bass finger
const bass = note(`<
  A B A C@2 D E F G H I F J K@2 L M N O P Q R S T U V W V X Y D E F G H I F Z@3 AA M AB O AC AD AE S AF U V W V AG AH AI
  AJ@2 AK AI AL AM@4
>`.pickRestart({
  A: "f1@9 g1@3 a1@8 ~ a1@3", B: "g1@8 ~ g1@3 c2@4 g1@2 ~ c2@2 a1@3, ~@9 a1 ~@2",
  C: "[g1@7 ~@3 ab1 ~ a1@14 ~ e2@3 a2 gb2 ~ e2@2 ~ d2@8 ~ d2@2 ~, ~@9 g1@2 ~@37]/2", D: "d2@11 ~ d2@8 ~ d2@2 ~",
  E: "a2@2 ~ a2@2 ~ a1@6 d2@8 ~ d2@3", F: "gb2@8 ~ gb2@3 e2@8 ~ e2@3", G: "a2@2 ~ a2@3 a1@6 d2@8 ~ d2@2 ~",
  H: "d2@11 ~ d2@8 ~ d2@3", I: "b2@3 a2@3 a1@6 d2@8 ~@2 e2@2, a2 ~@20 d2@2 ~",
  J: "b2@3 a2@3 a1@5 ~ g2@8 ~ g2@2 ~, a2 ~@23",
  K: "[g2@8 ~ g2@3 gb2@9 d2@11 ~ d2@2 ~ e2@2 ~ e1@5 ~ e1@3, ~@35 eb2@2 ~ b1@2 ~@8]/2",
  L: "a1@8 ~@2 b1 ~ d2@8 ~ d2@3, ~@9 a1@2 ~@13", M: "a1@8 ~ a1@2 ~ a1@8 ~ a1@2 ~",
  N: "f1@3 f2 ~@2 f1@2 ~ g1 ~ a1@3 c2 d2 ~@2 f2@2 g2 ~@3", O: "a1@3 a2 ~@2 a1 ~@2 b1@2 c2@2 ~ c2 e2@2 ~ g2 ~ a2 ~@3",
  P: "g1@3 ~@3 g1@2 ~ a1 bb1@6 ~@2 f2@2 g2@2 ~@2", Q: "c2@3 c3 ~@2 c2@2 ~ d2@2 e2@7 d3@2 c3 ~@3",
  R: "f1@3 f2 ~@2 f1 ~@2 g1 a1@3 ~ c2 d2 ~@2 f2@2 g2 ~@3", S: "a1@3 a2 ~@2 a1 ~@2 b1 c2@3 ~ c2 e2@2 ~ g2 ~ a2 ~@3",
  T: "g1@3 g2 ~@2 g1@2 ~ a1@2 bb1@2 ~ bb1 d2@2 ~ f2@2 g2@2 ~@2", U: "c2@3 c3 ~@2 c2 ~@2 d2@2 e2@7 ~ c3 ~@4, ~@9 d3 ~@2",
  V: "f1@8 ~ f1@3 a1@8 ~ a1@3", W: "g1@8 ~ g1@3 c2@5 ~@2 a1@2 g1@3, ~@9 c2 ~@2",
  X: "g1@8 ~ g1@2 ~ a1@8 ~ e2@3, ~@11 ab1@2 ~@11", Y: "a2@3 gb2@3 ~ gb2@4 ~ d2@8 ~ d2@2 ~, ~@3 a2 ~@8",
  Z: "[b2@3 a2@3 a1@5 ~ g2@3 d3@6 g3@13 ~@5 gb3@3 gb2@3 d2@11 ~ d2@2 eb2 e2 b1 ~ e1@5 ~ e1@3, a2 ~@71]/3",
  AA: "a1@7 e2 ~ a1 ~@2 d2@8 ~ d2@2 ~", AB: "f1@2 ~ f2 ~@2 f1@2 ~ g1 ~ a1@2 ~ c2 d2 ~@2 f2@2 g2 ~@3",
  AC: "g1@3 ~@3 g1@2 ~ a1 ~ bb1@6 ~ f2@2 g2@2 ~@2", AD: "c2@3 c3 ~@2 c2@2 ~ d2@2 e2@7 ~ c3 ~@4, ~@9 d3 ~@2",
  AE: "f1@3 f2 ~@2 f1@2 ~ g1@2 a1@2 ~ c2 d2 ~@2 f2@2 g2 ~@3",
  AF: "g1@3 g2 ~@2 g1@2 ~ a1@2 bb1@3 bb1 d2 ~@2 f2@2 g2@2 ~@2", AG: "g1@8 ~ g1@2 ~ d2@8 ~ d2@2 ~",
  AH: "d2@12 g1@2 ~ g1@5 ~@2 a1@2, ~@21 g1@2 ~", AI: "b1@2 ~ b1@5 ~ b1@3 a1@2 ~ a1@5 ~ a1@3",
  AJ: "[d2@4 a2@3 d3@2 b2@2 ~ g1@2 ~ g1@5 ~ g1@2 ~ b1@2 ~ b1@5 ~ b1@3 a1@2 ~ a1@5 ~ a1@3, ~@23 a1@2 ~@23]/2",
  AK: "d2@4 a2@3 ~@2 b2@2 ~ g1@8 ~@2 a1@2, ~@8 d3@2 ~@11 g1@2 ~",
  AL: "d2@4 a2@3 d3@2 b2@2 ~ g1@7 ~@3 a1@2, ~@21 g1@2 ~",
  AM: "[b1@2 ~ b1@5 ~ b1@3 a1@2 ~ a1@6 b1@2 c2@2 d2@4 gb1@12 g1@43 ~@12]/4",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  A B C D E ~ F G H ~ I J K ~@4 L M N O P Q N R S T U V@2 ~ W X Y ~ Z AA AB ~@4 AC AD N O AE AF AG AH@2 AI AJ AK@2 AL AM
  AL AM AN AM AO@4
>`.pickRestart({
  A: "~@6 [a3,c4,f4] ~ [a3,c4,f4] ~@6 [c4,e4,g4] ~@5 [d4,f4,bb4] ~ [d4,f4,bb4]", // F C Bb
  B: "~@3 [d4,f4,bb4] ~ [d4,f4,bb4] ~@9 [d4,f4,bb4] ~@5 [e4,g4,c5] ~@2", // Bb C
  C: "~@6 [a3,c4,f4]!2 ~@7 [c4,e4,g4] ~@5 [d4,f4,bb4] ~ [d4,f4,bb4]", // F C Bb
  D: "~@3 [d4,f4,bb4] ~ [d4,f4,bb4] ~@6 [db4,e4,a4] ~@4 e4 [db4,e4,a4] ~@2 [db4,e4,a4] ~@2", // Bb A
  E: "~@2 e4 [db4,e4,a4] ~@2 [db4,e4,a4] ~@17", F: "~@20 d4 [gb4,a4,d5] ~ [gb4,a4,d5]",
  G: "~@3 [e4,a4,db5] ~@8 [d4,g4,b4] ~@2 d4 ~ [d4,g4,b4] ~@3 [d4,g4,b4] ~ [d4,g4,b4]", H: "~@3 [db4,e4,a4] ~@20",
  I: "~@21 [gb4,a4,d5] ~ [gb4,a4,d5]", // D
  J: "~@3 [db4,e4,a4] ~@5 [db4,e4,a4] ~@5 [b3,d4,g4] ~@2 d4 ~ [d4,g4] [b3,d4,g4] ~@2", K: "~@3 [db4,e4,a4]@2 ~@19",
  L: "~@3 [a3,c4,f4] ~ [a3,c4,f4] ~@2 a3 [a3,c4,f4]@2 ~@4 [a3,c4,f4] ~ [a3,c4,f4] ~@2 a3 [a3,c4,f4]@2 ~", // F
  M: "~@3 [c4,e4,g4] ~ [c4,e4,g4] ~@2 c4 [c4,e4,g4]@2 ~@4 [c4,e4,g4] ~ [c4,e4,g4] ~@2 c4 [c4,e4,g4]@2 ~", // C
  N: "~@3 [bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [bb3,d4,f4]@2 ~@4 [bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [bb3,d4,f4]@2 ~", // Bb
  O: "~@3 [bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [bb3,d4,f4]@2 ~@4 [g3,c4,e4] ~ [c4,e4] ~@3 [g3,c4,e4]@2 ~", // Bb C
  P: "~@3 [a3,c4,f4] ~ [a3,c4,f4] ~@2 a3 [a3,c4,f4]@2 ~@4 [a3,c4,f4] ~ [a3,c4] ~@3 [a3,c4,f4]@2 ~", // F Am F
  Q: "~@3 [c4,e4,g4] ~ [e4,g4] ~@2 c4 [c4,e4,g4]@2 ~@4 [c4,e4,g4] ~ [c4,e4,g4] ~@3 [c4,e4,g4]@2 ~", // C Em C
  R: "~@3 [bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [bb3,d4,f4]@2 ~@4 [g3,c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~@2", // Bb C
  S: "~@3 f3 ~@3 e3, f3@3 ~ e3@3 ~, ~@3 a3@9 ~@3 g3@8 ~, ~@6 c4@6 ~@6 c4@5 ~",
  T: "~@6 bb3@5 ~@7 c4@5 ~, d3@23 ~, ~ f3@7, ~@11 bb3@13, ~@15 g3@8 ~",
  U: "~@9 f3@3 ~@9 e3@2 ~, f3@3 ~ e3@3 ~, ~@3 a3@8 ~@4 g3@8 ~, ~@6 c4@5 ~@7 c4@5 ~",
  V: "[~@6 bb3@4 bb3@2 ~@6 d4@3 b3@2 ~ db4@10 ~@14, d3@12 a2@11 ~@25, ~@3 f3@9 ~@2 d3@10 ~@24, ~@15 g3@8 ~@25, ~@17 b3@4 ~@2 d4@2 ~@23]/2",
  W: "~@17 gb4 [d4,gb4,a4] ~ [d4,gb4,a4] [db4,e4,a4] ~ [db4,e4,a4]", // D A
  X: "~@3 [db4,e4,a4] ~@5 [db4,e4,a4]@2 ~@6 [b3,d4,g4]!2 ~@2 [b3,d4,g4] ~ [b3,d4,g4]", // A G
  Y: "~@3 [db4,e4,a4]@2 ~@4 [db4,e4,a4]@2 ~@13", Z: "~@15 [d4,gb4,a4] ~@5 [e4,a4,db5] ~ [e4,a4,db5]",
  AA: "~@3 [db4,e4,a4] ~@3 [db4,e4,a4] ~@7 [b3,d4,g4] ~ [b3,d4,g4] ~@2 [b3,d4,g4] ~@3", // A G
  AB: "[b3,d4,g4] ~@4 [db4,e4,a4] ~@3 [db4,e4,a4] ~@14", // G A
  AC: "~@3 [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~@5 [a3,c4,f4] ~ [a3,c4,f4] ~@2 a3 [a3,c4,f4]@2 ~", // F
  AD: "~@3 [c4,e4,g4] ~ [c4,e4,g4] ~@3 [c4,e4,g4]@2 ~@4 [c4,e4,g4] ~ [e4,g4] ~@3 [c4,e4,g4]@2 ~", // C Em C
  AE: "~@3 [a3,c4,f4] ~ c4 ~@2 a3 [a3,c4,f4] ~ [a3,c4,f4] ~@2 a3 [a3,c4,f4]@2 ~@4 [a3,c4,f4] ~ [a3,c4,f4]", // F
  AF: "~@3 [c4,e4,g4] ~ [c4,e4,g4] ~@3 [c4,e4,g4] ~ [c4,e4,g4] ~@3 [c4,e4,g4] ~@4 c4 [c4,e4,g4] ~ [c4,e4,g4]", // C
  AG: "~@2 bb3 [bb3,d4,f4]@2 ~@4 [bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [bb3,d4,f4]@2 ~@4 [bb3,d4,f4] ~ [bb3,d4,f4]", // Bb
  AH: "[~@3 [bb3,d4,f4]@2 ~@4 [bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [g3,c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~ g3 ~@9 f3@3 ~@9 e3@3, ~@23 e4@13 ~@12, ~@23 c4@7 c4@6 ~@6 c4@6, ~@8 f3@3 ~ e3@3 ~, ~@9 a3@3 ~ g3@3]/2", // Bb C
  AI: "~@6 bb3@5 ~@7 c4@5 ~, d3@23 ~, ~@3 f3@20 ~, ~@11 bb3@13, ~@15 g3@8 ~",
  AJ: "~@3 f3 ~@3 e3, f3@3 ~ e3@3 ~, ~ a3@3 ~ g3@3, ~ c4 ~ c4",
  AK: "[~@6 bb3@5 ~@22 d3@2 ~@10 g3@3, d3@11 ~ d3@18 a3@5 ~ g3@9 ~@3, ~@3 f3@8 ~@4 a3@12 d4@8 ~@4 b3@9, ~@18 d4@6 gb4@11 ~@7 d4@6, ~@21 g4@14 ~@13]/2",
  AL: "~@3 gb3 ~@3 e3, gb3@3 ~ e3@3 ~, ~ a3@3 ~ g3@3, ~ d4 ~ c4",
  AM: "~@3 gb3 ~@3 g3, gb3@3 ~ g3@3 ~, ~@3 a3@8 ~@4 b3@9, ~@6 d4@5 ~@7 d4@6",
  AN: "~@3 gb3 ~@3 e3, gb3@3 ~ e3@3 ~, ~@3 a3@8 ~@4 g3@8 ~, ~@6 d4@5 ~@7 c4@5 ~",
  AO: "[~@9 gb3@3 ~@10 e3@3 ~@7 d4@7 ~@2 b3@34 ~@21, gb3@9 ~@3 e3@10 ~@74, ~@3 a3@9 ~@3 g3@10 gb3@9 ~@6 g3@35 ~@21, ~@6 d4@6 ~@6 c4@6 ~@5 a3@6 ~@61]/4",
})).s("gm_electric_guitar_clean").gain(0.16).pan(0)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note(`<
  ~@3 A B ~@2 C ~@3 D ~@7 E F G H E I ~@6 J ~@10 K L M N O P Q R ~@12 S@3
>`.pickRestart({
  A: "~@17 db4 ~@6", B: "~@2 [db4,a4] ~@21", C: "~@20 d4 ~@3", D: "~@17 d4 g4 ~@5", E: "~@8 bb3 ~@11 bb3 ~@3",
  F: "~@8 bb3 ~@8 g3 ~@2 g3 ~@3", G: "~@17 f4 ~@2 a3 ~@3", H: "~@5 c4 ~@14 c4 ~@3", I: "~@8 bb3 ~@15",
  J: "~@17 [d4,a4] ~@6", K: "~@8 a3 ~@15", L: "~@8 c4 ~@8 c4 ~@2 c4 ~@3", M: "~@20 bb3 ~@3", N: "~@17 g3 ~@2 g3 ~@3",
  O: "~@5 [a3,f4] ~@18", P: "~@2 c4 ~@5 c4 ~@15", Q: "~@14 bb3 ~@9", R: "~@2 bb3 ~@17 g3 ~@3", S: "[~@5 d3@12 ~@7]/3",
})).s("gm_electric_guitar_clean").gain(0.1).pan(0)

// chords · string ensemble 2
const string_ensemble_2 = note("<A B A C@2 ~@12 D@2 E@8 F@3 ~@12 G@2 H@4 I@7 J@6 K@4>".pickRestart({
  A: "[f4,a4,c5]@11 ~ [g4,c5,e5]@11 ~", B: "[bb4,d5,f5]@2 [bb4,d5,f5] [c5,e5,g5]",
  C: "[[bb4,d5,f5]@12 [g4,b4,d5]@17 [a4,db5,e5]@7 ~@12]/2", D: "[f5 [g4,e5], c5, a4@11 ~@13]/2",
  E: "[f4@12 f5@24 [e5,g5]@12 [a4,f5]@24 [g4,e5]@23 f4@13 f5@24 [e5,g5]@12 [a4,f5]@12 [g4,e5]@11 [d5,f5]@19 [c5,e5,g5]@6, [bb4,d5]@36 c5@59 d5@37 c5@36 ~@24, ~@95 bb4@35 ~@37 bb4@17 ~@8]/8", // Em Dm C Em Dm C Dm C …
  F: "[[a4,f5]@12 [g4,e5]@11 [bb4,f5]@12 ~@12 db5@9 ~@16, ~@23 d5@24 ~@25, ~@35 a4@21 ~@16, ~@9 e5@5 ~@4]/3", // Dm C Bb5
  G: "[f5 e5, c5, a4@11 ~ g4@11 ~]/2", H: "[f4@2 f5 [e5,g5] f5@2 e5@2, d5@3 c5@5, bb4@34 ~@14 a4@23 ~ g4@22 ~@2]/4",
  I: "[f4@23 f5@13 [e5,g5]@11 f5@12 ~ g4@11 [d5,f5]@18 ~ e5@6 f5@11 [g4,e5]@12 [bb4,f5]@13 g5@12 gb5@12 [b4,g5]@12, d5@36 c5@36 ~@17 g5@6 ~ a4@10 ~@26 a4@23 ~@13, bb4@34 ~@13 a4@11 ~ e5@11 ~ bb4@17 ~@2 c5@28 ~ d5@49]/7", // Em Dm C Bb5 Em
  J: "[[a4,gb5]@11 [e5,g5]@19 [gb5,a5]@5 g5@13 [a4,gb5]@11 ~ [c5,e5]@18 [gb5,a5]@6 [b4,g5]@12 gb5@12 [e5,g5]@18 [gb5,a5]@5 g5@13, ~@11 c5@17 ~@2 d5@30 ~@18 d5@31 ~@17 d5@18, ~@35 b4@11 ~@13 g5@18 ~@19 a4@10 ~@2 c5@16 ~@7 b4@11 ~@2]/6", // D Em Gbm D C Gbm Em Gbm
  K: "[gb5@12 [e5,g5]@20 [gb5,a5]@8 [b4,g5]@39 ~@17, a4@5 ~ c5@9 ~ d5@24 ~@8]/4", // Em Gbm Em
})).s("gm_string_ensemble_2").gain(0.17).pan(0.6)

// chords · epiano1
const epiano1 = note(`<
  A B A C D E F G@2 E H I@4 J K L M N O P M Q R A S T C U V W X@2 E W Y@4 Z AA P AB Q AC AD M AE AF AG AH AI AJ AK AL@2
  AM@2 AN@2 AO@3 ~
>`.pickRestart({
  A: "[a4,c5,f5]@11 ~ [g4,c5,e5]@11 ~", B: "[f4,bb4,d5]@11 ~ [bb4,d5,f5]@5 ~ [c5,e5,g5]@6",
  C: "[f4,bb4,d5]@11 ~ [g4,b4,d5]@12", D: "~ a5 [d5,gb5,a5]@2, [a4,db5,e5]@12 a4 ~@11", E: "[a4,db5,e5,a5] [g4,b4,d5]",
  F: "[g4,b4,d5]@6 [a4,db5,e5]@5 ~ [a4,d5,gb5,a5]@12", // G A D
  G: "[[a4,db5,e5,a5]@11 ~ [g4,b4,d5]@9 ~@6 [a4,db5,e5]@3 [a4,db5,e5]@5 ~ [a4,d5,gb5,a5]@12, ~@7 [g4,b4,d5]@3 ~@6]/2", // A G A D G
  H: "[g4,b4,d5]@5 ~ [a4,db5,e5]@6 [a4,d5,gb5,a5]@11 ~", // G A D
  I: "[[a4,db5,e5,a5]@11 ~ [g4,b4,d5]@6 [g4,b4,d5]@3 [g4,b4,d5]@6 [a4,b4,db5,e5]@3 [a4,b4,db5,e5]@5 ~ d5@9 [d5,gb5]@9 [d5,gb5]@5 ~ [a4,d5]@9 ~@6 gb5@8 ~ d5@9 d5@3, ~@36 [gb4,b4]@23 ~ gb4@23 ~ [g4,b4]@12, ~@45 b5@14 ~@10 [a4,d5,a5]@14 ~@13]/4", // A G A D D5 B5 G D5
  J: "g4@6 g4@3 g4@2 ~ [gb4,a4,d5]@11 ~, [b4,d5]@11 ~@13", // D Bm
  K: "[g4,b4,d5]@9 g4@3 g4@3 [g4,b4,d5]@8 ~, ~@3 [b4,d5]@2 ~@3", L: "[a4,c5,f5]@9 [a4,c5,f5]@14 ~",
  M: "[g4,c5,e5]@23 ~", N: "[bb4,d5,f5]@9 [bb4,d5,f5]@14 ~", O: "[bb4,d5,f5]@11 ~ [c5,e5,g5]@11 ~",
  P: "[a4,c5,f5]@23 ~", Q: "[f4,bb4,d5]@12 [bb4,d5,f5]@11 ~", R: "[f4,bb4,d5]@12 [g4,c5,e5]@11 ~",
  S: "[f4,bb4,d5]@17 ~ [g4,c5,e5]@5 ~", T: "[a4,c5,f5]@11 ~ [g4,c5,e5]@9 ~@3",
  U: "~ a5 [a4,d5,gb5,a5]@2, [a4,db5,e5] ~", V: "[a4,db5,e5,a5]@11 ~ [g4,b4,d5]@12",
  W: "[g4,b4,d5]@6 [a4,db5,e5]@6 [a4,d5,gb5,a5]@11 ~", // G A D
  X: "[[a4,db5,e5,a5]@11 ~ [g4,b4,d5]@9 [g4,b4,d5]@9 [a4,db5,e5]@6 [a4,d5,gb5,a5]@12]/2", // A G A D
  Y: "[[a4,db5,e5,a5]@12 g4@9 g4@3 g4@5 ~ [a4,db5,e5]@6 [d5,gb5]@9 ~@9 b4@5 ~@10 a5@14 ~ [g4,b4,d5]@12, ~@12 [b4,d5]@18 ~@6 b4@18 ~@6 [a4,d5]@23 ~@13, ~@45 [d5,gb5,b5]@14 ~@4 gb5@20 ~@13]/4", // A D G Bm D5 Bm
  Z: "[a4,db5,e5]@11 ~ [gb4,a4,d5]@11 ~", AA: "[g4,b4,d5]@9 [g4,b4,d5]@9 [g4,b4,d5]@5 ~",
  AB: "[g4,c5,e5]@18 [g4,c5,e5]@5 ~", AC: "[f4,bb4,d5] [g4,c5,e5]", AD: "[a4,c5,f5]@3 [a4,c5,f5]",
  AE: "[f4,bb4,d5] [bb4,d5,f5]", AF: "[f4,bb4,d5]@11 ~ [g4,c5,e5]@11 ~", AG: "[a4,c5,f5]@11 ~ [c5,e5,g5]@11 ~",
  AH: "[bb4,d5,f5]@17 ~ [c5,e5,g5]@5 ~", AI: "[c5,f5,a5]@11 ~ [c5,e5,g5]@11 ~", AJ: "[bb4,d5,f5]@11 ~ [a4,d5,g5]@12",
  AK: "[a4,d5,gb5]@11 ~ [b4,d5,g5]@11 ~", // D G
  AL: "[[a4,d5,gb5]@11 ~ [c5,e5]@12 [c5,e5]@5 ~ [d5,gb5,a5]@6 [b4,d5,g5]@11 ~, ~@12 g5@17 ~@19]/2", // D C D G
  AM: "[[a4,d5,gb5]@11 ~ [c5,e5]@12 [c5,e5,g5]@5 ~ [d5,gb5,a5]@6 [b4,d5,g5]@12, ~@12 g4@17 ~@19]/2", // D C D G
  AN: "[[a4,d5,gb5]@11 ~ [c5,e5,g5]@18 [d5,gb5,a5]@5 ~ [b4,d5,g5]@11 ~]/2", // D C D G
  AO: "[[a4,d5,gb5]@11 ~ [c5,e5,g5]@20 [d5,gb5,a5]@8 ~ [b4,d5,g5]@23 ~@8]/3", // D C D G
})).s("gm_epiano1").gain(0.17).pan(0.6)

// other · electric guitar muted
const electric_guitar_muted = note("<~@16 A B C D E F G H I ~@16 A B C D E F G H I ~@15>".pickRestart({
  A: "a3 ~@3 a3 ~@4 a3!2 ~@2 a3 ~@4 a3!2 ~@2 a3 ~", B: "a3 ~@5 f2 ~@2 g2 ~ a2 ~@2 c3 d3 ~@2 f3@2 g3 ~@3",
  C: "a2@3 a3 ~@2 a2 ~@3 c3 ~@3 [c3,d3] e3 ~@2 g3@2 a3 ~@3, ~@9 b2@2 ~@13", // Csus2
  D: "g2@3 g3 ~ g3 ~@4 bb2@2 ~@7 g3 ~@4, ~@9 a2@2 ~@7 f3@2 ~@4",
  E: "c3@3 c4 ~ c4 ~@4 e3@5 ~@4 c4 ~@4, ~@9 d3@2 ~@7 d4@2 ~@4",
  F: "f2@3 f3 ~@2 f2 ~@2 g2@2 a2 ~@2 c3 d3 ~@2 f3 ~ g3 ~@3",
  G: "a2@3 a3 ~@2 a2 ~@3 c3@2 ~@2 c3 e3@2 ~ g3@2 a3 ~@3, ~@9 b2@2 ~@13",
  H: "g2@3 g3 ~@2 g2 ~@2 a2 bb2@2 ~@2 bb2 d3 ~@2 f3@2 g3@2 ~@2",
  I: "c3@3 c4 ~@2 c3 ~@2 d3 e3@6 ~@3 c4@2 ~@3, ~@9 d4 ~@2",
})).s("gm_electric_guitar_muted").gain(0.72).pan(0.6)

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

// drums · snare
const snare = s("sd").struct("<~@17 [~ x ~ x]!12 [~ x ~@2] ~@12 [~ x ~ x]!20 ~@3>").gain(0.72)

// drums · hihat
const hihat = s("hh").struct("<[x ~ x!3 ~ x!2]!17 ~@12 [~@6 x!2] [x ~ x!3 ~ x!2]!12 ~@23>").gain(0.48)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@16 [~@13 x!2 ~@3 x ~@2 x ~@2] ~@24 [~@14 x ~@3 x ~@2 x ~@2] ~@20 [~@4 x!2 ~@6] ~@2>")
  .gain(0.8)

// drums · open hat
const open_hat = s("oh").struct("<[~ x ~@3 x ~@2]!17 ~@12 [~@5 x ~@2] [~ x ~@3 x ~@2]!12 ~@23>").gain(0.48)

// drums · high tom
const high_tom = s("ht").struct("<~@16 A B ~@3 B ~@19 A B ~@3 C D ~@14 E ~@2>".pickRestart({
  A: "~@5 x ~@2", B: "~@12 x!4 ~@5 x ~@2", C: "~@15 x ~@2 x!4 ~@2", D: "~ x ~@6", E: "~@5 x!2 ~@17",
})).gain(0.64)

// drums · crash
const crash = s("cr").struct("<~@17 A B ~@2 A B ~@19 A B ~@2 C D ~@14 E ~@2>".pickRestart({
  A: "~@2 x ~@4 x", B: "~@3 x", C: "~ x ~@2", D: "~ x ~@4 x ~", E: "~@2 x",
})).gain(0.48)

// … 61 more lines

More by Pooh