Strudelify

Milano e Vincenzo

Alberto Fortis

KeyG majorTempo123 bpm
0:00/0:00
// Milano e Vincenzo — Alberto Fortis
// 123 bpm, 4/4, key G 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 14 pad warm (copy of ch 9 pad bowed, 0.188 beats late)
// note: Full arrangement: all 98 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123/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
const piano = note("<A@4 B@8 C@7 ~@79>".pickRestart({
  A: "[~@74 e5@8 ~@13 b4@8 ~@9 f#5@4 ~@4 d6@8, ~@2 b5@13 g5@17 g5@20 ~ d5@15 ~@2 c5@13 ~@4 d5@14 ~@7 d5@9 ~@11, ~@11 a5@7 ~ a5@17 ~@25 b4@21 ~@46, ~@28 f#5@8 ~@9 e5@23 ~@14 g5@19 ~@2 f#5@8 ~@5 a5@12]/4",
  B: "[~ a5@5 ~@20 f#5@14 ~@3 e5@4 ~@4 f#5@4 ~@13 a5@4 ~@4 g5@13 ~@113 a5@7 ~@19 f#5@16 ~@9 f#5@3, ~@9 g5@14 ~@32 g5@8 ~ g5@9 ~@20 a5@17 ~@25 b4@25 d5@9 b4@24 ~@63, ~@17 e5@22 ~@8 e5@10 ~@2 f#5@13 f#5@19 ~@11 f#5@9 ~@7 e5@22 ~@8 e5@27 ~@6 d5@11 ~@27 e5@24 ~@2 e5@11, ~@106 g5@20 ~ d5@14 ~@3 c5@31 ~@15 a5@12 ~@9 g5@15 ~@30, ~@156 g5@19 ~@2 f#5@8 ~ f#5@7 ~ d6@15 ~@47]/8",
  C: "[~@14 a5@4 ~@21 d6@17 ~@75 g5@5 ~@12 d5@9 ~@12 b4@5 ~@8 b5@8 g5@15 ~@19, ~ g5@17 ~@13 d5@54 g5@46 ~@5 f#5@22 ~@20 a5@13 ~@33, ~@5 f#5@13 f#5@63 a5@42 a5@15 ~@6 e5@13 ~@67, ~@13 g#5@5 ~@4 d6@17 ~@17 d6@59 b5@23 ~@23 b5@13 b5@8 ~@42, ~@77 b5@21 c6@40 ~@19 c6@8 c6@8 ~@51]/7",
})).s("gm_piano").gain(0.28)

// chords · piano · soft notes
const piano_soft = note("<~@2 A ~@2 B C@2 D@2 ~ E@2 ~@85>".pickRestart({
  A: "~@7 f#5@2 ~@7", B: "~@2 d#5@23 ~@7", C: "[~@25 g5@17 ~@22, ~@21 a5@7 ~@36]/2", D: "[~@24 f#5@23 ~@17]/2",
  E: "[~@12 d#5@23 ~@29]/2",
})).s("gm_piano").gain(0.14)

// other · celesta
const celesta = note("<~@6 A B C D ~@2 E F@6 ~@79>".pickRestart({
  A: "~@29 d5@3", B: "~@11 d5 ~@4", C: "~@3 b4@4 a4@4 g4@4 ~ c5@9 ~@7", D: "~@5 b4@4 a4@4 g4@4 f#4@9 ~@6",
  E: "~@22 d5@7 ~@3",
  F: "[~@7 d5@8 ~@9 d5@19 ~@10 d4@4 c5@26 b4@8 a4@18 ~@16 c5@4 b4@4 c5@3 ~@6 b4@4 a4@4 b4@4 ~@4 g4@25 ~@9]/6",
})).s("gm_celesta").gain(0.35)

// chords · piano
const piano_2 = note(`<
  ~@18 A B C D E F G H I J K L M N O P Q@3 R S B T@8 U@4 V@6 W@6 X Y@4 Z@8 AA@7 AB AC@7 AD@3 AE AF@2
>`.pickRestart({
  A: "~@3 [e2,e3,g3,b3,e4] ~@3 [e2,e3,g3,b3,e4]@8 [d2,d3,f#3,a3] ~@3 [d2,f#3,a3,d4]@11 ~@2, ~@15 d4@2 ~@2 d3@8 ~@5", // Em D
  B: "~@4 d4@4 ~@4 [g1,g4]@4 ~@4 d4@4 ~@4 [d2,a4]@3 ~, g1@12 ~@12 [d3,d4,d5]@7 ~, ~ g4@2 ~@2 a4@2 ~, ~@2 [g2,d4,b4]@2 d2@3 ~", // G D5 D G
  C: "~ e4 ~ [e2,g4] ~ d4 ~ [d2,g4], e2@3 ~ d2@3 ~, ~ g4@2 ~@2 g4@2 ~, ~ [e3,e4,b4] ~ [d3,d4,b4]", // Em G5 E5 G
  D: "~ c4!2 [c2,c4,g4] ~ c4 ~ [e2,g4], c2@3 ~ e2@3 ~, ~ g4@2 ~@2 g4@2 ~, ~ [c3,c5] ~ [e3,c4,c5]", // C5 Em C
  E: "~@2 d4@2 d4@2 [d2,d4]@4 d4@2 ~@2 [d2,a4] ~, d2@6 d5@6 ~ c5@2 ~, ~@2 a4@5 ~, ~@4 d3@8 [d3,d4,d5]@3 ~, ~@5 d2@2 ~", // D D5 D
  F: "~@8 d4@4 [g1,g4]@3 ~@5 f#4@4 ~@4 [b1,b4]@3 ~, g1@3 ~ b1@3 ~, ~@8 [g2,b4]@7 ~@5 b4@8 ~@4, ~@24 [b2,f#4,d#5]@7 ~", // G B G B
  G: "~@4 g4@4 g4@4 [e2,g4,b4]@3 ~@5 g4@4 g4@4 [c2,g4,c5]@3 ~, e2@3 ~ c2@3 ~, ~ b4@2 ~@2 c5@2 ~, ~@8 [e3,e5]@7 ~@9 [c3,e5]@7 ~", // Em C5 E C
  H: "~@12 g1@3 ~ d2@8 ~@4 d2@4, g1@3 ~@5, ~ g4@2 ~@5, ~@8 [g2,b4]@7 ~@9 [d3,d4,a4]@8", // G D5
  I: "[e2,e3,b3,e4,g4] ~@3 [e2,e3,b3,e4,g4]@8 [d2,d3,a3,d4,f#4]@17 ~@3", // Em D
  J: "~@2 d4 [g1,g4] ~ d4!2 [d2,a4], g1@3 ~@2 a4@2 ~, ~@2 [g2,b4]@2 d2@3 ~, ~@3 [d3,d5]", // G D5 G D
  K: "~@2 d4 g4 ~ g4 d4 [d2,g4], e2@3 ~ d2@2 ~@2, ~ g4@2 ~@5, ~ [e3,b4] ~ [d3,b4]", // G5 E5 G
  L: "~@4 c4@4 c4@4 [c2,g4]@4 ~@4 [d4,g4]@4 d4@4 [b1,g4]@3 ~, c2@3 ~ b1@2 ~@2, ~ g4@2 ~@5, ~@8 [c3,c5]@8 ~@8 [b2,b4]@7 ~", // C5 G5 Em C B
  M: "e2 ~@3 [d4,f#4] ~@3 [d4,a4] ~@3 [d2,d4]@8 ~@8 [d2,f#4]@3 ~, d2@8 d3@16 [d3,d5]@7 ~, ~@12 f#4@14 a4@5 ~, ~@3 d5@3 d4 ~, ~@5 d2@2 ~", // D D5 D
  N: "~@8 c4@4 [c2,e4,g4]@3 ~@5 b3@4 b3@4 b1@3 ~, c2@3 ~ b1@3 ~, ~ [e4,g4]@2 ~@5, ~@8 [c3,c5]@7 ~@9 [b2,b4]@7 ~", // C Em C B
  O: "~ [e2,e3,b3,e4,g4]!2 ~ [d2,d3,a3,d4,f#4] [d2,d3,a3,d4,f#4]@2 ~", // Em D
  P: "~@8 d4@4 g4@4 ~@4 d4@4 [d4,d5]@7 ~, g2@17 ~@15, ~@4 g4@8 ~@4 f#2@15 ~, ~@8 [g3,d5]@9 ~@3 f#4@8 ~@4", // D G5
  Q: "[~@2 [g4,b4,e5]!2 ~@8 [a1,c5]@2 ~ f#4 ~@2 f#4 ~@4 f#4, e2@16 d2@12 e4@12 e4@15 ~@29 d4@12, ~@4 e4@13 ~@3 [d4,f#4,a4,d5]@12 ~@4 c4@4 c3@4 g4@11 ~@21 [f#4,a4,d5]@14 a4@6, ~@8 e3@9 ~@7 d3@8 c2@16 ~@8 [a2,c5,e5]@8 [d2,d3]@32, ~@7 c5@5 ~@3 d5@4 ~@3 d5@2]/3", // Em Am D Am D
  R: "~@3 c4 ~@3 b3, c2@17 ~@7 [b2,d#4,f#4,a4,b4]@8, c3@8 [c3,e4,g4,c5]@9 ~@3 b3@8 ~@4, ~ c4@2 ~ b1@4", // B7 C
  S: "~@4 b3@2 ~@2 [e3,b3,e4,g4]@4 [e2,e3,b3,e4,g4]@4 ~@4 [d2,d3,a3,d4,f#4]@11 ~, e2@3 ~@5", // Em D
  T: "[~@4 e4@4 ~@4 [e2,g4]@4 ~@4 d4@4 ~@4 [d2,g4]@3 ~@4 c4@4 c4@4 [c2,c4,g4]@4 ~@4 c4@4 ~@4 [e2,g4]@4 ~@4 d4@4 d4@4 [d2,d4]@8 d4@4 ~@4 [d2,a4]@2 ~@10 d4@4 [g1,g4]@3 ~@5 f#4@4 ~@4 [b1,b4]@3 ~@5 g4@4 g4@4 [e2,g4,b4]@3 ~@5 g4@4 g4@3 [c2,g4,c5]@3 ~@13 g1@3 ~ d2@8 ~@4 d2@4 e2@2 ~@6 [e3,g#4,b4]@4 e2@2 ~@2 e2@4 ~@4 [e3,g#4,b4]@4 [e2,e4]@4 ~@8 e4@4 [a1,a4]@4 ~@4 e4@4 e4@4 [e2,b4]@4 f#2@2, e2@12 ~@4 d2@12 ~@3 c2@12 ~@4 e2@12 ~@4 d2@12 d5@12 ~@2 c5@4 ~@22 b4@8 ~@8 b4@8 ~@8 c5@7 ~@52 [g#4,b4]@8 ~@28 b4@8 ~@6, ~@4 g4@8 ~@8 g4@8 ~@7 g4@8 ~@8 g4@8 ~@12 a4@20 ~@71 g4@8 ~@20 [g#4,b4]@8 ~@4 e4@8 ~@36 [e3,e5]@8 ~@2, ~@8 [e3,e4,b4]@8 ~@8 [d3,d4,b4]@8 ~@7 [c3,c5]@8 ~@8 [e3,c4,c5]@8 ~@8 d3@16 [d3,d4,d5]@6 ~@10 [g2,b4]@7 ~@9 [b2,f#4,d#5]@7 ~@9 [e3,e5]@7 ~@9 [c3,e5]@7 ~@8 [g2,b4]@7 ~@9 [d3,d4,a4]@8 ~@40 [a2,c#5]@8 e2@12 ~@6, ~@83 d2@8 ~@4 g1@12 ~@4 b1@12 ~@4 e2@12 ~@4 c2@11 ~@4 g1@12 ~@24 e2@8 ~@8 [e2,e4]@8 ~@4 a1@12 ~@22]/8", // Em G5 C5 Em D D5 G B …
  U: "[~@6 e4@4 a4@4 ~@4 a4@3 e4@4 [e2,a4]@4 ~@4 d4@4 d4@4 [d2,a4]@4 ~@4 [e4,a4]@4 e4@4 [c#2,a4]@3 ~ f#2 ~@3 [e4,g#4] ~@3 [e4,b4] ~@3 [e2,e4]@8 ~@8 [e2,g#4]@3 ~@9 d4@4 [d2,f#4,a4]@3 ~@5 c#4@4 c#4@4 c#2@3 ~@4, ~@2 a4@8 ~@11 [e3,c#5]@8 ~@4 a4@8 ~@32 g#4@14 b4@5 ~@36, ~@6 [f#3,c#5]@8 e2@8 ~@7 d2@12 ~@4 c#2@8 ~@8 e2@8 ~@4 e5@12 e4@4 ~@8 [f#4,a4]@8 ~@23, ~@37 [d3,d5]@8 ~@8 [c#3,c#5]@7 ~@9 e3@16 [e3,e5]@7 ~@9 [d3,d5]@7 ~@9 [c#3,c#5]@7 ~@4, ~@81 e2@8 ~@4 d2@12 ~@4 c#2@12 ~@7]/4", // A5 D5 A5 F#m E E5 E D …
  V: "[~ [f#2,f#3,c#4,f#4,a4]@4 [f#2,f#3,c#4,f#4,a4]@4 ~@4 [e2,e3,b3,e4,g#4]@3 [e2,e3,b3,e4,g#4]@8 ~@12 e4@4 a4@4 ~@4 e4@4 [e4,e5]@7 ~@9 [a4,c#5,f#5]@4 [a4,c#5,f#5]@4 ~@32 [b1,d5]@8 ~@4 g#4@4 ~@8 g#4@4 ~@15 g#4@4 ~@12 d4@4 ~@12 c#4@4 f#2@4 c#4, ~@28 a2@16 g#2@15 ~ f#2@16 e2@12 f#4@12 f#4@15 ~@21 [g#4,b4,e5]@13 b4@6 d3@8 [d3,f#4,a4,d5]@9 ~@7 [c#3,f4,g#4,b4,c#5]@8 ~@5, ~@32 a4@8 ~@8 g#4@8 ~@8 f#4@13 ~@3 [e4,g#4,b4,e5]@12 ~@4 d4@12 ~@35 e4@12 d2@17 ~@20, ~@36 [a3,e5]@9 ~@23 f#3@9 ~@7 e3@8 d2@8 d3@8 ~@8 [b2,d5,f#5]@8 [e2,e3]@32 ~@15 c#2@16 ~@5, ~@88 d5@16 a4@11 ~@5 e5@16 ~@11 e5@8 ~@4 d4@8 ~@8 c#4@8 ~@9]/6", // F#m E F#m Bm E D C#7 E …
  W: "[~@3 [f#3,c#4,f#4,a4]@4 [f#2,f#3,c#4,f#4,a4]@4 ~@4 [e2,e3,b3,e4,g#4]@10 ~@10 e4@4 a4@4 ~@4 e4@4 [e4,e5]@7 ~@9 [a4,c#5,f#5]@3 [a4,c#5,f#5]@4 ~@32 [b1,d5]@8 ~@4 g#4@4 ~@8 g#4@4 ~@16 e5@4 ~@12 d4@4 ~@12 c#4@4 [f#2,f#3,f#4,a4,c#5] ~@3 [f#2,f#3,f#4,a4,c#5] ~, ~@27 a2@16 g#2@15 ~ f#2@15 e2@12 f#4@12 f#4@15 ~@21 [b4,e5]@14 b4@6 ~@20 c#4@8 ~@10, ~@31 a4@8 ~@8 g#4@8 ~@8 f#4@13 ~@2 [e4,g#4,b4,e5]@12 ~@4 d4@12 ~@28 g#4@12 g#4@8 ~@4 d4@8 ~@4 c#2@16 ~@6, ~@35 [a3,e5]@9 ~@23 f#3@9 ~@6 e3@8 d2@8 d3@8 ~@8 [b2,d5,f#5]@8 [e2,e3]@32 d2@17 ~@21, ~@86 d5@16 a4@11 ~@5 e5@16 ~@8 e4@12 d3@8 [d3,f#4,a4,d5]@9 ~@7 [c#3,f4,g#4,b4,c#5]@8 ~@6]/6", // F#m E F#m Bm F#m E5 E A5 …
  X: "~ [f#2,f#3,f#4,a4,c#5] ~@3 [e2,e3,e4,g#4,b4]@14 ~@6 [f2,f3,c4,f4,a4] ~@3 [f2,f3,c4,f4,a4] ~@2, ~@5 f2 ~@26", // F#m E F
  Y: "[~ [f2,f3,c4,f4,a4] ~@3 [g2,g3,d4,f4,b4]@20 [g4,c5]@8 ~@4 [c2,c4]@3 ~ [g4,b4]@8 ~@4 [g2,d4]@4 [a4,c5]@8 [a3,a4,c5]@8 ~@12 [g2,e4]@3 ~@8 [f3,a4,c5]@4 [f2,f4]@3 ~@13 [a2,e4]@3 ~ [g2,g4,b4]@8, ~@25 c2@12 ~@12 [g3,g4,b4]@8 ~@16 [g4,c5]@8 [g3,g4,c5]@7 ~@4 f4@8 ~@8 e4@8 ~@12, ~@33 [c3,g4,c5]@7 ~ g2@12 ~@4 a2@12 ~@4 g2@12 ~@4 f2@11 ~@4 a2@12 ~@12, ~@77 e4@8 ~@4 [a4,c5]@7 ~@8 [a4,c5]@8 [a3,a4,c5]@7 ~@9]/4", // F G7 C5 C G G5 Am C …
  Z: "[[g3,g4,b4] ~@3 [g2,b4]@7 ~ [d4,a4]@2 g4@2 g3@2 ~@2 b4@4 [g4,c5]@8 ~@4 [c2,c4]@4 [g#4,b4]@8 ~@4 [e2,e4]@4 ~@12 a2@3 ~@13 [f2,f4]@3 [g4,c5]@8 ~@4 [c2,c4]@3 ~@9 [g3,g4,b4]@4 g2@2 ~@2 [a4,c5]@4 e4@3 ~ [a3,a4,c5]@4 a2@2 ~@2 g2@4 ~@4 [g3,g4,b4]@4 [g2,d4] ~@3 [g4,c5]@8 ~@4 [c2,c4]@3 ~ [g4,b4]@8 ~@4 [g2,d4]@4 [a4,c5]@8 [a3,a4,c5]@8 ~@11 [g2,e4]@3 ~@9 [f3,a4,c5]@4 [f2,f4]@3 ~@13 [a2,e4]@3 ~ [g2,g4,b4]@8 [g3,g4,b4] ~, ~@4 g4@8 [g2,b4]@4 a4@7 ~@9 [c3,g4,c5]@7 ~@9 [e3,g#4,b4]@7 ~ [a4,c5]@8 [a3,a4,c5]@7 ~@5 f4@8 ~@19 [g4,b4]@8 ~@20 [g4,b4]@10 ~@34 [g3,g4,b4]@8 ~@16 [g4,c5]@8 [g3,g4,c5]@7 ~@4 f4@8 ~@8 e4@8 ~@14, ~@20 g2@3 ~ c2@12 ~@4 e2@12 ~@4 a2@12 ~@4 f2@12 ~@3 c2@12 ~@8 d4@8 ~@24 d4@8 ~@12 [c3,g4,c5]@7 ~ g2@12 ~@4 a2@12 ~@4 g2@11 ~@4 f2@12 ~@4 a2@12 ~@14, ~@60 e4@8 ~@4 [a4,c5]@8 [f3,a4,c5]@7 ~@8 [c3,g4,c5]@7 ~ g2@12 ~@4 a2@8 ~@24 c2@12 ~@40 e4@7 ~@4 [a4,c5]@8 ~@8 [a4,c5]@8 [a3,a4,c5]@7 ~@11]/8", // G D5 C5 C G#m E F C5 …
  AA: "[~@2 [g2,b4]@7 ~ [d4,a4]@2 g4@2 g3@2 ~@2 b4@4 [g4,c5]@8 ~@4 [c2,c4]@4 [g#4,b4]@8 ~@4 [e2,e4]@4 ~@12 a2@3 ~@12 [f2,f4]@4 [g4,c5]@8 ~@4 [c2,c4]@3 ~@9 [g3,g4,b4]@4 g2@2 ~@2 [a4,c5]@4 e4@3 ~ [a3,a4,c5]@4 a2@2 ~@2 g2@4 ~@4 [g3,g4,b4]@4 [g2,d4] ~@3 [g4,c5]@8 ~@4 [c2,c4]@3 ~ [g4,b4]@8 ~@4 [g2,d4]@4 [a4,c5]@8 [a3,a4,c5]@8 ~@11 [g2,e4]@3 ~@9 [f3,a4,c5]@4, ~@2 g4@8 [g2,b4]@4 a4@7 ~@9 [c3,g4,c5]@7 ~@9 [e3,g#4,b4]@7 ~ [a4,c5]@8 [a3,a4,c5]@7 ~@5 f4@7 ~@20 [g4,b4]@8 ~@20 [g4,b4]@10 ~@34 [g3,g4,b4]@8 ~@16 [g4,c5]@7 [g3,g4,c5]@7 ~@5 f4@8, ~@18 g2@3 ~ c2@12 ~@4 e2@12 ~@4 a2@12 ~@4 f2@11 ~@4 c2@12 ~@8 d4@8 ~@24 d4@8 ~@12 [c3,g4,c5]@7 ~ g2@12 ~@4 a2@12 ~@4 g2@11 ~@4 f2@12, ~@58 e4@8 ~@4 [a4,c5]@7 [f3,a4,c5]@7 ~@9 [c3,g4,c5]@7 ~ g2@12 ~@4 a2@8 ~@24 c2@12 ~@39 e4@8 ~@4 [a4,c5]@8 ~@4]/7", // G D5 C5 C G#m E F C5 …
  AB: "[f2,f4]@3 ~@13 [a2,e4]@3 ~ [g2,g4,b4]@8 [g3,g4,b4] ~@3, ~ a2@3 ~@4, ~@4 [a4,c5]@8 [a3,a4,c5]@7 ~@13, ~ e4 ~@2", // F A5 G Am
  AC: "[[g2,b4]@7 ~ [d4,a4]@2 g4@2 g3@2 ~@2 b4@4 [g4,c5]@8 ~@4 [c2,c4]@4 [g#4,b4]@8 ~@4 [e2,e4]@4 ~@12 a2@3 ~@12 [f2,f4]@4 [g4,c5]@8 ~@4 [c2,c4]@3 ~@9 [g3,g4,b4]@4 g2@2 ~@2 [a4,c5]@4 e4@3 ~ [a3,a4,c5]@4 a2@2 ~@2 g2@4 ~@4 [g3,g4,b4]@4 [g2,d4] ~@3 [g4,c5]@8 ~@4 [c2,c4]@3 ~ [g4,b4]@8 ~@4 [g2,d4]@4 [a4,c5]@8 [a3,a4,c5]@7 ~@12 [g2,e4]@3 ~@9 [f3,a4,c5]@4 [f2,f4]@2, g4@8 g2@5 ~@3 g2@3 ~ c2@12 ~@4 e2@12 ~@4 a2@12 ~@3 f2@12 ~@4 c2@12 ~@8 d4@8 ~@24 d4@8 ~@12 [c3,g4,c5]@7 ~ g2@12 ~@4 a2@11 ~@4 g2@12 ~@4 f2@12 ~@2, ~@7 b4@4 ~ a4@7 ~@9 [c3,g4,c5]@7 ~@9 [e3,g#4,b4]@7 ~ [a4,c5]@8 [a3,a4,c5]@7 ~@4 f4@8 ~@20 [g4,b4]@8 ~@20 [g4,b4]@10 ~@34 [g3,g4,b4]@8 ~@15 [g4,c5]@8 [g3,g4,c5]@7 ~@5 f4@8 ~@2, ~@56 e4@8 ~@3 [a4,c5]@8 [f3,a4,c5]@7 ~@9 [c3,g4,c5]@7 ~ g2@12 ~@4 a2@8 ~@24 c2@12 ~@39 e4@8 ~@4 [a4,c5]@8 ~@6]/7", // G D5 C5 C G#m E F C5 …
  AD: "[~@14 [a2,e4]@3 ~ [g2,g4,b4]@8 [g3,g4,b4] ~@3 [g2,b4]@7 ~ [d4,a4]@2 g4@2 g3@2 ~@2 b4@4 [g4,c5]@8 ~@4 [c2,c4]@4 [g#4,b4]@8 ~@4 [e2,e4]@4 ~@11 a2@3, ~@2 a2@12 ~@24 g2@5 ~@3 g2@3 ~ c2@12 ~@4 e2@12 ~@4 a2@11 ~@3, ~@2 [a4,c5]@8 [a3,a4,c5]@7 ~@20 b4@4 ~ a4@7 ~@33 [a4,c5]@7 [a3,a4,c5]@7, ~@6 e4@8 ~@16 g4@10 ~@18 [c3,g4,c5]@7 ~@9 [e3,g#4,b4]@7 ~@5 e4@7 ~@3]/3", // A5 G D5 C5 C G#m E Am …
  AE: "~@13 [f2,f4]@4 [g4,c5]@8 ~@4 [c2,c4]@3, ~ f2@12 ~@4 c2@12 ~@3, ~ [a4,c5]@8 [f3,a4,c5]@7 ~@9 [c3,g4,c5]@7, ~@5 f4@8 ~@19", // F C5 C Am F C5
  AF: "[~@9 [g3,g4,b4]@4 g2@2 ~@2 [a4,c5]@4 e4@3 ~ [a3,a4,c5]@4 a2@2 ~@2 g2@4 ~@4 [g3,g4,b4]@4 [g2,d4] ~@18, ~ g2@12 ~@4 a2@8 ~@39, ~ [g4,b4]@8 ~@20 [g4,b4]@10 ~@25, ~@5 d4@8 ~@24 d4@8 ~@19]/2", // G Am G G5 G
})).s("gm_piano").gain(0.24)

// chords · piano · soft notes
const piano_soft_2 = note(`<
  ~@22 A B ~ C ~ D E F G H ~ I ~ J K ~@5 L M ~ N O P Q R S T ~ U ~ V W ~ X@2 ~ Y@2 ~@2 Z@3 AA AB@2 AC@2 AD@3 AE AF AG AH
  AI AJ AK AL AM AN AO AP AQ AR AS@2 AT AU AV AW AX ~
>`.pickRestart({
  A: "~@2 f#4@13 ~", B: "~@4 g4@8 d4@3 ~@17, ~ d4 ~@6", C: "~@4 d4@4 ~@4 g4@3 ~@5 [d4,f#4]@4 ~@4 f#4@4, ~@8 d4@7 ~@17",
  D: "~ g4@2 d4 ~@3 d4, ~ d4 ~@6", E: "~ d4 ~ [e2,d4] ~ d4 ~ d4", F: "~@12 c4@4 ~@12 d4@3 ~", G: "~@20 d4@4 ~@4 d4@3 ~",
  H: "~@4 c4@4 ~@4 c4@2 ~@6 f#4@8 [b3,f#4]@3 ~, ~@14 c2@17 ~, ~@20 d#4@11 ~", // B5
  I: "~@4 d4@4 ~@4 d4@5 ~@11 f#4@3 ~, ~@24 f#3@7 ~", J: "~@20 c4@3 ~@5 a4@4", K: "~ d4@4 ~ f#4 ~", L: "~@3 f#4@26 ~@3",
  M: "~@3 g4@8 d4@3 ~@18, ~@3 d4@4 ~@25", N: "~@2 d4@4 ~@4 g4@3 ~@5 [d4,f#4]@4 ~@4 f#4@4 ~@2, ~@6 d4@7 ~@19",
  O: "~ e4@4 ~@11", P: "~ a4@4 e4@2 ~@6 e4@2 ~, ~ e4@2 ~@13", Q: "~@2 e4@4 ~@4 [f#2,e4]@4 ~@4 e4@3 ~@4 e4@4 ~@3",
  R: "~@9 d4@4 ~@12 e4@3 ~@4", S: "~@17 e4@4 ~@4 e4@3 ~@4",
  T: "~ d4@4 ~@4 d4@2 ~@6 g#4@8 [c#4,g#4]@3 ~@4, ~@11 d2@17 ~@4, ~@17 f4@11 ~@4", // C#5
  U: "e4@4 ~@4 e4@5 ~@11 g#4@3 ~@5, ~@20 g#3@7 ~@5", V: "~@16 d4@3 ~@5 b4@6 ~@2", W: "e4@15 ~@4 g#4@4 ~@9",
  X: "[~@31 e4@4 ~@4 e4@5 ~@11 g#4@3 ~@6, ~@51 g#3@7 ~@6]/2", Y: "[~@14 d4@3 ~@5 b4@6 ~@2 e4@16 ~@18]/2",
  Z: "[~@29 c4@8 ~@8 d4@8 ~@8 e4@8 [a2,e4]@4 ~@23]/3", AA: "~@28 d4@3 ~", AB: "[~@7 c4@2 ~@2 e4@2 ~@3]/2",
  AC: "[~@4 e4@3 ~@20 c4@8 ~@16 d4@2 ~@11]/2", AD: "[~@27 c4@8 ~@8 d4@8 ~@8 e4@8 [a2,e4]@4 ~@25]/3",
  AE: "~@26 d4@3 ~@3", AF: "~@13 c4@3", AG: "~@5 e4@4 ~@7", AH: "~@2 e4@3 ~@20 c4@7", AI: "~@17 d4@2 ~@13",
  AJ: "~@25 c4@7", AK: "~@9 d4@8 ~@8 e4@7", AL: "~ [a2,e4]@4 ~@27", AM: "~@24 d4@3 ~@5", AN: "~@3 c4", AO: "~ e4 ~@2",
  AP: "e4@3 ~@20 c4@8 ~", AQ: "~@15 d4@2 ~@15", AR: "~@23 c4@8 ~", AS: "[~@7 d4@8 ~@8 e4@7 [a2,e4]@4 ~@30]/2",
  AT: "~@22 d4@3 ~@7", AU: "~@11 c4@4 ~", AV: "~@6 e4@8 ~@15 e4@3", AW: "~@21 c4@8 ~@3", AX: "~@13 d4@2 ~@17",
})).s("gm_piano").gain(0.15)

// bass · electric bass pick
const bass = note("<~@19 A B C D E F G H ~@12 A I@6 J ~@51>".pickRestart({
  A: "g2@6 ~@2 g2@8 d3@7 ~ d3@8", B: "e3@7 ~ e3@8 d3@8 g2@4 b2@4", C: "c3@7 ~ c3@8 e3@7 ~ e3@8",
  D: "d3@7 ~ d3@2 ~@2 d3@7 ~ d3 ~@7 a2@4, ~@6 d3 ~, ~@13 c3@2 ~", E: "g2@7 ~ g2@8 b2@7 ~ b2@8",
  F: "e3@7 ~ e3@4 c3@12 c3@8", G: "g2@7 ~ g2@8 d3@7 ~ d3@8", H: "e3@2 ~@2 e3@8 d3 ~@3 d3@12 ~@4",
  I: "[e3@7 ~ e3@8 d3@8 g2@4 b2@3 c3@7 ~ c3@8 e3@7 ~ e3@8 d3@7 ~ d3@2 ~@2 d3@7 ~ d3 ~@7 a2@4 g2@7 ~ g2@8 b2@7 ~ b2@8 e3@7 ~ e3@4 c3@11 ~ c3@7 g2@7 ~ g2@8 d3@7 ~ d3@8 e3@2, ~@87 d3@4 ~@101, ~@89 c3@4 ~@99]/6",
  J: "~@2 e3 ~@3 e3 ~@3 e3@2 ~@2 e3@2 ~@2 e3 ~@3 e3 ~@3 e3 ~@5",
})).s("gm_electric_bass_pick").gain(0.47)

// bass · electric bass pick
const bass_2 = note(`<
  ~@27 A B C D E F G H I@2 J K ~@7 L@6 M@2 N@3 O P@2 Q@2 R S T U V W X Y Z AA@6 AB@8 AC AD AE AF@2 AG@2 AH@2 AI@2 AJ@2
>`.pickRestart({
  A: "g2@3 ~@5", B: "e2@3 ~ d2@3 ~", C: "c2@3 ~@5", D: "d2@9 ~@3 d2 ~@3 b2@9 ~@7", E: "c2@3 ~ b1@3 ~",
  F: "~@4 e2@2 ~@2 e2@8 d2 ~@3 d2@12", G: "g2@3 ~ f#2@3 ~", H: "~@16 d2@11 ~@5", I: "[c2@10 ~@6 a1@7 ~@5 d2@11 ~@25]/2",
  J: "c2@7 ~ c2@7 ~ b1 ~@3 b1@12", K: "e2@7 ~ e2 ~@3 e2@7 ~ d2@10 ~@2",
  L: "[~@30 a2@12 ~@20 f#2@12 ~@4 e2@11 ~@4 d2@12 ~@20 e2@9 ~@3 e2 ~@3 c#3@9 ~@7 d2@12 ~@4 c#2@12 ~@7]/6",
  M: "[~ f#2@2 ~@2 f#2@8 e2 ~@2 e2@12 a2@12 ~@4 g#2@12 ~@8]/2",
  N: "[~@12 e2@11 ~@5 d2@10 ~@6 b1@7 ~@5 e2@11 ~@24 d2@5]/3", O: "~@3 d2@7 ~ c#2 ~@3 c#2@12 f#2@5",
  P: "[~@3 f#2 ~@3 f#2@7 ~ e2@10 ~@2 a2@12 ~@4 g#2@12 ~@9]/2", Q: "[~@10 e2@11 ~@5 d2@10 ~@6 b1@7 ~@5 e2@10]/2",
  R: "~@13 d2@3", S: "~@2 d2@7 ~ c#2 ~@3 c#2@12 f#2@6", T: "~ f#2 ~@3 e2@10 ~@10 f2@7", U: "~ f2@2 ~@2 g2@19 ~ c2@7",
  V: "~ c2@7 ~ g2@7 ~ g2@8 a2@7", W: "~ a2@4 g2@8 c2@2 ~@2 c2@4 e2@4 f2@7", X: "f2@8 a2@7 ~ a2@7 ~ g2@6 ~@2",
  Y: "g2 ~@3 g2@9 ~@3 g2@4 ~@4 c2@7 ~", Z: "c2@2 ~@2 e2@3 ~ e2@4 a2@3 ~",
  AA: "[a2@4 f2@7 ~@5 f2@4 ~@3 c2@7 ~ c2@7 ~ g2@6 ~@2 g2@5 ~@3 a2@8 ~@4 g2@16 ~@4 c2@7 ~ c2@7 ~ g2@7 ~ g2@8 a2@7 ~ a2@4 g2@8 c2@2 ~@2 c2@3 e2@4 f2@7 ~ f2@8 a2@7 ~ a2@7 ~ g2@6 ~@2 g2 ~, ~@63 a2@7 ~@122]/6",
  AB: "[~@2 g2@9 ~@3 g2@4 ~@4 c2@7 ~ c2@4 ~@4 e2@6 ~@2 e2@8 a2@6 ~@2 a2@4 f2@7 ~@4 f2@4 ~@4 c2@7 ~ c2@7 ~ g2@6 ~@2 g2@5 ~@3 a2@8 ~@4 g2@16 ~@4 c2@7 ~ c2@7 ~ g2@7 ~ g2@8 a2@7 ~ a2@4 g2@7 c2@2 ~@2 c2@4 e2@4 f2@7 ~ f2@8 a2@7 ~ a2@7 ~ g2@6 ~@2 g2 ~@3, ~@125 a2@7 ~@124]/8",
  AC: "g2@9 ~@3 g2@4 ~@4 c2@7 ~ c2@4", AD: "~@2 e2@3 ~ e2@4 a2@3 ~ a2@2", AE: "f2@7 ~@4 f2@4 ~@4 c2@7 ~ c2@5",
  AF: "[~@3 g2@6 ~@2 g2@5 ~@3 a2@8 ~@4 g2@16 ~@4 c2@7 ~ c2@5, ~@27 a2@7 ~@30]/2",
  AG: "[~@3 g2@7 ~ g2@8 a2@7 ~@4 g2@8 c2@2 ~@2 c2@4 e2@4 f2@7 ~ f2@6, ~@27 a2@5 ~@32]/2",
  AH: "[~@2 a2@7 ~ a2@7 ~ g2@6 ~@2 g2 ~@3 g2@9 ~@3 g2@4 ~@4 c2@7 ~ c2@4 ~@2]/2",
  AI: "[~@2 e2@6 ~@2 e2@8 a2@6 ~ a2@4 f2@7 ~@5 f2@4 ~@4 c2@7 ~ c2@7]/2",
  AJ: "[~ g2@6 ~@2 g2@5 ~@3 a2@8 ~@4 g2@16 ~@19, ~@25 a2@7 ~@32]/2",
})).s("gm_electric_bass_pick").gain(0.44)

// bass · electric bass pick · soft notes
const bass_soft = note(`<
  ~@27 A B C D E@2 F G H I ~@10 J K L M N ~ O@2 P Q ~@2 R@2 S T ~@3 U ~@2 V W X Y ~ Z ~@2 AA AB AC AD ~ AE ~@2 AF AG AH
  AI ~ AJ ~@2 AK@2 AL AM ~
>`.pickRestart({
  A: "~@3 g2 f#2@3 f#2", B: "~@12 e2@5 ~@11 d2@4", C: "~@12 c2@4 b1@9 ~@3 b1@4", D: "~@24 a2@7 ~",
  E: "[~@12 c2@5 ~@11 b1@8 ~@28]/2", F: "~@12 g2@5 ~@11 f#2@4", G: "e2@12 e2@5 ~@11 d2@4", H: "~@12 c2@5 ~@7 a1@5 ~@3",
  I: "~@4 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2@2", J: "~@10 a2@4 g#2@12 g#2@5 ~", K: "~@10 f#2@5 ~@10 e2@5 ~@2",
  L: "~@9 d2@4 c#2@9 ~@3 c#2@4 ~@3", M: "~@21 b2@7 ~@4", N: "~@9 d2@5 ~@11 c#2@7",
  O: "[~@8 a2@5 ~@11 g#2@4 f#2@12 f#2@5 ~@11 e2@5 ~@3]/2", P: "~@8 d2@5 ~@7 b1@5 ~@7",
  Q: "~@4 e2@2 ~@2 e2@2 ~ e2@2 ~@2 e2 ~@3 e2@2 ~@2 e2@5 ~@4", R: "[~@7 a2@5 ~@11 g#2@4 f#2@11 f#2@5 ~@11 e2@5 ~@5]/2",
  S: "~@6 d2@5 ~@7 b1@5 ~@9", T: "~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2 ~@3 e2@2 ~@2 e2@5 ~@5", U: "~@21 c2 ~@10",
  V: "~@20 c2 ~@11", W: "~ g1 ~@6", X: "~@12 f2 ~@7 c2 ~@11", Y: "~@19 c2@2 ~@11", Z: "~@19 c2 ~@12",
  AA: "~@18 c2 ~@13", AB: "~ g1@2 ~@13", AC: "~@10 f2 ~@6 c2 ~@14", AD: "~@17 c2@2 ~@13", AE: "~@17 c2 ~@14",
  AF: "~@16 c2 ~@15", AG: "g1 ~@7", AH: "~@7 f2 ~@7 c2 ~@16", AI: "~@15 c2@2 ~@15", AJ: "~@15 c2 ~@16",
  AK: "[~@14 c2 ~@15 g1@4 ~@30]/2", AL: "~@5 f2 ~@7 c2 ~@18", AM: "~@13 c2@2 ~@17",
})).s("gm_electric_bass_pick").gain(0.19)

// other · reed organ
const reed_organ = note("<~@27 A B C D E F ~@13 G@2 H@5 I J@3 K@2 ~@39>".pickRestart({
  A: "b4 d5", B: "~@3 e4", C: "c5@4 b4@3 d5", D: "a4@8 d5@8 e5@9 ~@7", E: "g5@4 f#5@3 b4", F: "e5@16 d5@15 ~",
  G: "[~@15 c#5@8 e5@8 ~]/2",
  H: "[~@21 f#4@8 d5@16 c#5@8 e5@8 b4@8 e5@8 f#5@9 ~@7 a5@16 g#5@8 c#5@8 f#5@16 e5@15 ~@4]/5", I: "~@12 b4@13 ~@3 a4@4",
  J: "[~@4 a4@24 d5@16 c#5@16 b4@31 d5@4 ~]/3", K: "[~@3 d5@8 c#5@4 b4@4 ~@8 a4@29 ~@8]/2",
})).s("gm_reed_organ").gain(0.27)

// other · reed organ · soft notes
const reed_organ_soft = note("<~@28 A ~ B ~@16 C@2 ~ D ~ E@2 F ~ G@2 ~@40>".pickRestart({
  A: "g4@3 ~", B: "~@3 f#5", C: "[~@15 a4@12 ~@5]/2", D: "~@21 g#5@8 ~@3", E: "[~@28 c#5@15 ~@13 c#5@5 ~@3]/2",
  F: "g#4 ~@7", G: "[~@31 c#5@4 ~@16 c#5@8 ~@5]/2",
})).s("gm_reed_organ").gain(0.14)

// other · pad bowed
const pad_bowed = note("<~@73 A B C D@3 E F@2 G H I J K@4 L@4 M@4>".pickRestart({
  A: "~@27 c4 ~ d4 ~@2", B: "g4 ~ a4 ~@3 d5@2 ~@2 a4@2 g4@2 c5@4 d5@2 ~@2 d5@10",
  C: "~@2 c5@11 ~ a4@2 g4@2 e4@2 d4 ~ c4@10",
  D: "[~@2 f4 ~@3 f4@4 e4@3 ~ c4@4 f4@9 ~@3 f4@15 ~@14 d4 ~ e4 ~ g4@2 a4 ~@3 d5@2 ~@4 c5@2 d5@2 e5@2 ~@2 a5@10 ~@3, ~@81 g5@4 ~@11]/3",
  E: "~ a5@7 ~ c6@3 ~ a5@2 ~@2 g5@9 ~@3 e5@3", F: "[~ d5@4 e5@4 a4@3 ~ c5@4 e5@3 ~@5 e5@12 ~@19 e4 ~ g4 ~ a4 ~ c5@2]/2",
  G: "a4@2 g4@2 a4@2 e4 ~ g4@2 a4@2 c5@2 a4@2 g4@2 ~@2 a4 ~@3 e5@8", H: "d5@7 ~ c5@4 a4@4 g4@4 a4@8 e4 ~@3",
  I: "e4@8 ~@4 c4@4 g4@7 ~ a4@2 ~@6", J: "g4@8 e4@4 g4@3 e4@3 ~@5 e5 ~ g5 ~ a5 ~ c6@2 ~",
  K: "[~ g5@2 a5@2 e5 ~ g5 ~ a5@2 c6@2 a5@2 g5@2 ~@2 a5@6 ~@6 c6@7 ~ b5@4 a5@4 g5@7 ~ e5@4 d5@4 e5@8 a4@4 c5@2 ~@2 e5@7 ~ d5@6 ~@2 c5@8 a4@7 c5@10 ~@2 d5@6]/4",
  L: "[~@2 e5@8 g5@5 ~@3 a5@10 ~@2 a5@8 g5@3 ~ e5@3 ~ d5@8 c5 ~@7 c5@8 a4@4 g4@2 ~@2 g4@10 ~@2 a4 ~@3 g4@6 ~ g4@3 ~ a4@3 ~ g4@4 c5@4 ~@4 e5@7, ~@18 g5 ~@109]/4",
  M: "[~ g5@6 ~@2 g#5@7 ~ a5@8 c6@2 ~@2 c6@8 b5@4 a5@4 g5@8 e5@3 ~ d5@4 e5@7 ~ a4@4 c5@4 e5@5 ~@3 e5@16 ~@27]/4",
})).s("gm_pad_bowed").gain(0.27).pan(0.9)

// other · pad bowed · soft notes
const pad_bowed_soft = note("<~@73 A B ~@2 C D ~@3 E ~ F G@2 ~@11>".pickRestart({
  A: "~@30 e4 ~", B: "~@2 c5 ~ c5 ~@11", C: "~@25 c4@2 ~@5", D: "~@3 c5@2 ~@2 c5@2 a4@2 ~@21", E: "~@9 e4 ~@6",
  F: "~@2 d4 ~@5", G: "[~@31 a5@2 ~@16 e5 ~@14]/2",
})).s("gm_pad_bowed").gain(0.18).pan(0.9)

// drums · kick
const kick = s("bd").struct(`<
  ~@19 A B A B A B A B A@5 ~ A@3 ~ A C A D E F E G H@3 I J@3 K L@3 M@2 N M O@4 ~ P Q R S@3 T U@3 V W@3 X Y@3 Z AA@3 AB
  AC@3 AD AE@3 AF AG AH
>`.pickRestart({
  A: "x!2", B: "x ~@3 x ~@2 x", C: "x", D: "x ~@15 x ~@11 x ~@2 x", E: "~@15 x ~@15 x", F: "~@15 x ~@11 x ~@3 x",
  G: "~@15 x ~@10 x ~@3 x ~", H: "~@7 x ~@7 x", I: "~@14 x ~@14 x ~@2", J: "~@13 x ~@15 x ~@2", K: "~@13 x ~@14 x ~@3",
  L: "~@3 x ~@3 x", M: "~@11 x ~@15 x ~@4", N: "~@27 x ~@4", O: "~@5 x ~@7 x ~@2", P: "~@25 x ~@6",
  Q: "~@9 x ~@15 x ~@6", R: "~@9 x ~@11 x ~@3 x ~@6", S: "~ x ~ x", T: "~@8 x ~@11 x ~@2 x ~@8", U: "~@7 x ~@15 x ~@8",
  V: "~@7 x ~@10 x ~@3 x ~@9", W: "~@3 x ~@7 x ~@4", X: "~@6 x ~@10 x ~@3 x ~@10", Y: "~@5 x ~@15 x ~@10",
  Z: "~@5 x ~@10 x ~@3 x ~@11", AA: "~ x ~@3 x ~@2", AB: "~@3 x ~@11 x ~@3 x ~@12", AC: "~@3 x ~@15 x ~@12",
  AD: "~ x ~@5 x ~ x ~@6", AE: "~ x ~@7 x ~@6", AF: "~ x ~@11 x ~@3 x ~@14", AG: "~ x ~@15 x ~@14", AH: "~ x ~@30",
})).gain(0.62)

// drums · snare
const snare = s("sd").struct(`<
  ~@18 A B@13 C B@3 ~ B D B@2 E@4 F G F H I@3 J K@3 L M N M O P@3 Q ~ R@2 S T S U V W V X Y Z Y AA@2 AB AA AC@2 AD AC
  AE@2 AF AE AG@2 AH AI AJ@2 AK
>`.pickRestart({
  A: "~@3 x ~@3 x ~@7 x ~@3 x ~@12", B: "~ x ~ x", C: "~ x!2 ~ x!2 ~@2", D: "~@2 x!2 ~@4", E: "~@7 x ~@15 x ~@8",
  F: "~@3 x ~@7 x ~@4", G: "~@3 x ~@7 x ~ x ~@2", H: "~@6 x ~@14 x ~@10", I: "~@5 x ~@15 x ~@10",
  J: "~@5 x ~@14 x ~@11", K: "~ x ~@3 x ~@2", L: "~@4 x ~@14 x ~@12", M: "~@3 x ~@15 x ~@12", N: "~@3 x ~@3 x ~@24",
// … 108 more lines

More by Alberto Fortis