Strudelify
I Was Made for Lovin' You cover art

1979 · Dynasty

I Was Made for Lovin' You

Kiss

KeyG majorTempo132 bpm
0:00/0:00
// I Was Made for Lovin' You — Kiss
// 132 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 92 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(132/4)

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

// bass · synth bass 2
const bass = note("<A@20 B@2 A@12 C@2 A@22 D E F G H I@2 J K L I J K A@3 M A@3 M A@3 M A@3 M A@3 M N>".pickRestart({
  A: "b2!16", B: "d3!16", C: "c3!16", D: "a2!10 e2!4 f#2@2", E: "~@2 f#2!7 ~ f#2!6", F: "f#2 ~ f#2!3 ~ f#2!10",
  G: "f#2!16", H: "f#2 ~@15", I: "g#1!16", J: "c2!14 g#1!2", K: "g#1!4 f#2!12", L: "g#1!7 ~ g#1!8", M: "[a2,b2]!16",
  N: "[a2,b2]@11 ~@5", // Asus2
})).s("gm_synth_bass_2").gain(0.49).pan(0)

// other · distortion guitar
const distortion_guitar = note(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B@8 A B A@3 B A@7 B A@6 C
>`.pickRestart({
  A: "b2@2 b3 ~ b2@2 b3 ~ b2@2 b3 ~@5", B: "b2 ~ b3 ~@5 b2 ~ b3 ~@5", C: "[b2,b3]@11 ~@5",
})).s("gm_distortion_guitar").gain(0.38).pan(0.9)

// chords · electric guitar muted
const electric_guitar_muted = note(`<
  ~@4 A B C D A E C F A B G H A B I J K L M N O P K L K L M N O P Q R A B G H A B I J S@2 T U V@2 W X V@2 W X V@2 Y@2 Z
  AA AB AC@2 AD AE AC@2 AD AE A B C D A B C D A B C D A B C D A B C D AF
>`.pickRestart({
  A: "~@4 [e5,a5] ~@3 [e5,g5]@3 ~@3 [e5,a5] ~", B: "~@2 [e5,a5] ~ [e5,g5]@3 ~ [e5,g5]@5 ~@3",
  C: "~@4 [a4,d5] ~@3 [a4,c5]@3 ~@3 [b4,e5,g5] ~", D: "~@2 [b4,e5,g5] ~ [d5,f#5]@3 ~ [d5,f#5]@5 ~@3",
  E: "~@2 [e5,a5] ~ [e5,g5]@9 ~@3", F: "~@4 [b4,e5,g5] ~ [d5,f5]@7 ~@3", G: "~@4 [a4,d5] ~@3 [a4,c5]@3 ~@3 [a4,d5] ~",
  H: "~@2 [a4,d5] ~ [a4,c5]@3 ~ [a4,c5]@5 ~@3", I: "~@4 [a4,d5] ~@3 [a4,c5,e5]@3 ~@3 [b4,e5,g5] ~",
  J: "~@2 [b4,e5,g5] ~ [d5,f5]@3 ~ [d5,f5]@5 ~@3", K: "[e4,b4,e5,g5]", L: "[e4,b4,e5,g5]@11 ~@5", M: "[g4,d5,g5,b5]",
  N: "[g4,d5,g5,b5]@11 ~@5", O: "[b3,f4,b4,e5]", P: "[b3,f4,b4,e5]@11 ~@5",
  Q: "[a3,e4,a4,c#5]@3 ~ a4 ~ c#5@3 ~ e4 ~ c#5@3 ~", R: "e4 ~ c#5@3 ~ a4 ~ [a3,e4,a4,c#5] ~@3 e4@3 ~",
  S: "[[c5,e5,a5]@8 ~@4 [c5,e5,a5] ~ [c5,e5,b5]@13 ~@5]/2", T: "[d4,a4,d5,f5]@8 ~@4 [d4,a4,d5,f5] ~ [d4,a4,d5,f5] ~",
  U: "~@2 [d4,a4,d5,f5] ~ [e4,b4,e5,g5]@5 ~@3 [d4,a4,d5,f5] ~@3", V: "[[c5,e5,a5]@13 ~ [c5,e5,b5]@13 ~@5]/2",
  W: "[d4,a4,d5,f5]@13 ~ [d4,a4,d5,f5] ~", X: "~@2 [d4,a4,d5,f5] ~ [e4,b4,e5,g5]@3 ~ g5 ~ e5 ~ f5 ~ d5 ~",
  Y: "[[d4,a4,d5] ~ [d4,a4,d5] ~ [d4,d5,f5] ~ [d4,d5,f5] ~ [d4,d5,f5] ~@3 [a3,e4,a4] ~ [b3,f4,b4]@5 ~ [b3,f4,b4]@3 ~ [b3,f4,b4]@3 ~ [b3,f4,b4]@3 ~]/2", // D5 Dm A5 Bdim
  Z: "[b3,f4,b4]@3 ~ [b3,f4,b4]@3 ~ [b3,f4,b4] ~ [b3,f4,b4] ~ [b3,f4,b4]@3 ~", // Bdim
  AA: "[b3,f4,b4] ~ [b3,f4,b4] ~ [b3,f4,b4] ~ [b3,f4,b4] ~ [b3,f4,b4] ~ [b3,f4,b4] ~ [b3,f4,b4] ~ [b3,f4,b4] ~", // Bdim
  AB: "[b3,f4,b4] ~@11 e4@3 ~", AC: "e3!16", AD: "a3!14 e3!2", AE: "e3!4 d4!12", AF: "[b4,e5,g5]@11 ~@5",
})).s("gm_electric_guitar_muted").gain(0.48).pan(0.9)

// other · overdriven guitar
const overdriven_guitar = note("<~@9 A B C D ~@54 E F G H I ~@3 I ~@7 I ~@8>".pickRestart({
  A: "~@8 e5 d5 b4!2 a4 g4 e4 ~", B: "g4 a4@2 ~ a4@3 ~ a4 ~ d5 ~@5", C: "d#6 ~ d6 b5!2 ~ a5 g5 a5 ~ a#5 a5 e5 ~ d5 ~",
  D: "d5 e5@15", E: "a4 b4 d5!3 [d5,g5] ~ d5 g6 ~ a5 ~ g5 ~ e5 d5", F: "e5 ~ g5 a5 g5 e5 ~ a5 ~ b5 a5 g5 e5 ~ g5 ~",
  G: "e6@3 ~ e6@3 ~ b5 d6 b5 a5 ~ b5 ~@2", H: "b5 a5 g5 e5 ~ d6 ~ b5 ~ b5 ~ f#6 ~ b5 a5 ~", I: "e5@11 ~@5",
})).s("gm_overdriven_guitar").gain(0.49).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  A@11 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@7 B A@6 B A@3 B A@3 B A@3 B A@3 B A@3 B ~
>`.pickRestart({
  A: "x!4", B: "x ~@3 x ~@3 x ~@3 x ~ x!2",
})).gain(0.51)

// drums · snare
const snare = s("sd").struct(`<
  ~@4 A@7 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@7 B A@6 B A@3 B A@3 B A@3 B A@3 B A@3 B
  ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x ~ x!2",
})).gain(0.51)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@3 A ~@7 B ~@3 B ~@3 B ~@3 B ~@3 B ~@3 B ~@3 C ~@3 B ~@3 B ~@3 B ~@3 B ~@3 B ~@2 A@2 D@2 E B F ~ G ~@3 B ~@3 B ~@3 B
  ~@3 B ~@3 B ~@3 B ~
>`.pickRestart({
  A: "~@2 x!4 ~@4 x!6", B: "~@14 x!2", C: "x!4 ~@4 x!8", D: "~@2 x!14", E: "~@12 x!4", F: "~@8 x!8", G: "x!16",
})).gain(0.51)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@3 A ~@7 B ~@3 B ~@3 B ~@3 B ~@3 B ~@3 B ~@3 C ~@3 B ~@3 B ~@3 B ~@3 B ~@3 B ~@2 A@2 ~@2 D E F G ~@4 B ~@3 B ~@3 B
  ~@3 B ~@3 B ~@3 B ~
>`.pickRestart({
  A: "~@6 x!4 ~@6", B: "~@14 x!2", C: "~@4 x!4 ~@6 x!2", D: "~@4 x!8 ~@4", E: "~@8 x!8", F: "x!9 ~@7", G: "x!16",
})).gain(0.51)

// drums · high tom
const high_tom = s("ht").struct("<~@62 [~ x!3 ~@12] [~ x!7 ~@8] ~@28>").gain(0.51)

// drums · crash
const crash = s("cr").struct("<[x!8]!3 ~ [x!8]!87 x>").gain(0.51)

// drums · ride
const ride = s("rd").struct("<~@91 x>").gain(0.4)

stack(
  bass, distortion_guitar, electric_guitar_muted, overdriven_guitar, kick, snare, low_tom, mid_tom, high_tom, crash,
  ride
)

More by Kiss