Strudelify

Deadlocked

Jesse Valentine

KeyA♭ majorTempo200 bpm
0:00/0:00
// Deadlocked — Jesse Valentine
// 200 bpm, 12/8, key Ab major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1678331; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 58 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(200/6)

// 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 C E A F G H G D G H I J K L M N O P Q R S T S T U V U W X Y Z AA X Y Z AB AC AD AC AE AF AG AH AI AJ AK AL AM
  AN@2 AO AP AQ@2
>`.pickRestart({
  A: "[f2,f3,c4,f4] f2!9 ab2 bb2", B: "f2!7 [f2,c3,f3] f2 [f2,ab4] [f2,bb4] [f2,f4], ~@7 ab4@2 ~@3",
  C: "[f2,c3,f3,c4,f4] f2!9 ab2 bb2", D: "f3!2 eb3!2 c3!2 bb2 [bb2,c4,f4,ab4] ab2 g2 ab2 bb2",
  E: "f2!7 [f2,c3,f3] f2 [f2,ab5] [f2,bb5] [f2,f5], ~@7 ab5@2 ~@3", // F5 Fm Bb5 F
  F: "f3!2 eb3!2 [c3,bb5] [c3,f5] [bb2,g5] [bb2,ab5] [ab2,eb5] g5 bb4 c5", // C7 F5 Eb Bb7 Ab5
  G: "[f2,c3,f3,c4,f4] [f2,c3]!2 f2 [f2,c3]!2 f2 [f2,c3]!2 f2 [ab2,eb3] [bb2,f3]", // F5 Ab5 Bb5
  H: "f2 [f2,c3]!2 f2 [f2,c3]!2 f2 [f2,c3]!2 [f2,ab4,ab5] [f2,c3,bb4,bb5] [f2,c3,f4,f5], ~@7 ab4@2 ~@3", // F5 Fm Fsus4 F5
  I: "[f2,f3,c4,f4] [f2,c3]!2 f2 [f2,c3]!2 f2 [f2,c3]!2 f2 [ab2,eb3] [bb2,f3]", // F5 Ab5 Bb5
  J: "f3@2 f3@2 eb3@2 eb3@2 c3@2 c3@2 bb2@2 [bb2,c4,f4,ab4]@2 ab2@2 c2 db2 [eb2,f2] g2 ab2 [bb2,c3]", // Fm Ebsus2 Bbsus2
  K: "f2!2 [f2,f4] [f2,bb4] [f2,ab4] [f2,f4]!2 [f2,g4] [f2,f4]!2 [f2,f5] [f2,f4]", // F Bb5 Fm F Fsus2 F
  L: "f2!2 [f2,f4] [f2,bb4] [f2,ab4] [f2,f4]!2 [f2,g4] [f2,f4]!2 [f2,eb4] [f2,bb3]", // F Bb5 Fm F Fsus2 F F7 Bb5
  M: "db2!2 [db2,f4] [db2,bb4] [db2,ab4] [db2,f4]!2 [db2,g4] [db2,f4]!2 [db2,eb4] [db2,bb3]", // Db Gb Db5 Db Dbdim Db Dbsus2 Gb
  N: "eb2!2 [eb2,bb4] [eb2,eb5] [eb2,bb4] [eb2,eb4] [eb2,bb4] [eb2,f5] [eb2,eb4] [eb2,bb4] [eb2,ab4] [eb2,g4]", // Eb5 Eb Eb5 Eb Eb5 Ebsus2 Eb Eb5 …
  O: "[f2,c3]!2 [f2,c3,f4] [f2,c3,bb4] [f2,c3,ab4] [f2,c3,f4]!2 [f2,c3,g4] [f2,c3,f4] [f2,f4] [f2,f5] [f2,f4]", // F5 Fsus4 Fm F5 Fsus2 F5 F
  P: "[f2,c3]!2 [f2,c3,f4] [f2,c3,bb4] [f2,c3,ab4] [f2,c3,f4]!2 [f2,c3,g4] [f2,c3,f4] [f2,f4] [f2,eb4] [f2,bb3]", // F5 Fsus4 Fm F5 Fsus2 F5 F F7 …
  Q: "[db2,ab2]!2 [db2,ab2,f4] [db2,ab2,bb4] [db2,ab2,ab4] [db2,ab2,f4]!2 [db2,ab2,g4] [db2,ab2,f4] [db2,f4] [db2,eb4] [db2,bb3]", // Db5 Db Bbm7 Db5 Db Dbsus2 Gb
  R: "[eb2,bb2]!2 [eb2,bb2,bb4] [eb2,bb2,eb5] [eb2,bb2,bb4] [eb2,bb2,eb4] [eb2,bb2,bb4] [eb2,bb2,f5] [eb2,bb2,eb4] [eb2,bb4] [eb2,ab4] [eb2,g4]", // Eb5 Ebsus2 Eb5 Ab5 Eb
  S: "f4!12", T: "f4!9 ~@3",
  U: "[f2,c3,f4]!3 f4 [f2,c3,f4]!2 f4 [f2,c3,f4] [ab2,eb3,f4] f4!2 [f2,c3,f4], ~@9 [bb2,f3]@2 ~", // F5 Fm7 F5 Bb5
  V: "[f2,c3,f4]!3 f4 [f2,c3,f4]!2 f4 [f2,c3,f4] [f2,ab2,f4] [eb2,bb2]@2 f2", // F5 Fm Eb5
  W: "[f2,c3,f4]!3 f4 [f2,c3,f4]!2 f4 [f2,c3,f4] [f2,eb3,f4] [eb2,bb2,f4] f4 [eb2,c3,f4]", // F5 F7 Ebsus2 F7
  X: "[f2,c3,f5] [f2,c3,c5] [f2,c3,f4] f5 [f2,c3,c5] [f2,c3,f4] ab5 [f2,c3,c5] [ab2,eb3,f4] g5 c5 [f2,c3,f4], ~@9 [bb2,f3]@2 ~", // F5 Fm7 F5 Bb5
  Y: "[f2,c3,f5] [f2,c3,c5] [f2,c3,f4] f5 [f2,c3,c5] [f2,c3,f4] ab5 [f2,c3,c5] [f2,ab2,f4] g5 c5 [f2,f4], ~@9 [f2,bb2]@2 ~", // F5 Fm F Bb5
  Z: "[db2,ab2,f5] [db2,ab2,c5] [db2,ab2,db4] f5 [db2,ab2,c5] [db2,ab2,db4] ab5 [db2,ab2,c5] [db2,ab2,db4] g5 c5 db4", // Db Dbmaj7 Db5 Dbmaj7 Db5 Dbmaj7 Db5
  AA: "[eb2,bb2,f5] [eb2,bb2,bb4] [eb2,bb2,eb4] f5 [eb2,bb2,bb4] [eb2,bb2,eb4] ab5 [eb2,bb2,bb4] [eb2,bb2,eb4] g5 bb4 eb4", // Ebsus2 Eb5
  AB: "[eb2,bb2,f5]@2 [eb2,bb2,bb4]@2 [eb2,bb2,eb4]@2 f5@2 [eb2,bb2,bb4]@2 [eb2,bb2,eb4]@2 ab5@2 [eb2,bb2,bb4]@2 [eb2,bb2,eb4]@2 c2 db2 [eb2,f2] g2 ab2 [bb2,c3], ~@9 g5 bb4 eb4", // Ebsus2 Eb5 Ebsus2 Bbsus2
  AC: "[f2,c3,f3,c4,f4]@2 [f2,c3]!3 ~ [f2,c3]@2 [f2,c3]!4 [f2,c3]@2 [f2,c3]!3 ~ [f2,c3]@2 [ab2,eb3]@2 [bb2,f3]@2", // F5 Ab5 Bb5
  AD: "[f2,c3]@2 [f2,c3]!3 ~ [f2,c3]@2 [f2,c3]!4 [f2,c3]@2 [f2,c3,f3]@2 [f2,c3] ~ [f2,c3,ab4,ab5]@2 [f2,c3]!4, ~@7 ab4@2 ~ [bb4,bb5] [f4,f5]", // F5 Fm F5 Bb F
  AE: "f3@2 f3!2 eb3@2 eb3!2 c3@2 c3!2 bb2@2 bb2!2 ab2@2 c2 db2 [eb2,f2] g2 ab2 [bb2,c3]", // Ebsus2 Bbsus2
  AF: "[f2,c3]@2 [f2,c3]!3 ~ [f2,c3,bb4]@2 [f2,c3]!4 [f2,c3,f4]@2 [f2,c3]!2 [f2,c3,f4]@2 [f2,c3,f4]@2 [f2,c3]!3 ~, ~@2 f4 ~ ab4 f4 ~ g4 ~@2 f5 f4", // F5 Fsus4 F5
  AG: "[f2,c3]@2 [f2,c3]!3 ~ [f2,c3,bb4]@2 [f2,c3]!4 [f2,c3,f4]@2 [f2,c3]!2 [f2,c3,f4]@2 [f2,c3,f4]@2 [f2,c3]!3 ~, ~@2 f4 ~ ab4 f4 ~ g4 ~@2 eb4 bb3", // F5 Fsus4 F5
  AH: "[db2,ab2]@2 [db2,ab2]!3 ~ [db2,ab2,bb4]@2 [db2,ab2]!4 [db2,ab2,f4]@2 [db2,ab2]!2 [db2,ab2,f4]@2 [db2,ab2,f4]@2 [db2,ab2]!3 ~, ~@2 f4 ~ ab4 f4 ~ g4 ~@2 eb4 bb3", // Db5 Bbm7 Db5 Db Db5 Db Db5
  AI: "[eb2,bb2]@2 [eb2,bb2]!3 ~ [eb2,bb2,eb5]@2 [eb2,bb2]!4 [eb2,bb2,bb4]@2 [eb2,bb2]!2 [eb2,bb2,eb4]@2 [eb2,bb2,bb4]@2 [eb2,bb2]!3 ~, ~@2 bb4 ~ bb4 eb4 ~ f5 ~@2 ab4 g4", // Eb5
  AJ: "[f2,c3,f3]@2 [f2,c3,f3]!3 ~ [f2,c3,f3,bb4]@2 [f2,c3,f3]!4 [f2,c3,f3,f4]@2 [f2,c3,f3]!2 [f2,c3,f3,f4]@2 [f2,c3,f3,f4]@2 [f2,c3,f3]!4, ~@2 f4 ~ ab4 f4 ~ g4 ~@2 f5 f4", // F5 Fsus4 F5
  AK: "[f2,c3,f3]@2 [f2,c3,f3]!3 ~ [f2,c3,f3,bb4]@2 [f2,c3,f3]!4 [f2,c3,f3,f4]@2 [f2,c3,f3]!2 [f2,c3,f3,f4]@2 [f2,c3,f3,f4]@2 [f2,c3,f3]!4, ~@2 f4 ~ ab4 f4 ~ g4 ~@2 eb4 bb3", // F5 Fsus4 F5
  AL: "[db2,ab2,db3]@2 [db2,ab2,db3]!3 ~ [db2,ab2,db3,bb4]@2 [db2,ab2,db3]!4 [db2,ab2,db3,f4]@2 [db2,ab2,db3]!2 [db2,ab2,db3,f4]@2 [db2,ab2,db3,f4]@2 [db2,ab2,db3]!4, ~@2 f4 ~ ab4 f4 ~ g4 ~@2 eb4 bb3", // Db5 Bbm7 Db5 Db Db5 Db Db5
  AM: "[eb2,bb2,eb3]@2 [eb2,bb2,eb3]!3 ~ [eb2,bb2,eb3,eb5]@2 [eb2,bb2,eb3]!4 [eb2,bb2,eb3,bb4]@2 [eb2,bb2,eb3]!2 [eb2,bb2,eb3,eb4]@2 [c2,c3] [d2,d3] [eb2,f2,eb3,f3] [g2,g3] [ab2,ab3] [bb2,c3,bb3,c4], ~@2 bb4 ~ bb4 eb4 ~ f5 ~ bb4 ab4 g4", // Eb5 C D Ebsus2 G Ab Bbsus2
  AN: "f5 c5 f4 f5 c5 f4 ab5 c5 f4 g5 c5 f4", AO: "f5 c5 db4 f5 c5 db4 ab5 c5 db4 g5 c5 db4",
  AP: "f5 bb4 eb4 f5 bb4 eb4 ab5 bb4 eb4 g5 bb4 eb4", AQ: "[[f4,c5,f5]@23 ~]/2",
})).s("gm_piano").gain(0.4)

stack(piano)