Strudelify

I'm Alive

The Hollies

KeyD majorTempo69 bpm
0:00/0:00
// I'm Alive — The Hollies
// 69 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 40 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(69/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.

// other · pizzicato strings · "Levin1"
const pizzicato_strings = note("<~@4 A B C D E B F G ~@3 H I J K L M B N O ~@16>".pickRestart({
  A: "~@10 [g1,g2] ~ [f#1,f#2] ~ [e1,e2] ~", B: "[g1,g2]@5 ~@25 [a1,a2]@3 ~@3 [c2,c3]@3 ~@3 [c#2,c#3]@2 ~@4",
  C: "[d2,d3]@4 ~@20 [e2,e3]@5 ~@13 [b1,b2]@3 ~@3", D: "[d2,d3]@2 ~@19 [d2,d3]@3",
  E: "[e2,e3]@2 ~@8 [g1,g2] ~ [f#1,f#2] ~ [e1,e2] ~", F: "[d2,d3]@4 ~@20 [e2,e3]@5 ~@7 [b1,b2]@5 ~@7",
  G: "[d2,d3]@2 ~@16 [d2,d3]@3 ~@3", H: "~@36 [f#1,f#2]@5 ~@7", I: "[g1,g2]@6 ~@18 [a1,a2]@7 ~@11 [b1,b2]@2 ~@4",
  J: "[c2,c3]@15 ~@9 [d2,d3]@5 ~@7 [f#1,f#2]@5 ~@7", K: "[g1,g2]@9 ~@3 [a1,a2]@7 ~@5", L: "[c2,c3]@6 ~@8 [b1,b2] ~",
  M: "[e2,e3]@11 ~@19 [g1,g2]@3 ~@3 [f#1,f#2]@3 ~@3 [e1,e2]@3 ~@3", N: "[d2,d3]@4 ~@20 [e2,e3]@5 ~@7 [b1,b2]@3 ~@9",
  O: "[d2,d3] ~@11", // D
})).s("gm_pizzicato_strings").gain(0.24)

// chords · piano · "Piano(Wakeman1)"
const piano = note("<A B@3 C D E F C D E F D G D G D G D H C D E F C D E I J K@3 L M@7>".pickRestart({
  A: "~@15 a6@3 d6@3 b5@3 g6@2 d6@3 b5@3 f#6@3 d6@2 b5@3 e6@3 d6@3 b5@2, ~@15 g4@8 ~ d5@8 f#5@8 e5@8",
  B: "[f#6@3 b5@3 g6@2 ~ b5@2 ~ a6@2 b5@3 d6@3 g6@3 d6@2 d6@3 f#6@3 d6@3 d6@2 e6@6 d6@3 ~@5 d6 ~ e6 ~ g6 ~ a6@2 b5@3 d6@3 g6@3 b5@2 d6@3 f#6@3 b5@3 d6@2 ~@3 d6@3 b5@3 f#6@3 b5@2 g6@3 b5@2 ~ a6@3 b5@2 d6@3 b6@3 b5@3 d6@2 [d5,g5,a6]@28, f#5@5 ~ g5@5 g4@8 ~ d5@8 e5@17 e6@6 ~@2 f#6@2 ~@9 d5@8 f#5@8 e6@3 ~@61, ~@47 d5@8 ~ g4@9 ~@16 e5@8 f#5@5 g5@5 ~ g4@10 ~ d5@5 ~@28]/3", // Dsus4
  C: "[b3,e4,f#4,g4] [c4,d4,e4,g4]", D: "[b3,d4,g4,a4] [c4,e4,a4,b4]", E: "[d4,e4,f#4,a4] [e4,g4,b4]",
  F: "[d4,f#4,a4]@12 [e4,g4,c5] [f#4,a4,d5]@3", G: "[c4,d4,e4,g4] [d4,e4,f#4,a4]", H: "[c4,e4,g4]",
  I: "[d4,f#4,a4] [d4,g4,b4]", J: "[e4,a4,b4]@8 ~@4 b4 a4 c#5 a4, ~ [c#4,f#4]",
  K: "[b4@3 a4@3 c#5@3 b4@3 a4@3 b4@3 c#5@3 a4@2 ~@3 a4@3 b4@3 c#5@3 d5@3 e5@3 f#5@2 g5@3 a5@3 e5@3 f#5@3 g5@3 a5@2 b5@3 c#6@3 d6@3 e6@3 f#6@2 g6@3 a6@3 g6@3 f#6@2 e6@3 d6@3 a6@3 g6@3 f#6@2 e6@3 d6@3 a5@3 d6@3 b5@2 a6@3 g6@3 f#6@3 d6@3 a5@2 d6@3 b5@3 d6@3 a6@3 b5@2 d6@3, d4@12 e4@11 b4@3 ~@20 a4@11 ~ b4@5 c#5@6 d5@5 e5@5 ~ f#5@5 g5@6 d5@43 ~@10, ~@24 f#4@11 g4@11 ~@98]/3",
  L: "g6@3 b5@3 d6@3 f#6@2 e6@3 d6@3 a5@3 d6@3 f#6@2 a6@3 d6@3 d6 e6 ~ f#6 g6 ~ a6@2 b5@3 d6@3 g6@3",
  M: "[f#6@3 d6@2 a5@3 d6@3 e6@3 f#6@3 d6@2 a5@3 d6@3 e6@3 f#6@3 g6@2 a6@43 ~@2 a6@2 b5@3 d6@3 g6@3 b5@2 d6@3 f#6@3 a5@3 d6@3 e6@2 d6@3 a5@3 d6@3 e6@2 f#6@3 d6@3 a6@3 b5@2 d6@3 g6@3 f#6@3 d6@2 a5@3 b6@3 a5@3 a6@2 a5@3 d6@3 f#6@3 d6@2 e6@3 f#6@3 a6@3 b5@3 d6@2 g6@3 d6@3 a5@2 ~ f#6@2 d6@3 a5@3 e6@3 d6@2 a5@3 d6@3 e6@3 f#6@2 d6@3 a6@3 b5@3 d6@2 g6@3 b5@3 ~ f#6@2 e6@3 d6@5 a5@3 d6@3 e6@2 f#6@3 d6@3 g6@3 d6@2 [g4,a6]@52 ~@30, ~@78 g4@8 d5@14 ~@5 d5@5 ~ e5@6 ~@5 g4@8 ~@36 g4@9 ~@35 g4@9 ~@5 d6@3 ~@109, ~@89 f#5@17 ~@10 f#5@5 ~@9 d5@19 d5@8 ~ f#5@8 ~@8 d5@8 g5@14 e5@13 ~@9 d5@17 e5@11 g5@8 ~@82]/7", // Gsus2
})).s("gm_piano").gain(0.24)

// other · violin · "Violin(W2)"
const violin = note("<~@4 A B C D E F G H ~@12 E F G H ~@12>".pickRestart({
  A: "~@6 b5@6 a5@6 g5@5 ~@7 g5@6 f#5@6 g5@6", B: "d5@3 b5@3 c6@3 b5@2 ~ b5@3 a5@2 ~ a5@3 g5@2 ~",
  C: "~@3 f#5@3 a5@3 g5@2 ~ g5@3 f#5@2 ~ f#5@3 e5@3", D: "~@6 a5@6 g5@6 f#5@4 ~@2 f#5@12 g5@3 a5@9",
  E: "~@6 b5@6 a5@6 g5@5 ~@7 c6@6 b5@6 a5@6", F: "d6@3 g5@3 f#5@3 e5@2 ~ e5@3 b5@3 c6@3 d6@3",
  G: "d6@6 c6@3 b5@2 ~ b5@3 a5@2 ~ a5@3 g5@2 ~", H: "a5@47 ~",
})).s("gm_violin").gain(0.22)

// chords · string ensemble 1 · "Strings(W3)"
const string_ensemble_1 = note("<A@4 B C D E B C D E F G H I@2 J K L M N O P B C D Q R S@7 T@4>".pickRestart({
  A: "[~@24 g6@7 f#6@9 e6@8 f#6@6 g6@6 ~@8 g6@8 f#6@8 e6@8 ~@6 g6@5 g6@17 f#6@9 e6@8 f#6@5 g6@6 ~@8 b6@8 g6@28, ~@5 [a6,d7]@59, ~@93 d6@11 ~@88]/4", // D5
  B: "[e5,g5] [c5,e5]", C: "[d5,g5] [e5,g5]", D: "[d5,f#5] [e5,g5]", E: "[d5,f#5]@12 [e5,g5] [f#5,a5]@3",
  F: "b5@2 b5 a5", G: "g5 a5 a5@2", H: "b5@2 c6 b5", I: "[c6@12 d6@12 d6@23 d6@13 g6@12 d6@12 c6@12]/2",
  J: "b5@2 a5 f#5", K: "g5 b5 a5 g5", L: "g5", M: "~@6 b4@6 a4@6 g4@5 ~@7 g4@6 f#4@6 g4@6, [e5,g5] [c5,e5]",
  N: "d4@3 b4@3 c5@3 b4@2 ~ b4@3 a4@2 ~ a4@3 g4@2 ~, [d5,g5] [e5,g5]", // G5 Em
  O: "~@3 f#4@3 a4@3 g4@2 ~ g4@3 f#4@2 ~ f#4@3 g4@2 ~, [d5,f#5] [e5,g5]", // D Em
  P: "~@6 a4@6 g4@6 f#4@4 ~@2 f#4@12 [e4,e5,g5]@3 [d4,f#5,a5]@9, [d5,f#5]@3 ~", Q: "[d5,f#5]@2 [g5,b5] g5, ~ d5",
  R: "a5 b5",
  S: "[~@23 e6@23 [d6,a6]@45 g6@53 ~@9 f#6@8 e6@8 f#6@6 g6@6 g6@8 ~@9 f#6@8 e6@8 [g5,f#6]@5 ~ [g5,g6]@5 [g5,g6,a6]@43 ~@10 g6@8 f#6@11 d6@5 ~ e6@5 f#6@6 ~@8 g6@11 b6@3, d6@46 ~@45 a6@89 ~ a6@44 ~@45 [a6,d7]@66, ~@144 g6@31 ~@14 g6@30 ~@117]/7", // D5 Gmaj7 G Gsus2 D5
  T: "[~@8 d6@8 e6@5 ~@9 g6@8 ~ f#6@8 e6@8 d6@5 f#6@6 ~@8 g6@8 ~ f#6@11 d6@5 f#6@5 ~ g6@5 g6@52 ~@30, ~@3 a6@19 d7@140 ~@30, ~@11 a6@22 a6@48 ~@15]/4",
})).s("gm_string_ensemble_1").gain(0.12)

// other · acoustic guitar nylon · "Howe"
const acoustic_guitar_nylon = note("<~@4 A B C D E B C F G H I J K L M N A B C D E B C O ~@2 P Q R@3 ~@5>".pickRestart({
  A: "~@6 e3@6 g3@6 b3@7 ~@23", B: "~@6 g3@5 ~ b3@5 ~ d4@7 ~@23", C: "~@3 d3@3 f#3@3 a3@4 ~@2 e3@3 g3@3 b3@3",
  D: "~@6 d3@6 f#3@6 a3@6 d4@17 ~@7", E: "~@6 e4@6 g3@6 b3@7 ~@23",
  F: "~@6 d3@6 f#3@6 g3@3 f#3@3 a3@3 f#3@9 [f#4,a4]@10 ~@2", // F#m
  G: "g4@2 ~ d4@3 g4@2 ~ d4@3 g4@3 d4@3 g4@2 ~ d4@2 ~ g4@2 ~ e4@3 g4@3 e4@3 g4@2 ~ e4@3 g4@3 e4@2 ~",
  H: "g4@2 ~ e4@3 g4@2 ~ e4@2 ~ g4@3 e4@2 ~ g4@2 ~ e4@2 ~ f#4@2 ~ d4@2 ~ f#4@2 ~ d4@3 f#4@2 ~ d4@3 f#4@6",
  I: "g4@9 d4@3 g4@9 ~@3 g4@3 e4@9 g4@8 ~@4", J: "[e4,g4]@10 ~@2 g4@11 ~ [f#4,a4]@19 ~@5, ~@11 e4@12 ~@25",
  K: "[d4,g4]@21 ~@3 c4@3 e4@8 ~ g4@12", L: "c4@3 g4@6 d4@3 e4@11 ~ d4@9 d4@3 f#4@6 a4@6",
  M: "[d4,g4,b4]@23 ~ [e4,a4,c5]@24", N: "[g4,e5]@14 ~@4 [f#4,d5] ~@5 [e4,c5]@9 [d4,b4]@3 [c4,a4]@12",
  O: "~ d3 f#3@2 g3@4", P: "~@43 [d5,d6]@5", Q: "~@4 [g5,g6]@2 ~@6 [g5,g6] ~@4 [d5,d6]@22 ~ a5@6 g4@2, ~@40 g4@3 ~@5",
  R: "[~ g4@2 ~@3 g4@2 ~ f#5@6 ~@3 e5@17 ~@2 [g3,b4]@5 ~@9 d5 [d#5,e5,f5] g5@4 ~@2 d5@21 ~ d5@43 ~@20, g5@6 ~@3 g4@16 ~@20 [g3,b4]@12 ~@87, ~@53 f#5 ~@90]/3", // G
})).s("gm_acoustic_guitar_nylon").gain(0.3)

// other · trumpet · "Trumpet(W4)"
const trumpet = note("<~@16 A B C ~@5 D E F G ~@12>".pickRestart({
  A: "~@24 d5@2 ~ d5@2 ~ d5@2 ~ d5@2 ~ d5@2 ~ e5@2 ~ f#5@2 ~ g5@2 ~",
  B: "g5 ~@2 g5@2 ~ g5@2 ~ g5 ~@2 g5@2 ~ a5@2 ~ b5@2 ~ c6@2 ~ a5@2 ~ a5@2 ~ a5@2 ~ a5 ~@2 a5@2 ~ b5@2 ~ a5@2 ~ g5@2 ~",
  C: "g5@7 ~@5", D: "~@24 d5@2 ~ d5 ~@2 d5 ~@2 d5 ~@2 d5@2 ~ e5@2 ~ f#5 ~@2 d5@2 ~",
  E: "g5 ~@2 g5 ~@2 g5 ~@2 g5 ~@2 g5@2 ~ a5 ~@2 b5@2 ~ c6@2 ~ e5@2 ~ e5@2 ~ f#5@2 ~ g5@2 ~ a5@2 ~ b5@2 ~ c6@2 ~ g5@2 ~",
  F: "f#5 d5 e5@2", G: "d5@3 ~",
})).s("gm_trumpet").gain(0.28)

// other · oboe · "Oboe(W5)"
const oboe = note("<~@12 A B C D E ~@10 F G ~@11>".pickRestart({
  A: "g5@2 f#5 e5", B: "d5@11 ~ e5@12 f#5@23 ~", C: "d5@12 e5@6 d5@6 d5@6 c5@5 ~ c5@6 e5@5 ~", D: "e5 d5!2 e5 d5@4",
  E: "d5@3 ~", F: "~@3 d5", G: "e5 ~",
})).s("gm_oboe").gain(0.24)

// bass · contrabass · "Levin2"
const bass = note("<~@12 A B C D C B E F ~@3 G H A I J K L@3 ~@8>".pickRestart({
  A: "g2 a2", B: "c3@2 d3 f#2", C: "g2@23 ~ a2@24", D: "e2@2 d2 f#2", E: "g2@24 a2@23 ~", F: "c3", G: "~@7 d3",
  H: "e3@23 ~ c3@12 d3@12", I: "[d2,d3]@24 [e2,e3]@11 ~ b2@12, ~@35 b1@13", J: "[f#2,f#3] [d2,d3] [g2,g3]@2",
  K: "[b1,b2] [c#2,c#3]", // B C#
  L: "[[d2,d3]@12 [e2,e3]@11 ~ f#2@11 [g2,g3]@10 ~ a3@11 ~ b3@10 ~ c#4@11 [d3,d4]@11 [g2,g3]@45 ~@8, ~@23 f#3@12 ~@10 a2@11 ~ b2@11 c#3@11 ~@65]/3", // D E G D G
})).s("gm_contrabass").gain(0.35)

stack(pizzicato_strings, piano, violin, string_ensemble_1, acoustic_guitar_nylon, trumpet, oboe, bass)

More by The Hollies