Strudelify

The Godfather

Nino Rotta

KeyF majorTempo66 bpm
0:00/0:00
// The Godfather — Nino Rotta
// 66 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 8 viola (copy of ch 5 "Flûte" flute); ch 1 tremolo strings (copy of ch 6 "Hautbois" oboe)
// note: Transcription provider: pdmx. https://musescore.com/score/5911330; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 52 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(66/4)

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

// other · oboe · "Hautbois"
const oboe = note(`<
  ~@2 A B C D E F G H I J C D E F G H I K L M N O P Q R S T U V W L M X Y ~@7 Z C D E X AA AB I AC
>`.pickRestart({
  A: "~ d4 a4 f4 g4@4", B: "~ d4 a4 f4 g4 a4 d5 f5", C: "e5 d5 f5 d5 e5 d5 bb4 c5", D: "a4@4 ~ a4 d5 f5",
  E: "e5 d5 f5 d5 e5 d5 a4 ab4", F: "g4@4 ~ g4 bb4 db5", G: "e5@5 g4 bb4 db5", H: "d5@4 ~ d4 f4 c5",
  I: "bb4 a4 c5 bb4!2 a4!2 db4", J: "d4@4 ~ a4 d5 f5", K: "d4@4 ~ d5!2 db5", L: "c5@4 e5@2 d5 bb4",
  M: "a4@4 ~ a4 c5 a4", N: "g4@4 ~ g4 bb4 ab4", O: "a4", P: "a4 bb4", Q: "a4 g4 f4@2", R: "a4@2 d5 f4",
  S: "bb4@2 d4@2 bb4@2 d4 e4", T: "g4!2", U: "a4!2", V: "a4 g4", W: "f4@4 ~ d5!2 db5", X: "g4@4 ~ g4 bb4 d5", Y: "e5",
  Z: "~@5 a4 d5 f5", AA: "e5@10 g5@4 f5 e5", AB: "f5@4 ~ d4 f4 c5", AC: "d4@3 ~",
})).s("gm_oboe").gain(0.25)

// other · clarinet · "Clarinette en Si♭"
const clarinet = note(`<
  ~@2 A@2 B C D E F G H I B C D E F J K L M N O P Q R S T U V W X M N Y Z ~@8 B C AA E AB AC K AD
>`.pickRestart({
  A: "~ d4 f4 d4 e4@4", B: "a3 bb3", C: "a3 g3 f3@2", D: "a3@2 d4 f3", E: "bb3@2 ~@2 bb3@2 d4 e4", F: "bb4@5 g4!2 db5",
  G: "a4@5 d4!2 c4", H: "f4 a4!2 g4 f4 a4 db4 a3", I: "a3 d4 e4 f4 e4@4", J: "a4@4 a4 d4!2 c5", K: "a3 g3", L: "f4 d4",
  M: "e4 g4@2 g4 c4 e4@2 e4", N: "f3 c4@2 c4 f3 f4 a4 f4", O: "g3 e4@2 e4 bb3 g4 bb4@2", P: "a3 e4 a4 e4 a3@2 ~@2",
  Q: "d4!2", R: "d4 g4 f4@2", S: "d4@2 f4!2", T: "g4 d4 g3 d4", U: "g3 d4 g4 bb4 d5 ~ d4 e4", V: "f4", W: "a3!2",
  X: "d4 a3", Y: "g3 eb4@2 eb4 bb3 g4 bb4@2", Z: "e5", AA: "a3@2 d4 ~", AB: "bb4@4 bb4 g4!2 db5", AC: "a4@4 ~ d4!2 c4",
  AD: "d4@3 ~",
})).s("gm_clarinet").gain(0.25)

// other · violin
const violin = note("<~@23 A B C D E F G H I J K L M N O P Q R O@2 S T U V W X Y Z AA>".pickRestart({
  A: "~@5 a4 d5 f5", B: "e5 d5 f5 d5 e5 d5 bb4 c5", C: "a4@6 d5 f5", D: "e5 d5 f5 d5 e5 d5 a4 ab4",
  E: "g4@4 ~ g4 bb4 db5", F: "e5@5 g4 bb4 db5", G: "d5@5 d4 f4 c5", H: "bb4 a4 c5 bb4!2 a4!2 db4", I: "d4@5 ~@3",
  J: "c5@4 bb4@2 g4 bb4", K: "f4@2 e4@2 d4 a4 c5 a4", L: "eb4@4 d4 g4 bb4 d5", M: "db4 ~", N: "~ a4@2 a4 ~ bb4@2 bb4",
  O: "~ a4@2 a4 ~ a4@2 a4", P: "~ a4@2 a4 ~ d5@2 d5", Q: "~ d5@2 d5 ~ d5@2 d5", R: "~ db5@2 db5 ~ db5@2 db5",
  S: "a4 ~@3", T: "d4!2", U: "d4 g4 f4@2", V: "d4@2 f4!2", W: "g4@2 d4@2 g4@2 d4 e4", X: "g3 d4 g4 bb4 g4 ~ d4 e4",
  Y: "d4 a4 d5 f5 d5 ~@3", Z: "a4 g4", AA: "a4@3 ~",
})).s("gm_violin").gain(0.4)

// other · violin · soft notes
const violin_soft = note("<~@3 A@2 B C D E F G A@2 B C D E H G I J K L M ~@28>".pickRestart({
  A: "d4!2", B: "d4 g4 f4@2", C: "d4@2 f4!2", D: "g4@2 d4@2 g4@2 d4 e4", E: "g3 d4 g4 bb4 g4 ~ d4 e4",
  F: "d4 a3 d4 f4 d4 ~@3", G: "a3!2", H: "d4 a4 d5 f5 d5 ~@3", I: "d4 a4", J: "bb4@4 bb4@2 g4 bb4", K: "a4",
  L: "bb4@4 bb4@2 bb4 ab4", M: "a4 ~",
})).s("gm_violin").gain(0.2)

// other · pizzicato strings
const pizzicato_strings = note("<~@36 A B C B D B@2 E ~@8>".pickRestart({
  A: "~ d4@2 d4 ~ e4@2 e4", B: "~ d4@2 d4 ~ d4@2 d4", C: "~ d4@2 d4 ~ g4@2 g4", D: "~ db4@2 db4 ~ db4@2 db4",
  E: "d4 ~@3",
})).s("gm_pizzicato_strings").gain(0.4)

// other · pizzicato strings
const pizzicato_strings_2 = note("<~@36 A B C D E B@2 F ~@8>".pickRestart({
  A: "~ a4@2 a4 ~ bb4@2 bb4", B: "~ a4@2 a4 ~ a4@2 a4", C: "~ a4@2 a4 ~ d5@2 d5", D: "~ d5@2 d5 ~ d5@2 d5",
  E: "~ db5@2 db5 ~ db5@2 db5", F: "a4 ~@3",
})).s("gm_pizzicato_strings").gain(0.45)

// other · cello · "Violoncelle"
const cello = note(`<
  ~@7 A B C D E F G H I B J K L M N O P ~@3 Q R S T U V W X Y Z AA AB AC AD AE AF AG F G H I AH AI K AJ
>`.pickRestart({
  A: "~@4 bb3@2 d4 e4", B: "bb3@5 g3!2 db4", C: "a3@5 d3!2 c3", D: "f3 a3!2 g3 f3 a3 db3 a2", E: "a3 d4 e4 f4 e4@4",
  F: "a3 bb3", G: "a3 g3 f3@2", H: "a3@2 d4 f3", I: "bb3@2 ~@2 bb3@2 d4 e4", J: "a3@4 a3 d3!2 c4", K: "a3 g3",
  L: "f4 d4", M: "e3 g3@2 g3 c3 e3@2 e3", N: "f2 c3@2 c3 f2 f3 a3 f3", O: "g2 e3@2 e3 bb2 g3 bb3@2",
  P: "a2 e3 a3 e3 a2@2 ~@2", Q: "~@3 d3", R: "g2 d3 g3 bb3 d4 ~ d3 e3", S: "f4", T: "a3!2", U: "d4 a3",
  V: "e4 g4@2 g4 c4 e4@2 e4", W: "f3 c4@2 c4 f3 f4 a3 f4", X: "g3 eb4@2 eb4 bb3 g4 bb3@2", Y: "a3 e4 bb3 e4 a3!2 d4 f4",
  Z: "e4 d4 f4 d4 e4 d4 bb3 c4", AA: "a3@4 ~ a3 d4 f4", AB: "e4 d4 f4 d4 e4 d4 a3 ab3", AC: "g3@4 ~ g3 bb3 d4",
  AD: "e4@5 g3 bb3 db4", AE: "d4@4 ~ d3 f3 c4", AF: "bb3 a3 c4 bb3!2 a3!2 db3", AG: "d3 ~@3", AH: "bb3@4 bb3 g3!2 db4",
  AI: "a3@4 ~ d4!2 c4", AJ: "d4@3 ~",
})).s("gm_cello").gain(0.3)

// other · cello · "Violoncelle" · soft notes
const cello_soft = note("<~ A B@2 C D E F ~@16 G H I J ~@24>".pickRestart({
  A: "~ f3 e3 d3", B: "~ d4 f4 d4 e4@4", C: "a3 bb3", D: "a3 g3 f3@2", E: "a3@2 d4 f3", F: "bb3 ~@3", G: "d3!2",
  H: "d3 g3 f3@2", I: "d3@2 f3!2", J: "g3 d3 g2 ~",
})).s("gm_cello").gain(0.2)

// bass · contrabass
const bass = note(`<
  A@5 B C D E F G H@2 B I J K L G M N O P Q R S T U V W X Y Z AA AB AC ~@8 A AD I J K L AE AF
>`.pickRestart({
  A: "d2!2", B: "d3 g3 f3@2", C: "d3@2 f3!2", D: "g3@2 d3@2 g3@2 d3 e3", E: "g2 d3 g3 bb3 g3 ~ d3 e3",
  F: "d3 a2 d3 f3 d3 ~@3", G: "a2!2", H: "d3!2", I: "d2@2 f2!2", J: "g2@2 d2@2 g2@2 d2 e2",
  K: "g1 d2 g2 bb2 g2 ~ d2 e2", L: "d2 a2 d3 f3 d3 ~@3", M: "d2 a2", N: "bb2@4 bb2@2 g2 bb2", O: "a2",
  P: "bb2@4 bb2@2 bb2 ab2", Q: "a2@4 ~ a2 d3 f3", R: "e3 d3 f3 d3 e3 d3 bb2 c3", S: "a2@6 d3 f3",
  T: "e3 d3 f3 d3 e3 d3 a2 ab2", U: "g2@4 ~ g2 bb2 db3", V: "e3@5 g2 bb2 db3", W: "d3@5 d2 f2 c3",
  X: "bb2 a2 c3 bb2!2 a2!2 db2", Y: "d2@5 ~@3", Z: "c3@4 bb2@2 g2 bb2", AA: "f2@2 e2@2 d2 a2 c3 a2",
  AB: "eb2@4 d2 g2 bb2 d3", AC: "db3 ~", AD: "d2 g2 f2@2", AE: "a2 g2", AF: "a2@3 ~",
})).s("gm_contrabass").gain(0.4)

// bass · acoustic bass
const bass_2 = note("<~@36 [d2!2]!2 [d2 f2] [g2!2]!2 [d2!2] [a2 db3] [d3 ~@3] ~@8>").s("gm_acoustic_bass").gain(0.4)

// chords · piano
const piano = note(`<
  A B C D E F G H I J K L E F G H I J K M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK E F G AL AM AN K AO
>`.pickRestart({
  A: "d2 d3 f3 a2 e3@2 d3@2, ~ bb2", B: "d2 [d3,d4] f3 a2 e3@2 d3@2, ~ [f4,a4] [bb2,d4,a4]@2",
  C: "d2 [d3,d4] [f3,a4] [a2,f4] e3@2 d3@2, ~ [bb2,g4]", D: "d2 [d3,d4] [f3,a4] [a2,f4] g4 a4 d5 f5, ~ [bb2,d3]",
  E: "[d2,e5] [a2,d5] f5 d5 [d2,e5] [bb2,d5] bb4 c5, ~ f3 ~ g3", F: "d2 d3 e3 f3 a3 [f3,a4] d5 f5, a4@2 ~ e3",
  G: "[d2,e5] [a2,d5] [f3,f5] [a2,d5] [f2,e5] d5 a4 ab4, ~@5 a2@3", // Dsus2 D5 F D5 Fmaj7
  H: "g2@2 d3 g3 bb3@2 d4@2 [bb3,d4,g4]@2 [d3,g4]@2 bb4@2 db5@2, g4@2 ~ bb3", // Gm G5
  I: "g2 d3 g3 a3 bb3 [d3,g4] bb4 db5, e5@9 ~@3 d4@4", J: "d2 d3 e3 f3 d2 d4 f4 c5, d5@4 ~ d3@3",
  K: "[a2,bb4] [d3,a4] c5 bb4!2 a4!2 db4, ~ f3 a2!2", L: "d2 a2 f3 a2 [a2,d3,a3] [d3,a4] [f3,d5] [a3,f5], d4 ~",
  M: "~@5 d5!2 db5, [a3,d4]@15 ~", // D5
  N: "~ g4 c5 d5 ~ bb4 d5 bb4, [e3,g3] [c3,e3], c5 ~@3 [g4,bb4,e5] ~@3, ~ [c4,e4]@7 ~ [g3,bb3]@7", // Em C Edim C Gm
  O: "~ f4 a4 c5 f5 a4 c5 a4, [f2,a2], f4 ~@7, ~ [c3,f3]@15", // F F5
  P: "~ g4 bb4 g4 ~ g4 bb4 ab4, [g2,bb2] [bb2,d3], [g4,eb5] ~@3 [bb4,e5] ~@3, ~ [eb3,g3]@7 ~ [e3,g3]@7", // Gm Bb Cm Bbdim Eb Em
  Q: "d3 a3 f3 a3 [f3,a3,d4] a4 d5 f5, d4 ~", R: "[d3,e5] [a3,d5] f5 d5 [d3,e5] [bb3,d5] bb4 c5, ~ f4 ~ g4",
  S: "d3 a3 e4 f4 ~ a4 d5 f5, a4@2 f4 d3", T: "[d3,e5] [a3,d5] f5 d5 [f2,e5] [d3,d5] a4 ab4, ~ f4 ~ a3",
  U: "g2@2 d3 g3 bb3@2 d4@2 ~@2 g4@2 [bb3,bb4]@2 [e4,db5]@2, g4@2 g3 ~", V: "g2 d3 g3 a3 ~ g4 bb4 db5, e5 bb3",
  W: "d2 d3 e3 f3 a3 [d3,d4] f4 c5, d5@2 ~ d4", X: "bb4 a4 c5 bb4!2 a4!2 db4, [a2,a3]@2 [a2,g3] a2",
  Y: "d2 a2 ~@3 d5!2 db5, d4@9 ~@7, ~@4 f3@11 ~",
  Z: "~ g5 c6 d5 ~ bb5 d6 bb5, [e3,g3] [c3,e3], e5 ~@3 c5 ~@3, ~ [c4,e4]@7 ~ [g3,bb3]@7", // Em C Gm
  AA: "~ c5 a5 c6 f6 a5 c6 a5, [f2,a2], f4 ~@7, ~ [c3,f3]@15", // F F5
  AB: "~ eb5 bb5@2 ~ g5 bb5 ab5, [g2,bb2] [bb2,d3], g4 ~@3 [bb4,e5] ~@3, ~ [eb3,g3]@7 ~ [e3,g3]@7", // Gm Bb Bbdim Eb Em
  AC: "~ e5@4 a4 d5@2, [a2,db3] ~, a4 ~@7, ~ [e3,a3]@7 ~@8", // A A5
  AD: "[d2,d4] [a2,a3] [f3,d4,f4]@2 d2 [bb2,bb3] [g3,d4,g4]@2", // D A Dm Bb G5
  AE: "d2 [d3,d4] [e3,e4] [f3,f4] a3 f3 [e3,d4]@2, ~@2 a4 ~", // D E F E7
  AF: "d2 [a2,d4] [f3,a3,f4,a4]@2 [d3,bb3,d4,g4,bb4]@2 [d3,a3,d4,f4,a4]@2", // D5 F Gm Dm
  AG: "[d3,e4]@2 [f3,f4] [d3,d4] [bb2,d3,g3] d3 [bb2,bb3]@2, bb3 g4, ~@2 bb3 ~", // Dsus2 F D Gm Bb
  AH: "g2 d3 [g3,bb3] [a3,d4] [bb3,g4]@2 [g3,bb3]@2", AI: "d2 d3 [e3,a3] [f3,d4] [a3,f4]@2 [d3,d4]@2",
  AJ: "[a2,d4] [d3,a3] e4 f4 [a2,d4,e4]@2 a2 db3, ~ f3 ~ [db4,e4]", AK: "d3 a3 f4 a4 [f4,a4,d5] ~@3, d4@15 ~",
  AL: "g2@2 d3 g3 bb3@2 d4@2 [bb3,d4,g4]@2 [d3,g4]@2 bb4@2 d5@2, g4@2 ~ bb3", // Gm G5
  AM: "g2@2 d3@2 g3@2 a3@2 bb3@2 d3@2 ~@2 f5 e5, e5@9 ~ g5@4 ~@2, ~@3 d4", AN: "d2 d3 e3 f3 d2 d4 f4 c5, f5@4 ~ d3@3",
  AO: "d4@2 f4@2 a4@2 d5@2 f5@2 a5@2 ~ [a5,d6]@3, [d2,a2,d3]@11 ~ [d2,d3,d5,f5]@4", // D5 Dm
})).s("gm_piano").gain(0.4)

stack(
  oboe, clarinet, violin, violin_soft, pizzicato_strings, pizzicato_strings_2, cello, cello_soft, bass, bass_2, piano
)