Strudelify

Changes

Black Sabbath

KeyD majorTempo85 bpm
0:00/0:00
// Changes — Black Sabbath
// 85 bpm, 3/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 3 piano (copy of ch 1 piano)
// note: Full arrangement: all 110 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(85/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// 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 B C B D B E F C B C B C B E F D B G H I J K H I J L M N O P Q R B C B C B C B E F D B C B C B E F D B G H I J K
  H I J L M N O P Q E F D B C B C B C B E F C B D B C B E F C B G H I J K H I J L M N O S T U V W X W Y
>`.pickRestart({
  A: "a3@2 d5@2 f#5@2 a5@2 d3@7 ~ a3@6 [e5,g5,b5]@2", B: "[d4,e5,g5,b5]@3 [e5,g5,b5] [d5,f#5,a5]@7 ~",
  C: "a3@2 d5@2 f#5@2 a5@2 d3@7 ~ a3@7 ~", D: "e3@2 e4@2 g4@2 b4@2 d3@7 ~ a3@7 ~",
  E: "a3@2 d5@2 f#5@2 a5@2 e3@7 ~ b3@7 ~", F: "[e4,g4,b4,e5]@7 ~ [e4,g4,b4,e5]@14 ~@2",
  G: "a3 d5 f#5 a5 g3@2 g4@2 b4@2 d5@2", H: "g5@2 d5 b4 f#3@2 f#4@2 a4@2 c#5@2", I: "f#4 a4 e3 e4 g4 b4",
  J: "[b3,e5] b4 e3 e4 [b3,g4] b4", K: "[b3,e5] b4 g3 g4 b4 d5", L: "[b3,e5] b4 a3 a4 c#5 e5",
  M: "[e4,e5]@2 c#5 a4 g3@2 g4@2 b4@2 d5@2", N: "[d4,b4] g4 b3 f#4 a4 d5", O: "f#5@2 d5@2 [b3,f#4,b4,d5]@7 ~",
  P: "[a3,e5]@2 a4@2 c#5@2 e5@2 b3@2 f#4@2 b4@2 d5@2 [b3,f#4,b4,d5,f#5]@7 ~", // A5 Bm
  Q: "[b3,f#4,b4,d5,f#5]@7 ~ [b3,f#4,b4,d5,f#5]@14 ~@2", R: "[b3,f#4]@2 b4@2 d5@2 f#5@2 d3@7 ~ a3@7 ~",
  S: "a3@2 a4@2 c#5@2 e5@2 [e4,e5]@2 c#5 a4", T: "g3 g4 b4 d5 [d4,b4] g4", U: "b3 f#4 a4 d5 f#5 d5",
  V: "[b3,f#4,b4,d5]@7 ~ [a3,e5] a4 c#5 e5", W: "b3@2 f#4@2 b4@2 d5@2 [b3,f#4,b4,d5,f#5]@7 ~ [b3,f#4,b4,d5,f#5]@7 ~",
  X: "[b3,f#4,b4,d5,f#5]@7 ~ [b3,f#4] b4 d5 f#5", Y: "[b3,f#4,b4,d5,f#5]@7 ~@5",
})).s("gm_piano").gain(0.72).pan(0)

stack(piano)

More by Black Sabbath