Strudelify

No Tears in Heaven

Robert S. Arnold

KeyF majorTempo120 bpm
0:00/0:00
// No Tears in Heaven — Robert S. Arnold
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 4 "Bass" named as a bass, played on electric bass finger (its piano patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5852701; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 16 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · piano · "Soprano"
const piano = note("<A B C D A B E F G H I D G H E F>".pickRestart({
  A: "f4 f4@2 f4!2 f4@3", B: "a4 a4@2 a4 g4 f4@3", C: "f4 f4@2 f4 a4!2 g4 f4", D: "g4@3 ~", E: "c5 c5@2 bb4 a4 f4 g4!2",
  F: "f4@3 ~", G: "f4 f4@7", H: "a4 a4@2 a4 c5 bb4 a4@2", I: "a4 a4@2 a4 bb4 a4 g4 f4",
})).s("gm_piano").gain(0.3)

// other · piano · "Tenor"
const piano_2 = note("<A B C D A B E F G H I D G H E F>".pickRestart({
  A: "a3 a3@2 a3 bb3 a3@3", B: "c4 c4@2 c4 bb3 a3@3", C: "a3 a3@2 a3 c4!3 b3", D: "c4 b3 c4 ~",
  E: "eb4 eb4@2 d4 c4 a3 bb3!2", F: "a3 bb3 a3 ~", G: "a3 a3@2 a3 c4 bb3 a3@2", H: "c4 c4@2 c4 eb4 d4 c4@2",
  I: "c4 c4@2 c4 d4 c4!2 b3",
})).s("gm_piano").gain(0.3)

// bass · electric bass finger · "Bass"
const bass = note("<A@2 B C A@2 D E F G B C F G H I>".pickRestart({
  A: "f3 f3@2 f3!2 f3@3", B: "f3 f3@2 f3!3 e3 d3", C: "c3 d3 c3 ~", D: "a2 a2@2 bb2 c3 d3 c3!2", E: "f3@3 ~",
  F: "f3 f3@7", G: "f3 f3@2 f3!3 f3@2", H: "f3 f3@2 bb2 c3 d3 c3!2", I: "f2@3 ~",
})).s("gm_electric_bass_finger").gain(0.3)

stack(piano, piano_2, bass)