Strudelify

Your Father Would Be Proud

Michael Giacchino

KeyG majorTempo50 bpm
0:00/0:00
// Your Father Would Be Proud — Michael Giacchino
// 50 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/4986647; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 59 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(50/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · viola
const viola = note("<~@32 A B A C D E F G H I@2 J@5 K@3 ~ L@4 M@3>".pickRestart({
  A: "f#4 e4@3 f#4 g4@3", B: "f#4 e4", C: "a4 b4", D: "g4 f4 g4@6", E: "g3@2 g#3@2 ~@2 d#4 d4", F: "d4 c4 g#4@6",
  G: "g4 c4", H: "c4!2", I: "[d#4 d4 c4 a#3 a3@5 g4 f#4 d#4 d4 c4 c4@2]/2",
  J: "[c4@6 d4@6 g4@6 a4@6 a#4@6 a#4@6 a#4@6 a#4@3 c5 a#4 g4]/5", K: "[a4@19 d4@4 f#4@3 a4@4 a#4@15 a4@75 ~@24]/3",
  L: "[~@40 a#4@3 a4@2 a#4@11 g4@5 ~ c5@16 a4@5 a#4@3 a4@3 a#4@11 g4@5 f4@3 c5@19 b4@11 c5@11 ~@16 c5@5 ~ a#4@11 a4@10]/4",
  M: "[~ a#4@5 c5@16 c5@11 f4@11 g4@16 ~ d4@5 d#4@22 g4@22 ~@34]/3",
})).s("gm_viola").gain(0.25)

// other · viola · soft notes
const viola_soft = note("<~ A@8 B@8 C@7 D@2 E F G E@2 F ~@18 H@3 ~@6>".pickRestart({
  A: "[~@35 [c4,g4]@36 [b3,g4]@12 a3@24 a3@24 b3@48 d4@48 c4@48 g4@48 f#4@48 ~@13]/8", // C5 Em
  B: "[~@20 c4@24 b3@24 d4@24 e4@24 e4@24 g4@12 b4@12 f#4@3 e4@9 f#4@3 g4@3 ~@6 c5@4]/8",
  C: "[~@16 b4@24 [e3,b3]@48 [e3,c4]@48 [b3,f#4]@48 f#3@51 g3@48 a3@48 b3@5]/7", D: "[~@43 f#3@53]/2", E: "e4", F: "g4",
  G: "b4", H: "[~@12 a#3@15 a3@15 g3@26 ~@4]/3",
})).s("gm_viola").gain(0.15)

// other · viola
const viola_2 = note("<~ A@8 B@8 C@6 D@3 E F G H I J K L M N O P Q@2 R S T U@5 V@5 ~ W@2 X@3>".pickRestart({
  A: "[~@35 e4@36 e4@12 [c4,e4]@24 [d4,f#4]@24 [d4,g4]@48 [f#4,a4]@48 [g3,e4]@48 [e3,c4]@48 [b3,d4]@42 f#3@6 f#3@6 b3@6 b3]/8", // C D G5 F#m C Bm
  B: "[~@3 d4@3 e4@7 d4@7 e4@12 e4@4 f#4@4 g4@4 g4@12 b4@12 f#4@12 f#4@4 g4@4 b4@4 b4@12 c5@12 c5@12 c5@4 d5@4 e5@4 e5@12 g5@12 f#5@3 e5@9 f#5@3 g5@3 ~@10]/8",
  C: "[~@40 g3@48 a3@48 d4@48 [b3,d4]@51 g3@30 g3@6 c4@6 a3@6 e3@5]/6", D: "[~@19 e3@24 d4@30 b3@6 d4@6 b3@6 f#4@53]/3",
  E: "e4@3 e4 f#4 g4", F: "g4 b4", G: "f#4@3 f#4 g4 b4", H: "b4 c5", I: "c4@3 c4 d4 e4", J: "e4 g4", K: "c4 b3@3 b3@4",
  L: "[c4,f#4] [b3,e4]", M: "f#4", N: "e4", O: "~@4 d#4 d4!2 c4", P: "c4@2 g#4 g4 g#4@4", Q: "[a#3@5 g#3@3]/2",
  R: "g#3 g3", S: "c4", T: "d4", U: "[c4 d4 d4!2 d#4 e4 d4 d#4]/5",
  V: "[d4@15 f#3@45 [g3,d4]@15 [f3,c4]@15 [d#3,a#3]@26 ~@4]/5", // G5 F5 D#5
  W: "[~@31 a3@4 f3@3 d3@4 a3@4 f3@3 d3@4 [g3,d4]@2 [g3,d4]@2 [g3,d4] [g3,d4]@38]/2", // G5
  X: "[~ [g3,d4] [g3,d4]@2 [g3,d4]@2 [g3,d4]@16 [g3,d#4]@2 [g3,d#4]@2 [g3,d#4]@2 [g3,d#4]@38 [g3,d#4]@22 [g3,d4]@22 ~@34]/3", // G5 Cm G5
})).s("gm_viola").gain(0.2)

// other · cello · "Violoncello"
const cello = note("<~@5 A@2 B@8 C@2 D@6 E F G H I J K L M N O ~ M P Q R O S O T U@5 V@3 ~@2 W@2 X Y@3>".pickRestart({
  A: "[~@35 g3@30 g3@6 c4@6 a3@6 e3@13]/2",
  B: "[~@11 c4@24 d4@30 b3@6 d4@6 b3@6 f#3@53 e3@24 e3@8 f#3@8 g3@8 g3@24 b3@24 f#3@24 f#3@8 g3@8 b3@8 b3@24 c4@24 c4@24 c4@8 b3@8 a3@8 g3@8]/8",
  C: "[~@8 b3@12 c4@3 b3@9 c4@3 d4@3 ~@10]/2",
  D: "[~@40 g3@30 g3@6 c4@6 a3@6 e3@24 a3@24 b3@30 g3@6 b3@6 g3@6 f#2@6 a2@6 d3@6 e3@6 ~ f#3@6 a3@6 ~ d4@6 e4@7 d4@18 c4@6 g3@12 c4@12 c4@5]/6",
  E: "~ b3@6 b3@6 a3@6 a3@24 b3@5", F: "~ a3@6 a3@6 g3@6 g3@6 d3@6 d3@6 g3@6 d4@5", G: "~ c#4@6 c#4@6 ~ b3@6 b3@28",
  H: "e3@3 e3 f#3 g3", I: "g3 b3", J: "f#3@3 f#3 g3 b3", K: "b3 c4", L: "c4", M: "g3", N: "b3", O: "g2", P: "c3",
  Q: "g2 g#2@3", R: "g#2@3 g2", S: "a#2 g#2 g2@2", T: "a2", U: "[a2!2 c3 d3 d#3 e3 d3 d#3]/5",
  V: "[d3@30 d3@30 d3@11 c3@11 ~ a#2@11 a2@26 ~@24]/3", W: "[~@3 g2@16 ~@6 g2@16 ~@5 g2@16 ~@34]/2",
  X: "~@5 a#2@2 a#2@2 a#2 a#2@38", Y: "[~ a#2 a#2@2 a#2@2 a#2@16 c3@2 c3@2 c3@2 c3@38 a#2@22 a#2@22 g2@22 ~@12]/3",
})).s("gm_cello").gain(0.2)

stack(viola, viola_soft, viola_2, cello)

More by Michael Giacchino