Strudelify

Dumbledore's Farewell

Nicholas Hooper

KeyA minorTempo90 bpm
0:00/0:00
// Dumbledore's Farewell — Nicholas Hooper
// 90 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5955853; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 46 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/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 · violin
const violin = note("<~@16 A@3 B C@2 D E F@2 G H I@3 J K@4 D E L G M@2 N ~@3>".pickRestart({
  A: "[a4@3 b4@2 c5]/3", B: "d5 b4", C: "[e5@3 d5]/2", D: "f5", E: "e5", F: "[c5@3 ~]/2", G: "c5", H: "b4@2 b4 e4",
  I: "[c5@3 [b4,d5]@2 a4]/3", J: "[a4,b4] [b4,c5]", K: "[e5@3 d5@5]/4", L: "d5", M: "b4/2", N: "b4",
})).s("gm_violin").gain(0.3)

// other · violin · soft notes
const violin_soft = note("<~@8 A B@4 C@3 ~@27 D@3>".pickRestart({
  A: "~@4 [c5,e5]@3 f5", B: "[e5 d5@2 c5@2 b4@2 ~]/4", C: "[~ b4@2 a4@2 g4]/3", D: "a4/3",
})).s("gm_violin").gain(0.2)

// other · viola
const viola = note("<A@8 B ~@2 C D@5 C E@5 F G@4 H@2 I J K@4 L@2 M C@2 N O@4>".pickRestart({
  A: "[c4@3 b3@2 a3@2 b3@2 c4@2 b3@2 a3@2 b3]/8", B: "c4", C: "e4", D: "[b3 c4@2 b3@2 a3@2 b3@2 ~]/5",
  E: "[a4@3 d4@2 e4@2 d4@3]/5", F: "d4 ~", G: "[e4@3 d4@4 ~]/4", H: "[e4@3 ~]/2", I: "c5", J: "e5",
  K: "[e4@3 d4@2 f4@3]/4", L: "[f4,a4]/2", M: "[d4,f4]", N: "d4", O: "[d4 c4 c4 c4, a3]/4",
})).s("gm_viola").gain(0.25)

// other · cello · "Violoncello"
const cello = note("<A B C D A B C D A B C D E@2 ~@2 F@3 ~ G@6 H@2 I@2 J@2 I@2 J@2 K@2 L@2 M@2 N@4>".pickRestart({
  A: "a2", B: "g2", C: "f2", D: "e2", E: "[a3@3 ~]/2", F: "[~ a3@2 d4@2 c4]/3", G: "[c4@3 b3@2 a3@2 b3@2 c4@2 b3]/6",
  H: "[a3@3 b3]/2", I: "[b3 c4@2 b3]/2", J: "[a3@3 a3]/2", K: "d3/2", L: "[~ a3@7]/2", M: "[~ g3@7]/2", N: "a2/4",
})).s("gm_cello").gain(0.29)

// bass · contrabass
const bass = note("<~@12 A B C D C B A E A B C D ~ B C D A B C D A B C D F@2 G@2 H@2 I@4>".pickRestart({
  A: "a1", B: "g1", C: "f1", D: "e1", E: "b1", F: "d1/2", G: "[c1,c2]/2", H: "[b0,b1]/2", I: "a0/4",
})).s("gm_contrabass").gain(0.39)

stack(violin, violin_soft, viola, cello, bass)

More by Nicholas Hooper