Strudelify

you make me feel so young

Josef Myrow

KeyB♭ majorTempo120 bpm
0:00/0:00
// you make me feel so young — Josef Myrow
// 120 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/4815098; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 90 bars on a 16-step grid, each part at one level. 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 B C D E F G H E F I J K L M N O P Q R S T@2 U O P Q R S V W X Y Z AA@2 AB AC AD AE Q AF Q AG AH AI AJ AK AL AK AM AN
  AO AP AQ AR AS AT@2 AU@2 AV AW AX Y Z AA@2 AB AC AD AE Q AF Q AG AH AI AJ AK AL AK AM AN AO AP AY AZ BA@2
>`.pickRestart({
  A: "[bb2,a3,d4,f4] [b2,ab3,b3,d4,f4]", B: "[c3,bb3,eb4,g4] [f2,a3,c4,eb4,f4]", C: "[bb2,d4,f4,a4] [b2,b3,d4,f4,ab4]",
  D: "[c3,bb3,eb4,g4] [f2,a3,db4,eb4,f4]", E: "[bb2,f4,a4,d5] [c3,e4,g4,bb4,c5]",
  F: "[c3,c4,eb4,g4,bb4] [f2,c4,eb4,f4,a4]", G: "[d3,c4,d4,f4,a4] [b2,b3,d4,f4,ab4]",
  H: "[c3,bb3,eb4,g4] [f2,c4,eb4,a4]", I: "[bb2,ab3,d4,f4]@2 [a2,g3,db4,f4] [ab2,gb3,c4,f4]",
  J: "[ab3,b3,d4,f4] [f4,ab4,b4,d5], g2@15 ~", K: "[c3,eb4,g4,bb4,c5] [eb2,g4,bb4,d5]",
  L: "[d2,d4,f4,bb4] [db2,db4,e4,g4,bb4]", M: "[c2,d4,f4,g4,c5] [c3,bb3,d4,e4,a4]", N: "[f2,a3,c4,eb4,f4]@4 ~ f2 g2 a2",
  O: "~ [a3,f4,a4] ~ bb2 ~ [b3,d4,f4,ab4] ~ b2, bb2 ~ b2 ~", // Dm Bdim
  P: "~ [bb3,eb4,g4] ~ c3 ~@3 f2, c3 ~ f2 ~, ~@5 [c4,eb4,f4,a4]@3", // Eb F7
  Q: "~ [a3,d4,f4] ~ bb2 ~ [b3,d4,f4,ab4] ~ b2, bb2 ~ b2 ~", // Dm Bdim
  R: "~ [c4,eb4,f4,ab4] ~ [c3,c4,eb4,f4,a4] ~@2 f2@2, c3 ~ f2 ~, ~@5 [f4,f5]@3", // Fm7 F7 F
  S: "~ [f4,a4,d5] bb2@2 [ab2,g4,ab4,d5]@2 [d2,gb4,ab4,c5]@2, bb2 ~@3", // Dm G D7
  T: "[[d4,g4,bb4] ~@2 [c4,eb4,g4] bb2@2 ~ [d4,f4,a4] d2@2 ~ [db4,e4,g4] db2@2 db2@2, eb2@2 eb2@2 ~@2 eb2@2 [d4,f4,a4]@3 ~ [db4,e4,g4]@4, ~@14 c5@8 bb4@9 ~, ~@5 d2 ~@2]/2", // Gm Cm Dm Dbdim Dm Dbdim
  U: "[c2,c4,eb4,g4,a4] ~@3 f2@2 ~ f2, ~ [a3,c4,eb4,f4]", // Am7b5 F7
  V: "[d4,g4,bb4] ~@2 [c4,eb4,g4] bb2@2 ~ [d4,f4,a4,c5], eb2!2 ~ eb2", // Gm Cm Dm7
  W: "d2 ~ db2!2, [d4,f4,a4,c5]@6 [d4,eb4,g4,bb4]@9 ~, ~ d2 ~@2", // Dm7 Ebmaj7
  X: "[c4,eb4,g4,a4] g4 gb4 ~@3 c2@2, c2!2 f2 ~, ~@3 f4@2 [f4,f5]@3", // Am7b5 F
  Y: "~ [c4,eb4,ab4,bb4] g2@2 [c4,eb4,ab4,bb4]!2 ab2@2, f2 ~ ab2 ~", // Ab
  Z: "~@2 ab2@2 [f4,ab4,c5] ~ gb2@2, bb2 ~ g2 ~, ~ [d4,f4,ab4]@3 ~ [ab4,c5,d5,f5]@3", // Fm Ddim Dm7b5
  AA: "[~ [c4,eb4,ab4,bb4] g2@2 [c4,eb4,ab4,bb4]!2 ~@2 bb2@2 ~ db5 d5 f5 [bb2,bb4]@2, f2 ~ ab2 a2 ~ ab2 g2 ~, ~@7 [c4,d4,f4,ab4]@4 ~@5]/2", // Ab Bb Dm7b5
  AB: "~ [eb4,g4,a4,c5] a2@2 d2@2 d2@2, a2 ~ [eb4,gb4,a4,c5]@2", // Am7b5 Ebdim
  AC: "~ [d4,f4,g4,bb4] ~ gb5 g5 ~ db2@2, g2!2 d2 ~, ~@5 g4@3", // Gm7
  AD: "[c2,g4,bb4,c5,eb5] ~ [d2,g4,bb4,d5] ~ [eb2,eb4,g4,bb4,c5] ~ [e2,c4,eb4,g4,bb4] ~", // Cm7 Gm Cm7 C7
  AE: "[f2,c4,eb4,f4,a4] ~@4 [f2,eb4,a4,db5,f5]@3", AF: "[bb3,eb4,g4] ~@2 c3 ~@3 f2, c3 ~ f2 ~, ~@5 [c4,eb4,f4,a4]@3",
  AG: "~ [c4,eb4,f4,ab4] ~ [c3,c4,eb4,f4,a4] ~@2 a2@2, c3 ~ f2 ~, ~@5 [f4,f5]@3", // Fm7 F7 F
  AH: "~ [d4,f4,ab4,bb4] bb2@2 ab2@2 ab2@2, bb2 ~ [d4,g4,ab4,c5]@2", AI: "g2!2 gb2!2, [g4,bb4,d5] [gb4,bb4,eb5]",
  AJ: "~ [f4,a4,c5,f5] d2@2 [ab4,b4,d5,f5] ~ [ab4,b4,d5,f5] ~, d2 ~ g2!2", AK: "[c2,g4,bb4,eb5,f5] ~@7",
  AL: "~@2 d2@2 [b4,d5,f5,ab5] ~ [b4,d5,f5,g5] ~, d2 ~ g2!2, ~ [c5,d5,f5,a5]@3 ~@4", // Bdim G7 Dm7
  AM: "~ [c4,gb4,bb4,d5] d2@2 ~ [d4,gb4,bb4,c5] ab2@2, d2 ~ ab2 ~", // Daug
  AN: "~ f2 [eb2,c4,c5] [d2,d4,d5], g2 ~@3, ~ [d4,f4,g4,b4]@3 ~@4", // Cm D G7
  AO: "~ [g4,bb4,c5,eb5] d2@2 [eb2,eb4,g4,bb4,d5]@2 [e2,e4,g4,bb4,c5]@2, c2 ~@3", // Cm7 Ebmaj7 C7
  AP: "~@2 [f2,c4,eb4,g4,bb4] ~@3 [f2,c4,eb4,g4,a4] ~", // Cm7 F7
  AQ: "~@2 ab2@2 [d4,f4,ab4,b4] ~ b2@2, bb2 ~ g2 ~, ~ [d4,f4,bb4]@3 ~ [f4,ab4,b4,d5]@3", // Ddim Bb Fdim
  AR: "[c3,g4,bb4,c5,eb5]@2 [g2,g4,bb4,d5]@2 [eb4,gb4,a4,c5] ~ a2@2, ~@2 f2 ~, ~@5 [f4,f5]@3", // Cm7 Gm Ebdim F
  AS: "[bb2,d4]@3 ~@2 d4@3 [b2,eb4]@3 ~@2 eb4@3, ~@3 d4@2 ~@6 d4@3 ~@2, ~ bb2 ~ b2", // Bb B
  AT: "[~@2 c4@2 eb4@2 f4@2 gb4@2 g4@2 gb4@2 ~@2 bb2@3 ~@2 f4@3 [b2,g4]@3 ~@2 f4@3, c3!2 f2!2 ~ bb2 ~ b2, ~@14 f4@4 ~ f4@2 ~@6 g4@3 ~@2]/2", // Em
  AU: "[ab4@2 f4@2 ab4@2 ~@4 f5@2 f2@4 bb2@3 ~@2 f4@3 db5 d5@3 c5 d5@3, c3!2 f2 ~@2 bb2 ab2 d2, ~@6 [f4,a4]@4 ~@2 f4@6 ~ e4@3 ~@10]/2", // F
  AV: "[g4,bb4,d5] ~@2 [bb3,d4,g4] [bb2,bb3,d4,g4]@2 [eb2,c5]@2, eb2!2 ~@2, ~ [d4,g4,bb4]@2 ~@5", // Gm Cm Gm
  AW: "[d2,d4,f4,a4,c5]@2 [d4,f4] ~ db2@2 [db2,d4,f4,g4,bb4]@2, ~ d2 ~@2, ~@3 [d4,f4]@3 ~@2", // Dm7 Dm Gm7 Dm
  AX: "[c4,eb4,g4,a4] g4 gb4 f4!2 ~ c2@2, c2!2 f2 ~, ~@5 [f4,f5]@3", // Am7b5 F
  AY: "~ [f4,bb4,d5] bb2@2 ab2@2 ab2@2, bb2 ~ [gb4,bb4,d5,f5]@2", AZ: "[bb2,f4,bb4,d5]@2 ~@2 [c5,eb5,bb5] ~@3",
  BA: "[[db5,e5,bb5]@2 ~@4 [d5,f5,bb5]@2 ~@4 [bb1,a3,d4,f4]@19 ~]/2", // Bbdim Bb Bbmaj7
})).s("gm_piano").gain(0.3)

stack(piano)