Strudelify

atomyk ebonpyre

Homestuck

KeyC minorTempo120 bpm
0:00/0:00
// atomyk ebonpyre — Homestuck
// 120 bpm, 6/8, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/2637326; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 47 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/3)

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

// other · flute · Dmaj7 Fmaj7 Abmaj7 Bmaj7 Dmaj7 Fmaj7 Abmaj7 Bmaj7
const flute = note(`<
  ~@4
  [c4 [db4,d4] eb4 [e4,f4] gb4 [g4,ab4] a4 [bb4,b4] c5@8]!4
  ~@28
  [c4 [db4,d4] eb4 [e4,f4] gb4 [g4,ab4] a4 [bb4,b4] c5@8]!4
  ~@7
>`).s("gm_flute").gain(0.5)

// bass · electric bass pick · "Electric Bass"
const bass = note(`<
  A B A C A B A C A B A C A D A B A C A B A C A B A C A D A B A C A B A C A B A C A D A B A C E
>`.pickRestart({
  A: "c3 c3@3 c3@3 c3 db3@3 gb2@2 g2@3", B: "c3 c3@3 c3@3 c3 c3@3 eb3@2 db3@3",
  C: "ab2 ab2@3 c3@3 eb3 bb2 bb2@3 d3@3 f3", D: "eb3 eb3@3 eb3@3 eb3 g3@3 eb3@2 g3@3", E: "c3",
})).s("gm_electric_bass_pick").gain(0.25)

// chords · overdriven guitar · "Electric Guitar" · C Eb D Db
const overdriven_guitar = note("<[[e3,g3,c4]] [[g3,bb3,eb4]] [[gb3,a3,d4]] [[f3,ab3,db4]] ~@43>")
  .s("gm_overdriven_guitar").gain(0.32)

// other · cello · "Violoncello"
const cello = note("<~@3 A B ~@2 A B ~@2 A B ~@3 C ~@3 C ~@3 C ~@2 A B A B A B A B A B A B A B ~@6>".pickRestart({
  A: "~@13 bb3@3", B: "c4@5 ~@11", C: "c4 ~",
})).s("gm_cello").gain(0.5)

stack(flute, bass, overdriven_guitar, cello)