Strudelify

all of me

Seymour Simons

KeyF majorTempo140 bpm
0:00/0:00
// all of me — Seymour Simons
// 140 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/4348396; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 72 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/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 I J K L I M G N O P Q R S T U V W@2 X Y Z AA AB AC AD AE AF AG AH AI AJ AC AD AE AK AL AM AN AO AP
  AQ@2 AR AS AT AU AV AW AX AY AZ AW BA BB BC BD BE BF BG BH BI BJ BK BL
>`.pickRestart({
  A: "[d4,a4]@3 [d4,a4]@3 [d4,a4]@2, d3@15 ~", B: "[d4,bb4]@3 [d4,bb4]@3 [d4,bb4]@2, bb2@15 ~",
  C: "[c4,a4]@3 [c4,a4]@3 [c4,a4]@2, f2@15 ~", D: "[c4,g4]@3 [c4,g4]@3 [c4,g4]@2, c3@15 ~",
  E: "[a3,d4]@3 [a3,d4]@3 [a3,d4]@2, d2@15 ~", F: "[a3,d4]@3 [a3,d4]@3 [a3,d4,f4]@2, bb2@15 ~",
  G: "[a3,c4]@3 [a3,c4] [a3,c4]@2 [c4,f4,a4]@2, f2@15 ~", H: "[c4,e4]@3 [c4,e4] [c4,e4]@2 [g3,c4]@2, c2@15 ~",
  I: "[a3,d4]@3 [a3,d4] [a3,d4]@2 [a3,d4]@2, d2@15 ~", J: "[d4,f4]@3 [d4,f4]@3 [d4,f4]@2, bb2@15 ~",
  K: "[c4,f4]@3 [c4,f4] [c4,f4]@2 [a3,c4]@2, f2@15 ~", L: "[c4,e4]@3 [c4,e4]@3 [g3,c4] f4, c2@15 ~",
  M: "[d4,f4]@3 [d4,f4] [d4,f4]@2 [d4,f4]@2, bb2@15 ~", N: "[a3,c4]@3 [a3,c4] [a3,c4]@2 [g3,c4]@2, c2@15 ~",
  O: "[f3,a3,d4]@3 [d4,f4]@3 [d4,f4]@2, d2@15 ~", P: "[c4,f4]@3 [c4,f4]@3 [f3,c4]@2, bb2@15 ~",
  Q: "[c4,f4]@3 [c4,f4]@3 [f3,c4]@2, f2@15 ~", R: "[c4,e4]@3 [c4,e4]@3 [c4,e4]@2, c2@15 ~",
  S: "bb4 bb3 d4 g4 a3 bb3 d4 g4, g2@6 g2@9 ~", T: "[g4,bb4,d5]@6 [d4,g4]@9 ~, g2@15 ~, ~@3 c5 ~@4",
  U: "[c4,f4,a4]@6 [a3,c4]@9 ~, f2@15 ~", V: "[g3,c4,e4]@6 g3@9 ~, c2@15 ~",
  W: "[a3@2 bb3@2 d4@2 g4@2 a3@2 bb3@2 d4@2 ~@2 [g4,bb4]@6 [d4,g4]@9 ~, g2@3 g2@4 d5@4 d5 ~@4, ~@16 g2@15 ~]/2", // Gm G5
  X: "[c4,f4,a4]@6 [c4,f4]@9 ~, f2@15 ~, ~@3 a4 ~@4", Y: "[c4,e4,g4]@11 ~ [c4,e4,g4]@2 a4@2, c2@15 ~",
  Z: "[f4,a4,c5]@3 [f4,a4]@3 [c4,f4]@2, f2@15 ~", AA: "[d4,f4]@3 [c4,f4]@3 [c4,f4]@2, f3@15 ~",
  AB: "[d4,f4]@3 [d4,f4]@3 [a3,d4,f4]@2, d3@15 ~", AC: "[d4,f4]@3 [d4,f4]@3 [d4,f4]@2, d3@15 ~",
  AD: "[bb3,d4]@3 [bb3,d4]@3 [bb3,d4]@2, bb2@15 ~", AE: "[f3,bb3,d4]@3 [bb3,d4]@3 [bb3,d4]@2, bb2@15 ~",
  AF: "[bb3,d4]@3 [bb3,d4]@3 [bb3,d4]@2, c2@15 ~", AG: "[c4,e4]@3 [c4,e4]@3 [c4,e4]@2, c3@15 ~",
  AH: "[f4,a4]@3 [f4,a4]@3 [e4,a4]@2, f2@15 ~", AI: "[f4,a4]@3 [c4,f4]@3 [c4,f4]@2, f3@15 ~, ~@3 a4 ~@4",
  AJ: "[d4,f4]@3 [d4,f4]@3 [a3,d4]@2, d2@15 ~", AK: "[bb3,d4]@3 [bb3,d4]@3 [bb3,d4]@2, c3@15 ~",
  AL: "[c4,e4] [e4,g4], c3@15 ~", AM: "[a4,d5,f5]@3 [f4,a4,e5]@4 d5, d3@15 ~",
  AN: "[f4,bb4,d5]@6 [d4,f4]@9 ~, bb2@15 ~, ~@3 c5 ~@4", AO: "[c4,f4,a4]@3 ~@3 f4 c5, f2@9 ~ f3@6, ~@3 [f4,g4]@3 ~@2",
  AP: "[g3,d4,e4]@3 a4!2 bb4 c5 f5, c3@15 ~", // Em7
  AQ: "[[a4,d5,f5]@6 [f4,a4,e5]@8 ~@2 [f4,bb4]@6 [d4,f4]@9 ~, d3@7 d5@4 c5 ~@4, ~@16 bb2@15 ~]/2", // Dm Fmaj7 Bb5 Dm
  AR: "[c4,f4]@6 [c4,f4]@9 ~, f2@15 ~", AS: "[c3,d4,e4,g4]@15 ~", AT: "[c4,g4]@6 [c4,g4]@9 ~, f2@15 ~",
  AU: "[e4,f4]@3 [g4,c5]@3 [g4,c5]@2, c2@15 ~", AV: "[g4,bb4]@3 [d4,g4]@3 [bb3,d4]@2, g2@15 ~",
  AW: "[g4,bb4,d5]@3 [d4,g4,c5]@3 [d4,g4] [a4,c5], g2@15 ~", AX: "[a4,c5]@3 [f4,a4]@3 [a4,c5]@2, f2@15 ~",
  AY: "[e4,g4]@3 [c4,e4]@3 [c4,e4]@2, c2@15 ~", AZ: "a3 bb3 g3 d4@2 g3 d4 g3, g2@3 g2@3 g2@2",
  BA: "[a4,c5]@3 [f4,a4]@3 [f4,a4]@2, f2@15 ~", BB: "[e4,g4,c5]@4 [e4,g4,c5]@2 ~ a4, c3@15 ~",
  BC: "[c4,f4,a4]@3 [f4,g4] f2 ~ f4 c5, f2@2 [f4,g4] ~, ~@5 f3@3", BD: "[g3,c4,e4] e4, c2@15 ~",
  BE: "[a4,d5]@3 [f4,a4]@3 [f4,a4]@2, d3@15 ~", BF: "[f4,bb4,d5]@3 f4 f4@2 [d4,f4]@2, bb2@15 ~, ~@3 [d4,c5]@3 ~@2",
  BG: "c5 c4 f4 a4@3 c5@2, f3@15 ~", BH: "[c4,e4,g4]@3 a4!2 bb4 c5 f5, c3@15 ~",
  BI: "[a4,d5,f5]@6 [f4,a4,e5]@9 ~, d3@15 ~", BJ: "[f4,bb4,d5]@6 [d4,f4,c5]@9 ~, bb2@15 ~",
  BK: "[c4,f4]@6 [c4,f4]@9 ~, f3@15 ~", BL: "[c3,c4,e4,g4]@15 ~",
})).s("gm_piano").gain(0.3)

stack(piano)