Strudelify

hollow knight - main theme

Christopher Larkin

KeyE♭ majorTempo60 bpm
0:00/0:00
// hollow knight - main theme — Christopher Larkin
// 60 bpm, 3/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5864909; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 27 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(60/3)

// 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 · piano
const piano = note("<A B C D A E F G H I J K L M N O P Q R S T U V W X@2 Y>".pickRestart({
  A: "~@5 eb6, c4, c6 [ab4,c6]@2, ~ g4@5, ~@2 d6", B: "~ g4@2, [c4,d6], ~ f4@5",
  C: "~@5 f5, [c4,c6], ~ eb4@5, ~ g5@3 g5@2, ~ [f4,ab5]@2", D: "~@2 bb3, [c4,g5], ~ d4@2 d4@3, ~ eb4@2",
  E: "~ f4@2, [bb3,f6], ~ g4@5", F: "~@2 bb5, [ab3,g6], ~ [eb4,eb6]@5, ~ [f4,d6]@2, ~ c6",
  G: "~@5 bb3, [f3,c6], ~ bb3@4 ~, ~ c4!2, ~ f4", H: "~@3 f4@29 eb3@15 ~, f3@2 ~, ~ a3@31 ~@16, ~ c4@15 ~@8",
  I: "~@5 eb5, c3, c5 [ab3,c5]@2, ~ g3@5, ~@2 d5", J: "~ g3@2, [c3,d5], ~ f3@5",
  K: "~@5 f4, [c3,c5], ~ eb3@5, ~ g4@3 g4@2, ~ [f3,ab4]@2", L: "~@2 bb2, [c3,g4], ~ eb3@5, ~ d3@2",
  M: "~@5 eb5, ab2, c5 [f3,c5]@2, ~ eb3@5, ~@2 d5", N: "~@11 ab5, [f2,f5]@5 [c3,g5], ~ c3@3 ab3@2, ~ f3@2, ~ g3",
  O: "~@5 bb4, [eb2,g5], ~ bb2@5, ~ [g3,eb5]@2, ~@2 eb3", // Eb Cm
  P: "~@5 [bb2,f4], [ab2,c5]@2 f3, ~ eb3@5, ~ bb4@2, ~@2 bb2 bb3@3", Q: "~@5 g3, [c3,g4], ~ g3@2 g3@2 ~, ~ ab3!2",
  R: "~@5 f3, c3, ~ f3@2 f3@2 ~, ~ g3!2", S: "~@5 eb3, c3, ~ eb3@2 eb3@2 ~, ~ f3!2",
  T: "d3@15 ~ [bb1,f2,bb2]@15 ~@9 b4@8, ~@32 d3@15 ~", U: "~@5 g3, [c3,b4], ~ g3@2 g3@2 ~, ~ ab3!2",
  V: "~@43 eb5@5, [c3,c5], ~@8 f3@16 f3@13 d5@11, ~ g3!2, ~@5 f3", W: "~@5 eb3, [c3,f5], ~ eb3@2 eb3@2 ~, ~ f3!2",
  X: "[~@32 bb5@16 c6@15 ~ c6@15 ~ d6@8 eb6@8, [bb2,g5]@32 d4@61 ~@3, ~ eb3@5 ~@6, ~ f3@2 ~@3, ~ bb3 ~@2]/2", // Eb
  Y: "d6@23 ~",
})).s("gm_piano").gain(0.2)

stack(piano)

More by Christopher Larkin