Strudelify

thank you for the venom

MrsPetersilie

KeyD majorTempo160 bpm
0:00/0:00
// thank you for the venom — MrsPetersilie
// 160 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5852338; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 138 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/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 D L M N O P ~@2 Q R S T U V W X Y Z S T U AA AB AC AD Z S T U V W X Y Z S AE AF@2 AG AH AI AJ@2
  AK AL AM AN@2 AO@4 AP@2 AQ AR AS AT AU AV AW AA AB AC AD Z S T U V W X Y Z S AE AF@2 AG AH AI AJ@2 AK AL AM AN@2 AO@4
  AP@2 AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW
>`.pickRestart({
  A: "[b2,f#3,b3,f#4]@6 d3@3 ~ a#3@2 b3@3 ~ f#3@2 ~@4 d4@2, ~@3 g3", // B5
  B: "[e2,e4]@6 f#2@3 ~ d3@2 c#3@3 ~ b2@2 a#2@3 ~ f#2@2", // E
  C: "[e2,b2,b3,e4]@3 ~ [e2,b2,b3,e4]@2 ~@4 e3@2 ~@4 e3@2 ~@4 e3@2, ~ e4 f#4 g4", // E5
  D: "[f#2,c#3,c#4,f#4]@3 ~ [f#2,c#3,c#4,f#4]@2 ~@4 f#3@2 [f#2,c#3]@3 ~ [f#2,c#3]@2 ~@4 f#3@2, ~ e4 d4 f#4", // F#5
  E: "[f#2,b2,b3,f#4]@3 ~ [f#2,b2,b3,f#4]@2 d3@3 ~ a#3@2 b3@3 ~ f#3@2 ~@4 g4@2, ~@3 g3", // B5
  F: "~@4 e3@2 ~@4 e3@2 ~@4 e3@2 e4@3 ~ d4@2, a4 g4 f#4 ~",
  G: "[f#2,c#3]@3 ~ [f#2,c#3]@2 f#3@3 ~@3 e4@6 [f#3,d4]@3 ~ f#4@2, ~@4 [c#4,f#4]@8 f#3@3 ~@9", // F#5 D F#5
  H: "[f#2,c#3]@3 ~ [f#2,c#3]@2 ~@6 [f#2,c#3]@3 ~ [f#2,c#3]@2 ~@6, [f#4,c#5] ~ [f#4,c#5] ~", // F#5
  I: "[b2,f#3,b3,f#4]@6 d3@3 ~ a#3@2 b3@3 ~ f#3@2 ~@4 d4@2, ~@6 d4@11 ~ g3@6", // B5
  J: "[e2,e4]@6 f#2@3 ~ [d3,d4]@2 c#3@3 ~ b2@2 a#2@3 ~ f#2@2, ~@12 c#4@11 ~", // E D
  K: "[e2,b2,b3,e4]@3 ~ [e2,b2,b3,e4]@2 ~@4 e3@2 ~@4 e3@2 ~@4 e3@2, ~ [b3,e4] [d4,f#4] [d4,g4]", // E5 D G5
  L: "[f#2,b2,b3,f#4]@3 ~ [f#2,b2,b3,f#4]@2 d3@3 ~ a#3@2 b3@3 ~ f#3@2 d4@3 ~ g4@2, ~@6 d4@11 ~ g3@6", // B5
  M: "~@4 e3@2 ~@4 e3@2 ~@4 e3@2 [c#4,e4]@3 ~ d4@2, [d4,a4] [d4,g4] [c#4,f#4] ~", // C#m D5 G5 F#5
  N: "[f#2,c#3,g4]@3 ~ [f#2,c#3]@2 f#3@3 ~@3 e4@6 [f#3,d4]@3 ~ f#4@2, ~@4 [c#4,f#4]@8 f#3@3 ~@9", // F# F#5 D F#5
  O: "[d3,f#3]@3 ~ f#3@2 ~@4 f#3@2 ~@4 f#3@2 ~@4 b2@2, ~@2 d4@4 c#4@3 e4@3", P: "b2@3 ~ b2@2 ~@18", Q: "~@3 b4",
  R: "f#5 e5 c#5 a#4 g4 f#4 ~@2 f#2 [g2,g4,b4,d5]@3, f#2!2 [f#4,a#4,c#5] ~", // G F#
  S: "~@5 [f#4,a#4,c#5] ~@2 f#2 [e2,e4,g4,b4]@3, f#2!2 ~@2, ~@2 [f#4,a#4,c#5]@3 ~ [f#4,a#4,c#5]@3 ~@3", // F# Em F#
  T: "~@5 [d4,f#4,a#4] ~@2 f#2 [g2,c#4,f#4,a#4]@3, f#2!2 ~@2, ~@2 [d4,f#4,a#4]@3 ~ [d4,f#4,a#4]@3 ~@3", // Daug F# Daug
  U: "~@5 [a#3,c#4,f#4] ~@2 f#2 ~@2 [a#3,c#4,f#4], f#2!2 ~ f#2, ~@2 [a#3,c#4,f#4]@3 ~ [a#3,c#4,f#4]@3 ~@3", // F#
  V: "[b2,b3,d4,f#4]@3 ~ [b2,b3,d4,f#4]@2 ~@4 [b2,a#3]@2 [b2,b3,d4,f#4]@3 ~ [b2,b3,d4,f#4]@2 ~@4 [b2,b3,e4,f#4]@2", // Bm Bmaj7 Bm Bsus4
  W: "[b2,b3,e4,f#4]@3 ~ [b2,b3,e4,f#4]@2 ~@4 [b2,b3,c#4,f#4]@2 [b2,b3,c#4,f#4]@3 ~ [b2,b3,c#4,f#4]@2 ~@4 [b2,b3,e4,f#4]@2", // Bsus4 Bsus2 Bsus4
  X: "[b2,b3,d4,f#4]@3 ~ [b2,b3,d4,f#4]@2 ~@4 [b2,b3,d4,f#4]@2 [b2,b3,d4,f#4]@3 ~ [b2,b3,d4,f#4]@2 ~@4 [b2,b3,e4,f#4]@2", // Bm Bsus4
  Y: "[b2,b3,e4,f#4]@3 ~ [b2,b3,e4,f#4]@2 ~@4 [b2,b3,d4,f#4]@2 [b2,b3,d4,f#4]@3 ~ [b2,b3,d4,f#4]@2 ~@4 [b2,b3,d4,f#4]@2", // Bsus4 Bm
  Z: "~@5 [f#4,a#4,c#5] ~@2 f#2 [g2,g4,b4,d5]@3, f#2!2 ~@2, ~@2 [f#4,a#4,c#5]@3 ~ [f#4,a#4,c#5]@3 ~@3", // F# G F#
  AA: "[b2,b3,d4,f#4]@3 ~@8 [b3,d4,f#4], ~ d3 f#3 f3, ~@5 [b3,d4,f#4]@3 [b3,d4,f#4]@3 ~", // Bm
  AB: "[f#3,b3,d4,f#4]@3 ~@8 [b3,d4,f#4], ~ d3 c#3 a2, ~@5 [d4,f#4,a4]@3 [c#4,e4,a4]@3 ~", // Bm D A
  AC: "[b2,b3,d4,f#4]@3 ~@8 [b3,d4,f#4], ~ d3 c#3 b2, ~@5 [b3,d4,f#4]@3 [b3,d4,f#4]@3 ~", // Bm
  AD: "[d3,b3,d4,f#4] ~@2 c#3, ~ f#3 d3 ~, ~@5 [d4,f#4,a4]@3 [c#4,e4,a4]@4", // Bm D A
  AE: "~@5 [d4,f#4,a#4] ~@2 f#2 [g2,c#4,f#4]@3, f#2!2 ~@2, ~@2 [d4,f#4,a#4]@3 ~ [d4,f#4,a#4]@3 ~@3", // Daug F# Daug
  AF: "[f#4@3 ~@7 [e4,c#5]@2 ~@4 f#2@2 [e4,a#4]@3 ~@3 g2@6 [g4,d5]@3 ~ [g4,d5]@6 ~@2 [g4,d5]@6, f#2@3 f#2@3 ~@3 f#2@3 ~@8 g2@3 ~, ~@2 [e4,c#5]@3 ~ [e4,c#5]@3 ~@2 [d4,a#4]@3 ~@10]/2", // C#m Edim G5 C#m Gm
  AG: "a2@6 [a4,d5]@3 ~ [a4,d5]@6 ~@2 [b4,d5]@6, ~@8 b2@3 ~", // D5 Bm
  AH: "a#2@6 [a#4,c#5]@3 ~ [a#4,c#5]@6 ~@2 [a#4,c#5]@6, ~@8 a#2@3 ~", // A#m
  AI: "b2@6 [b4,d5]@3 ~ [b4,d5]@6 ~@2 [c#5,e5]@6, ~@8 c#3@3 ~", // Bm C#m
  AJ: "g2@6 [g4,d5]@3 ~ [g4,d5]@6 ~@2 [g4,d5]@6, ~@8 g2@3 ~", // G5
  AK: "a2@6 [a4,e5]@3 ~ [a4,e5]@6 ~@2 e4@2 g4@2 b4@2, ~@8 a2@3 ~", // A5
  AL: "[a2,a3,a4,b4,e5]@3 ~ [a2,a3,a4,b4,e5]@6 [a4,c#5,e5]@6 [a2,a3]@2 [a2,a3,a4,c#5,e5]@6", // Asus2 A
  AM: "[d4,g4]@3 ~@3 [d2,d3]@6 ~@4 [d4,g4]@2 [d2,d3,d4,a4]@6, [d2,d3] ~ [d2,d3] ~, ~@2 [d4,f#4]@3 ~@7", // G5 D G5 D5 D
  AN: "[[d4,f#4,a4] ~@13 [c#2,c#3]@2, [d2,d3]!4 [c#2,c#3]!3 ~, ~@2 [d4,f#4,a4]@3 [d4,f#4,a4]@3 [e4,g4]@3 [d4,f#4]@3 [c#4,a4]@3 g4@3 [c#4,a4]@4]/2", // D C# D C# D Em D F#m
  AO: "[[c#4,a4]@3 ~@45 [b1,b2]@6 [b1,b2]@6 [b1,b2,b3,f#4]@6 [b1,b2]@6 [g2,g3]@6 f#4@3 ~@7 f#4@2 [g2,g3,d4,a4]@6, [c#2,c#3]!4 [b1,b2]!4 ~@5 [g2,g3]!2 ~, ~@4 [c#4,a4]@6 [c#4,a4]@6 [c#4,g4]@6 [d4,f#4]@6 [d4,f#4]@6 e4@6 d4@6 [c#4,e4]@14 ~@6 d4@11 ~@5 b4@6 ~@8]/4", // F#m B B5 B G Gsus2 C# B …
  AP: "[[d4,g4,b4]@3 ~@19 e4@2 d4@3 ~@3 [d2,d3]@6 [d2,d3,d4,f#4]@6 [d2,d3,d4,a4]@6, [g2,g3]!4 [d2,d3] ~@3, ~@2 [f#4,a4]@3 [f#4,a4]@3 [e4,g4]@3 g4@3 [d4,f#4,a4]@4 ~@6]/2", // G D D5 G D F#m Em D
  AQ: "[d2,d3]!2 [d2,d3,f#4,d5] [d2,d3,d4,a4], [e4,c#5]@11 ~@13", // D D5 C#m
  AR: "[c#2,c#3,c#4,g4]@6 a4@3 ~@7 a4@2 [c#2,c#3,g4]@6, ~ [c#2,c#3]!2 ~, ~@5 g4@3 ~@4", // C#dim C#
  AS: "[c#2,c#3,d4]!2 [c#2,c#3,e4]!2", AT: "b3@3 ~@13 f#4@2 [b1,b2,b4]@6, [b1,b2]!3 ~, ~@2 c#4@3 d4@3 ~@4",
  AU: "[f#4,a4]@3 ~@13 [e4,g4]@2 [b1,b2,d4,f#4]@6, [b1,b2]!3 ~, ~@2 [e4,g4]@3 [e4,g4]@3 ~@4", // F#m Em Bm B Em
  AV: "[g2,g3] ~ [g2,g3] [g2,g3,g4,d5], [d4,f#4]@9 ~ [g4,c#5]@6 ~@8, ~ [g2,g3] ~@2", // G G5 D Gdim G
  AW: "[g2,g3] [g2,g3,g4,d5] [g2,g3] [g2,g3,g4,d5]", AX: "[b2,b3,f#4]@6 b3@3 ~ d4@2 b3@3 ~ f#4@2 b3@3 ~ d4@2",
  AY: "b3@3 ~ f#4@2 b3@3 ~ d4@2 b3@3 ~ d4@2 [b3,f#4]@6", // B5
  AZ: "~@2 [f#4,b4] ~@3 [f#4,b4] ~, b3@23 ~, ~@2 b2@3 ~@3 b2@3 ~", // B5
  BA: "~@2 [f#4,b4] ~@3 [f#4,b4] ~, b3@11 ~ d4@11 ~, ~@2 b2@3 ~@3 b2@3 ~", // B5
  BB: "~@2 [g4,d5] ~@3 [g4,d5] ~, d4@23 ~, ~ g2 ~ g2", // G5
  BC: "~@2 [g4,d5] ~ d4@2 [g2,c#4]@2, c#4@11 ~@7 f#4@3 ~@3, ~ g2 ~@2", // G5 Gdim
  BD: "f#2@2 [f4,c#5] ~ f#2@2 [f4,c#5] ~, c#4@23 ~", BE: "f#2@2 [f4,c#5] ~ f#2@2 [f4,c#5] ~, d4@11 ~ e4@11 ~",
  BF: "~@2 [f#4,c#5] ~@3 [f#4,c#5] ~, e4@23 ~", BG: "~@2 [f#4,a#4] ~@3 [f#4,a#4] ~, d4@11 ~ c#4@11 ~",
  BH: "~@2 [b4,f#5] ~@3 [f#4,b4] ~, f#4@17 ~ d4@6", BI: "~@2 [g4,b4] ~@3 [d5,f#5] ~, b3@11 ~ f#4@11 ~",
  BJ: "~@2 [g4,d5] ~@3 g4@2, f#4@17 ~ d5@3 ~@3", BK: "~@2 [g4,d5] ~@3 [f#4,d5] ~, e4@11 ~ e4@11 ~",
  BL: "~@2 [f4,c#5] ~@3 [f4,c#5] ~, e4@23 ~", BM: "~@2 [c#5,f5] ~@3 [c#5,f5] ~, f#4@11 ~ g4@11 ~",
  BN: "f#4@3 ~ g4@2 a4@3 ~ f#4@2 g4@3 ~ a4@2 b4@3 ~ c#5@2", BO: "d5@3 ~ b4@2 c#5@3 ~ b4@2 e5@3 ~ f#5@2 g5@3 ~ a5@2",
  BP: "[a5,b5]@9 ~ [a5,b5]@6 g5@2 f#5@3 ~ g5@2", BQ: "f#5@3 ~ e5@2 f#5@3 ~ f#5@14, ~@5 e5 ~@6",
  BR: "f#5@3 ~ g5@2 f#5@3 ~ e5@2 f#5@3 ~ e5@2 d5@3 ~ c#5@2", BS: "b5@3 ~ g5@2 f#5@3 ~ e5@2 f#5@3 ~ e5@2 d5@3 ~ c#5@2",
  BT: "d5@3 ~ b4@2 c#5@3 ~ a4@2 b4@3 ~ g4@2 a4@3 ~ f#4@2", BU: "g4@3 ~ e4@2 f#4@3 ~ d4@2 e4@3 ~ c#4@2 d4@3 ~ b3@2",
  BV: "c#4@3 ~ a3@2 b3@3 ~ g3@2 a3@3 ~ f#3@2 g3@3 ~ e3@2", BW: "c#4 ~@3",
})).s("gm_piano").gain(0.3)

stack(piano)