Strudelify
KeyD majorTempo164 bpm
0:00/0:00
// nine point eight — Militranscripted by scarletzyy
// 164 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5971079; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 83 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(164/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@2 B@2 A@2 C@2 D@2 E@2 D@2 F@2 G H I J G H I K L M N O P Q R S T@2 U V W X Y Z AA AB U V W X Y AC AA AD@2 AE AF AG AH
  AE AF AG AI@8 AJ AK AL AM AN AO AP K AQ ~@8
>`.pickRestart({
  A: "[d6 d5 a5 d6@2 d5 a5 ~@2 d5 a5 d6@2 d5 g6 f#6, [f#3,d4]@7 c#6@2 ~@7, ~@16 [g3,d4]@15 ~]/2", // D G5
  B: "[d6 d5 a5 d6@2 d5 a5 ~@2 d5 a5 d6@2 d5 g5 f#5, [d3,a3]@7 c#6@2 ~@7, ~@16 [a3,e4]@15 ~]/2", // D5 A5
  C: "[d6 d5 a5 d6@2 d5 a5 ~@2 d5 a5 d6@2 d5 a5 c#6, [d3,a3]@7 c#6@2 ~@7, ~@16 [a3,e4]@15 ~]/2", // D5 A5
  D: "[d5 d4 a4 d5@2 ~ a4 ~@2 d4 a4 d5@2 ~ g5 f#5, [f#2,d3]@9 ~ [f#3,d4]@6 [g2,d3]@9 ~ [g3,d4]@6, ~@7 c#5@2 ~@7]/2", // D G5
  E: "[d5 d4 a4 d5@2 d4 a4 ~@2 d4 a4 d5@2 d4 g4 f#4, [d2,a2]@9 ~ [d3,a3]@6 [a2,e3]@9 ~ [a3,e4]@6, ~@7 c#5@2 ~@7]/2", // D5 A5
  F: "[d5 d4 a4 d5@2 d4 a4 ~@2 d4 a4 d5@2 d4 a4 c#5, [d2,a2]@9 ~ [d3,a3]@6 [a2,e3]@9 ~ [a3,e4]@6, ~@7 c#5@2 ~@7]/2", // D5 A5
  G: "d5 d4 c#5 [d4,d5]@2 ~ g5 f#5, [f#2,d3]@6 f#3@9 ~, ~@10 d4@5 ~", // D
  H: "d5 d4 c#5 d5@2 f#4 a4 c#5, [g2,d3]@6 [g3,d4]@9 ~", I: "d5 d4 c#5 d5@2 d4 c#5 d5, [d2,a2]@6 [d3,a3]@9 ~",
  J: "g5 d4 a4 [a3,e4,e5]@2 [a2,a4] [a3,e5] [e3,f#5], [a2,e3]@3 ~@5", // A5 A A5 Esus2 A5
  K: "d5 d4 a4 [a3,e4,e5]@2 [a2,f#5] [e3,d5] [a2,c#5], [a2,e3]@3 ~@5", L: "g2 d3 a3 a4@3 [a3,f#4]@2, [g3,c#4]@6 d4@9 ~",
  M: "f#2 d3 a3 d5 c#5 a4 e4 d4, [f#3,d4]@3 d4@4 ~", N: "g2 d3 a3 [d4,a4]@3 [c#4,e4,c#5]@2, [e3,c#4]@3 ~@5",
  O: "f#2@2 d3@2 a3@2 c#5 d5 c#5@2 a4@2 f#4@2 a4@2, [f#3,d4]@3 d4@3 c#4@2", // D
  P: "g2 d3 a3 [f#5,a5]@3 [d5,f#5]@2, [e4,c#5]@6 d4@9 ~", Q: "f#2 d3 a3 [f#5,a5]@3 [d5,f#5]@2, [f#4,d5]@6 d4@9 ~",
  R: "g2 d3 a3 [d4,e5,a5]@3 [c#4,e5,d6]@2, [f#4,c#5]@3 ~@5", // Dsus2 C#m F#5
  S: "f#2@2 d3@2 a3@2 c#6 d6 c#6@2 a5@2 e5@2 d5@2, [f#4,d5]@3 d4@3 [g2,d3]@2", // D G5
  T: "[[d5,f#5]@2 a4@2 [d5,f#5]@2 [e5,g5]@2 a4@2 [e5,g5]@2 [f#5,a5]@8 ~@4 d5 c#5 ~ d5 a5@4, [a2,f#3]@19 ~@5 [a2,e3]@8]/2", // D Em F#m D A5
  U: "[c#5,e5] a4 [c#5,e5] [a4,d5]@2 a4 [f#5,a5] [d5,f#5], [d3,a3]@3 [d3,a3]@3 [d3,a3]@2", // C#m D5 F#m D D5
  V: "[c#5,e5] a4 [c#5,e5] [a4,d5]@2 a4 [f#5,a5] [f#5,b5], [a2,e3]@3 [a2,e3]@3 [a2,e3]@2", // C#m D5 F#m B5 A5
  W: "[b5,d6] f#5 [b5,d6] [a5,c#6] f#5 [a5,c#6] b5 f#5, [b2,f#3]@3 [b2,f#3]@3 [b2,f#3]@2", // Bm A B5
  X: "[c#5,e5] a4 [c#5,e5] [g2,d3,a4,d5]@3 [g2,d3]@2, [g2,d3]@3 ~@5", // C#m Gsus2 G5
  Y: "c#5 a4 d5 [a4,e5]@2 a4 d5 e5, [f#2,c#3]@3 [a3,e4]@3 [e3,a3]@2", // A5 F#5 A5
  Z: "f#5 a4 e5 [a4,f#5]@2 a4 [f#5,a5] [d5,f#5], [g2,d3]@3 [a3,f#4]@3 [f#3,a3]@2", // D F#m D G5 D F#m
  AA: "[c#5,e5] a4 [c#5,e5] d5 a4 d5 c#5 a4, [a2,e3]@3 [a2,e3]@3 [a2,e3]@2", // C#m A5
  AB: "[a2,e3,c#5] [a3,d5] [c#4,a4] [a3,d5] [c#5,e5] a4 [a3,c#4,c#5,e5]@2, ~@2 [a3,d4] ~", // A D5 F#m D5 C#m A D5
  AC: "f#5 a4 e5 [a4,f#5]@2 a4 [f#5,a5] [d5,f#5], [f#2,c#3]@3 [a3,e4]@3 [f#3,d4]@2", // D F#m D F#5 A5 D
  AD: "[[a2,e3,c#5] [a3,d5] [c#4,a4] [a3,d5] [c#5,e5] a4 [a3,d4] ~@2 a4 c#5 ~@2 d4 c#5 d5, ~@4 [a3,d4]@2 [c#5,a5]@2 d5@3 d5@4 ~, ~@14 a2@17 ~, ~@8 d4 ~@7, ~@17 [a5,d6]@15]/2", // A D5 F#m D5 C#m D5 F#m D5
  AE: "~ a4 c#5 d5@2 d4 c#5 d5, e5, d4 ~@7, ~ [b5,e6]@15", AF: "~ a4 c#5 d5@2 d4 c#5 d5, f#5, d4 ~@7, ~ [c#6,f#6]@15",
  AG: "~ a4 c#5 ~@2 d4 c#5 d5, e5@8 ~ [e6,a6]@7, d4 ~@2 d5@2 ~@3, ~ [b5,e6]@7 a5@8", // A5 E5
  AH: "~ a4 c#5 ~@2 d4 c#5 d5, d5@3 d5@4 ~, d4 ~@7, ~ [a5,d6]@15", // D5
  AI: "[d4,f#5] [a4,g5] [c#5,f#5] g5 f#5 [d4,g5] [c#5,f#5] [d5,g5], ~@3 d5@2 ~@3", // D A7 F#5 G5 F#5 G5
  AJ: "[f#2,d3]@2 [f#4,a4,d5] ~@13, [f#4,a4] ~@15", // D F#m
  AK: "[g2,d3]@2 [f#4,a4,d5] ~@3 [f#3,e4]@2 ~@2 [f#3,d4,a4]@2 g5@2 [f#3,d4,f#5]@2, [f#4,a4] ~@15", // G5 D F#7 D F#m
  AL: "[g2,d3,g5]@2 ~ g4 g5 g4 g5 [a1,g4]", AM: "g5 d4 a4 ~@2 a4 e5 f#5, [a2,c#3]!4, ~@3 e5@2 ~@3",
  AN: "f#5 d4 d5 [d4,a5]@2 ~ d5 g5, [d2,a2]@6 f#3@9 ~, ~@10 d4@5 ~", // D5
  AO: "f#5 d4 d5 [d4,f#5]@2 ~ d5 f#5, [f#2,d3]@6 g3@9 ~, ~@10 d4@5 ~", // D
  AP: "d5 d4 c#5 d5@2 d4 c#5 d5, [g2,d3]@6 [d3,a3]@9 ~", AQ: "g2 d3 a3 [d4,a4]@3 [a3,f#4]@2, [g3,c#4] ~@3",
})).s("gm_piano").gain(0.25)

stack(piano)