Strudelify

Finish What Ya Started

Van Halen

KeyA majorTempo120 bpm
0:00/0:00
// Finish What Ya Started — Van Halen
// 120 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 115 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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.

// other · acoustic guitar steel · "Steel-Str. Gt"
const acoustic_guitar_steel = note(`<
  A B@2 C D B@2 C D B@2 C D B@2 C D B@2 C D E@2 F@2 E@2 F@2 G@2 F@2 G@2 H I E@2 F@2 E@2 F J E@2 F@2 E@2 F@2 G@2 F@2 G@2
  H I E@2 F@2 E@2 F K L M L N L M L N G O P@2 Q@2 P@2 Q@2 E@2 F@2 E@2 F@2 E@2 F@2 E@2 F@2 E@2 F@2 E@2 F@2 E@2 F@2
>`.pickRestart({
  A: "~@4 d3 e3 g3@2 a3@2 b3@2 g3@2 e3@2", B: "[b3@10 b3@2 ~ b3@7 ~ d3 e3 g3 a3@2 b3@2 g3@2 d3@2]/2",
  C: "g3@2 a3@2 ~ a3@3 ~ a3@7", D: "a3@4 d3 e3 g3@2 a3@2 b3@2 g3@2 e3@2", E: "e2!8", F: "a1!8", G: "b1!8",
  H: "d5@10 ~@3 d5@3", I: "~ d3 e3 g3 a3@4 a3@2 ~ a#3@2 ~@3", J: "~ d3 e3 g3 a3@2 g3@2 c#4@2 g3@5 ~",
  K: "a1 a2!2 g2!2 f#2!2 e2", L: "f#1!2 ~@2", M: "g2 d3@3", N: "g2@5 d2@11", O: "b1 ~@3", P: "e2", Q: "a2",
})).s("gm_acoustic_guitar_steel").gain(0.36)

// other · acoustic guitar steel · "Steel-Str. Gt"
const acoustic_guitar_steel_2 = note(`<
  ~ A ~ B C A ~ B C A ~ B C A ~ B C A ~ B C D E F G D H I G J@2 K@2 L@2 M ~ D H N H D H O ~ D E F G D H I G J@2 K@2 L@2
  M ~ D H N H D H O P Q R S T Q R S T U V W@2 X Y W@2 X Y D H N H D H O H D H N H D H O Z D H AA H D H AA H D H AA H
>`.pickRestart({
  A: "~@5 d4 ~@2", B: "~@9 e4@7", C: "e4 ~@3", D: "d4@3 d4", E: "d4@3 ~@13", F: "b3@2 c#4@2 ~ c#4@3 ~ d#4@7",
  G: "d#4 ~@3", H: "d4 ~@3", I: "b3@2 c#4@2 ~ d#4@3 ~ d#4@7", J: "[b3@3 a3 ~@2 b3@3 a3@2 ~@5]/2",
  K: "[c#4@3 b3 ~@2 c#4@3 b3 ~@6]/2", L: "[c#4@3 c#4 ~@2 c#4@3 c#4 ~@6]/2", M: "d2@10 ~@3 d2@3",
  N: "b3@2 c#4@2 ~ c#4@3 ~ d4@7", O: "b3@2 c#4@2 ~ c#4@3 ~ d4@3 d4@4", P: "~@2 d4@3 ~ d4@10", Q: "a#3!2 ~@2",
  R: "d4@3 d4@3 ~@2", S: "c#4!2 ~@2", T: "d4@5 d4@11", U: "f#3!8", V: "f#3 ~@3", W: "[e4@10 e4@2 ~ e4@7 ~@12]/2",
  X: "b3@2 c#4@2 ~ c#4@3 ~ c#4@7", Y: "c#4 ~@3", Z: "~ d4@3 d4@4 d4@2 d4@2 d4@4", AA: "a#3@2 c#4@2 ~ c#4@3 ~ d4@7",
})).s("gm_acoustic_guitar_steel").gain(0.36)

// other · acoustic guitar steel · "Steel-Str. Gt"
const acoustic_guitar_steel_3 = note(`<
  ~@21 A B C D A ~ E D ~@4 F G H ~ A D C D A D I ~ A B C D A ~ E D ~@4 F G H ~ A D C D A D I J K L M N K L M N O P Q@2 C
  D Q@2 C D A D C D A D I D A D C D A D I R A D C D A D C D A D C D
>`.pickRestart({
  A: "e4@3 e4", B: "e4@3 ~@13", C: "~@9 e4@7", D: "e4 ~@3", E: "~@5 e4@3 ~ e4@7", F: "g#5 f#5", G: "e5@3 d#5@3 e5@2",
  H: "a4@10 ~@3 a4@3", I: "~@9 e4@3 e4@4", J: "~@2 e4@3 ~ e4@10", K: "c#4!2 ~@2", L: "g4@3 f#4@3 ~@2", M: "f#4!2 ~@2",
  N: "g4@5 f#4@11", O: "b3!8", P: "b3 ~@3", Q: "[~@10 g#4@2 ~ g#4@7 ~@12]/2", R: "~ e4@3 e4@4 e4@2 e4@2 e4@4",
})).s("gm_acoustic_guitar_steel").gain(0.36)

// other · acoustic guitar steel · "Steel-Str. Gt"
const acoustic_guitar_steel_4 = note(`<
  ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ B ~ C D E@2 F G H I J K L M N O@2 ~ P Q R@2 S T U@2 C D E@2 F G H I J K L M N
  O@2 ~ P Q R@2 S T V@2 W X@2 ~ W X@2 ~@3 Y@2 Z@2 Y@2 Z@2 P AA ~@2 S AA ~@2 P AA ~@2 S AA ~ AB@2 ~@2 AB@2 ~@2 AC AD ~@2
  AC
>`.pickRestart({
  A: "e4", B: "a4", C: "b4@2 b4!2 a4 g4!2 a4", D: "g4@2 b4@3 e4!2 f#4",
  E: "[~@4 g4@2 g4@2 g4@4 g4@2 g4 g4@2 d4@2 e4@9 ~@4]/2", F: "~ d5 d5@2 d5@2 d5@2 e5@2 e5@2 ~@4",
  G: "~ d5 d5@2 d5@2 d5@2 e5@8", H: "~@2 g4!6", I: "g4 d4@2 ~", J: "~ d#5 d#5@2 d#5@2 b4@2 d#5@8",
  K: "~ b4 d#5 b4 e5@4", L: "~@4 e4@4 a4@4 g4@2 a4 g4", M: "e4@2 ~ g#4", N: "e5 d#5", O: "[c#5@3 b4@3 c#5@6 ~@4]/2",
  P: "~ e5@3 e5@4 e5@2 d5@2 d5@2 d5@2", Q: "d5 c#5!2 c#5@3 b4@2", R: "[~@5 a5@3 a5@4 g5@2 b5@6 ~@12]/2",
  S: "~ e5!3 d5!4", T: "d5@2 c#5@2 c#5@2 c#5@6 b4@3 ~", U: "[~ a5@3 a5@2 g5@2 a5@2 g5@2 b5@12 ~@8]/2",
  V: "[~ a5@3 a5@2 g5@2 a5@2 g5@2 b5@20]/2", W: "f#2 f#2@3", X: "[~@4 e5!2 d5 f#5@3 ~@6]/2", Y: "e2", Z: "a1",
  AA: "d5 c#5!2 c#5@2 c#5 ~@2", AB: "[~@4 e5 d5!2 e5@3 ~@6]/2", AC: "~@4 e5 d5!2 e5", AD: "e5 ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.36)

// other · acoustic guitar steel · "Steel-Str. Gt"
const acoustic_guitar_steel_5 = note(`<
  ~ A ~ B@2 A ~ B@2 A ~ B@2 A ~ B@2 A ~ B@2 A B@2 ~ A ~ C@2 D E F ~@3 G ~ H I ~@2 J K L ~ A B@2 ~ A ~ C@2 D E F ~@3 G ~
  H I ~@2 J K L ~ M ~ N ~ M ~ N ~@11 H O ~@2 J O L ~ H O ~@2 J O L C A ~@3 A ~@3 A ~@3
>`.pickRestart({
  A: "e2", B: "a2", C: "a1", D: "b1@2 a1 b1", E: "b1", F: "a1@2 f#1 a1", G: "e5@9 ~@7",
  H: "~ g#5@3 g#5@4 g#5@2 f#5@2 f#5@2 f#5@2", I: "f#5 e5!2 e5@3 d5@2", J: "~ g#5!3 f#5!4",
  K: "f#5@2 e5@2 e5@2 e5@6 d#5@3 ~", L: "a1!2", M: "f#4!2 ~@2", N: "a#3!2 ~@2", O: "f#5 e5!2 e5@2 e5 ~@2",
})).s("gm_acoustic_guitar_steel").gain(0.36)

// other · acoustic guitar steel · "Steel-Str. Gt"
const acoustic_guitar_steel_6 = note(`<
  ~@27 A@2 B C ~ D E@2 F ~ G@2 H ~ I@2 ~@8 A@2 B C ~ D E@2 F ~ G@2 H ~ I@2 ~@3 J K L ~ J K L ~@10 G@2 H ~ I@2 ~@2 G@2 H
  ~ I@2 ~@14
>`.pickRestart({
  A: "[~@6 e5@2 g5@2 f#5@2 e5@2 g5@6 c#5@2 e5@4 b4 a4 g4@4]/2", B: "~@2 b4 f#4 b4@4", C: "~ a4 b4 ~ d#5@2 d#5@2",
  D: "g1", E: "c#2/2", F: "d2", G: "e2/2", H: "a1", I: "e2", J: "g2@3 d3@5", K: "f#2", L: "g2@5 d3@11",
})).s("gm_acoustic_guitar_steel").gain(0.36)

stack(
  acoustic_guitar_steel, acoustic_guitar_steel_2, acoustic_guitar_steel_3, acoustic_guitar_steel_4,
  acoustic_guitar_steel_5, acoustic_guitar_steel_6
)

More by Van Halen