Strudelify

JEALOUSY

Jacob Gade

KeyF majorTempo144 bpm
0:00/0:00
// JEALOUSY — Jacob Gade
// 144 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5895203; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 143 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(144/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(`<
  ~@3 A B ~@2 C D@6 ~ E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR
  AS AT AU AV AW AX AY AZ BA AL AM AN BB AP BC BD BE AL AM BF BG AP AQ BH E F G H I J K L M N O P Q R S T U V W X Y Z AA
  AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA AL AM AN BB AP BC BD BE BI BJ BK BL BM
  BN BO
>`.pickRestart({
  A: "~@8 [f2,f3,d4,a4,d5]@3 ~ [e2,e3,g4,a4,e5]@3 ~", B: "[d2,d3,f4,a4,d5,f5]@3 ~@13",
  C: "~@2 [bb2,bb3,g4,d5,g5]@3 ~ [a2,a3,c5,d5,gb5,a5]@3 [g2,g3,bb4,d5,g5,bb5]@3 ~@4", // Gm D7 Gm
  D: "[~@4 [bb2,eb3,g3,g4,bb4,eb5]@21 ~ [bb2,eb3,g3,g4,bb4,eb5]@14 [g4,db5,e5,g5]@3 ~ [a4,a5]@3 [g1,g2,bb4,db5,e5,g5,bb5]@3 ~@12 [g2,e3,a3,db4,e4,a4]@14 [f2,d3,a3,d4,a4]@7 [f2,d3,a3,d4,a4]@7 [e2,db3,g3,a3,db4,a4]@6, ~@4 [g2,g5]@34 ~@2 e3@7 ~@49]/6", // Eb Dbdim A Gdim A7 Dm A7 G
  E: "~@2 [a1,a2,g3,a3,db4,e4]@2 [a1,a2,g3,a3,db4,e4]@11 ~", // A7
  F: "[d3,a4,d5,f5]@2 [d3,a4,d5,f5]@2 [d3,a4,db5,f5]@2 [d3,a4,db5,f5] [a2,a4]", // Dm A
  G: "[d3,a4,c5,f5]@4 [d3,a4,c5,f5]@4 [d3,a4,b4,f5]@3 [d3,a4,bb4,f5]@2 [a2,a4,f5]@3", // Dm7 Bm7b5 Bbmaj7 Dm
  H: "[d3,a4,bb4,f5]@4 [d3,a4,bb4,f5]@4 [d3,a4,f5]@4 d3@2 a2 [bb2,db3], ~@3 [a4,f5]", I: "[d3,d5] d3 e3 f3",
  J: "[f3,g3,bb3,d4]@4 [f3,g3,bb3,d4]@4 [g3,bb3,d4]@4 ~@2 a2 bb2, g2@3 [g3,bb3,d4]", // Gm7 Gm
  K: "[g3,a3,db4,e4]@2 [g3,a3,db4,e4]@2 [g3,a3,db4,e4]@2 [g3,a3,c4,e4] [a2,a3], a2@13 ~@3", // A7 Am7 A
  L: "[bb3,d4,f4] [d4,f4] [a3,bb3,d4,f4] [bb3,d4,f4], d3@13 ~@3", M: "[a2,g3,db4,e4]@4 a1@8 a1@2 b1 db2, ~ [a2,a3]@3",
  N: "[d2,a4,d5,f5]!2 ~ [d2,a4,d5,f5] [d2,a4,db5,f5]@2 [d2,a4,db5,f5] [a1,a4]", // Dm A
  O: "[d2,a4,c5,f5]@4 [d2,a4,c5,f5]@4 [d2,a4,b4,f5]@3 [d2,a4,bb4,f5]@2 [a1,a4,f5]@3", // Dm7 Bm7b5 Bbmaj7 Dm
  P: "[d2,a4,bb4,f5]@2 [d2,a4,bb4,f5]@2 ~@2 [d2,a4,bb4,f5]@2 [d2,a4,f5]@4 d2@2 a1 [bb1,db2], ~@3 a4", // Bbmaj7 Dm Bbm
  Q: "[d2,d5]@2 e5 f5 [g3,e5]@2 [f3,d5]@2, ~ a3 ~@2", // D C Dm
  R: "[f3,a4,c5]@2 [f3,a4,c5]@2 [e3,a4,c5]@2 ~ a2, a2@3 [e3,a4,c5], f5 e5", // F Am
  S: "[b2,f3,a4,b4]@2 [d3,d5] [e3,e5] [e2,d3,ab4,d5]@2 [c3,c5] [b2,b4]", // Bm7b5 D E E7 C B
  T: "[a2,db4,e4]!2 ~ [a2,db4,e4] [a2,db4,e4]@2 [bb2,d4,f4]@2, a4@11 ~@5", // A Bb
  U: "[a2,db4,e4,a4]!2 ~ [a2,db4,e4,a4] [a2,db4,e4,a4]@2 [bb1,bb2,d4,f4,bb4]@2", // A Bb
  V: "[a1,a2,db4,g4,a4]@2 [a2,db4,g4,a4]@2 ~@2 [a2,db4,g4,a4]@2 [a2,db4,g4,a4]@4 e2@2 f2 g2, ~@3 [db4,e4]", // A7 Dbm
  W: "[a1,a2,db4,g4,a4]@2 [a2,db4,g4,a4]@2 ~@2 [a2,db4,g4,a4]@2 [a2,db4,g4,a4]@4 a1@2 b1 db2, ~@3 [db4,g4,a4]", // A7
  X: "[d2,d4,f4,a4]@2 [d2,d4,f4,a4]@2 ~@2 [d2,d4,f4,a4]@2 [d2,d4,f4,a4]@4 a1@2 b1 db2, ~@3 [d4,f4]", // Dm
  Y: "[d2,d4,f4,a4]!2 ~ [d2,d5,f5,a5] [d2,d5,f5,a5]@2 [a1,d5,f5,a5]@2", // Dm
  Z: "[d2,c4,d4,gb4,a4]@2 [d2,c4,d4,gb4,a4]@2 ~@2 [d2,c4,d4,gb4,a4]@2 [d2,c4,d4,gb4,a4]@4 a1@2 bb1 c2, ~@3 [c4,d4,gb4]", // D7
  AA: "[d2,c4,d4,gb4,a4]@2 [d2,c4,d4,gb4,a4]@2 ~@2 [d2,c4,d4,gb4,a4]@2 [d2,c4,d4,gb4,a4]@4 d2@2 e2 gb2, ~@3 [c4,d4,gb4,a4]", // D7
  AB: "[g2,bb3,d4,g4]@2 [g2,bb3,d4,g4]@2 ~@2 [g2,bb3,d4,g4]@2 [g2,bb3,d4,g4]@4 d2@2 e2 gb2, ~@3 [bb3,d4]", // Gm Bb
  AC: "[g2,bb3,d4,g4]!2 ~ [g2,bb4,d5,g5] [g2,bb4,d5,g5]@2 [d2,bb4,d5]@2", AD: "[g1,g2,g4,bb4,d5]@3 ~@5",
  AE: "~@3 [bb1,bb2,g3,d4,e4] [bb1,bb2,g3,d4,e4]@2 [a1,a2,a3,d4,f4]@2", AF: "[g1,g2,bb3,d4,g4]@3 ~@5",
  AG: "~@3 [bb1,bb2,g3,d4,e4] [bb1,bb2,g3,d4,e4]@2 [a1,a2,a3,d4,g4]@2", // Em7b5 Dsus4
  AH: "[a1,a2,a3,d4,f4]@6 [f4,a4,d5] d4 [a2,f4,a4,d5]@4 [a1,a2,d4,f4,a4]@4, ~@3 a2 ~@4", // Dm
  AI: "[g1,g2,d4,g4,bb4]@6 [g4,bb4,d5] d4 [g2,g4,bb4,d5]@4 [g1,g2,d4,g4,bb4]@4, ~@3 g2 ~@4", // Gm
  AJ: "[a1,a2,db4,e4,a4]@4 a4 bb4 db5 d5 [e2,e3,ab4,e5]@4 d5 e5 gb5 ab5", // A E
  AK: "[a2,a3,db5,a5]@2 ~ [e3,e4] [a2,a3]@2 ~@2", // A E A
  AL: "[d2,a3,b3,d4,gb4]@2 [d2,a3,b3,d4,gb4]@2 [d2,a3,b3,d4,gb4]@2 [a2,a3,b3,d4,gb4] [a1,a3]", // Bm7 A
  AM: "[d2,a3,b3,d4,gb4]@2 [d2,a3,b3,d4,gb4]@2 [d2,a3,b3,d4,gb4]@2 d2 eb2, ~@3 [a3,b3,d4,gb4]", // Bm7
  AN: "[e2,b3,e4,g4]@4 [e2,g4,e5]@4 eb5@3 ~@3 b1@2, ~@4 [e2,g4]@2 b2 ~, ~@11 b4@2 g4@3", // Em
  AO: "d5@3 ~@2 g4@3 gb4@2 e4@2 b2@2 bb2@2, [e2,g4] e2!2 [g3,a3,db4], ~@3 b4@3 ~@10", // Em A7
  AP: "[a2,g3,a3,db4,e4]@2 [a2,g3,a3,db4,e4]@2 [a2,g3,a3,db4,e4]@2 [e3,g3,a3,db4,e4] [e2,a3]", // A7 A5
  AQ: "[a2,g3,a3,db4,e4]@2 [a2,g3,a3,db4,e4]@2 [a2,g3,a3,db4,e4]@2 g2!2, ~@3 [g3,a3]", // A7 Gsus2
  AR: "[gb2,a3,e4]@2 [gb2,d4]@2 [gb2,b3]@2 gb2!2, a4@15 ~, ~@3 d4", // Gbm7 D B5
  AS: "[e2,g3,db4]@3 ~@2 a3@3 [a2,a3]@4 a2@2 g2@2, ~@3 b3@3 ~@6 [db4,g4,a4]@4, ~ e2 ~@2", // Dbdim A A7
  AT: "gb2@2 gb2@2 [gb2,d4]@2 gb2!2, [a3,e4,a4] [a3,a4], ~@3 db4", // D A5 A
  AU: "[f2,e4]@3 ~@2 e4@3 [f2,d4]@4 f2@2 f2@2, [a3,a4]@2 ~ db4, ~@3 d4@3 ~@2 ab4@8, ~ f2 ~@2", // Fmaj7 Dm A
  AV: "e2@4 e2@4 [e2,b3]@3 ~@3 e2@2, [a3,g4]@8 ~@3 d4@2 gb4@3, ~@6 e2 ~", // E5 A7
  AW: "[a2,a3,db4,eb4]@2 a2@2 a2@2 a2!2, ~ e4@2 g4", AX: "e2@2 e2@2 [e2,a4]@2 e2!2, d4@15 ~, [g4,b4]@2 ~ g4",
  AY: "[a2,b4]@3 ~@2 b4@3 [a2,a4]@4 a2@2 a2@2, d4 db4, ~@3 g4@3 ~@6 g4@4, ~ a2 ~@2", // Asus2 A
  AZ: "d2@2 d2@2 a5 ab5 [d2,g5] [d2,gb5], [a3,b3,gb4]@2 d2 ~", BA: "f5 db5 a4 g4 f4 db4 a2 a1, [a1,a2]@11 ~ a3@4",
  BB: "d5@3 ~@2 g4@3 gb4@2 e4@2 b2@2 bb2@2, [e2,g4] e2!2 [g3,a3,c4], ~@3 b4@3 ~@10", // Em Am7
  BC: "[a2,g3,a3,db4,e4]@2 [a2,g3,a3,db4,e4]@2 [g2,g3,a3,db4,e4]@2 g2!2, ~@3 [g3,a3]", // A7 Gsus2
  BD: "[gb2,a3,e4]@2 [gb2,d4]@2 [f2,b3]@2 f2!2, a4@15 ~, ~@3 d4", // Gbm7 D Fdim
  BE: "[e2,g3,db4]@3 ~@2 a3@3 [a2,a3]@4 a2@2 a1@2, ~@3 b3@3 ~@6 [db4,g4,a4]@4, ~ e2 ~@2", // Dbdim A A7
  BF: "[b1,b3,e4,g4]@2 [b1,b3,e4,g4]@2 [b1,b3,e4,g4]@2 b2 b1, ~@3 [b3,e4,g4]", // Em
  BG: "[e2,db4,e4,g4]@2 [e2,db4,e4,g4]@2 [e2,db4,e4,g4]@2 b2 bb2, ~@3 [db4,e4,g4]", // Dbdim
  BH: "[d2,a3,d4,gb4]!3 [d2,a2,a3,d4,gb4]", // D
  BI: "[d2,db4,d4,gb4,a4]@2 [d2,db4,d4,gb4,a4]@2 ~@2 [d2,db4,d4,gb4,a4]@2 [d2,db4,d4,gb4,a4]@4 a1@2 b1 c2, ~@3 [db4,d4,gb4,a4]", // Dmaj7
  BJ: "[d2,db4,d4,gb4,a4]@2 [d2,db4,d4,gb4,a4]@2 ~@2 [d2,db4,d4,gb4,a4]@2 [d2,db4,d4,gb4,a4]@4 d2@2 e2 gb2, ~@3 [db4,d4,gb4,a4]", // Dmaj7
  BK: "[g2,d4,e4,g4,b4] ~ e5 d5, ~ [d3,g3,b3,d4,e4,g4,b4]", BL: "[g2,d4,e4,g4,bb4] ~ e5 d5, ~ [d3,g3,bb3,d4,e4,g4,bb4]",
  BM: "[a1,a2,d4,gb4,a4]@4 ~@2 [gb4,a4,d5] d4 [a3,gb4,a4,d5]@4 [a2,d4,gb4]@4, ~@3 a2 ~@4", // D
  BN: "[e2,e3,d4,g4]@4 ~@2 [g4,b4,d5] d4 [a2,a3,g4,b4,d5]@4 [a2,a3,db4,g4,a4,db5]@4, ~@3 e3 ~@4", // Em7 G A7
  BO: "[d2,d3,d4,gb4,a4,d5]@15 ~", // D
})).s("gm_piano").gain(0.25)

stack(piano)