Strudelify

Let Them See You in Me

JJ Weeks

KeyA majorTempo120 bpm
0:00/0:00
// Let Them See You in Me — JJ Weeks
// 120 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (9/8 at bar 1, 4/4 at bar 2, 17/8 at bar 3, 4/4 at bar 5, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5961394; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 116 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@3 C@7 D@3 E@2 F@3 G H I@3 J K@4 L@4 M@4 N@4 O P@8 Q G R@4 S T@2 U@7 V@2 W@5 X Y@3 Z@5 AA AB@6 AC@3 AD AE AF AG AH
  AI AJ@3 AK@3 AL@3 AM AN AO@2 AP AQ@2 AR AS
>`.pickRestart({
  A: "~@2 e2 b2 e3 f#2 c#3 f#3, ~@2 g#3@2 ~ a3@2 ~",
  B: "[d2 ~ e3 [a1,e2,c#3]@8 [e3,c#5]@8 e2 b2 e3 f#2 c#3, f#3@2 ~@17 g#3@2 ~ a3@2, ~ a2@2 ~@21]/3", // A C#m
  C: "[f#3 d2 a2@2 a1@8 [e3,c#5]@8 e2 b2 e3 f#2 c#3 f#3 d2 ~ e3 ~@2 [a1,e2,c#3]@8 [e3,c#5]@8 e2 b2 e3 f#2 c#3 f#3 d2 a2@2, ~ c#4@10 ~@9 g#3@2 ~ a3@2 ~ f#3@2 ~@19 g#3@2 ~ a3@2 ~ c#4@2 ~, ~@27 a2@2 ~@27]/7", // C#m A C#m
  D: "[~@6 [a1,c#4]@8 [e3,c#5]@8 e2 b2, ~@11 g#3]/3", // A C#m
  E: "[e3 f#2 c#3 f#3 d2 ~ e3 [a1,e2,c#3]@8 ~, ~ a3@2 ~ f3@2 ~@10, ~@5 a2@2 ~@9]/2", // A
  F: "[~ [e3,c#5]@8 e2 b2 e3 f#2 c#3 f#3 d2 ~@2 a1@6, ~@9 g#3@2 ~ a3@2 ~ c#4@8 ~, ~@8 a2 ~@3, ~@17 e3@7]/3", // C#m
  G: "d4 f#3 b3 c#4 e3 ~ f#2 c#3, b2@2 ~ a2@2 a3@3", H: "f#3 a3@2 g#3@3 g#3 b3, ~ e2@6 ~",
  I: "[c#4 d4 f#3 b3 c#4 e3 ~ f#2 c#3 f#3 a3@2 g#3@2 f#3@10, ~ b2@2 ~ a2@2 a3@3 ~ d2@12 ~@2]/3", J: "[e3,a3,c#4]!4, a1",
  K: "[~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 ~@2 [g3,b3,d4]@2 ~@2 [f#3,a3,c#4]@2 [d3,f#3]@2 [d3,f#3]@2 [d3,f#3]@2 ~ [d3,f#3]@2 [d3,f#3]@2 [d3,f#3]@2 ~@2 [d3,f#3]@2, ~ e2@8 ~@4 d2@8 ~ b1@8 ~@2]/4", // G F#m D
  L: "[~@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 ~@2 [g3,b3,d4]@2 ~@2 [d3,f#3]@2 ~ [d3,f#3]@2 [d3,f#3]@4, ~@2 a1@8 ~ e2@8 ~@4 b1@8 ~]/4", // A G D
  M: "[[d2,d3,f#3,a3]@4 ~@2 [d2,d3,f3,a3]@4 ~ [a1,c#3,e3,a3]@8 [e3,c#5]@8 e2 b2 e3 f#2 c#3, ~@27 g#3@2 ~ a3@2]/4", // D Dm A C#m
  N: "[f#3 d2 ~ e3 ~@2 [a1,e2,c#3]@8 ~ [e3,c#5]@8 e2 b2 e3 f#2 c#3 f#3 d2 a2 d3, ~ f#3@2 ~@20 g#3@2 ~ a3@2 ~ c#4@2 ~, ~ a2 ~@14]/4", // A C#m
  O: "[a1,c#4]", // A
  P: "[~ [e3,c#5]@8 e2 b2 e3 f#2 c#3 f#3 d2 a2 [d3,e3] ~@2 [a1,e2,c#3]@8 [e3,c#5]@8 e2 b2 e3 f#2 c#3 f#3 d2 a2 d3 ~@4 c#4@2 b3@2 c#4@2 d4 f#3 b3 c#4 e3 ~ f#2 c#3 f#3, ~@9 g#3@2 ~ a3@2 ~ f#3@2 ~@19 g#3@2 ~ a3@2 ~ c#4@6 ~@7 b2@2 ~ a2@2 a3@3 ~, ~@45 a1@6 ~@13]/8", // C#m Dsus2 A C#m
  Q: "a3@4 g#3@6 g#3@4 b3 c#4, e2@3 ~",
  R: "[f#3 a3@2 g#3@2 f#3@10 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [g3,b3,d4]@2 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2, ~ d2@12 ~@2 a1@8 e2@8 ~]/4", // A G
  S: "[f#3,a3,c#4] [f#3,a3]!3, d2", // F#m
  T: "[[f#3,a3,d4]@2 ~ [f#3,a3,d4]@2 [f#3,a3,d4]@2 [f#3,b3]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 ~ [e3,a3,c#4]@2, b1@8 ~ a1@7]/2", // D B5 A
  U: "[[e3,a3,c#4]@2 [g3,b3,d4]@2 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [d3,f#3]@2 ~@2 [d3,f#3]@2 [d3,f#3]@2 [d3,f#3]@2 [d3,f#3,a3]@2 [d3,f#3,a3]@2 [d3,f3,a3]@2 [d3,f3,a3]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [f#3,a3,c#4]@2 [f#3,a3,c#4]@2 ~ [f#3,a3,c#4]@2 [f#3,a3,c#4]@2 ~ [f#3,a3,c#4]@2 ~ [f#3,a3,c#4]@2 ~ [f#3,a3,c#4]@2 ~, ~@2 e2@8 ~ b1@8 ~@2 d2@4 d2@4 [a0,a1]@8 [f#1,f#2]@8 ~ [f1,f2]@8 ~@2]/7", // A G D Dm A F#m A F# …
  V: "[[f#3,a3,c#4]@2 ~ [e3,a3,c#4]@2 ~@2 [e3,a3,c#4]@2 ~@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 ~, ~@3 [e1,e2]@8 ~@5]/2", // F#m A E
  W: "[~ [d#3,f#3,b3]@2 [d#3,f#3,b3]@6 ~ [d1,d2,d3,f#3,a3]@8 ~@2 [d1,d2,d3,f3,a3]@8 ~@2 [e3,c#5]@8 e3 b3, ~ [b0,b1]@8 ~@29 g#4@2]/5", // B D Dm C#m B
  X: "e4@2 f#3@2 c#4@2 f#4@2 d3 a3@3 e4@2 ~@2, ~ a4@2 ~ f#4@2 ~@2",
  Y: "[~@5 [a2,e3,c#4]@8 [e3,c#5]@8 e3 b3 e4, ~@21 g#4@2 ~]/3", // A C#m
  Z: "[f#3 c#4 ~ f#4 d3@2 a3@2 d4@2 e3@16 c#5@10 b4@2 c#5@2 d5@2 f#4@2 b4@2 c#5@2 e4@2 ~@2 f#3@2 c#4@2 f#4@2 a4@4 g#4@8 b4@2 c#5@2 d5 f#4 ~ b4 [a3,c#5]@2, a4@2 c#5@10 ~ a2@6 ~ b3@2 ~ a3@2 a4@3 ~ e3@6 ~@2 b3@2 ~]/5", // A
  AA: "e4 ~ f#3 c#4 f#4 a4@2 g#4, ~ a4@3 ~ d3@3",
  AB: "[~ f#4@2 [d3,f#4]@8 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [f#3,a3,c#4]@2 [f#3,a3,c#4]@2 [f#3,a3,c#4]@2 [f#3,a3,c#4]@2 [f#3,a3,d4]@2 [f#3,a3,d4]@2 [f#3,a3,d4]@2 [f#3,a3,d4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 ~, ~@11 [a0,a1]@8 [e1,e2]@8 [d1,d2]@8 [b0,b1]@8 [a0,a1]@5]/6", // D A G F#m D A E D …
  AC: "[[e3,a3,c#4]@2 [e3,a3,c#4]@2 [g3,b3,d4]@2 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 ~ [g3,b3,d4]@2 ~ [d3,f#3]@2 ~ [d3,f#3]@2 [d3,f#3]@2 [d3,f#3]@2, ~@4 [e1,e2]@8 ~@3 [b0,b1]@8 ~]/3", // A G D E B
  AD: "[d3,f#3,a3]!4, [d1,d2]", AE: "[e3,a3,c#4]!4, [a0,a1]", AF: "[g3,b3,d4]!4, [e1,e2]",
  AG: "[f#3,a3,c#4] [f#3,a3]!3, [d1,d2]", AH: "[f#3,a3,d4]!4, [b0,b1]",
  AI: "[e3,a3,c#4]@2 [e3,a3,c#4]@2 ~ [e3,a3,c#4]@2 ~, [a0,a1]", // A
  AJ: "[[e3,a3,c#4]@2 ~ [g3,b3,d4]@2 [g3,b3]@2 [g3,b3]@2 ~@2 [g3,b3]@2 ~@2 [d3,f#3,b3]@2 ~ [d3,f#3]@2 [d3,f#3]@2 [d3,f#3]@2, ~@3 [e1,e2]@8 ~@4 [b0,b1]@8 ~]/3", // A G Bm D E B
  AK: "[~@3 [d1,d2,d3,f#3,a3]@8 ~@4 [d1,d2,d3,f3,a3]@8 ~@2 [a0,a1,c#3,e3,a3]@16 [d1,d2,d3,f#3,a3]@7]/3", // D Dm A D
  AL: "[~@5 [d3,f3,a3]@16 ~@2 a4@4 b4@4 c#5@4 c#5 e4 a4 b4 e4 a4 c#5 e4 a4 b4 e4 a4 c#5, ~@5 [d1,d2]@24 ~@19]/3", // Dm D
  AM: "e4 a4 e5 e3 ~ f#4 [g3,g4] b3 e4 g4 b3 f#4 g4 b3 e4 g4, ~@3 g4@2 ~@11, ~@2 g3 ~@5", // G
  AN: "b3 f#4 g4 d3 a3 d4!2 a3 d4!2 a3 ~@4 d4, ~@3 f#4@12 ~",
  AO: "[d4 a3 d4!2 ~ f#4 g4 b2 f#3 b3 d4 f#3 b3 d4 [f#3,f#4] b3 d4 f#3 b3 d4 ~@2 a4 ~@2 a1 e2 a2 c#3 e2 a2 e3, ~@3 f#4@2 ~@2 f#4@4 f#4@3 ~ d5@3 c#5@3 b4@4 e4@7, ~@4 a3@3 ~@13 f#3@3 ~@9]/2", // F#
  AP: "e2 a2 a3 e2 a2 ~@4 c#4 e2 a2 e3 e1 ~ f#3, ~@13 g3@2 ~, ~@7 b1",
  AQ: "[~ b1 e3 ~@2 f#3 ~@2 e3 ~@2 f#3 [e2,g3] d2 a2 d3 d3 a2 d3!2 a2 ~@4 d3!2 a2 d3!2 f#3@2, g3@2 e2@2 b1@3 b1@3 b1@2 ~@20, ~@3 g3@2 ~ g3@2 ~ g3@2 ~@2 f#3@12 ~@7]/2", // Em
  AR: "d2 f2 a2 ~ f3@2 e4@2 f#4 d4 e4@2 d4@2 b3@2, f3@3 d3@13", AS: "[a1,a2,c#4]",
})).s("gm_piano").gain(0.29)

stack(piano)