Strudelify

La ragazza con gli occhi di sole

Pooh

KeyE majorTempo112 bpm
0:00/0:00
// La ragazza con gli occhi di sole — Pooh
// 112 bpm, 4/4, key E 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: Full arrangement: all 111 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(112/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 · acoustic guitar steel · "Ac.Gtr"
const acoustic_guitar_steel = note(`<
  ~@6 A B@2 C@2 D@2 E@7 F@2 G@7 H I J K@6 L@7 M@4 N@3 O@2 P@8 Q@5 R@2 S@2 T U V@4 W@4 X@2 Y@7 Z@8 AA@3 AB AC@8 ~
>`.pickRestart({
  A: "~@13 b2@3", B: "[~ e3@2 d#3@2 ~ f#3@11 ~ e3@4 ~@17 g#3@20 b2@5, ~@23 g#3@14 ~@27, ~@34 b2@23 ~@7]/2",
  C: "[~@3 e3@2 d#3@2 ~ f#3@12 e3@4 ~@23 a3@11 ~@2 a3@4, ~@24 a3@20 e3@15 ~@5, ~@36 f#2@25 ~@3, ~@39 c#3@19 ~@6]/2",
  D: "[~ g#3 a3 g#3 ~ f#3@2 ~ c#3@9 ~@2 e3@4 ~@26 f#3@5 ~@4 c#3@6, ~@12 d#3@15 ~@5, ~@37 b2@19 ~@8, ~@41 b3@13 ~@10]/2",
  E: "[~@9 b3@3 ~ g#3@11 ~@13 g#3@5 ~@3 e3@4 ~@4 e3@4 ~@29 e3@3 ~@13 g#3@4 ~@4 g#3@3 ~@5 b3@4 ~@53 b3@4 g#3@5 b3@2 ~@10 f#3@4 ~@17 a3@4 a2@3, ~@5 b2@14 ~@6 e2@30 ~@3 e2@31 ~ e2@24 a3@7 ~@5 b2@21 b3@20 g#3@4 e4@14 ~@19 f#3@17 ~@3, ~@29 b2@27 ~@5 b2@17 b3@11 ~@9 e3@29 ~@3 e3@7 ~@2 e3@16 e2@29 ~@4 f#2@25 b3@8 ~@3, ~@33 e3@9 b3@16 ~@11 g#3@5 e4@15 ~@17 e4@16 ~@12 g#3@9 e4@20 e3@23 ~@14 a3@8 e4@13 ~@3, ~@49 a3@8 ~@8 e3@17 a3@7 ~@5 b2@26 ~@2 e2@29 g#3@8 b2@26 ~@7 c#3@27 ~@5]/7",
  F: "[~@5 a3@4 ~@12 b3@4 a3@2 ~@30 b3@3 ~ a2@3, ~ e3@26 ~@2 b2@31 ~@4, ~@9 b3@8 e4@11 ~@9 b3@7 ~ b3@8 e4@8 ~@3, ~@13 a3@10 ~@10 f#3@13 ~@3 f#3@11 ~@4, ~@41 d#4@19 ~@4]/2",
  G: "[~@25 e3@4 ~@24 a3@4 ~@33 e3@3 ~@25 a3@4 ~@56 b3@5 ~@4 b3@2 ~@19 b3@4 ~@8 a3@4, ~ e3@22 ~@10 b2@24 e3@4 g#3@4 b2@26 ~@3 e2@28 b3@16 g#3@4 e4@24 e3@23 ~@6 c#3@21 b3@8, ~@5 b3@8 b2@15 ~ e2@30 ~@2 e2@25 g#3@7 ~@5 b2@26 ~@2 e2@24 g#3@12 b2@21 g#3@7 ~@9 f#3@25, ~@9 a3@11 ~ a3@7 ~@9 e3@12 b3@25 g#3@4 e4@16 ~@12 g#3@8 e4@20 e3@12 b3@24 g#3@4 e4@15 ~@14 a3@9 e4@12, ~@17 b3@12 ~@12 g#3@4 e4@24 e3@13 b3@11 ~@9 e3@7 ~ e3@16 g#3@4 b2@24 e3@4 e2@26 ~@7 f#2@30 ~@3]/7",
  H: "~@4 a3@2 ~@6 b3@2 a3 ~, a2@29 ~@3, ~@2 e3@13 ~, ~@12 b3@8 e4@11 ~, ~@8 a3@5 ~@3",
  I: "~@9 b3@4 ~@16 b3@3, b2, ~@4 f#3@13 b3@11 ~@4, ~@13 d#4@12 e4@7, ~@21 f#3@11",
  J: "~@13 a3@2 e3, ~ a2@17 b2@14, ~@5 b3@14 ~@3 b3@10, ~@9 a3@15 ~@8, ~@7 e3@7 ~@2",
  K: "[~@23 b3@4 ~@38 e3@3 ~@13 g#3@3 ~@13 a3@3 ~@28 b3@5 ~@4 f#3@4 ~@20 f#3@3 ~@13 g#3@2 ~@10 e3@3, ~@2 e2@25 a3@4 b3@21 e3@5 e4@12 ~@39 b3@10 ~@2 b3@4 d#4@24 ~ e4@16 ~@27, ~@6 b2@28 ~@2 e2@32 ~ e2@15 ~ f#2@15 ~@16 e4@28 ~ f#3@12 d#4@7 ~@9 e3@13 ~@6, ~@11 e3@25 g#3@4 b2@28 ~@5 b2@11 ~@5 c#3@11 ~ b2@28 ~@4 b2@30 ~@2 e2@15 ~ [f#2,a3]@11, ~@15 g#3@4 e4@25 e3@4 g#3@13 b3@7 ~@9 e3@8 ~@8 e3@7 ~@5 f#3@6 ~ f#3@22 ~@7 b3@11 ~ b3@11 ~@5 b2@11 ~@5 c#3@7]/6", // F#m
  L: "[~ a3@2 ~@6 f#3@4 ~@28 f#3@4 ~@9 e4@17 ~@7 b2@7 e3@2 ~ d#3@2 ~ f#3@11 ~ e3@3 ~@31 g#3@4 ~@4 b2@6 e3@2 ~ d#3@2 ~@2 f#3@11 e3@4 ~@29 e3@4 ~@4 a3@3 ~ g#3 a3 g#3@2 f#3@3 ~ c#3@2, ~@5 b2@28 b3@7 ~@5 b3@26 ~@41 b2@14 ~@2 b2@14 ~@39 c#3@15 ~@2 c#3@8 ~@18, ~@13 b3@11 ~ b3@3 d#4@12 ~@10 f#3@21 ~@37 g#3@11 ~ g#3@15 ~@38 a3@17 ~@3 a3@13 ~@18, ~@17 f#3@20 b2@34 ~@37 e2@31 ~@2 e2@8 ~@24 f#2@31 ~@2 f#2@8 ~@10, ~@21 e4@29 ~@66 e3@14 ~@3 e3@8 ~@44 e3@15 ~@24]/7",
  M: "[~@7 e3@6 ~@22 d#3@12 ~@21 c#3@8 b2 ~@15 c#3@7 ~@10 c#3@4 e2@5 b2@6 ~ e3@3, ~@15 d#3@7 ~ d#3@10 ~@18 c#3@15 ~@18 c#3@7 ~@10 c#3@7 ~@20, ~@19 b2@27 ~@2 b2@26 ~@6 e2@32 ~@16, ~@27 b3@20 ~@13 a3@18 ~@10 g#3@15 ~@2 g#3@8 ~@15]/4",
  N: "[d#3@2 ~ f#3@10 ~ e3@4 ~@26 b2@4 g#3@2 ~@27 b3@6 ~@10 f#3@3, ~@20 e2@28 ~@16 c#4@19 ~@13, ~@20 g#3@8 e3@8 g#3@10 ~@10 f3@15 ~@2 f3@10 ~@6 c#3@7, ~@24 b2@16 e3@11 ~ c#3@32 ~ f#2@11, ~@16 b3@9 ~@5 b3@7 ~@11]/3",
  O: "[~@4 f#3@4 ~@5 f#3@4 a3 ~@24 c4@4 a3@4 c4@2 ~@9 g#3@3, ~ a3@14 ~@10 e3@27 ~@6 e3@6, ~@8 c#3@11 ~@2 a2@32 ~ b2@10, ~@29 a3@15 ~@20, ~@33 c4@4 f#4@14 ~@13]/2",
  P: "[~@17 b3@2 ~@15 b2@16 ~@25 b3@4 a3@4 ~@24 b3@5 ~@3 b3@5 ~@94 b3@3 ~@30 e3@4 a2@4 e3, ~@2 e4@18 ~@10 b3@22 ~@11 e3@24 g#3@4 b2@21 g#3@5 ~@11 e3@25 g#3@4 b2@20 b3@21 g#3@4 e4@4 b3@4 g#3@7 ~@13 a3@8 ~ a3@12 ~@5, ~@6 b3@8 e3@5 ~@3 b2@10 ~@23 e2@28 b3@16 g#3@4 e4@17 ~@12 g#3@5 e4@24 e3@4 g#3@25 b2@27 ~@5 c#3@21 c#3@8 ~@5, ~@10 g#3@10 ~@6 f#3@26 ~@7 b2@26 ~@2 e2@33 e2@21 b3@4 a3@8 e2@28 e3@5 e2@31 ~ f#2@32 ~@6, ~@67 g#3@4 e4@24 e3@25 ~@4 b2@25 b3@20 e3@4 e4@21 e3@24 ~@8 e3@8 e3@12 ~@10]/8",
  Q: "[~@23 a3@3 ~@30 f#3@3 ~@84 e4@12 ~@5, ~@3 b3@16 b3@7 ~@10 b3@8 b3@4 e4@49 b2@13 e4@25 e3@4 g#3@15 ~@6, ~@7 a3@16 ~@9 f#3@20 b3@7 ~@5 e3@21 a3@20 g#3@9 b3@4 a3@4 b3@32 ~@6, ~@11 e3@15 ~@2 b2@32 a2@12 a3@9 b3@20 e3@25 g#3@5 b2@24 ~@5, ~@15 e4@11 ~@14 d#4@20 ~@8 b3@8 b2@13 e3@4 e2@33 e2@28 ~@6]/5",
  R: "[~@15 e3, e2@4 e4@6 e3 g#3@3 b3@2, ~ b2@4 b3 a3 b3@5 e3 e4@3, ~@8 e3@24 g#3@4 b2@27 ~, ~@12 g#3@19 ~ e2@31 ~]/2",
  S: "[~@60 e3@3 ~, f#2@28 e3@8 c#3@20 b3@7 ~, ~@4 c#3@27 ~ f#2@31 ~, ~@8 e3@8 b3@32 e3@4 a3@11 ~, ~@12 a3@8 e3@4 a3@16 e3@4 e4@19 ~]/2",
  T: "~@12 f#3@2 b3 ~, b2@15 ~, ~ f#3@2 f#3@3 ~@2, ~@2 b3@3 b3@2 ~, ~@8 d#4@7 ~",
  U: "~@28 c#4@3 ~, b2@31 ~, ~@4 a3@16 a3@11 ~, ~@2 c#4@2 c#4@3 ~, ~@12 f#4@12 f#4@7 ~",
  V: "[~@24 a3@4 ~@61 a3@4 ~@29 b3@4 g#3@2, e2@16 e4@24 e3@4 g#3@13 b3@20 g#3@4 e4@29 b3@4 g#3@4 e4@10, ~@4 b2@16 b3@8 b3@21 e3@4 e4@20 e3@24 g#3@9 e3@22, ~@8 e3@24 g#3@4 b2@25 e3@8 b2@16 b3@8 b3@9 b2@26, ~@12 g#3@18 ~@2 e2@31 ~@2 e2@31 ~ e2@31]/4",
  W: "[~@64 a3@3 ~@29 f#3@3 ~@25 f#4@4, ~@2 f#2@29 e3@8 c#3@21 b3@7 ~@13 b3@8 b3@11 ~@5 c#4@12 c#4@12, ~@6 c#3@29 f#2@32 ~ b2@31 ~ b2@28, ~@5 e3@4 b3@17 e3@8 ~@2 f#3@6 f#3@6 ~@6 a3@6 a3@4, ~@14 a3@9 e3@4 a3@16 e3@4 a3@9 e4@11 ~@9 d#4@16 d#4@7 ~@13 f#4@12 ~@4]/4",
  X: "[c#4 ~@13 a3@2 ~@14 b3@2, ~ e2@4 e4@7 b3 g#3@3, ~ b2@2 b3 b3 b2@3, ~@3 e3@6 g#3@2 e3@3 e4@2, ~@16 g#3@19 ~ e2@28]/2",
  Y: "[e3@2 ~@15 g#3@3 ~@13 a3@2 ~@60 f#3@7 ~@13 g#3@3 ~@13 a3@3 ~@59 f#3@11 ~@3 b2@7 e3@3 d#3@3 f#3@4, ~@5 e2@15 ~ f#2@14 ~@10 b3@8 b3@8 b3@8 b3@8 d#4@24 ~@42 b3@8 b3@8 b3@16 b3@9 e4@21 ~@19, ~@9 b2@11 ~@5 c#3@10 ~@2 b2@32 b2@33 ~ e2@15 ~ f#2@15 ~@21 e4@8 d#4@38 ~@23, ~@13 e3@8 ~@8 e3@7 ~@5 f#3@8 f#3@8 f#3@16 f#3@13 f#3@9 ~@12 b2@11 ~@5 c#3@11 ~ b2@32 b2@38 ~@19, ~@65 e4@14 ~@3 b3@8 b3@12 ~@9 e3@8 ~@8 e3@7 ~@5 f#3@8 f#3@22 ~@2 f#3@8 ~ f#3@8 b3@16 ~@20]/7",
  Z: "[~@9 e3@4 ~@24 e3@9 ~@4 b2@6 e3@2 ~ d#3@2 ~ f#3@11 e3@4 ~@29 a3@5 ~@3 a3@4 g#3 ~ a3 g#3@2 f#3@3 ~ c#3@8 ~ e3@6 ~@26 d#3@7 ~@26 c#3@5 ~@27 c#3@8 e2@5 b2@5 ~ e3@2 ~ d#3, ~@13 e2@33 e2@10 ~@22 f#2@32 ~ f#2@8 ~@90 e2@32 ~@15, ~@14 g#3@11 g#3@4 e4@19 ~@42 e3@12 e3@11 ~@31 d#3@24 ~@9 c#3@24 ~@8 c#3@12 c#3@12 ~@23, ~@17 b2@32 ~@37 c#3@12 ~ c#3@15 ~@38 b2@13 b2@14 ~@6 b2@12 b2@9 ~@50, ~@21 e3@12 g#3@15 ~@30 a3@16 a3@12 ~@50 b3@19 ~@14 a3@18 ~@10 g#3@12 g#3@12 ~@15]/8",
  AA: "[~@2 f#3@11 ~ e3@5 ~@24 b2@4 e3@2 ~@30 f3 ~@11 f#3@5, ~@19 e2@30 ~@14 c#4@17 ~@16, ~@19 g#3@20 g#3@10 ~@10 b3@17 b3@5 ~@15, ~@27 b2@16 ~@8 c#3@29 ~@3 f#2@13, ~@31 e3@16 ~@8 f3@16 ~ f3@7 ~@8 c#3@9]/3",
  AB: "~@13 f#2@3 ~ g#2@2 ~@9 c4@4, a3@17 ~@7 a3@8, ~@3 f#3@13 ~@4 a2@12",
  AC: "[~@12 a3@4 c4 ~@27 e3@4 g#3@2 ~@3 b3@26 ~@30 g#3@5 ~@6 b3@3 ~@10 g#3@120 ~@3, f#4@17 ~@7 b2@27 ~ [b2,f#3]@27 ~@12 b2@32 ~@2 e2@127 ~@4, ~@8 c4@8 ~@4 e2@31 ~@35 e2@18 b3@10 a3@9 ~@6 e3@123 ~@4, ~@28 e3@8 b3@4 g#3@8 ~@47 e3@29 ~@4 b2@124 ~@4, ~@32 e4@18 ~@50 e4@25 ~@131]/8", // B5
})).s("gm_acoustic_guitar_steel").gain(0.21)

// chords · synth strings 1 · "SynStrg1"
const synth_strings_1 = note(`<
  ~ A@2 B@8 C@7 D@3 E F@8 G H@6 I@4 J@8 K@6 L@2 M@5 N@5 O@4 P Q R@2 S@8 T@3 U@4 V@8 W@6 X@6 ~
>`.pickRestart({
  A: "[~@3 [c#3,a3,b3,e4]@13]/2", // A
  B: "[~@14 [f#2,a3]@69 ~@133 [f#2,a3]@40, ~@7 [e3,b3]@121, ~@83 e2@132 ~@41, ~@183 e4@73]/8", // F#m E5
  C: "[~@24 [d#4,f#4]@33 a3@32 [e2,e3,g#3]@61 ~@4 g#3@24 a3@8 g#3@25 a3@8 g#3@5, ~@12 b3@63 ~@2 [b3,e4]@35, ~@12 b2@37 ~@63, ~@57 e4@94 ~@73]/7", // D#m E E5
  D: "[~@28 [a3,e4]@65 [d#4,f#4]@3, ~@7 b3@17]/3", E: "~@29 [a3,b3,e4]@3",
  F: "[~@29 g#3@24 a3@8 g#3@24 ~ a3@8 g#3@23 ~ a3@8 ~@32 b3@31 ~@2 [a3,b3,e4]@65, ~@29 b3@128 ~@99, ~@29 e4@65 e4@94 ~@68, ~@126 g#3@65 ~@65]/8", // Asus2
  G: "[d#4,f#4]", // D#m
  H: "[~ [a3,e4]@33 g#3@24 ~ a3@9 g#3@25 a3@7 ~ g#3@16 ~@16 f#4@59, ~@34 [b3,e4]@65 ~@2 b3@91, ~@101 e4@31 ~@60, ~@39 a3@25]/6", // A5 E5
  I: "[~@5 g#3@15 ~@17 [b3,f#4]@91, ~@5 [b3,e4]@32 ~@91, ~@21 a3@107]/4", // B5 E5
  J: "[~@12 [e3,g#3]@64 ~@2 [f#3,a3]@65 [a3,d#4]@32 [a3,c#4]@31 ~@2 c#4@33 ~ [e3,b3]@14, ~@12 [b3,e4]@130 ~ f#4@65 ~@48, ~@143 b3@30 ~@35 [g#3,e4]@48]/8", // E F#m Adim A E5 C#m
  K: "[~@20 [e3,e4]@32 f4@31 ~@34 c4@32 ~ [g#3,e4]@32 a3@10, ~@20 [g#3,b3]@65 [a3,f#4]@65 b3@42, ~@52 c#4@65 ~@75]/6", // E C#m G#m D
  L: "[~@23 g#3@22 ~@2 a3@7 ~ g#3@9, ~@23 [e3,b3]@41]/2", // E5
  M: "[~@24 g#3@24 ~ a3@8 g#3@64 ~ [f#3,b3]@33 c#4@5, ~@12 [e3,b3,e4]@48 ~ [a3,e4]@19]/5", // B5 E5 A5
  N: "[~@28 [b3,d#4,f#4]@32 c#4@16 a3@17 g#3@25 a3@8 g#3@31 ~@3, ~@30 [b3,e4]@49 ~, ~@93 e3@64 ~@3]/5", // B E5
  O: "[[e3,g#3]@31 ~ [f#3,a3]@32, [b3,e4]@117 ~@11]/4", P: "[a3,b3,d#4]@31 ~", Q: "~ b3, [a3,c#4,e4]",
  R: "[g#3@16 g#3@13 ~@3, [b3,e4]@59 ~@5]/2", // E5
  S: "[~ g#3@23 ~ a3@8 g#3@32 ~ [f#3,a3,b3,e4]@64 ~@2 [a3,b3,d#4]@32 [a3,b3,c#4,e4]@32 ~@32 e3@26 ~@2, ~ [e3,b3,e4]@64 ~@131 [g#3,b3,e4]@59 ~]/8", // F#m7 B7 A E5 E
  T: "[~@5 [e3,g#3]@15 ~ [f#3,a3]@16 [a3,b3,f#4]@59, ~@5 [b3,e4]@32 ~@59]/3", // E F#m B7 E5
  U: "[~@7 [e3,g#3]@15 ~ [f#3,a3]@16 [a3,b3,f#4]@89, ~@7 [b3,e4]@32 ~@89]/4", // E F#m B7 E5
  V: "[~@13 g#3@25 a3@8 g#3@32 [f#3,a3,b3,e4]@64 ~@2 [a3,b3,d#4]@32 [a3,c#4]@32 ~ c#4@32 b3@15, ~@13 [e3,b3,e4]@64 ~@67 f#4@64 ~ [g#3,e4]@47]/8", // F#m7 B7 A E5 C#m
  W: "[~@19 [g#3,b3,e4]@31 ~@2 [g#3,b3,c#4,f4]@31 ~ c#4@32 c4@31 ~ [g#3,b3,e4]@32 ~ [a3,c#4,e4]@11, ~@21 [a3,f#4]@16 ~@11]/6", // E C#7 E A D
  X: "[~@23 g#3@28 a3@16 ~@125, ~@23 [e2,e3,b3,e4]@166 ~@3]/6", // E5
})).s("gm_synth_strings_1").gain(0.05)

// chords · string ensemble 2 · "S.Strgs"
const string_ensemble_2 = note(`<
  ~ A@7 ~@26 B@3 C@4 D@8 E@8 F@5 G@5 H@4 I@4 J@8 K@3 L@4 M@2 N@2 O P Q@2 R@6 S@7
>`.pickRestart({
  A: "[~@12 g#4@32 a4@34 g#4@34 ~ e4@34 b3@51 ~@26]/7", B: "[~@5 g#4@16 a4@15 ~ [b4,f#5]@59, ~@5 e5@32 ~@59]/3",
  C: "[~@5 g#4@16 a4@15 ~ [b4,f#5]@61 ~@30, ~@5 e5@32 ~@91]/4", // B5
  D: "[~@12 [g#3,b3,e4]@57 ~@9 [a3,b3,e4]@59 ~@6 b3@32 c#4@28 ~@5 c#4@33 ~ b3@14, ~@143 [a3,f#4]@61 ~@4 e4@48]/8", // E Asus2 D
  E: "[~@20 e4@32 f4@26 ~@7 c#4@32 c4@27 ~@6 [g#3,e4]@32 a3@27 ~@6 [g#3,b3,e4]@41, ~@20 [g#3,b3]@58 ~@7 [a3,f#4]@58 ~@7 b3@59 ~@47]/8", // C#m E G#m D
  F: "[~@24 g#3@24 ~ a3@8 g#3@64 ~@34 c#4@5, ~@3 e4@17, ~@12 b3@65 ~@3, ~@61 a3@19]/5",
  G: "[~@28 d#4@32 ~@16 a3@17 g#3@25 a3@8 g#3@25 ~@9, ~@7 b3@31 ~@2, ~@60 e4@91 ~@9]/5",
  H: "[g#4@63 ~ a4@64, [b3,e4]@63 ~]/4", I: "[[d#4,f#4]@4 c#4@4 ~@3 f#4 g#4@3 ~, b3@62 ~@2 b3@57 ~@7, ~@4 e4@11 ~]/4",
  J: "[~ g#4@65 a4@65 ~ [d#4,f#4]@32 c#4@32 g#4@24 f#4@8 g#4@27 ~, ~ [b3,e4]@127 ~@4 b3@62 ~@2 b3@60, ~@41 e4@23]/8", // D#m E5
  K: "[~@5 g#5@16 a5@16 [f#4,f#5,b5]@57 ~@2, ~@5 b3@89 ~@2, ~@5 [e4,e5]@31 ~@60]/3", // B5 E
  L: "[~@7 g#5@16 a5@16 [f#4,f#5,b5]@64 ~@25, ~@7 b3@96 ~@25, ~@7 [e4,e5]@32 ~@89]/4", M: "[~@13 [b3,e4,g#4]@45 ~@6]/2",
  N: "[~@14 [c#4,e4,a4]@43 ~@7]/2", O: "~@16 [b3,d#4,f#4]@15 ~", P: "~@16 [a3,c#4,f#4]@13 ~@3",
  Q: "[~@17 c#4@31 ~ b3@15, ~@17 [g#3,e4]@47]/2", // C#m
  R: "[~@19 e4@32 ~ f4@30 ~@2 c#4@32 c4@30 ~@2 [e4,g#4]@33 [a3,c#4,f#4]@11, ~@19 [b3,g#4]@64 ~ [f#4,a4]@64 b3@30 ~@14]/6", // E F#m E F#m
  S: "[~@23 g#3@26 ~@2 a3@13 e3@131 ~@29, ~@23 [b3,e4]@171 ~@30]/7", // E5
})).s("gm_string_ensemble_2").gain(0.06)

// other · acoustic guitar steel · "Mandolin"
const acoustic_guitar_steel_2 = note(`<
  ~@41 A B C D@2 E F G@2 H I J K L M ~@34 N O P Q R S T U V W X Y Z AA AB ~@6
>`.pickRestart({
  A: "~@12 g#5!6 ~ g#5!13", B: "g#5!3 ~ f#5@2 f#5!7 e5 ~ e5!9 ~ e5!5 ~ e5, ~@3 g#5@10 ~@19",
  C: "e5 e5@8 ~@6 a5!2 ~ a5!4 ~ a5!9",
  D: "[a5!4 ~@2 g#5!8 f#5!6 ~ f#5!6 ~ f#5 ~ f#5 f#5@2 f#5!2 ~@2 f#5@7 ~@4 d#5!7 ~ d#5 ~ d#5!6, ~@4 a5@9 ~@51]/2",
  E: "d#5!3 ~ d#5 d#5@2 d#5 d#5@5 ~@2 c#5 ~ c#5!6 ~ c#5!7 ~", F: "c#5!2 ~ c#5 c#5@2 ~@10 c#5!2 ~ c#5!2 ~ c#5!8 ~ c#5",
  G: "[c#5!6 ~ c#5!4 ~@6 b4@18 ~@17 g#5!3 ~ g#5!8, ~@7 c#5@10 ~@15]/2", H: "g#5!11 ~ f#5!7 ~ f5!2 ~ f5!5 ~ f5!3",
  I: "f5!3 ~ f5!5 f5@3 f5@5 ~@4 a5!8 ~ a5!2", J: "a5!9 a5@2 a5 g#5 ~ g#5!3 ~ g#5!2 ~ f#5 ~ f#5!4 ~ f#5!4",
  K: "f#5 f#5@2 ~ f#5!3 ~@2 f#5 ~@12 e5@2 ~ e5!5 ~ e5", L: "e5!2 e5@2 e5@2 e5@3 e5!2 ~ e5@7 ~@9 b4!2 ~@2",
  M: "b4 b4@3 ~@28", N: "~@13 g#5!2 ~ g#5 ~ g#5!14", O: "g#5!4 ~ f#5@2 f#5!7 e5!2 ~ e5!8 ~ e5!5 ~, ~@2 g#5@5 ~@9",
  P: "e5!2 e5@8 ~@6 a5!2 ~ a5!10 ~ a5!2", Q: "a5!5 ~@2 g#5!8 f#5!7 ~ f#5!7 ~ f#5, ~@5 a5@9 ~@18",
  R: "f#5@2 f#5!2 ~@2 f#5@7 ~@4 d#5!9 ~ d#5!5", S: "d#5!5 d#5@2 d#5 ~ d#5@5 ~@2 c#5 ~ c#5!7 ~ c#5!6",
  T: "c#5!2 ~@2 c#5 c#5@2 ~@10 c#5!2 ~ c#5!4 ~ c#5!7", U: "c#5!6 ~ c#5!4 ~@6 b4@15, ~@7 c#5@9", V: "~@19 g#5 ~ g#5!11",
  W: "~ g#5!3 ~ g#5 ~ g#5!4 f#5 ~ f#5!2 ~ f#5 ~ f#5 f5 ~ f5!6 ~ f5!4", X: "f5!2 ~ f5!5 f5@3 f5@5 ~@3 a5!2 ~ a5!10",
  Y: "~ a5 ~ a5!5 a5@2 a5 g#5!8 ~ f#5 ~ f#5!6 ~ f#5 ~ f#5", Z: "f#5 ~ f#5 ~ f#5 ~@2 f#5 ~@13 e5@2 e5!5 ~ e5!3",
  AA: "e5@2 e5@2 e5@3 e5!2 ~@2 e5@7 ~@9 b4 b4@2 ~ b4", AB: "b4@3 ~@29",
})).s("gm_acoustic_guitar_steel").gain(0.08)

// other · acoustic guitar steel · "Mandolin" · soft notes
const acoustic_guitar_steel_3 = note("<~@43 A ~ B ~ C D ~@3 E F G H ~@36 I ~ J ~ K D ~@3 L M N O ~@6>".pickRestart({
  A: "~@17 a5 ~@14", B: "~@3 f#5@2 ~@27", C: "~@2 c#5 ~@3 c#5@9 ~@17", D: "~@12 c#5!2 ~@18", E: "~@22 f#5 ~@9",
  F: "~@3 f#5 ~@3 f#5 ~@2 f#5!4 ~ f#5@5 ~@12", G: "~@11 e5 ~@11 b4@2 b4@2 ~@4 b4", H: "~@4 b4 b4@13 ~@14",
  I: "~@18 a5 ~@13", J: "~@2 f#5 ~@13", K: "~@3 c#5 ~@3 c#5@9 ~@3 c#5 ~@12", L: "~@21 f#5 ~@10",
  M: "~ f#5 ~@4 f#5 ~ f#5 ~ f#5 ~ f#5 f#5@5 ~@14", N: "~@9 e5 ~@12 b4@2 b4@3 ~@3 b4 ~", O: "~@3 b4 b4@13 ~@15",
})).s("gm_acoustic_guitar_steel").gain(0.05)

// other · acoustic guitar nylon · "Ny.Gtr"
const acoustic_guitar_nylon = note("<~@66 A B C D@2 E F@2 G H@2 I J K L M N ~@28>".pickRestart({
  A: "~@24 e4@3 ~ f#4@3 ~", B: "~ g#4@24 f#4@2 g#4@2 ~ f#4@2", C: "e4@27 f#4@2 ~ g#4@2",
  D: "[a4@23 ~ b4@7 f#4@28 ~@5]/2", E: "f#4@20 ~ g#4@4 ~ g#4@2 a4@3 ~",
  F: "[f#4@19 ~@9 b4@2 ~ a4@2 ~ g#4@4 f#4@3 e4@2 ~ c#4@2 b3@2 a3@2 g#3 a3 g#3 f#3 ~ e3 ~ c#3 ~ b2 a2 ~ g#2 f#2]/2",
  G: "~ e2 f#2 g#2 ~ a2 b2 ~ c#3 ~ e3@3 ~@2 f#3 ~ g#3@2 ~@9 g#4@2 a4@2",
  H: "[~ b4@4 e5@2 d#5@2 ~ b4@2 a4@2 g#4@2 ~ f#4 g#4 f#4@3 e4@16 ~@7 e4@4 ~ f#4@5 g#4@4 ~@2 a4@3]/2",
  I: "~@2 b4@11 ~ a4@2 g#4@2 f#4@12 g#4 ~", J: "e4@2 f#4@12 b3@2 c#4@3 e4@3 b3@2 ~ a3@3 b3@2 e4@2",
  K: "~ d#4@3 ~ b3@18 f#4@2 ~@5 e4@2", L: "~ d#4@3 e4@2 d#4@3 b3@6 f#4@2 ~ e4@2 d#4@2 b3@2 c#4 ~ d#4 e4@2 f#4 ~ g#4",
  M: "~ a4@2 b4@15 ~@4 e5@2 ~ g#4@2 f#4@3 e4@2", N: "~ c#4@2 b3@2 ~ g#3@3 f#3@2 ~ g#3@4 b3@16",
})).s("gm_acoustic_guitar_nylon").gain(0.54)

// bass · fretless bass · "FretBass"
const bass = note(`<
  ~@15 A@7 B@7 C D E F@5 G@4 H@3 I@3 J@2 K@2 L M@3 N@4 O@8 P Q R S T U V@2 W@2 X Y@5 Z AA AB@2 AC@3 AD@6 AE@7 AF@7 ~
>`.pickRestart({
  A: "[~@26 e1@63 ~@2 e1@32 ~ f#1@32 ~ a1@32 b1@30 ~@2 a1@3]/7",
  B: "[~@13 b1@15 ~ e1@60 ~@5 e2@62 ~@2 e2@32 ~ f#2@32 ~]/7", C: "a1", D: "b1@15 ~", E: "~ a2@17 b1@14",
  F: "[~@2 e2@63 ~@4 e1@15 ~ f#1@15 ~ b1@59]/5", G: "[~@5 e1@16 f#1@15 ~ b1@67 ~@24]/4", H: "[~@12 e1@65 ~ f#1@18]/3",
  I: "[~@14 f#1@33 b1@32 b1@17]/3", J: "[~ e1@3]/2", K: "[~@5 e1@8 c#2@3]/2", L: "~@21 f#1@11",
  M: "[~@21 a1@33 e2@31 ~ b1@10]/3", N: "[~@55 e2@30 ~@3 e1@40, ~@23 e1@62 ~@43]/4",
  O: "[~@26 e2@32 f#1@33 a2@32 ~ b1@31 ~ a1@15 ~ b1@17 ~@33 e1@29 ~@5, ~@189 e2@62 ~@5]/8", P: "e2@24 e1@7 ~",
  Q: "e1@31 ~", R: "f#1", S: "f#2@31 ~", T: "b1@31 ~", U: "b1", V: "[~@24 e1@7 ~ e1@32, e2@29 ~@3]/2",
  W: "[~@33 e1@31, ~ e2@36 ~@27]/2", X: "~ f#1@15", Y: "[~@3 f#2@33 b1@32 b2@32 e2@23 ~ e1@8 e1@28]/5",
  Z: "~@5 e2@16 f#2@11", AA: "~@5 b1@27", AB: "[~@5 b2@34 e2@16 f#2@9]/2", AC: "[~@7 b1@32 b2@57]/3",
  AD: "[~@13 e1@64 ~ f#1@63 ~@3 b1@48]/6", AE: "[~@9 b1@8 e2@59 ~@7 e2@31 ~@2 c#2@32 f#2@32 a2@32 e2@12]/7",
  AF: "[~@12 e2@8 ~ b1@33 ~ e1@166 ~@3]/7",
})).s("gm_fretless_bass").gain(0.3)

// other · synth drum · "808BD"
const synth_drum = note(`<
  ~@26 A@2 ~@2 B ~@4 C@2 ~@4 D@2 ~@2 E@2 ~@3 F ~@6 G@2 H@2 I@2 J@2 K@2 L ~ M ~ N ~ O ~ P ~ Q ~ R ~ R ~ S ~ T U V W ~ X ~
  Y ~ Z ~ AA ~ AB ~ AC ~ AD ~@8
>`.pickRestart({
  A: "[~@7 c0@16 ~@9]/2", B: "~@17 c0@15", C: "[~@20 c0@31 ~@13]/2", D: "[~@29 c0@33 ~@2]/2", E: "[~@31 c0@30 ~@3]/2",
  F: "~@4 c0@25 ~@3", G: "[~@24 c0@37 ~@3]/2", H: "[~@26 c0@17 ~@21]/2", I: "[~@27 c0@19 ~@18]/2",
  J: "[~@7 c0@6 ~@3]/2", K: "[~@31 c0@13 ~@20]/2", L: "c0@23 ~@9", M: "c0@9 ~@7", N: "c0 ~", O: "c0@3 ~@5",
  P: "~ c0@12 ~@19", Q: "~@2 c0@9 ~@21", R: "~@4 c0@9 ~@19", S: "~@5 c0@12 ~@15", T: "~@5 c0@14 ~@13",
  U: "~@7 c0@9 ~@16", V: "~@7 c0@8 ~@17", W: "~@7 c0@11 ~@14", X: "~@13 c0@14 ~@5", Y: "~@14 c0@7 ~@11",
  Z: "~@16 c0@9 ~@7", AA: "~@17 c0@5 ~@10", AB: "~@19 c0@6 ~@7", AC: "~@20 c0@7 ~@5", AD: "~@5 c0@2 ~",
})).s("gm_synth_drum").gain(0.35)

// other · synth drum · "808BD" · soft notes
const synth_drum_soft = note("<~@30 A ~@34 B ~@19 C ~@2 D ~@22>".pickRestart({
  A: "~@13 c0 ~@18", B: "~@26 c0 ~@5", C: "~ c0 ~@30", D: "~@3 c0 ~@28",
})).s("gm_synth_drum").gain(0.15)

// chords · vibraphone · "VibraBel"
const vibraphone = note("<~@4 A@4 ~@15 B@3 ~@42 C@2 ~@6 D@3 ~@9 E@4 ~@12 F@7>".pickRestart({
  A: "[~@19 d#9 ~@11 c9 ~@6 f#8 ~@29 a#8 ~@14 c8@15 ~@30, ~@17 f9@4 e9@2 e9@27 d#8@14 d#9@17 d8 c#8@17 ~@29, ~@18 e9@2 d9@4 d#9@27 e8@12 e9@3 c9@2 b8 a8 [a#8,b8] d9 c9 [a#8,b8]@26 ~@29, ~@20 d#9@2 f9@30 [f8,f#8] g8 g#8 a8 a#8 b8 c9 c#9 d9 [d#9,e9] f9@12 a8 g#8 g8 f#8 f8 e8 d#8@19 ~@29, ~@25 d9 [c9,c#9] b8 a#8 a8 [a#8,b8]@2 [c9,d9] b8 a#8 a8 g#8 g8@2 [f8,f#8]@2 e8 d#8 d8 [d#8,e8] f8 g8 e8 d#8 d8@16 d9 c#9@33 ~@29]/4", // Bmaj7 F#maj7 Emaj7 C#maj7 Bmaj7 Csus2 F#maj7 Emaj7
  B: "[~@69 f9@25 ~@2, ~@30 c9@5 c9@17 g8 g#8@2 a8 a#8 b8 c9 c#9@2 d9 d#9 e9@3 f9 f#9@27 ~@2, ~@31 b8@2 a8@5 a8@11 f8@46 ~, ~@32 a#8@2 [a#8,b8]@3 [a#8,b8]@13 f#8@45 ~, ~@40 g#8 g8@2 f#8 f8@3 e8@48 ~]/3", // Bmaj7
  C: "[b8@2 ~ b8@2 ~@14 f8@3 ~@13 d9@2 ~@13 d#9@13 ~, ~@2 c9@3 c9@6 ~@5 g#8 g8 f#8@4 e8@5 g#8@2 a8@2 b8@2 c9 c#9@3 d#9 d9@2 d#9 e9 f9@2 e9 d#9 d9 d#9 e9@14 ~@2, ~@6 b8@5 [b8,c9]@13 f#8@2 g8@37 ~, ~@7 a#8@2 a#8@4 a#8@50 ~, ~@8 a8@6 a8@9 f8@40 ~]/2", // Cmaj7
  D: "[~@45 c9@2 ~@11 f8@16 ~@22, ~@4 e8@3 f#8@4 f#8@25 f9@4 d9@2 c#9@2 b8@3 c#9 c9@2 b8@25 ~@21, ~@5 f8@3 e8@31 d#9@12 a#8 a8@2 g#8@21 ~@21, ~@9 f8@28 e9@18 g8@2 f#8@18 ~@21, ~@12 g8@2 g#8 a8@2 a#8 b8@2 c9 c#9@2 c9 b8@2 c9 c#9@2 d9 d#9@2 e9 f9 f#9@40 ~@22]/3",
  E: "[~@29 f8@4 ~@25 e9@2 ~@26 e8@4 ~@24 f#9@6 ~@8, ~@6 d#9@8 d#9@29 g8 g#8@2 a8 a#8@2 b8 c9@2 c#9 d9@2 d#9@5 f9 e9@2 d#9 d9 d#9 e9 f9@30 g8@2 g#8@22 ~@7, ~@7 d9@5 ~ d9@2 d9@26 f#8@27 e9@27 f#8@5 a8@2 a#8 b8@2 c9@16 ~@7, ~@9 c#9@2 c#9@5 c#9@23 f8@30 d#9@25 f8@12 c#9@2 d9 d#9@2 e9 f9@8 ~@8, ~@10 c9@8 c9 b8@2 a#8 a8 g#8@2 g8@2 f#8@6 e8 f8@2 f#8@2 e8@32 d9@2 c#9 c9@2 b8 a#8 a8 g#8@2 g8 f#8 f8@7 ~ f8 f#8@2 e8@27 ~@8]/4",
  F: "[~@90 e9@6 ~@31 f8@4 ~@25 f#9@2 ~ f#9@2 ~@14 a#8@25 ~@24, ~@27 b8@5 ~ b8@3 b8@28 f#8@45 d#9@28 f8@5 g#8 a8 a#8@2 b8@2 c9 c#9 d9@2 d#9 e9@2 f9@3 g9@3 g9@2 f#9 f9 e9@3 d9 c#9@2 c9@3 b8@26 ~@24, ~@29 a#8@3 a#8@5 a#8@24 f8@50 d9 c#9@2 c9@2 b8@2 a#8 a8@2 g#8@2 g8@2 f#8@6 e8@2 f8 f#8@2 e8@64 ~@24, ~@30 a8@8 a8@2 g#8@4 f#8@2 f8@2 f#8@4 e8 f8@3 f#8@3 e8@10 g#8@3 a8@2 a#8@3 b8@3 c9@2 c#9@3 d9@2 d#9@9 e9@2 f9@2 e9@2 f9@2 e9@2 f9@35 g8@59 ~@24, ~@34 c9@33 g8@41 e9@31 f#8@61 ~@24]/7",
})).s("gm_vibraphone").gain(0.05)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  ~@67 A ~ A ~ A ~ A ~ B ~ C ~ D ~ D ~@8 E ~ E ~@2 F ~ G ~ H ~ I ~ I ~@7
>`.pickRestart({
  A: "~ x", B: "~@17 x ~@14", C: "~@9 x ~@6", D: "~@5 x ~@2", E: "~@15 x", F: "x", G: "~ x ~@30", H: "~@3 x ~@28",
  I: "~ x ~@6",
})).gain(0.24)

// drums · ride
const ride = s("rd").struct("<~@30 A ~@40 B C ~@2 D E ~@2 F G ~ H ~@28>".pickRestart({
  A: "~ x!2 ~ x ~@3", B: "~@5 x ~@2", C: "x", D: "~@29 x ~@2", E: "~ x ~@30", F: "~@25 x ~@6", G: "x!2 ~@6",
  H: "~@15 x ~@16",
})).gain(0.15)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@27 A ~@31 B ~ C ~ D ~ E ~@2 F ~ F ~ F ~ G ~ H ~ I ~ I ~ I ~ J ~@6 K ~ A ~@2 L ~ M ~ N ~ N ~@8
>`.pickRestart({
  A: "~@31 x", B: "~@9 x ~@22", C: "~@5 x ~@10", D: "~@11 x ~@20", E: "~@7 x ~@8", F: "~ x", G: "~@17 x ~@14",
  H: "~@9 x ~@6", I: "~@5 x ~@2", J: "~@21 x ~@10", K: "~@15 x", L: "~ x ~@30", M: "~ x ~@14", N: "~ x ~@6",
})).gain(0.24)

// … 23 more lines

More by Pooh