Strudelify

Pack Up Your Troubles In Your Old Kit Bag

Felix Powel

KeyF majorTempo120 bpm
0:00/0:00
// Pack Up Your Troubles In Your Old Kit Bag — Felix Powel
// 120 bpm, 2/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/784796; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 76 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/2)

// 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 B C D E F G@2 H I H I J K L M N O P Q J K R S T U V W X Y Z@2 AA AB AC AD J K AE AF AG AH AI AJ J K L M N O P Q J K
  R S T U V W X Y Z@2 AA AB AC AD J K AE AF AG AH AK AL
>`.pickRestart({
  A: "f2 c3 c2 c3, [a3,c4]!2", B: "f2 c3 [c2,a3,c4] [c3,f4], [f3,a3] ~",
  C: "[f2,c4,a4] [c3,c4,a4] [c2,c4,a4] [c3,bb3,g4]", D: "[f2,c3,a3,f4] g4 [f4,a4] [g4,bb4]",
  E: "[f2,f3,f4,a4,c5]@2 f5 d5, ~ [f3,b3,ab4]", F: "[f3,c4,a4,c5]@2 d5 c5 a4@2 f4@2",
  G: "[[c2,c3] [db2,db3] [d2,d3] [e2,e3] [f2,f3]@2 [f1,f2]@2, [bb3,e4,g4]@3 ~]/2", // C Db D E F Edim
  H: "[f2,a3,f4]@2 ~ d4 [c2,c4]@2 [c3,f3,a3]@2, ~ c3 ~@2", I: "[g2,bb3]@2 [c3,a3]@2 [c2,g3]@2 d2 e2, [e3,c4]@3 ~",
  J: "f2 c3 [c2,a3,c4] [c3,bb3,d4], [a3,c4] ~", K: "[f2,a3,c4] [c3,g3,bb3] [c2,f3,a3] [c3,g3,bb3]",
  L: "f2 ~@2 c3, [a3,c4] [a3,f4,a4], ~ c3@2 ~", M: "f2 ~@2 db3, [a3,f4,a4] [bb3,e4,g4], ~ c3@2 ~", N: "[d3,a3,d4,f4]",
  O: "bb2 c3 d3 e3, [f3,bb3,d4]", P: "[f3,a3,c4] [a2,c4]", Q: "[g2,e3,g3,bb3,c4] [f3,a3] [g3,bb3] [ab3,b3], ~ c2",
  R: "f2 c3 e2 db3, [a3,c4] [db4,g4,a4]", S: "d2 d3 [e2,e3] [f2,f3], [a3,d4,f4]", T: "[g3,b3,f4,g4] [f3,g3,b3,d4]",
  U: "[e3,g3,c4,e4] [d3,g3,b3,f4]", V: "[c2,c3]@2 [e2,e3] [d2,d3], [bb3,e4,g4]",
  W: "[c2,c3,e4,bb4,c5]@2 [c5,e5] [bb4,d5] [a1,a2,a4,c5]@2 [g1,g2,g4,bb4]@2, ~ [bb1,bb2] ~@2", // C7 C Bb Am Gm Bb
  X: "f2 c3 c2 [c3,bb3,g4], [a3,f4]@3 ~", Y: "f2 c3 c2 c3, [c4,a4] [a3,f4]",
  Z: "[[c4,e4] [d4,f4] [bb3,c4,e4,g4]@4 [f3,c4,eb4,a4]@2, g2@2 c3 ~@5]/2", AA: "[bb2,d4,bb4] [c3,bb3,e4,g4]",
  AB: "[f3,c4,f4,a4] [g3,bb3,d4,f4]", AC: "c3@2 [c2,c3] [d2,d3], [bb3,c4,e4,g4]",
  AD: "[c2,c3] [bb1,bb2] [a1,a2] [g1,g2], [e4,bb4,c5]", AE: "f2 c3 [a3,c4,f4,c5]@2, [a3,c4] ~",
  AF: "[a3,c4,f4,c5] [bb3,d4,f4,bb4]", AG: "[c3,c4,f4,a4]", AH: "c2 db2 d2 e2, [bb3,e4,g4]",
  AI: "[f2,a3,c4,f4]@2 ~ c4 [bb2,d4]@2 [c3,e4]@2, ~ a2 ~@2", AJ: "[d3,f4] [e3,g3,g4] [f3,a3,a4] [g3,bb3,bb4]",
  AK: "f2 c2, [a3,c4,f4]", AL: "[f1,f4,a4,c5,f5] ~",
})).s("gm_piano").gain(0.3)

stack(piano)