Strudelify

Crucify

Tori Amos

KeyB majorTempo80 bpm
0:00/0:00
// Crucify — Amos, Tori
// 80 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 24, 4/4 at bar 25, 2/4 at bar 54, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 107 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/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 · "Tori Amos"
const piano = note(`<
  A B@8 C D@7 E@2 F G H@2 I@2 J@7 K@7 L@6 M@5 N@5 O@6 P@2 Q@2 R@7 S@4 T@6 I@2 U@7 V@8 W@8
>`.pickRestart({
  A: "~@10 d#4!6, ~ [g#2,d#3]", // G#5
  B: "[~ d#4@5 ~@2 c#4@2 ~@2 d#4@3 ~@8 g#2 ~ d#4!5 ~@8 c#4 ~@3 c#4!5 c#4@2 ~@2 d#4@2 d#4!2 [g#2,d#4] d#4!2 d#4@2 d#4 d#4@3 ~ d#4@4 d#4 ~@2 c#4@2 c#4@2 c#4 ~@10 g#2 ~@2 d#4!3 ~@6 c#4 c#4@3 ~@7 d#4@2 ~@8 d#4 d#4@3 d#4@2 d#4@2, [a#2,f3]@15 d#4 [g#2,d#3]@6 f#2@12 d#4@6 f#2@9 c#4@15 [a#2,f3]@24 [g#2,d#3]@18 c#4@6 d#4@2 c#4@2 b3@2 c#4@10, f4@6 d#4@2 f#2@2 c#4@20 d#4@2 [a#2,f3,f4]@24 [g#2,d#3]@16 f#2@5 c#4@16 d#4@2 f4@25 ~@8, ~@7 f4@17 [g#2,d#3]@30 f#2@10 f4@6 d#4@2 c#3@24 [a#2,f3]@24 ~@8, ~@8 c#3@31 c#4 c#3@31 f4@8 d#4 [g#2,d#3]@6 f#2@11 d#4@6 c#4 [f#2,c#3]@16 [f#2,b3]@8]/8", // G#5 A#5 G#5 A#5 G#5 A#5 G#5 A#5 …
  C: "~@2 c#4@2 c#4@2 c#4@2 ~@7 f#2, [f#2,a#3], d#4@5 b3@3, ~ [g#3,c#4], ~@4 g#2@3 [g#2,d#4]", // F# C#5 G#5
  D: "[~@8 f#4 f#4@3 f#4@2 f#4@2 ~@4 d#4@2 ~@4 d#4@2 ~ c#4@2 ~@9 d#4@2 d#4@2 ~@5 c#4@3 c#4!2 ~@18 b3@4 ~@8 d#4@2 ~@10 b3@4 ~@9 b3@2 g#2, c#4@4 g#3 b3 d#4 g#3 [f#2,a#3]@8 f#4@20 b3@2 c#4@2 b3@8 a#3@8 [g#2,g#3] c#4@15 d#3@16 [e2,b3]@3 f#3@9 b3@2 [f#2,c#4]@2 [g#2,b3,d#4]@2 g#3 b3 [g#2,g#3]@4, e2@3 b4@20 [f#2,d#4] [e2,g#3]@24 [f#2,d#4]@6 c#4 b3 d#4@12 [d#3,g#3]@2 a#3@18 g#3@8 e2@16, ~ g#4@15 b3@8 e4@4 d#4@3 c#4 [f#2,a#3]@8 b2@19 b3@5 g#2@8 [e2,g#3]@4 b3@4 e2@4 b3@2 d#4@8 b3 e3@17, ~ a#4@7 g#2 e4@2 g#2@11 d#4 e4@11 f#2@10 b2@12]/7", // F# G# E5 F#5 G#m G# D#m E …
  E: "[d#4@2 ~@4 c#4@2 ~@4 f#2@3 ~@5 d#4@3 ~ g#2@4 g#2@3 [g#2,d#4], [c#3,e3,b3]@8 [f#2,a#3,c#4]@2 g#3 a#3@5 [c#3,e3,g#3,b3]@2 c#4@2 c#2@3 [b3,d#4]@9, g#3 c#2@2 f#3@5, ~ e4@15, ~@3 d#4@12 f#2@17]/2", // G#5 C#m7 F# C#m7 B
  F: "d#4@2 ~@4 c#4@2 ~@4 [f#2,f#3]@3 f#2, [c#3,e3,b3]@8 [f#2,a#3,c#4]@2 g#3 a#3@5, g#3 c#2@3, ~ e4@7, ~@3 d#4@13", // F# C#m7 F#
  G: "c#4 ~@4 c#4 ~@6 g#2@2 ~ [g#2,d#4], [e3,g#3]@7 b3 [g#2,a#3,d#4]@2 c#4 [b3,d#4]@3 d#3@2, c#3@3 c#3@5, ~ c#4@2 c#4 c#2@12, ~@2 b3@4 c#4 f#2@9", // G#5 E G#sus2 B
  H: "[d#4@2 ~@4 c#4@2 ~@4 f#2@3 ~@14 b3@2 [g#2,d#4], [c#3,e3,b3]@8 [f#2,a#3,c#4]@2 g#3 a#3@5 [c#3,g#3,b3]@2 c#4@2 [c#2,b3,d#4]@2 [c#3,f#4] f#2 [g#2,b3,d#4]@2 g#3 b3 [g#2,g#3]@4, g#3 c#2@2 f#3@5, ~ e4@15, ~@3 d#4@12 f#2 e3@16]/2", // G#5 C#m7 F# C#7 G#m F#5 G#m G#
  I: "[d#4@2 ~@4 c#4@2 ~@8 c#4@3 ~@3 b3 ~@6 c#4 ~ b3, [c#3,e3,g#3]@8 a#3@8 e3@3 b3 [g#2,c#4] d#4@2 b3 c#2@4 e3@2 c#4@2, b3@4 c#2@10 c#4 b3 [c#3,g#3]@16, ~ e4@15, ~@3 d#4@5 [f#2,c#4]@2 b3 c#4 [f#2,f#3]@20]/2", // C#m C#5 F#5 F#
  J: "[c#4@3 ~@37 g#3@3 ~@3 g#3 ~@35 d#4!5 ~@2 d#4@5 ~@2 c#4@2 ~@2 d#4@3 ~@8 g#2, g#3@10 [b2,b3] e3@9 [b3,d#4] f#4 d#4 a#2@13 [b3,d#4] f#4 e4@6 g#3 f#3@2 g#3@5 [b3,d#4] f#4 d#4 a#2@9 [e2,e4] f#4 g#4@4 e4@10 [g#2,d#3]@8 f4@6 d#4 f4@8 d#4 [g#2,d#3]@6 f#2@2, e2@5 d#4@7 d#3@19 d#2@9 c#4@3 f#3 c#2@12 [b2,b3,d#4]@4 b1@8 [e2,b3]@3 d#4 [e3,g#3]@24 c#3@16, ~@3 b3 b2@2 b3@2 e2@4 b3 c#3@10 c#4 [b2,f#3,b3,d#4]@4 b1@10 g#3 [b2,d#4] [c#3,e3]@15 c#4 f#3@10 e4 b4@3 g#3 b2@16 d#4 [a#2,f3]@24, ~@4 c#4@8 g#3@2 b2 a#2 [g#2,b3,d#4,g#4] b4 g#4 f#4 g#2@12 [e2,e4] f#4 [e4,g#4] b4 e2@12 [g#2,b3,d#4,g#4] b4 g#4 f#4 g#2@11 d#2@5 d#4 f#4@3 [c#3,c#4]@4 c#2@20 f#2@2 c#4@14]/7", // B E G#5 B E5 E B C#m …
  K: "[~ d#4!5 ~@8 c#4 ~@3 c#4!5 c#4@2 ~@2 d#4@2 d#4!2 [g#2,d#4] d#4!2 d#4@2 d#4 d#4@3 ~ d#4@4 d#4 ~@2 c#4@2 c#4@2 c#4 ~@10 g#2 ~@2 d#4!3 ~@6 c#4 c#4@3 ~@7 d#4@2 ~@8 d#4 d#4@3 d#4@2 d#4@2 ~@2 c#4@2 c#4@2 c#4@2, [g#2,d#3]@15 f#2@5 [a#2,f3]@12 [g#2,d#3]@8 f#2 c#4@3 d#4 c#4 b3 c#4@6 ~@3, ~@6 d#4@4 d#4@6 f#2@9 c#4@15 f4@6 d#4@2 c#3@24 [a#2,f3]@24 f#2@8 [f#2,a#3,d#4]@8, ~@8 [a#2,f3,f4]@24 [g#2,d#3]@16 f#2@5 c#4@16 d#4@2 f4@25 b3@16, ~@15 c#4 c#3@31 f4@8 d#4 [g#2,d#3]@6 f#2@11 d#4@6 c#4 c#3@32]/7", // G#5 A#5 G#5 A#5 D#m A#5 G#5
  L: "[~@16 f#4 f#4@3 f#4@2 f#4@2 ~@4 d#4@2 ~@4 d#4@2 ~ c#4@2 ~@9 d#4@2 d#4@2 ~@5 c#4@3 c#4!2 ~@18 b3@4 ~@8 d#4@2 d#4@2, g#3@7 f#2@2 g#4@15 b3@8 e4@4 d#4@3 c#4 [f#2,a#3]@4 b3@2 c#4@2 b3@8 a#3@8 [g#2,g#3] c#4@15 [e2,d#3,g#3]@4 b3@4 e2@4 b3@4, c#4@6 d#4@2 e2@3 b4@20 [f#2,d#4] [e2,g#3]@24 [f#2,d#4]@6 c#4 b3 d#4@12 [d#3,g#3]@2 a#3@18, g#2@3 g#2@2 a#4@7 g#2 e4@2 g#2@11 d#4 e4@11 f#2@10, ~@2 b3@6 c#4@4 g#3 b3 d#4 g#3 [f#2,a#3]@8 f#4@24 b2@19 b3@5 g#2@24]/6", // F# G# Emaj7 D#m E D#m G#5 F#
  M: "[~@8 b3@4 ~@9 b3@2 ~ d#4@2 ~@4 c#4@2 ~@4 f#2@3 ~@5 d#4@3 ~ g#2@4 g#2@3 d#4 d#4@2 ~@4 c#4@2 ~@4 f#2@3 ~ c#4 ~@4 c#4 ~ [f#2,b3], b2@14 c#4@2 [g#2,b3,d#4]@2 g#3 b3 [g#2,g#3]@3 g#2@16 f#2@8 b3 d#4@7 g#2@13 f#3@3 f#2 [c#3,e3,g#3] c#4 b3 c#4 c#2@2 [c#3,c#4]@2, g#3@8 e2@19 d#4@5 [f#2,a#3,c#4]@2 g#3 a#3@21 b3@3 d#4@21, e2@6 b3 e3@5 b3@2 f#2@10 [c#3,e3,b3]@4 c#2@8 f#3@20 [c#3,e3,g#3]@2 e4@22, b3@3 f#3@21 g#3@2 e4@14 [c#3,e3,g#3,b3]@2 c#4@2 c#2@3 f#4@13 c#2@4 [f#2,a#3,c#4]@2 g#3 a#3@13]/5", // B5 G#m G# C#m C# F# C#m7 C#m …
  N: "[~@4 g#2@2 ~ d#4 d#4@2 ~@4 c#4@2 ~@4 f#2@3 ~@14 b3@2 d#4 d#4@2 ~@4 c#4@2 ~@8 c#4@3 ~@3 b3 ~@6 c#4 ~@2 c#4@3 ~@3 b3@2, a#3@8 g#3@2 e4@18 [c#2,b3,d#4]@2 f#4@18 [f#2,c#4]@2 b3 c#4 [f#2,f#3]@8 c#4 d#4@2 b3 c#2@4 e3@2 c#4 b3 [e2,g#3]@3 b3 [b2,c#4] d#4@3, [g#2,d#4]@3 [b3,d#4]@4 g#2@13 f#3@20 b3@2 e4@14 [e3,g#3]@3 b3 g#2@20, ~@2 c#4@6 [c#3,e3,b3]@3 d#4 c#2@4 [f#2,a#3,c#4]@2 g#3 a#3@13 [g#2,b3,d#4]@2 g#3 b3 [g#2,g#3]@3 g#2@5 c#2@10 c#4 b3 c#3@24, ~@6 d#3@17 f#2 [c#3,e3,g#3,b3]@2 c#4@4 c#3 f#2@9 [c#3,e3,g#3]@3 d#4@5 a#3@32]/5", // G#m F#5 F# E Bsus2 G#5 B E …
  O: "[~@32 g#3@3 ~@3 g#3 ~@55 e4@2, e2@4 b3 c#3@7 [b3,d#4] f#4 d#4 a#2@13 [b3,d#4] f#4 e4@6 g#3 f#3@2 g#3@5 [b3,d#4] f#4 d#4 a#2@9 [e2,e4] f#4 g#4@4 [g#3,e4] [b2,d#4] [c#3,e3]@20 [a#2,b3]@2 c#4@2 [b2,b3,d#4]@2 e4@2 [b3,d#4]@4, ~@2 b2@2 g#3@2 b2 a#2 [g#2,b3,d#4,g#4] b4 g#4 f#4 g#2@12 [e2,e4] f#4 [e4,g#4] b4 e2@12 [g#2,b3,d#4,g#4] b4 g#4 f#4 g#2@11 d#2@5 [b3,d#4] f#4@15 b3@4 g#2@16, ~@2 b3@2 d#3@19 d#2@9 c#4@3 f#3 c#2@12 [b2,b3,d#4]@4 b1@8 e2@12 [g#2,g#3,b3]@2 c#4@2 g#3@20, ~@3 e3@12 c#4 [b2,f#3,b3,d#4]@4 b1@10 g#3 [b2,d#4] [c#3,e3]@15 c#4 f#3@10 e4 b4@5 [g#3,c#4]@4 c#2@28]/6", // B E C#m B C#m Bmaj7 B G#m …
  P: "[~@15 e4, [b2,d#4]@6 b3@2 g#2@2 [a#2,b3] c#4 [b2,b3,d#4] e4 [b3,d#4]@2, b3@2 c#4@2 [g#2,g#3,b3] c#4 g#3@10, ~ f#4@15, ~ f#2@7]/2", // B Bmaj7 B G#m
  Q: "[~@7 [b3,d#4], [b2,d#4]@6 [g#3,b3]@2 g#2 g#3 a#2@2 [b2,b3,d#4] e4@3, b3@2 c#4@2 [g#2,g#3,b3] c#4@11, ~ f#4@15, ~ [f#2,a#3]@7]/2", // B G#m B G#m F#
  R: "[~@8 b4@3 b4 ~@28 d#4 d#4@3 d#4@2 d#4@2 ~@2 c#4@2 c#4@2 c#4@2 ~@2 b3@4 ~@6 g#4@2 ~@2 f#4 f#4@3 f#4@2 f#4@2 f#4@2 ~@2 d#4@2 ~@4 d#4@2 ~ c#4@2 ~@9 d#4@2 d#4@2 ~@2 e4@2, d#4@8 g#2@3 a#4 [g#4,b4] a#4 g#4@2 g#2@10 b4@10 a#4@20 g#2@6 b3 f#2 e2@6 e4 g#4@16 [f#2,d#4] [e2,g#3]@12 b3@2 c#4@2 [b2,b3]@4 d#4@4, b2@2 a#4@2 d#5@6 c#4@3 d#4 g#4 [a#3,f#4]@5 b1@11 d#2@5 f#2@4 b3@3 g#2@13, b4@4 f#2@9 c#4 b3@6 b4@2 g#4@2 b2@10 a#4 c#5@13 f#2@8 [g#3,c#4]@16 a#3@16 e4@4 d#4@3 c#4 f#2@16, ~@4 c#5@16 a#2@12 f#2 g#4@7 b3@8 d#4@18 g#4 b4@13 g#2@2 f#4@30]/7", // G#m D#m E B D#m C#5
  S: "[~@4 c#5!2 ~@10 d#4@4 b4!2 ~@14 b3@2 b3@2 ~@8 b3@4 ~@9 b3@2 g#2, a#3@8 [g#2,d#4] c#5@2 b4@5 g#2@16 [f2,g#4]@16 e2@4 b3@2 [f#2,c#4]@2 [g#2,b3,d#4]@2 g#3 b3 [g#2,g#3]@4, f#2@6 c#5 b4 d#5@16 [f2,d#4] g#4@2 b4@19 b3 e3@17, d#4@2 f#4@8 [d#4,g#4] b4 c#5@6 g#3@2 b2@12, ~ c#4@19 f#2@12 d#4@8 [e2,g#3,b3]@3 e3 f#3@20]/4", // G#5 Fm F#5 G#m G# F7 G#5 E
  T: "[d#4@2 ~@4 c#4@2 ~@4 f#2@3 ~@5 d#4@3 ~ g#2@4 g#2@3 d#4 d#4@2 ~@4 c#4@2 ~@4 f#2@3 ~ c#4 ~@4 c#4 ~@6 g#2@2 ~ d#4 d#4@2 ~@4 c#4@2 ~@4 f#2@3 ~@14 b3@2 [g#2,d#4], [c#3,e3,b3]@8 [f#2,a#3,c#4]@2 g#3 a#3@12 b3 d#4@7 g#2@13 f#3@20 g#3@2 e4@14 [c#3,g#3,b3]@2 c#4@2 [c#2,b3,d#4]@2 [c#3,f#4] f#2 [g#2,b3,d#4]@2 g#3 b3 [g#2,g#3]@4, g#3@4 c#2@8 f#3@20 [c#3,e3,g#3]@2 e4@21 b3 a#3@7 g#2@13 f#3@20, ~@2 e4@14 [c#3,e3,g#3,b3]@2 c#4@2 c#2@3 f#4@13 c#2@4 [f#2,a#3,c#4]@2 g#3 a#3@4 f#2 [e3,g#3]@6 [c#3,c#4] f#2@9 [c#3,e3,b3]@3 d#4 c#2@4 [f#2,a#3,c#4]@2 g#3 a#3@21, ~@3 d#4@12 f#2@17 b3@3 d#4@13 c#3 c#4 b3 c#4 c#2@4 [g#2,d#4]@2 c#4 [b3,d#4]@3 d#3@17 f#2 e3@16]/6", // G#5 C#m7 F# C#7 G#m F#5 G#m G# …
  U: "[c#4@3 ~@37 g#3@3 ~@3 g#3 ~@25 [e4,g#4,d#5]@4 [g#4,d#5]@4 g#2@4 ~@4 [f#4,b4,d#5]@2 ~@4 c#5@2 [e2,e4]@4 ~@4 [e4,g#4,d#5]@4 [e2,e4,g#4,d#5]@4, g#3@10 [b2,b3] e3@9 [b3,d#4] f#4 d#4 a#2@13 [b3,d#4] f#4 e4@6 g#3 f#3@2 g#3@9 [b2,b3,d#4]@4 b1@8 d#4 f#4 e4 [b2,d#4] c#3@16 b2@2 e5 [f#4,d#5] b1@2 f#4@2 [g#4,c#5]@4 [e2,e4] f#4 g#4 [b2,d#4] c#3@8, e2@5 d#4@7 d#3@19 d#2@9 c#4@3 f#3 c#2@12 f#3@12 e2@8 e4@4 d#4@7 a#2@25, ~@3 b3 b2@2 b3@2 e2@4 b3 c#3@10 c#4 [b2,f#3,b3,d#4]@4 b1@10 g#3 [b2,d#4] [c#3,e3]@12 [b3,d#4] f#4 d#4 [a#2,c#4]@9 [e2,e4] f#4 [e4,g#4] b4 b3@12 [g#4,b4,d#5]@4 g#2@28, ~@4 c#4@8 g#3@2 b2 a#2 [g#2,b3,d#4,g#4] b4 g#4 f#4 g#2@12 [e2,e4] f#4 [e4,g#4] b4 e2@12 [g#2,b3,d#4,g#4] b4 g#4 f#4 g#2@11 d#2@13 c#2@15 b4@21]/7", // Emaj7 G#5 B E Emaj7 B D#m C#5 …
  V: "[g#2@2 ~@2 [f#4,b4,d#5] ~@2 c#5 [e2,e4]@2 ~@2 [e4,g#4,d#5]@2 [g#4,d#5]@2 g#2@2 ~@2 [f#4,b4,d#5] ~@2 c#5 [e2,e4]@2 ~@2 [e4,g#4,d#5]@2 [g#4,d#5]@2 g#2@2 ~@2 [f#4,b4,d#5] ~@2 c#5 [e2,e4]@2 ~@2 [e4,g#4,d#5]@2 [g#4,d#5]@2 g#2@2 ~@2 [f#4,b4,d#5] ~@2 c#5 [e2,e4]@2 ~@2 [e4,g#4,d#5]@2 [e2,e4,g#4,d#5]@2, d#4@10 e5@18 [e2,e4]@4 [b4,d#5]@4 g#2@7 [f#4,d#5] b1@20 d#4@8 b2@2 e5@18 [e2,e4]@4 [b4,d#5]@4 g#2@7 [f#4,d#5] b1@2 f#4@2 [g#4,c#5]@4 [e2,e4] f#4 g#4 [b2,d#4] c#3@8, g#4@8 b2@3 [f#4,b4,d#5] b1@20 d#4@8 b2@2 e5@18 [e2,e4]@4 [b4,d#5]@4 g#2@7 [f#4,d#5] b1@20 d#4@8 b2@2 e5@22, [b4,d#5]@7 a#2@9 g#4@4 [e2,e4] f#4 g#4 [b2,d#4] c#3@19 b4@3 f#4@2 c#5@16 g#4@7 a#2@9 g#4@4 [e2,e4] f#4 g#4 [b2,d#4] c#3@19 b4@21, ~@4 g#2@10 f#4@2 c#5@16 g#4@7 a#2@9 g#4@4 [e2,e4] f#4 g#4 [b2,d#4] c#3@19 b4@3 f#4@2 c#5@16 g#4@7 a#2@25]/8", // B E Emaj7 G#5 B E Emaj7 G#5 …
  W: "[g#2@2 ~@2 [f#4,b4,d#5] ~@2 c#5 [e2,e4]@2 ~@2 [e4,g#4,d#5]@2 [g#4,d#5]@2 g#2@2 ~@2 [f#4,b4,d#5] ~@2 c#5 [e2,e4]@2 ~@2 [e4,g#4,d#5]@2 [g#4,d#5]@2 g#2@2 ~@2 [f#4,b4,d#5] ~@2 c#5 [e2,e4]@2 ~@2 [e4,g#4,d#5]@2 [g#4,d#5]@2 g#2@2 ~@2 [f#4,b4,d#5] ~@2 c#5 [e2,e4]@2 ~@2 [c#3,e4,g#4,d#5]@2 [e2,e4,g#4,d#5]@2, d#4@10 e5@18 [e2,e4]@4 [b4,d#5]@4 g#2@7 [f#4,d#5] b1@20 d#4@8 b2@2 e5@18 [e2,e4]@4 [b4,d#5]@4 g#2@7 [f#4,d#5] b1@2 f#4@2 [g#4,c#5]@4 [e2,e4] f#4 g#4 [b2,d#4]@5 ~@4, g#4@8 b2@3 [f#4,b4,d#5] b1@20 d#4@8 b2@2 e5@18 [e2,e4]@4 [b4,d#5]@4 g#2@7 [f#4,d#5] b1@20 d#4@8 b2@2 e5@18 ~@4, [b4,d#5]@7 a#2@9 g#4@4 [e2,e4] f#4 g#4 [b2,d#4] c#3@19 b4@3 f#4@2 c#5@16 g#4@7 a#2@9 g#4@4 [e2,e4] f#4 g#4 [b2,d#4] c#3@19 b4@17 ~@4, ~@4 g#2@10 f#4@2 c#5@16 g#4@7 a#2@9 g#4@4 [e2,e4] f#4 g#4 [b2,d#4] c#3@19 b4@3 f#4@2 c#5@16 g#4@7 a#2@21 ~@4]/8", // B E Emaj7 G#5 B E Emaj7 G#5 …
})).s("gm_piano").gain(0.64)

stack(piano)

More by Tori Amos