Strudelify

Poor Wand'ring One!

Gilbert & Sullivan

KeyD majorTempo120 bpm
0:00/0:00
// Poor Wand'ring One! — Gilbert & Sullivan
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 35 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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@3 B@6 C@6 D@5 E@8 F G H I@4>".pickRestart({
  A: "[~@7 g3@6 [d3,g3,b3]@5 g2@3 ~@3 [d#3,b3]@6 ~ [b3,g4]@5 g2@2 ~@4 [d3,g3]@5 ~@11 b3@5 ~@12 [d3,g3,b3]@5 [d3,g3,b3,g4]@5 g2@2 ~@5 f#3@4, b4@18 a4@17 ~ b4@33 ~@5 a4@10 ~ g4@11, ~@24 g3@11 ~@18 g2@16 [g2,b4]@16 ~@11, ~@30 d#3@5 ~@12 [d3,b3]@11 ~@6 [g3,b3]@11 ~@16 [c4,f#4]@5]/3", // G G#m Em G5 G Cdim
  B: "[~ [g3,c4] ~@4 g2@2 ~@10 [d3,b3]@5 ~@6 [d3,g3,b3]@5 ~ d3@6 ~@6 f#3@4 [f#3,c4,d4]@6 ~@6 [d3,f#3]@5 [d3,f#3,c4]@5 g2@2 ~@4 [d3,g3]@5 ~ g4@6 ~@14 b3@4 ~@15 f#3@6 ~@14 e5@6 ~@6 d4@7 ~@29, ~ g4@5 d5@18 ~@10 b3@6 ~@6 a4@9 ~@18 e5@17 ~@2 g5@20 f#5@19 ~@7 a4@12 ~@42, ~@12 d3@6 ~@5 b2@17 ~@2 d3@14 ~ d2@2 ~@32 e2@3 ~@17 a2@2 ~@79, ~@13 b4@28 b4@15 ~@2 d5@17 ~@4 d5@11 ~@40 e5@14 ~@6 d5@33 ~@9, ~@46 c4@5 ~@11 c4@5 ~@11 b3@5 ~ [d3,b3]@6 ~@102]/6", // C5 G D7 D D7 G5 G
  C: "[~@19 g3@5 b3@7 ~ g2@2 ~@4 [d#3,b3]@6 g4@5 ~@23 g3@5 ~@11 [d3,g3,b3]@6 [d3,b3,g4]@5 g2 ~@5 [f#3,c4]@4 ~@2 g3 ~@6 g2@2 ~@4 [d3,b3]@6 ~@5 b2@3 ~@3 [d3,b3]@6 [d3,b3]@5 d2@2 ~@4 c4@5 ~ [c4,d4]@5 ~@7 [d3,f#3,a3]@6 [d3,f#3,a3]@5 e5@5, ~@11 b4@20 a4@17 ~@2 b4@32 ~ [g2,b4]@15 ~@12 [d#3,c4,g4]@7 ~@24 g3@11 ~@17 c3@17 ~ b2@3 ~@2, ~@38 g3@10 ~@29 b3@11 a4@10 ~ g4@10 ~@9 d5@18 ~@22 a4@11 ~@23, ~@44 d#3@4 ~ g2@3 ~@26 d3@10 ~@16 f#4@7 ~@13 b4@28 b4@17 ~ d5@17 ~@5]/6", // G#m G F#dim G Csus2 D G Cm
  D: "[~ [f3,g3,d4]@5 ~ g4@5 ~@9 e3@8 ~ c4@6 ~ g3@5 e5@6 d5@5 ~@3 a4@7 ~@12 b4@3 ~ g2@3 ~@27 g5@3 ~@9 d4@2 ~@14 [f#3,a3]@4 ~ [f#3,a3]@4 e3@3 ~@2 [g3,a3,c#4]@5 [g3,a3,c#4,g#4,g#5]@4, ~ d5@11 ~@2 g5@17 ~@32 c5@15 ~ g4@23 g4@10 ~@14 d4@6 a2@15 ~@13, ~@6 [f3,d4]@6 c3@18 ~@6 [d3,b3,b4]@6 ~@63 b4@8 ~@2 [d5,d6]@31 ~@5 [a4,a5]@9, ~@21 c4@4 ~@4 [d#3,c5]@8 ~@16 c4@10 ~@36 d4@13 ~@2 d3@8 ~@5 [f#3,a3]@9 d4@5 d4@5 ~@14, ~@107 d5@5 b5@4 ~@15 [c#5,c#6]@15 [b4,b5]@14]/5", // G7 F#m A7 Dm G D A Cm …
  E: "[~ a4@4 [g3,a3,c#4]@2 ~@4 [g3,a3]@5 d3@4 [f#3,d4]@2 ~@9 a2@4 ~ d4@2 ~@3 [f#3,d4]@4 ~ b5@4 [a3,a4,a5]@2 ~@7 [g#4,g#5]@3 a2 ~@5 a3@5 c#4@4 ~@6 [f#3,a3]@4 ~ [f#3,a3]@4 ~ f#2 ~@3 [e3,f#3,a#3]@5 [e3,f#3,a#3]@4 ~ b2@3 ~@2 [d3,f#3,b3]@4 ~ [d3,f#3,b3]@4 ~@7 [f3,b3]@5 ~ f3@3 ~ a4@5 [d3,f#3,a3] ~@4 [f#3,a3] ~@9 c#4@6 g4@4 ~@6 [f#3,a3]@5 d4@5 ~@12 a5@2 ~@5 [f#3,a3,d4]@5 ~@11 [f#3,a3]@4 ~ [f#3,a3]@4 ~ e3@2 ~@3 c#4@5 [g3,c#4,g#4,g#5]@4 ~ [a1,a2] ~@3 [a3,c#4]@5 [g3,a3,c#4]@3, ~ a5@17 ~@2 a3 ~@5 d4@9 ~ a3 ~@9 e3@2 ~@2 c#4 ~@5 [g3,c#4]@5 ~@16 [d3,f#5]@16 ~@23 c#5@6 [g#2,e5]@16 a2@2 ~@28 d3@3 ~@2 d4@5 ~ [f#3,a3]@13 d5@2 f#5@4 ~@20 d4@5 d4@5 [b4,b5]@14 ~@2 [a4,a5]@12, ~ a2@2 ~@7 c#4@6 [d5,d6]@19 ~@27 [a4,a5]@14 ~@16 e5@14 ~ e5@14 ~@12 b4@4 ~@6 g#4@5 a4@5 b4@15 ~ f#4@18 ~ f#4@11 ~@9 [f#3,a3,d4]@11 ~@15 [a3,a4,a5]@9 ~@13, ~@31 [c#5,c#6]@9 [c#5,c#6]@5 b4@5 ~@7 a3@5 ~@5 c#4@5 ~@10 d4@5 d4@4 ~@21 d5@9 ~@7 d5@9 ~@47 d4@14 [d3,d5,d6]@29 ~@29, ~@190 a4@9 ~@14 [a1,a2,c#5,c#6]@15 e2@2 ~@26]/8", // A7 Gsus2 D A G# F#m F#7 Bm …
  F: "~ d2 d3 ~@4 [f#3,d4]@5 [f#3,d4]@4 [a1,a2] ~@6 [f#3,a3,d4]@4 ~ [f#3,a3]@4, ~@2 [d5,d6]@13 ~@2 [c#5,c#6]@10 ~@5, ~@7 a3@8 ~@12 [d4,c#5,c#6]@4 ~", // D A D F#m D C# Dmaj7
  G: "e2 e3 ~@3 [g3,a3,c#4] ~@5 [g3,a3]@4 [g#4,g#5] ~ [a1,a2] ~@5 [g3,a3,c#4]@5 [g3,a3,c#4]@4, [b4,b5]@5 [a4,a5]@2 ~@3 c#4@6 ~@2 [a4,a5]@14", // A7 Gsus2 G# A A7 B A
  H: "~@6 [f#3,d4]@5 [f#3,d4]@5 f#2@2 ~@5 [f#3,a#3]@4 [e3,a#3]@5, ~ [d3,f#5]@17 e5@14", // D F# Edim D
  I: "[b2@3 ~@3 d3@4 [b3,c#5]@5 ~@14 b4@6 ~ a2 ~@9 a4@6 a2 ~@6 a3@6 a4@8 d3@2 ~@4 a2 ~@16 d2@12 ~@20, e5@14 ~@2 e5@19 ~@6 g#4@9 ~@23 [f#4,a4,d5]@36 ~@19, ~@5 d5@9 ~@9 d5@12 a4@11 ~@6 b4@22 ~@54, ~@5 [f#3,b3]@6 ~@4 g#2@3 ~@110]/4", // Bsus2 D B5
})).s("gm_piano").gain(0.2)

// chords · piano · soft notes
const piano_soft = note("<A B C D E F G@4 H@3 I@2 J K L@2 M N@2 O ~ P@2 ~ Q ~@2 R S@2 T@2>".pickRestart({
  A: "~@8 d3@5 ~@19, g2@9 ~@7, ~@7 b3@5 ~@20", B: "~@10 b3@5 ~ g3@11 [d3,g3]@5", C: "d3@11 ~@17 d#3@4",
  D: "~ d#3@4 ~@8 g3@5 g3@5 ~@9, ~@6 b3@3 ~@7", E: "~@3 g3@6 ~@23", F: "~@20 g3@5 ~@7",
  G: "[~@3 [e3,g3,b3]@6 ~ e3@4 ~@8 [f#3,a3,d4]@6 ~ a3@5 ~ a2@2 ~@5 [g3,c#4]@6 ~ g3@5 ~@7 f#3@6 ~ f#3@18 ~@10 c5@11 g2@3 ~@5 d3@5 [d3,g3]@6 ~@2, ~@9 g3@4 ~@15 d4@6 ~@8 a3@13 ~@5 a3@7 [a3,d4]@19 c#5@13 ~@29, ~@48 c#4@6 d3@33 ~@27 b3@5 ~@9]/4", // Em D Gdim G5 D5
  H: "[~@12 b3@4 ~@8 [d3,g3,b3]@5 ~@11 [d3,b3]@6 g3@10 ~@6 g3@4 ~@7 d#3@4 ~@15 g3@4, ~@29 [d3,g3,b3]@11 ~@56, ~@35 g2@16 ~@45]/3", // G
  I: "[~@2 [d3,b3]@6 ~@23 f#3@5 f#3@5 ~@23, ~ g3@6 ~@57]/2", J: "~@7 g3@5 ~@10 g3@2 ~@8", K: "~@11 [d3,f#3]@5",
  L: "[~@25 [d3,g3,b3]@4 [d3,g3,b3]@20 ~@8 a3@5 ~@2, ~@57 f#3 ~@6]/2", M: "~@29 a#4@3",
  N: "[~@26 a3@9 ~ f#3 ~@13 g3 ~@13]/2", O: "~@4 g3@5 [g3,a3]@3 ~@20",
  P: "[d3@6 [d3,b3]@3 ~@11 d3 ~@4 a2 ~@5 g3@5 [g3,c#4]@4 ~@24, ~@31 a3@10 ~@23]/2", Q: "~@11 g3@4 ~@9 g3@5 ~@3",
  R: "~@6 a3@9 ~@8 e3@4 f#3@5",
  S: "[~@11 [d3,f#3]@4 ~@9 g#3@6 [g#3,f4]@5 ~@7 f#3@4 ~ f#3@4 ~@7 [g3,c#4]@6, ~@23 f4@6 ~@13 a3@8 ~@14, ~@24 d4@11 ~@6 d4@5 d4@4 ~@14]/2", // D C# Gdim
  T: "[~@2 a3@7 ~@14 f#2@4 ~@37, ~ [g3,c#4]@8 d4@35 ~@20]/2", // Gdim
})).s("gm_piano").gain(0.1)

stack(piano, piano_soft)

More by Gilbert & Sullivan