Strudelify

Tears Are Falling

Kiss

KeyA majorTempo127 bpm
0:00/0:00
// Tears Are Falling — Kiss
// 127 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 4 "Guitar 3" named as a guitar, played on electric guitar clean (its tremolo strings patch is not one); ch 5 "Guitar-4" named as a guitar, played on electric guitar clean (its tremolo strings patch is not one)
// note: Full arrangement: all 90 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(127/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 · pad new age · "Bruce Kulick"
const pad_new_age = note(`<
  A@4 B C D E F G H I J K L M K N O M J K L M P Q R S B C D E F G H I B C D E J K L M K N O M J K L M P Q R S B C D E F
  G H I B C D E T@4 U@2 V@2 U@2 W V U@2 V@2 X Y Z@2 W AA
>`.pickRestart({
  A: "f#4 ~ f#4 ~ f#4 ~ f#4 ~ f#4 ~ f#4 ~ f#4 ~ f#4 ~",
  B: "[f#4,f#5,a#5] ~ f#4 ~ [c#4,f#4] ~ [c#4,f#4] ~ [e4,b4,e5] ~ [f#4,c#5,f#5,a#5] ~ f#4 ~ [e4,b4,e5] ~", // F# F#5 E5 F# E5
  C: "[f#4,f#5,a#5] ~ f#4 ~ [c#4,f#4] ~ [c#4,f#4] ~ [e4,b4,e5] ~ [f#4,c#5,f#5,a#5] ~ f#4 ~ f#4 ~", // F# F#5 E5 F#
  D: "[e4,b4,e5]@4 ~@2 [d4,a4,d5] ~ [b3,f#4,b4] [d4,a4,d5] [b3,f#4,b4] [d4,a4,d5]!2 ~ d4 ~", // E5 D5 B5 D5 B5 D5
  E: "[f#4,c#5,f#5]@4 ~@2 [e4,b4,e5] ~ [c#4,g#4,c#5] [e4,b4,e5] [e4,g#4,c#5] [e4,b4,e5]!2 ~ e4 ~", // F#5 E5 C#5 E5 C#m E5
  F: "[f#4,c#5,f#5,a5] ~ f#4 ~ [c#4,f#4] ~ [c#4,f#4] ~ [e4,b4,e5] ~ [f#4,c#5,f#5,a5] ~ f#4 ~ [e4,b4,e5,g#5]!2", // F#m F#5 E5 F#m E
  G: "[f#4,c#5,f#5,a5] ~ f#4 ~ [c#4,f#4] ~ [c#4,f#4] ~ [e4,b4,e5] ~ [f#4,c#5,f#5,a5] ~ f#4 ~ f#4 ~", // F#m F#5 E5 F#m
  H: "[e4,b4,e5]@4 ~@2 [d4,a4,d5]@3 ~ [b3,f#4,b4] [d4,a4,d5] [b3,f#4,b4] [d4,a4,d5] d4 ~", // E5 D5 B5 D5 B5 D5
  I: "[f#4,c#5,f#5]@4 ~@2 [e4,b4,e5]@3 ~ [c#4,g#4,c#5] [e4,b4,e5] [e4,b4,e5]@3 ~", // F#5 E5 C#5 E5
  J: "[c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5] ~ [c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5] ~ [c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5]@5 ~", // Dmaj7 F#m7 Dmaj7 F#m7 Dmaj7 F#m7
  K: "[c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5] ~ [c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5] ~ [c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5] ~ [e4,c#5,f#5,a5] ~ [f#4,c#5,f#5] ~", // Dmaj7 F#m7 Dmaj7 F#m7 Dmaj7 F#m7 F#5
  L: "[c#4,g#4,c#5] ~ [e4,b4,e5] ~ [c#4,g#4,c#5] ~ [e4,b4,e5] ~ [c#4,g#4,c#5] ~ [e4,b4,e5] ~ [c#4,g#4,c#5] ~ [e4,b4,e5] ~", // C#5 E5 C#5 E5 C#5 E5 C#5 E5
  M: "[c#4,g#4,c#5] ~ [e4,b4,e5] ~ [c#4,g#4,c#5] ~ [e4,b4,e5] ~ [c#4,g#4,c#5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ c#4 ~", // C#5 E5 C#5 E5 C#5 E5
  N: "[c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5] ~ [c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5] ~ [c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5] ~ [e4,c#5,f#5,a5] ~ [c#4,f#4] ~", // Dmaj7 F#m7 Dmaj7 F#m7 Dmaj7 F#m7 F#5
  O: "[c#4,g#4,c#5] ~ [e4,b4,e5] ~ [c#4,g#4,c#5] ~ [e4,b4,e5] ~ [c#4,g#4,c#5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ b3 ~", // C#5 E5 C#5 E5 C#5 E5
  P: "[d4,a4,d5]", Q: "[d4,a4,d5]@3 ~ d5@3 ~ a4@3 ~ d5@3 ~", R: "[e4,b4,e5]@8 [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5]@3 ~",
  S: "[e4,b4,e5]@3 ~ [e4,b4,e5]@3 ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ c#4 ~", // E5
  T: "[f#4,c#5,f#5]@2 [d4,a4,d5,f#5] ~ [f#4,c#5,f#5]@2 [d4,a4,d5,f#5] ~ [f#4,c#5,f#5]@2 [d4,a4,d5,f#5] ~ [f#4,c#5,f#5]@2 [d4,a4,d5,f#5] ~, a5 ~@3 a5 ~@3 a5 ~@3 a5 ~@3", // F#5 D F#5 D F#5 D F#5 D
  U: "[d4,d5,a5]@11 ~@5", V: "[b3,b4,f#5]@11 ~@5", W: "[g#3,g#4,d5]@11 ~@5", X: "[g#3,g#4,d5]",
  Y: "[g#3,g#4,d5]@13 ~ [g#3,g#4,d5]!2", Z: "[[b3,b4,f#5]@21 ~@3 [b3,b4,f#5]@3 ~ [b3,b4,f#5]@3 ~]/2",
  AA: "[g#3,g#4,c#5]@13 ~ [g#3,g#4,c#5] ~", // C#5
})).s("gm_pad_new_age").gain(0.41)

// chords · pad choir · "Paul Stanley"
const pad_choir = note(`<
  A@4 B@2 C D B@2 E F G H I J H K L J G H I J M N O P B@2 C D B@2 E F B@2 C D G H I J H K L J G H I J M N O P B@2 C D
  B@2 E F B@2 C D Q@4 R@2 S@2 R@2 T U R@2 S@2 ~@6
>`.pickRestart({
  A: "f#4 ~ f#4 ~ f#4 ~ f#4 ~ f#4 ~ f#4 ~ f#4 ~ f#4 ~", B: "f#4 ~ f#4 ~ f#4 ~ f#4 ~ f#4 ~ f#4 ~@3 f#4 ~",
  C: "e4@4 ~@2 d4@3 ~ d4@3 ~ d4 ~", D: "f#4@4 ~@2 e4@3 ~ e4@3 ~ e4 ~", E: "e4@4 ~@2 d4@3 ~ b3 d4 b3 d4!2 ~",
  F: "f#4@4 ~@2 e4 ~ c#4 e4 c#4 e4!2 ~ e4 ~",
  G: "[c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5] ~ [c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5] ~ [c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5]@5 ~", // Dmaj7 F#m7 Dmaj7 F#m7 Dmaj7 F#m7
  H: "[c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5] ~ [c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5] ~ [c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5] ~ [e4,c#5,f#5,a5] ~ [f#4,c#5,f#5] ~", // Dmaj7 F#m7 Dmaj7 F#m7 Dmaj7 F#m7 F#5
  I: "[c#4,g#4,c#5] ~ [e4,b4,e5] ~ [c#4,g#4,c#5] ~ [e4,b4,e5] ~ [c#4,g#4,c#5] ~ [e4,b4,e5] ~ [c#4,g#4,c#5] ~ [e4,b4,e5] ~", // C#5 E5 C#5 E5 C#5 E5 C#5 E5
  J: "[c#4,g#4,c#5] ~ [e4,b4,e5] ~ [c#4,g#4,c#5] ~ [e4,b4,e5] ~ [c#4,g#4,c#5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ c#4 ~", // C#5 E5 C#5 E5 C#5 E5
  K: "[c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5] ~ [c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5] ~ [c#4,a4,d5,f#5] ~ [e4,c#5,f#5,a5] ~ [e4,c#5,f#5,a5] ~ [c#4,f#4] ~", // Dmaj7 F#m7 Dmaj7 F#m7 Dmaj7 F#m7 F#5
  L: "[c#4,g#4,c#5] ~ [e4,b4,e5] ~ [c#4,g#4,c#5] ~ [e4,b4,e5] ~ [c#4,g#4,c#5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ b3 ~", // C#5 E5 C#5 E5 C#5 E5
  M: "[d4,a4,d5]", N: "[d4,a4,d5]@3 ~ d5@3 ~ a4@3 ~ d5@3 ~", O: "[e4,b4,e5]@8 [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5]@3 ~",
  P: "[e4,b4,e5]@3 ~ [e4,b4,e5]@3 ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ c#4 ~", Q: "e4 ~@5 e4 ~ e4 ~ e4 ~@3 e4 ~",
  R: "f#4 ~ f#4 ~ c#4 ~ c#4 ~ e4 ~ f#4 ~@3 e4 ~", S: "e4 ~ e4 ~ e4 ~ e4 ~ e4 ~ e4 ~ e4 ~ e4 ~",
  T: "f#4 ~ f#4 ~ c#4 ~ c#4 ~ e4 ~ f#4 ~ f#4 ~ e4 ~", U: "f#4 ~ f#4 ~ c#4 ~ c#4 ~ e4 ~ f#4 ~ e4 ~ e4 ~",
})).s("gm_pad_choir").gain(0.46)

// bass · electric bass finger · "Gene Simmons"
const bass = note(`<
  A@4 B@2 C D B@2 C D E@12 F@2 E ~ B@2 C D B@2 C D B@2 C D E@12 F@2 E ~ B@2 C D B@2 C D B@2 C D G@4 H@2 G@2 H@6 G@8
>`.pickRestart({
  A: "f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~", B: "f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~@3 f#2 ~",
  C: "e2 ~ e2 ~ e2 ~ d2 ~ d2 ~ d2 ~@3 d2 ~", D: "f#2 ~ f#2 ~ f#2 ~ e2 ~ e2 ~ e2 ~@3 e2 ~", E: "~@2 e2 ~@3 e2 ~@9",
  F: "~@2 d2 ~@3 d2 ~@9", G: "e2 ~@5 e2 ~ e2 ~ e2 ~@3 e2 ~", H: "f#2 ~@5 f#2 ~ f#2 ~ f#2 ~@3 f#2 ~",
})).s("gm_electric_bass_finger").gain(0.41)

// other · electric guitar clean · "Guitar 3"
const electric_guitar_clean = note("<~@70 A B C D E F G H I J K L M N O P@2 Q R S>".pickRestart({
  A: "f#5@12 ~@2 e5 ~", B: "e6@8 e6 ~ d#6 ~ g#4@2 ~ a4", C: "a4@13 ~ f#5@2", D: "f#5@4 ~@2 a5@5 ~ b5@3 ~",
  E: "b5@14 ~ d#6", F: "e6@4 ~@2 d#6 c#6 d#6@5 ~@3", G: "d#6 ~ a5 ~ c#6 ~ a5 ~ c#6 ~ b5@3 ~ c#6@2",
  H: "c#6 ~ c#6 b5!2 ~ a5 ~ a5 ~ g#5@4 ~@2", I: "b5@4 ~@2 a5 ~ b5@5 ~@3", J: "c#5@4 ~@2 b4 ~ b4@5 ~@3",
  K: "~@2 e6 c#6!4 g#5 e6 c#6!4 g#5 a5 b5", L: "c#6 b5 a5 g#5 a5 g#5 f#5 e5 f#5@3 ~ f#5 ~ e5 ~",
  M: "~@2 b5 e6 b6 b5 e6 b6 b5 b6 e6 b5 b6 e6 b5 b6", N: "c#7@4 ~@2 d7 ~ c#7@4 ~@2 b6 ~",
  O: "e6 ~ a6 f#6 f#6@12, ~ f#6@2 ~@13", P: "f#6", Q: "f#6@5 ~@9 c#6 e6",
  R: "[e6,b6] f#6 e6 b6 f#6 e6 b6 f#6 e6 b6 f#6 e6 b6 f#6 b6 e6", // E5
  S: "b6 f#6 b6 e6 b6 f#6 b6 e6 b6 f#6 b6 e6 b6 f#6 b6 e6",
})).s("gm_electric_guitar_clean").gain(0.51)

// other · electric guitar clean · "Guitar-4"
const electric_guitar_clean_2 = note("<~@71 A B C D ~ E F G H I J K L M N@2 O P Q>".pickRestart({
  A: "~@12 e4@2 ~ f#4", B: "f#4@13 ~ c#5@2", C: "c#5@4 ~@2 f#5@5 ~ g#5@3 ~", D: "g#5@13 ~@3",
  E: "b5 ~ f#5 ~ a5 ~ f#5 ~ a5 ~ g#5@3 ~ a5@2", F: "a5 ~ a5 g#5!2 ~ f#5 ~ f#5 ~ e5@3 ~ b4 ~",
  G: "f#5@4 ~@2 e5 ~ c#5@5 ~@3", H: "c#5@4 ~@2 b4 ~ b4@5 ~@3", I: "~@2 e6 c#6!4 g#5 e6 c#6!4 g#5 a5 b5",
  J: "c#6 b5 a5 g#5 a5 g#5 f#5 e5 f#5@3 ~ f#5 ~ e5 ~", K: "~@2 b5 e6 b6 b5 e6 b6 b5 b6 e6 b5 b6 e6 b5 b6",
  L: "c#7@4 ~@2 d7 ~ c#7@4 ~@2 b6 ~", M: "e6 ~ a6 f#6 f#6@12, ~ f#6@2 ~@13", N: "f#6", O: "f#6@5 ~@9 b5 e6",
  P: "b6 f#6 e6 b6 f#6 e6 b6 f#6 e6 b6 f#6 e6 b6 f#6 b6 e6", Q: "b6 f#6 b6 e6 b6 f#6 b6 e6 b6 f#6 b6 e6 b6 f#6 b6 e6",
})).s("gm_electric_guitar_clean").gain(0.51)

// drums · kick
const kick = s("bd").struct(`<
  [x!2]!4
  [x ~@7 x!3 ~@5]!8
  [x ~@3 x!2 ~@2]!16
  [x ~@7 x!3 ~@5]!12
  [x ~@3 x!2 ~@2]!16
  [x ~@7 x!3 ~@5]!12
  [x ~@3 x!2 ~@2]!22
>`).gain(0.51)

// drums · snare
const snare = s("sd").struct("<[~ x ~ x]!68 [x ~ x!6]!17 [x ~@3 x ~ x ~ x ~ x!5 ~] [x ~ x!6]!4>").gain(0.51)

// drums · low tom
const low_tom = s("lt").struct("<~@3 [~@14 x!2] ~@8 [x ~ x!3 ~@3]!16 ~@12 [x ~ x!3 ~@3]!16 ~@34>").gain(0.51)

// drums · mid tom
const mid_tom = s("mt").struct("<~@3 [~@12 x!2 ~@2] ~@8 [~@6 x!2]!16 ~@12 [~@6 x!2]!16 ~@34>").gain(0.51)

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

// drums · crash
const crash = s("cr").struct("<A@3 B C@8 A@3 B A@3 B A@3 B A@3 B C@12 A@3 B A@3 B A@3 B A@3 B C@12 A@22>".pickRestart({
  A: "x!4", B: "x ~ x ~ x ~ x!2", C: "x!8",
})).gain(0.51)

// drums · ride
const ride = s("rd").struct(`<
  ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@22
>`.pickRestart({
  A: "~@7 x",
})).gain(0.51)

stack(
  pad_new_age, pad_choir, bass, electric_guitar_clean, electric_guitar_clean_2, kick, snare, low_tom, mid_tom, high_tom,
  crash, ride
)

More by Kiss