Strudelify

heroes we could be

rf

KeyF majorTempo120 bpm
0:00/0:00
// heroes we could be — rf
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/767526; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 69 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 · [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 · electric guitar clean · "Electric Guitar"
const electric_guitar_clean = note("<A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 ~@49>".pickRestart({
  A: "[a4@6 f4 c5@5 ~ c5 d5 c5]/2", B: "[a4@6 f4 d5@9]/2",
})).s("gm_electric_guitar_clean").gain(0.3)

// chords · piano
const piano = note(`<
  A@2 B@2 C D E F C D E F G H I J G H I J K L M N K L M N K L M N K L M N K L M N K L M N K L M N K L M N J O I P Q R
  G@2 K L M N K L M N ~
>`.pickRestart({
  A: "[a5@6 f5 ~@6 c6 d6 c6, [f2,c3] [a2,e3], ~@7 c6@5 ~@4]/2", B: "[a5@6 f5 ~ [bb2,f3]@8, [d3,a3] ~, ~@7 d6@9]/2",
  C: "[f2,c3,c4,f4]", D: "[c4,g4]@3 [c4,f4]@5, [a2,e3]", E: "[d3,a3,c4,f4]", F: "[bb2,f3,c4,f4]",
  G: "f2 c3 f2 c3 f2 c3 f2 c3, [c4,f4]", H: "a2 e3 a2 e3 a2 e3 a2 e3, [c4,g4]@3 [c4,f4]@5",
  I: "d3 a3 d3 a3 d3 a3 d3 a3, [c4,f4]", J: "bb2 f3 bb2 f3 bb2 f3 bb2 f3, [c4,f4]",
  K: "f2 c3 f2 c3 f2 c3 f2 c3, [c4,f4]!4", L: "a2 e3 a2 e3 a2 e3 a2 e3, [c4,g4]!4",
  M: "d3 a3 d3 a3 d3 a3 d3 a3, [c4,f4]!4", N: "bb2 f3 bb2 f3 bb2 f3 bb2 f3, [c4,f4]!4",
  O: "a2 e3 a2 e3 a2 e3 a2 e3, [c4,g4]", P: "g2 d3 g2 d3 g2 d3 g2 d3, [bb3,f4]",
  Q: "bb2 f3 bb2 f3 bb2 f3 bb2 f3, [bb3,f4]", R: "a2 e3 a2 e3 a2 e3 a2 e3, [c4,f4]",
})).s("gm_piano").gain(0.29)

stack(electric_guitar_clean, piano)