Strudelify

Garden Party

Mezzoforte

KeyD majorTempo118 bpm
0:00/0:00
// Garden Party — Mezzoforte
// 118 bpm, 4/4, key D 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: Full arrangement: all 114 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(118/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 · epiano1
const epiano1 = note(`<
  ~@2 A@2 B@6 C@3 D@3 E@8 F@16 G@5 H I J K L@4 M N O@2 P N Q@2 R@3 S@8 T@8 U@8 V@8 F@16 W ~
>`.pickRestart({
  A: "[~@15 [a#2,d4,f4,a4,c5]@17]/2", // A#maj7
  B: "[~ [f4,a4]@3 [d4,f4,a4]@3 [a#3,d4,f4,a4]@6 [a#3,d4,f4,a4]@6 [f4,a4]@5 g4@5 ~ g4@23 ~@13 a5@11 ~ [c4,d#4,g4]@18, ~ c5@6 [g2,c5]@23 [a2,b3,d4,e4,a4]@47 [f2,a#3]@19, ~@19 [a#3,d4]@11 ~@23 g4@23 ~@20, ~@54 [b4,d5,e5]@23 ~@19]/6", // F Dm A#maj7 F Cm C5 Asus4 A#5 …
  C: "[~@5 [d4,f4]@18 [d4,f4,a4]@3 [d4,a#4]@3 d4@5 [d4,d5]@4 [c4,c5]@4 ~ [e2,a#4,d5,e5,g5]@4 ~, ~@5 [a#2,a3,c4]@23 ~ [g2,a#3,f4,a4]@14 ~@5]/3", // Dm Gm D C Em7b5 F Gm7
  D: "[[d4,e4,g4,b4]@15 [d4,e4,g4,b4]@15 ~ [d4,e4,g4,b4]@12 ~ [a2,b4,d5,e5,a5]@3 [a2,b4,d5,e5,a5], a2@43 ~@5]/3", // Em7 Asus4
  E: "[~@15 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~ [b2,a3,d4,f#4] [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~@3 [b2,a3,d4,f#4] ~ [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~ [b2,a3,d4,f#4] [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2]/8", // D C#m D A Bm7 D A D …
  F: "[~ [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~@3 [b2,a3,d4,f#4] ~ [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~ [b2,a3,d4,f#4] [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~@3 [b2,a3,d4,f#4] ~ [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~ [b2,a3,d4,f#4] [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2]/8", // D C#m D A Bm7 A D C#m …
  G: "[~ [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~@3 [b2,a3,d4,f#4] ~ [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~ [b2,a3,d4,f#4] [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,b3,d4,f#4,a4]@3 [a2,b3,c#4,e4,a4]@2 ~ [b2,b3,d4,f#4,a4]@2]/5", // D C#m D A Bm7 A D C#m …
  H: "[c#3,b3,c#4,e4,g4]@7 ~ [f#2,a#3,c#4,e4,g4]@8", I: "[b2,a3,d4,e4,f#4]@7 [b2,g#3,b3,d4,f#4]@8 ~",
  J: "[e2,b3,d4,e4,g4]@15 ~", K: "[g3,b3,d4,e4]@10 ~@2 [a2,c#4,e4,a4]@3 [d2,a3,d4,f#4], a2 ~",
  L: "[~ [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~ [b2,a3,d4,f#4] [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [c3,d4,f#4]@4 [c3,d4,f#4,a4]@4, ~@7 a#3]/4", // D C#m D A Bm7 D A D …
  M: "[a#2,a3,c4,d4,f4]", N: "[g2,a#3,d4,f4,a4,c5]",
  O: "[a2@15 ~ a2@7 ~ [a2,g4,b4,d5,e5]@4 [f2,g4,a#4,c5,d#5,g5]@4, [b3,d4,e4,g4,a4]@3 ~]/2", // Em7 Cm7 Em7
  P: "a4@9 ~ a4@3 a#4@3, [a#2,a#3,d4,f4]", // A#
  Q: "[~@16 [b5,d6,e6,a6]@12 [g2,d3,g3] [f#2,c#3,f#3] [e2,b2,e3] [d2,a2,d3,a3,d4,f#4], [a2,b3,d4,e4,g4,a4]@7 ~, ~@2 [b4,d5,e5,g5]@5 ~]/2", // Bm7 G5 F#5 E5 D Em7
  R: "[~@4 [d3,a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~ [b2,a3,d4,f#4] [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,d4,f#4,a4] ~@2 [a2,a3,c#4,e4]@3 [b2,a3,d4,f#4]@2]/3", // D A Bm7 D A D C#m D …
  S: "[[a2,g3,b3,d4,e4]!4 ~@11 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~ [b2,a3,d4,f#4] [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~@3 [b2,a3,d4,f#4] ~ [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~ [b2,a3,d4,f#4] [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2]/8", // Em7 D C#m D A Bm7 D A …
  T: "[~ [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~@3 [b2,a3,d4,f#4] ~ [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~ [b2,a3,d4,f#4] [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~@3 [b2,a3,d4,f#4] ~ [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~ [b2,a3,d4,f#4] [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [c#3,a3,c#4,e4] ~ [b2,g#3,d4,f#4] ~@2 [g#3,d4,f#4] [a2,g#3,c#4,e4]@3 g2]/8", // D C#m D A Bm7 A D C#m …
  U: "[~ [g3,b3,d4,f#4] [c#4,e4] ~ [g3,b3,d4,f#4] ~ [f#2,g3,c#4,e4] ~ [e2,b3,e4]@2 [g3,b3,d4,e4] [e2,g3,b3,d4,e4] ~ [f#2,g3,b3,d4,e4] ~ [a2,g3,b3,d4,e4]@15 [a2,g4,b4,d5,e5]@15 ~ [g3,b3,d4,e4]@16 ~@4 [b3,d4,f#4] ~ [b3,d4,g4]@3 ~ [d4,f#4]@2 [b3,d4,g4]@3 ~ [g3,b3,d4,e4]@21 ~ d4 e4 g4 ~ [b3,b4]@5 ~ [a2,g3,b3,d4,e4]@18, ~@4 g2@2 ~@2 [g3,d4] ~@37 a2@14 ~@2 a2@14 ~@2 a2@30 ~@20, ~@72 b3 ~@55]/8", // Gmaj7 C#m Gmaj7 C#dim E5 Em7 Bm G …
  V: "[[e3,g3,b3,d4]@9 ~@3 g3 f#3 e3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~ [b2,a3,d4,f#4] [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~@3 [b2,a3,d4,f#4] ~ [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~ [b2,a3,d4,f#4] [d4,f#4] [a2,a3,c#4,e4]@3 d2@2 [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~ [b2,a3,d4,f#4] ~@2 [d4,f#4] [a2,a3,c#4,e4]@3 d2, ~@15 d3 ~@112]/8", // Em7 D C#m D A Bm7 D A …
  W: "~ [a3,d4,f#4] [c#4,e4] d3 [a3,d4,f#4] ~ [a2,a3,c#4,e4] ~@9", // D C#m D A
})).s("gm_epiano1").gain(0.43)

// bass · slap bass 1
const bass = note(`<
  ~@12 A B C B D@2 E F G F H I J@2 K F G F K F L@2 M F N@2 E I O F M F P Q@2 R S@2 M F T U V W X Y Z AA AB F M AC AD F M
  I AE F M I AF@2 M F AG AH M AI AJ@5 AK AL@2 AM I E F N@2 E F AN I AO F N@2 E F AP I AO F N@2 E F AQ ~
>`.pickRestart({
  A: "~@11 e1@3 f#1 [g1,g#1]", B: "a1@2 ~ a1 ~@8 a1@2 ~ a1", C: "~@9 e1 f#1 ~ g1 ~ e1 ~",
  D: "[~@9 a2 b2 e3 d3 a2 b2 d2@2 ~@3 d2@2 a1@2 b1 ~@3 a1@2 ~ d1]/2", E: "~@4 d1@2 a1@2 b1 ~ b1@2 a1@2 ~ d2",
  F: "~@4 d2@2 a1@2 b1 ~@3 a1@2 ~ d2", G: "~@4 d2@2 a1@2 ~@2 b1 ~ a1@3 d2", H: "~@4 d2@2 f#1@2 b1 ~ b1@2 a1@2 ~ d2",
  I: "~@4 d2@2 a1@2 b1 ~@3 a1@2 ~ d1", J: "[~@4 d1@2 a1@2 ~@2 b1 ~ a1@3 d2@2 ~@3 d2@2 a1@2 b1 ~@3 a1@2 ~ d1]/2",
  K: "~@4 d2@2 a1@2 b1 ~ b1@2 a1@2 ~ d1", L: "[~@4 d2@2 a1@2 ~@2 b1 ~ a1@3 d2@2 ~@3 d2@2 a1@2 b1 ~@3 a1@2 ~ d2]/2",
  M: "~@4 d2@2 a1@2 b1 ~ b1@2 a1@2 ~ d2", N: "[~@4 d2@2 a1@2 ~@2 b1 ~ a1@3 d2@2 ~@3 d2@2 a1@2 b1 ~@3 a1@2 ~ d1]/2",
  O: "~ d1 ~ d1 d1@2 a1@2 ~@2 b1 ~ a1@3 d2", P: "~@4 d2@2 a1@2 ~@2 b1 ~ a1@2 b1@2",
  Q: "[c#2@5 ~ c#2@2 f#1@4 ~@3 b1@2 ~@6 b2 ~ b1@2 ~@5]/2", R: "e1@2 ~@4 d1@2 e1@2 ~ e1 d2 e2@3",
  S: "[a1@4 ~@2 a1 a2 a1@2 ~@2 c#2@3 d2@2 ~@3 d2@2 a1@2 b1 ~@3 a1@2 ~ d2]/2", T: "~@4 d2@2 c#2@2 c2@5 ~ c2 b1",
  U: "a#1@4 ~@2 a#2@2 a#1@4 ~@3 f#1, ~@7 f1", V: "g1@4 ~@2 f2 g2 g1@3 ~ g2@2 g1@2", W: "a1@3 ~@3 g1@2 a1@3 ~@3 g2 a2",
  X: "a1@3 ~@3 a1@2 a1@3 ~ f1@4", Y: "a#1@4 ~@2 a2 a#2 a#1@4 ~@2 f1@2", Z: "g1@4 ~@2 f2 g2 g1 ~ g1@2 g2@3 ~",
  AA: "a1@2 ~ g1 a1@2 ~@2", AB: "g2 a2 ~ a2 ~ a2 ~ a2 a1 ~@3 g2 f#2 e2 d2", AC: "~@4 d2@2 a1@2 b1 ~@2 a1@3 b1@2",
  AD: "a1!3 a1@2 ~@11", AE: "~@4 d1@2 a1@2 ~@2 b1 ~ a1@3 d2",
  AF: "[~ d1 ~ d1 d1@2 a1@2 ~@2 b1 ~ a1@3 d2@2 ~@3 d2@2 a1@2 b1 ~@3 a1@2 ~ d2]/2", AG: "~@4 d2@2 a1@2 ~@2 b1 ~ a1@3 d1",
  AH: "~@4 d1@2 a1@2 b1 ~@3 a1@2 ~ d2", AI: "~@4 d2@2 c#2@2 b1 ~@3 a1@2 ~ g1",
  AJ: "[~@4 g1@2 f#1@2 e1@2 ~ f#1 ~ g1@2 a1@3 a1@2 g2 ~ g2 a2 a1@3 g2 a2@2 a1@4 a1@2 g2 ~ g2 a2 a1@3 g2 a2@2 a1@4 a1@2 g2 ~ g2 a2 a1@3 g2 a2@2 a1@4 f#2@2 g2@3 ~ f#2 ~ g2@3 ~ a1@2]/5",
  AK: "~@2 a1@2 a2 d3 e3 f#3 a3 b3 ~ a3@3 a1@2", AL: "[a1@3 ~ g2 a2@3 a1@2 ~ a1 a2@2 a1@4 a1@2 g2@3 ~ g2@3 ~ a2@3 ~]/2",
  AM: "a2@3 a1@3 ~ a1@2 ~@3 g2 f#2 e2 d2", AN: "~@4 d2@2 a1@2 ~ b2 b1 ~ a1@3 d2",
  AO: "~@4 d1@2 a1@2 b1 ~ b1@2 a1@2 ~ d1", AP: "~@4 d2@2 a1@2 ~@2 b1 b2 a1@3 d2", AQ: "~@4 d2@2 a1@2 ~@2 b1 ~ a1@3 ~",
})).s("gm_slap_bass_1").gain(0.4)

// other · trumpet
const trumpet = note("<~@109 [c#5 d5 e5 c#5 d5 e5 c#5 d5 e5 c#5 d5 e5 f#5@3 ~] [~@4 f#5 g5 g#5 ~ a5@4 ~@4] ~@3>")
  .s("gm_trumpet").gain(0.07).pan(0.4)

// chords · brass section
const brass_section = note(`<
  ~@16 A B C D E B F G H ~@7 I J I J K ~@11 I J I J ~@8 L ~@3 M ~@3 N ~@3 N ~@3 N ~@3 O@4 P@3 Q R ~ I ~ K ~@7 A B S J K
  ~@3 A B S J T ~
>`.pickRestart({
  A: "~@15 [d5,d6]", B: "~@6 [f#4,f#5] ~ [a4,a5] ~@3 [d4,d5] ~@2 [f#4,f#5]",
  C: "~@7 [f#4,f#5] [g4,g5] [f#4,f#5] [g4,g5] [f#4,f#5] [g4,g5] [a4,a5] ~ [f#4,f#5]", // F# G F# G F# G A F#
  D: "~ [d4,d5]@11 [b3,b4] [d4,d5] ~ [d4,d5]", // D B D
  E: "~@6 [f#4,a4,d5,f#5] ~@3 [g4,b4,d5,g5] ~ [a4,c#5,e5,a5] ~@2 [d5,f#5,a5,d6]", // D G A D
  F: "~@5 [a4,a5] [g4,g5] [f#4,f#5] [g4,g5] [f#4,f#5] [g4,g5] [f#4,f#5] [g4,g5] [a4,a5] ~ [f#4,f#5]", // A G F# G F# G F# G …
  G: "~ [d4,d5]@9 ~@2 [e4,e5] [f#4,f#5] ~ [f#4,f#5]", // D E F#
  H: "~@6 [a4,c#5,e5,a5] ~@3 [b4,d5,g5,b5] ~ [c#5,e5,a5,c#6] ~@2 [d5,f#5,a5,d6]", I: "~@15 [a4,d5,f#5,a5]",
  J: "~@12 [a4,c#5,e5,a5] ~@2 [a4,d5,f#5,a5]", K: "~@10 [g4,b4,d5,g5] ~ [a4,c#5,e5,a5] ~@2 [a4,d5,f#5,a5]",
  L: "~@12 [g3,g4,g5] [f#3,f#4,f#5] [e3,e4,e5] [d3,d4,d5]", M: "[a4,a5]!4 ~@11 [d4,d5,d6]", N: "~@15 [d4,d5,d6]",
  O: "[~@11 [f#4,f#5] ~ [g4,g5] ~ [a4,a5]@29 ~@2 [a4,a5]@18]/4", // F# G A
  P: "[~@2 [f#4,f#5] ~ [g4,g5]@3 ~ [f#4,f#5] ~ [g4,g5]@2 ~@2 [a4,d5,e5,a5]@30 ~@4]/3", // F# G F# G Asus4
  Q: "~ [a4,a5] ~@2 [a4,a5] ~@3 [a4,a5] ~@2 [a4,a5] ~@4", // A
  R: "[a4,d5,e5,a5]!4 ~ [a4,d5,e5,a5]!2 ~ [a4,d5,e5,a5] ~@6 [a4,d5,f#5,a5]", // Asus4 D
  S: "~@7 [f#4,f#5] [g4,g5] [f#4,f#5] [g4,g5] [f#4,f#5] [g4,g5] [a4,a5] ~ [a4,a5]", // F# G F# G F# G A
  T: "~@10 [g4,b4,d5,g5] ~ [a4,c#5,e5,a5] ~@3", // G A
})).s("gm_brass_section").gain(0.72)

// other · electric guitar clean
const electric_guitar_clean = note(`<
  ~@16 A B C@2 D B C@2 D B C@2 D B C@2 D B C@2 D B C@2 D B C@2 E ~@3 F B C@2 E ~@7 F B C@2 F B C@2 D B C@2 D B C@2 D B
  C@2 G ~@7 A B C@2 D B C@2 D B C@2 D B C@2 D B C@2 D B C@3 ~
>`.pickRestart({
  A: "~@9 a2 b2 e3 d3 a2 b2 [d4,d5]", B: "~ [d4,d5] ~ [d4,d5]!2 ~ [d4,d5] ~@3 [d4,d5] ~@2 [d4,d5] ~@2",
  C: "[d4,d5]!2 ~ [d4,d5]!2 ~ [d4,d5] ~@3 [d4,d5] ~@2 [d4,d5] ~@2", // D
  D: "[d4,d5]!2 ~ [d4,d5]!2 ~ [d4,d5] ~@3 [d4,d5] ~@2 [d4,d5] ~ [d4,d5]", E: "[d4,d5]!2 ~ [d4,d5]!2 ~ [d4,d5] ~@9",
  F: "~@15 [d4,d5]", G: "[d4,d5]!2 ~@14",
})).s("gm_electric_guitar_clean").gain(0.48).pan(0.3)

// other · electric guitar clean · soft notes
const electric_guitar_clean_2 = note("<~@17 A@28 ~@4 A@4 ~@8 A@3 ~ A@16 ~@8 A@24 ~>".pickRestart({
  A: "~@2 d4 ~@13",
})).s("gm_electric_guitar_clean").gain(0.24).pan(0.3)

// chords · pad warm
const pad_warm = note("<A B@3 C@6 D@3 E@3 ~@64 F@8 ~@26>".pickRestart({
  A: "[d2,e4,g4,b4,d5]", B: "[~@7 [f2,c4,d#4,g4,a#4]@24 [a#2,d4,f4,a4,c5]@17]/3",
  C: "[~@7 [g2,a#3,d4,f4,a4]@23 [a2,b3,d4,e4,g4]@47 ~ g4@18, ~@77 [f2,a#3,c4,d#4]@19]/6", // Gm7 Em7 Fsus4
  D: "[~@5 [a#2,a3,c4,d4,f4]@24 [g2,a#3,d4,f4,a4]@14 [e2,d4,e4,g4,a#4]@5]/3", E: "[a2,g3,b3,d4,e4]/3",
  F: "[~@15 [b3,d4,e4,g4,a4]@30 ~ [b3,d4,e4,g4,a4]@30 ~@2 [b3,d4,e4,g4,a4]@30 ~@2 [b3,d4,e4,g4,a4]@18]/8", // Em7
})).s("gm_pad_warm").gain(0.32)

// other · pad sweep
const pad_sweep = note("<~@13 A@3 ~@98>".pickRestart({
  A: "[g3@15 ~@16 a4@15 ~@2, ~@5 b3@5 ~@6, ~@23 d4@15 ~@10]/3",
})).s("gm_pad_sweep").gain(0.48)

// chords · lead 1 square
const lead_1_square = note("<~@53 A B C D E F G@2 ~@20 H@3 I J K@2 L ~@25>".pickRestart({
  A: "~@6 a5 a#5", B: "c6 a5 f5 g5, b5 ~@15", C: "a5", D: "~@3 g#5 g5 ~ d#5 f#5 e5 c5 d5 c#5 c5 d#5 g5 a#5",
  E: "a5@2 ~@4 a5 a#5", F: "c6@4 d6@3 ~ c6@4 g6@3 [f6,f#6], b5 ~@3 c#6 ~@7 f#6 ~@3", G: "[e6@3 ~]/2",
  H: "[~@4 e6@25 ~ a5 a5@7 g5 a5 f#5@2 a5 ~ [e5,a5]@4]/3", I: "~@2 f#5 a5 ~ b5@3 a5@4 ~@4",
  J: "~ b5 [b5,d6] ~ [c#6,e6]@2 [b5,d6] ~ [d6,f#6]@2 [f#6,a6] [f#6,a6]@5", // Bm C#m Bm D F#m
  K: "[~ [g5,b5] [b5,d6] ~ [c#6,e6]@2 [b5,d6] ~ [g5,b5]@2 [b5,d6] [f#5,a5] ~ [f5,g#5] ~ [e5,g5]@6 [b4,d5] ~ [d5,f#5] [c#5,e5] [g4,b4] [b4,d5] [g4,b4] [a4,c#5] [f#4,a4] g#4 [e4,g4]]/2", // G Bm C#m Bm G Bm F#m Fm …
  L: "[e4,g4] a4 [g4,b4] [a4,c#5] [f#4,a4] b4 [a4,c#5] [b4,d5] [g4,b4] [a4,c#5] [b4,d5] [c#5,e5] [d5,f#5] [e5,g5] [f#5,a5] ~", // Em G A F#m A Bm G A …
})).s("gm_lead_1_square").gain(0.48)

// chords · lead 1 square · soft notes
const lead_1_square_soft = note("<~@54 A ~@3 B ~@26 C ~ D E ~@25>".pickRestart({
  A: "~@4 g5 ~@3 e5 ~@7", B: "~@8 b5 ~@7", C: "~ g5 ~@14", D: "~@14 f4 ~", E: "~ f#4 ~@3 g4 ~@10",
})).s("gm_lead_1_square").gain(0.24)

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

// drums · snare
const snare = s("sd").struct("<~@17 A@27 B A@7 C A@7 D E A@2 F A@15 D A@3 G A@3 H A@24 ~>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@3 x!2 ~ x!3 ~@2", C: "~@4 x ~@3 x!2 ~ x!2 ~@3", D: "~ x ~@2", E: "~ x ~@2 x ~@7 x ~@3",
  F: "x!4 ~@8 x ~@3", G: "~@4 x ~@2 x!2 ~@2 x!2 ~@3", H: "~ x!2 ~",
})).gain(0.48)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@16 A ~@7 B ~@11 B ~@7 C ~@39 D ~ E ~ F ~@25>".pickRestart({
  A: "~@11 x ~@4", B: "~@7 x", C: "~@7 x!2 ~@7", D: "~@6 x ~@3 x ~@2 x ~@2", E: "~@9 x ~@6", F: "~@3 x",
})).gain(0.32)

// drums · clap
const clap = s("cp").struct("<~@17 A@28 ~@4 A@4 ~@8 A@3 ~ A@15 B A@7 B A@24 ~>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.48)

// drums · low tom
const low_tom = s("lt").struct("<~@16 [~@7 x] ~@71 [~@7 x] ~@25>").gain(0.48)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@13 A B C D E F@6 G E F@2 H F@3 G E F@2 G E F@2 H F@3 I J@3 K E F@2 L M N@6 O E F H P E F@2 H F@3 G F@3 H E F@2 Q R S
  R T U V W X F@3 G E F@2 H F@3 G E F@2 G E F@2 G E F@2 G ~
>`.pickRestart({
  A: "x ~@3 x!12", B: "x!16", C: "x!12 ~@4", D: "~ x ~@2 x ~@3 x ~@3 x ~@3", E: "~@2 x!3 ~ x!3 ~ x!3 ~ x!2",
  F: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2", G: "x ~ x!3 ~ x!3 ~ x!3 ~@3", H: "x ~ x!3 ~ x!3 ~ x!3 ~ x ~",
  I: "x ~ x!3 ~ x ~@3 x ~ x ~ x ~", J: "~ x ~ x", K: "~ x!2 ~", L: "x ~ x!3 ~@3 x ~ x ~@5",
  M: "~@3 x ~ x ~@2 x!2 ~ x ~ x ~@2", N: "x!2 ~ x ~ x ~@2 x!2 ~ x ~ x ~@2", O: "x!2 ~ x ~ x ~@2 x ~@7", P: "~ x ~@2",
  Q: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~", R: "~@4 x!2 ~@2", S: "x!2 ~@2 x!2 ~@2", T: "x!2 ~ x!4 ~", U: "x!3 ~ x!2 ~@2",
  V: "x!6 ~@2", W: "~ x!2 ~ x!2 ~@2", X: "x ~@2 x!3 ~@2",
})).gain(0.48)

// drums · mid tom
const mid_tom = s("mt").struct("<~@16 A ~@15 B ~@11 C ~@7 C ~@7 D ~@27 E ~@25>".pickRestart({
  A: "~@3 x", B: "~@7 x", C: "~@14 x!2", D: "~@12 x!3 ~", E: "~@13 x ~@2",
})).gain(0.48)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@15 A ~@12 B ~@11 B ~@3 B ~@3 C ~@3 D E@7 C ~@3 F ~@3 B ~@3 B ~@7 G E C E ~ E C E ~@8 B ~@17
>`.pickRestart({
  A: "~@12 x ~@2 x", B: "~@15 x", C: "~@7 x ~@8", D: "~@6 x ~@8 x", E: "~@7 x ~@7 x", F: "~@3 x ~@12",
  G: "~@11 x ~ x ~@2",
})).gain(0.64)

// drums · high tom
const high_tom = s("ht").struct("<~@16 [~@9 x!2 ~@5] ~@97>").gain(0.48)

// drums · crash
const crash = s("cr").struct(`<
  ~@10 A ~ B C ~ D E ~@7 E ~@7 E ~@3 E ~@8 C ~@2 D ~@4 C ~@3 C ~@2 F ~@3 E ~@11 E ~@3 E ~ G ~ G ~ G ~ E ~@3 E ~@7 E ~@3
  E ~@9
>`.pickRestart({
  A: "~@5 x ~@10", B: "~@11 x ~@4", C: "x", D: "~@12 x ~@2 x", E: "~@15 x", F: "~@8 x ~@6 x", G: "~@7 x",
// … 101 more lines