Strudelify

Believe

Alan Silvestri

KeyD majorTempo80 bpm
0:00/0:00
// Believe — Alan Silvestri
// 80 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (2/2 at bar 1, 2/4 at bar 11, 4/4 at bar 27, 2/4 at bar 46, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5847109; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 64 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "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 · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  A@4 B A@4 B ~@2 C@2 D E F G H I J K L@3 M N@5 O ~ O P Q R ~ S T U V W X Y@2 Z@2 AA AB@4 AC@3 AD@4 AE@3 AF
>`.pickRestart({
  A: "[c5@15 g5@15 b4@15 g5@15 c5@7 ~ d5@7 e5@7 ~ g4@7 b4@15 g4@15 ~@15 d5@7 ~ a4@7 b4@15 f#4@15 ~@12]/4",
  B: "~@3 d5@7 ~ e5@3 f5@4 e5@15 d5@15",
  C: "[~@14 c4@3 ~@7 c4@34 ~@7 f4@2 ~@2 g4@5 g4 g4@2 ~@2 c5@2 ~ f4@2 ~@2 f4@2 ~ f4@2 ~@5]/2",
  D: "g4@5 g4@2 g4@2 ~ c5@2 ~@2 f4@7 ~@3 f4@2 ~ e4@3 ~ g4@2 ~ c5@5 b4@2 a4@3 ~ b4@2 ~",
  E: "c5@2 ~ d5@2 ~@2 g4@17 ~@7 f4@2 ~ g4@5 g4@2 g4@2 ~@2 c5@2 ~",
  F: "f4@2 ~ f4@2 ~@2 f4@2 ~@5 g4@5 g4@2 g4@2 ~ c5@2 ~ d5@7 a4@2 b4@2 ~ d5@2 e5@5 d#5@2, ~@19 c5 ~@4",
  G: "e5@5 d#5@2 e5@2 ~ g4@2 ~@2 c5@2 ~ d5@2 ~@2 e5@2 ~ c5@7 d5@2 ~ c5@7 ~@7",
  H: "a#4@2 ~ a#4@3 ~@4 a#4@2 ~@2 a#4@2 ~ a#4@3 ~@4 a#4@2 ~ a#4@2 ~@2 a#4@3 ~@4 a#4@2 ~ a#4@3 ~@4", I: "a#4 ~@15",
  J: "a#4@2 ~ c5@2 ~@2 d#5@2 ~ d#5@2 f5@2 g5@2 ~ g5@2 ~@2 g5@5 ~ g5@10 ~@4 g4@5 g4@2, ~@9 d5@2 ~@15 f5@2 ~@20",
  K: "g4@2 ~ c5@2 ~@2 f4@2 ~ f4@2 ~@2 f4@2 ~@5 g4@5 g4 g4@2 ~@2 c5@2 ~ d5@7 a4@2 b4@2 ~ d5@2, ~@45 c5@2 ~",
  L: "[e5@5 d#5@2 e5@5 d#5@2 e5@2 ~ g4@2 ~@2 c5@3 d5@3 e5@2 ~@2 c5@24 d#5@2 ~ c5@24 e5@7 c5@14 d5@7 c5@3 ~@7 c4@17 ~@7]/3",
  M: "~@41 c4@2 d4@2 ~ f4@2, ~@45 e4@2 ~", N: "[g4@19 ~]/5", O: "g4", P: "~@14 d4 e4",
  Q: "f4@2 f4@2 f4@3 e4 e4@2 d4@4 c4 d4", R: "e4 d4 e4 g4 c4@4", S: "~@7 f4", T: "a#4 f4 c5 f4 d5@3 f4",
  U: "a#4 f4 d#4 f4 d4@3 f4", V: "a#4 f4 c5 f5 d5@3 f4", W: "a#4 f4 d#4 f4 d4@4", X: "d#5@5 f4 a4 c5", Y: "[f5@3 ~]/2",
  Z: "[g4@6 f4@6 d#4@9 d4@3 d4@31 ~@6 d4@2 d#4@3 f4@3 ~@2 a#4@3 ~@2 d#4@3 ~@2 a#4@3 ~@3 d4@3 ~@2 a#4@3 ~]/2",
  AA: "~ d4@10 a#3@21 f4@16",
  AB: "[~@47 f4@5 f5@5 d#5@5 ~ d5@5 c5@5 a#4@5 c5@5 d5@5 ~ f4@5 f5@5 d#5@5 d5@5 ~ c5@5 a#4@5 c5@10 d4@10 ~ d#4@10 f4@21 c5@5 d5@5 ~ a#4@9]/4",
  AC: "[~ g4@5 c5@5 a4@10 ~ f4@5 a4@5 g4@31 ~@6 d4@5 d#4@3 d#4@2 f4@3 ~@3 g4@3 ~@2 f4@3 ~@2 g4@3 ~@2 a4@3 ~@2 a#4@3 ~@3 c5@3 ~@2 f4@5 f5@3 ~@2 d#5@3 ~@2 d5@3 ~@3 c5@3 ~@2 a#4@2]/3",
  AD: "[~@3 c5@3 ~@2 a#4@47 f4@5 ~ f5@3 ~@2 d#5@3 ~@2 d5@3 ~@2 c5@3 ~@2 a#4@3 ~@3 c5@3 ~@2 a#4@47 a#4@31 ~@22]/4",
  AE: "[~@30 f4@5 a#4@5 ~ d#4@5 a#4@5 c4@5 a#4@5 ~ d4@10 f4@5 a#4@5 d#4@5 ~ a#4@5 c4@5 a#4@5 d4@10 ~ a#4@30]/3",
  AF: "~ d#4@3 f4@2 g4@3 a4@2 a#4@10 ~@27",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "B♭ Trumpet"
const trumpet_2 = note(`<
  A@4 B A@4 B ~ C ~ D E F G H I J K L M N@2 O P Q R@3 ~ S ~ T ~@4 U V W X Y Z@2 AA@3 AB@2 AC@2 AD@5 AE@2 AF@3 AG
>`.pickRestart({
  A: "[e4@15 c5@15 e4@15 b4@15 e4@7 ~ g4@7 g4@7 ~ c4@7 e4@15 b3@15 ~@15 f4@7 ~ d4@7 f#4@15 d#4@15 ~@12]/4",
  B: "~@3 f4@7 ~ a4@7 a4@15 g4@15", C: "~@7 c4@3 ~@7 c4@31",
  D: "~@17 f4@2 ~@2 e4@5 e4 e4@2 ~@2 e4@2 ~ d4@2 ~@2 d4@2 ~ d4@2 ~@5", E: "e4@5 e4@2 e4@2 ~ e4@2 ~@2 d4@7 ~@27",
  F: "~@31 f4@2 ~ e4@5 e4@2 e4@2 ~@2 e4@2 ~",
  G: "d4@2 ~ d4@2 ~@2 d4@2 ~@5 e4@5 e4@2 e4@2 ~ e4@2 ~ f4@2 ~@2 f4@2 ~@5 e4@2 ~ a4@3 ~@4",
  H: "f4@7 g4@2 ~ g4@2 ~@2 d4@7 f4@2 ~ f4@7 f4@2 ~ e4@7 ~@7",
  I: "d#4@2 ~ d#4@3 ~@4 f4@2 ~@2 f4@2 ~ f4@3 ~@4 d#4@2 ~ d#4@2 ~@2 d#4@3 ~@4 d4@2 ~ f4@3 ~@4",
  J: "d#4@3 ~@4 f#4@7 f4@5 d#4@2 c#4@2 ~ c#4@2 ~ c#4@7 g#4@2 ~@2 g#4@2 ~ g#4@2 g4@2 f4@2 ~",
  K: "a#4@14 c5@2 ~ c5@2 ~@2 c5@5 ~ b4@10 ~ f4@3 e4@5 e4@2, ~@13 c5 ~@10",
  L: "e4@2 ~ e4@2 ~@2 d4@2 ~ d4@2 ~@2 d4@2 ~@5 e4@5 e4 e4@2 ~@2 e4@2 ~ f4@2 ~@2 f4@2 ~@5 e4@2 ~",
  M: "a4@3 ~@4 f4@7 g4@2 ~ g4@2 ~@2 d4@6 a4@2 ~@2 f4@7 f4@2 ~ f4@7",
  N: "[f4@2 ~ g4@2 ~@2 g#4@2 ~ f4@7 f4@2 ~@2 f4@6 f4@2 ~@2 g#4@2 ~ a4@7 f4@14 f4@7 e4@3 ~@24 c4@3 ~@4]/2",
  O: "~@3 c4@17 ~ c4@3 ~@7 c4@17", P: "c4 ~@3", Q: "c4 d4 e4 g4", R: "[e4 d4 c4@9 ~]/3", S: "g4", T: "g4@7 ~",
  U: "d4 f4 d#4 f4 f4@3 f4", V: "d4 f4 c4 f4 a#3@3 f4", W: "d4 f4 c4 f4 f4@3 f4", X: "d4 f4 c4 f4 a#3@3 ~",
  Y: "d#4!3 d4!2 c4 f4 a4", Z: "[a#4@3 ~]/2", AA: "[~@34 c4@10 ~ f4@10 c4@52 a#3@10 ~ c4@26]/3",
  AB: "[d4@3 d#4@2 f4@3 ~@2 a#4@3 ~@3 c5@2 a#4@3 f4@3 ~@2 d#4@3 ~@2 a#4@3 ~@3 a#4@10 d4@10 d#4@10 ~ f4@10 f4@10 ~ d#4@7]/2",
  AC: "[~@3 g4@10 ~ d#4@10 d#4@10 ~@6 f4@5 d#4@5 d4@5 c4@5 ~ a#3@5 c4@5 d4@5 d4@10 ~ d4@9]/2",
  AD: "[~ c4@10 c4@10 ~ a#3@10 a#3@31 ~@6 d4@5 c4@3 c4@2 d4@3 ~@3 d#4@3 ~@2 d4@3 ~@2 d#4@3 ~@2 f4@3 ~@2 g4@3 ~@3 a4@3 ~@2 a#4@42 f4@3 ~@2 a#4@3 ~@2 d#4@3 ~@2 a#4@3 ~@2 d4@3 ~@3 a#4@3 ~@2 d4@10 f4@37 d4@2 d#4@2]/5",
  AE: "[~ f4@3 ~@2 a#4@3 ~@2 c5@3 a#4@3 f4@3 ~@2 d#4@3 ~@2 a#4@3 ~@2 a#3@10 ~ d#4@31 ~@22]/2",
  AF: "[~@5 f5@7 f5@7 f4@5]/3", AG: "~ d#4@5 d#4@5 d4@10 ~@27",
})).s("gm_trumpet").gain(0.4)

// other · french horn · "Horn in F"
const french_horn = note(`<
  A@4 B A@4 B ~ C D@2 E F G H I@2 J K L M@2 N O ~ P Q R S T U V W X Y Z AA AB AA AB AC AD@2 AE@2 AF@2 ~ AG@2 AH@6 AI@4
  AJ
>`.pickRestart({
  A: "[g3@15 e4@15 g3@15 e4@15 g3@7 ~ c4@7 d4@7 ~ g3@7 g3@15 e3@15 ~@15 a3@7 ~ f3@7 d#4@15 b3@15 ~@12]/4",
  B: "~@3 a3@7 ~ d4@7 c4@15 b3@15", C: "~@7 a#3@3 ~@7 a#3@31",
  D: "[~@14 a#3@3 ~@7 a#3@34 ~@11 c4@2 ~ c4@2 ~@5 c4@2 ~ c4@2 ~@2 c4@2 ~@5 c4@2 ~]/2",
  E: "c4@2 ~ c4@2 ~@5 c4@2 ~@2 c4@2 ~ c4@2 ~@5 e4@2 ~@15 c4@2 ~@2 c4@2 ~",
  F: "~@3 e4@2 ~@2 c4@2 ~ c4@2 ~@5 c4@2 ~@2 d4@2 ~ d4@2 ~@5 d4@2 ~ c4@2 ~@2 c4@2 ~@5 c4@2 ~",
  G: "c4@2 ~ c4@2 ~@5 c4@2 ~@2 c4@2 ~ c4@2 ~@5 c4@2 ~ a#3@2 ~@2 a#3@2 ~@5 c4@2 ~ c4@3 ~@4",
  H: "c4@7 c4@2 ~ c4@2 ~@2 c4@7 c4@2 ~ a3@7 b3@2 ~ c4@7 ~@7",
  I: "[d#4@7 d4@5 c4@2 a#3@2 ~ a#3@2 ~@2 a#3@6 g#3@2 ~@2 g#3@2 ~ g#3@2 g3@2 f3@2 ~ g3@3 ~ a#3@10 a#3@7 g#3@7 g#3@6 f#3@7 d#4@3 ~@4 d#4@3 ~@4]/2",
  J: "d#4@2 ~ d#4@2 ~@2 d#4@7 f4@2 ~ f4@2 ~@2 f4@5 ~ g3@14 c4@2 ~@2 c4@2 ~, ~@13 f4 ~@10",
  K: "~@3 c4@2 ~@2 c4@2 ~ c4@2 ~@5 c4@2 ~@2 c4@2 ~ c4@2 ~@5 c4@2 ~ a#3@2 ~@2 a#3@2 ~@5 c4@2 ~",
  L: "c4@3 ~@4 c4@7 c4@2 ~ c4@2 ~@2 c4@6 c4@2 ~@2 a3@7 a3@2 ~ a3@7",
  M: "[a3@2 ~ a3@2 ~@2 c4@2 ~ g#3@7 g#3@2 ~@2 g#3@6 g#3@2 ~@2 c4@2 ~ c4@7 a3@14 b3@7 a#3@3 ~@7 a#3@17 a#3@3 ~@4]/2",
  N: "~@3 a#3@17 ~ a#3@3 ~@7 a#3@17", O: "f3 ~@3", P: "~@6 g4 f4", Q: "e4@2 f4@2 g4@2 g4 f4", R: "e4@2 f4@2 g4@3 g3",
  S: "c4 g3 d4 g3 e4@3 g3", T: "c4 g3 f3 g3 e3@3 g3", U: "c4 g3 d4 g4 e4@3 g3", V: "c4@2 g3@2 f3@2 g3@2 e3@6 f3 g3",
  W: "a3@2 a3@2 a3@3 c4 b3@2 b3@4 a3 b3", X: "c4@2 b3@2 a3@2 g3 c4", Y: "f4@2 e4@2 c4@3 g3 f4@2 e4@2 d4@3 c4",
  Z: "c4@5 ~ a#3@2", AA: "c4@2 a#3@2 d4 c4 a#3 f3", AB: "c4@2 a#3@2 a#3@3 a#3",
  AC: "d#4@2 d#4@2 d#4@2 d4@2 d4@2 c4@4 a#3 c4", AD: "[d4@2 c4@2 d4@2 f4@2 a#3@14 f3@2 d#4@2 d4@2 a#3@3 f3]/2",
  AE: "[d#4@6 d4@6 c4@9 a#3@3 a#3@31 ~@41]/2", AF: "[~@11 a#3@21 f4@63 ~]/2",
  AG: "[~@24 a#3@5 a3@5 f3@5 ~ f4@5 d#4@5 d4@5 c4@5 ~ a#3@5 c4@5 d4@5 a3@10 ~ g3@9]/2",
  AH: "[~ c4@10 c4@10 ~ a#3@10 a#3@31 ~@6 d4@5 d#4@3 d#4@2 d4@3 ~@3 d#4@3 ~@2 f4@3 ~@2 g4@3 ~@2 a3@3 ~@2 a#3@3 ~@3 c4@3 ~@2 a#3@21 f4@62 a#3@21 f4@63 f3@5]/6",
  AI: "[f4@5 d#4@5 d4@5 ~ c4@5 a#3@5 c4@10 ~ f3@5 f4@5 d#4@5 d4@5 c4@5 ~ a#3@5 c4@10 c4@42 c4@42 d4@30]/4",
  AJ: "~ a#3@5 a#3@5 a#3@10 ~@27",
})).s("gm_french_horn").gain(0.4)

// bass · tuba
const bass = note(`<
  A@4 B A@4 B C D C E F G H I J K L M N O P D Q ~@4 R@3 S T U V W X@4 Y Z@2 AA@5 AB@2 AC@3 AD@7 AE
>`.pickRestart({
  A: "[c3@5 b2@5 c3@5 b2@5 d3@5 d#3@5 d3@2]/4", B: "~ d3@5 f2@5 g2@5",
  C: "c3@2 ~ b2@2 ~@2 a#2@2 ~ a2@2 ~@2 c3@2 ~ b2@2 ~@2 a#2@2 ~ a2@2 ~ c3@2 ~@2 b2@2 ~ a#2@2 ~@2 a2@2 ~ c3@2 ~@2 b2@2 ~",
  D: "a#2@2 ~ a2@2 ~@2 c3@2 ~ b2@2 ~@2 a#2@2 ~ a2@2 ~@2 c3@2 ~ b2@2 ~ a#2@2 ~@2 a2@2 ~ c3@2 ~@2 b2@2 ~ a#2@2 ~@2 a2@2 ~",
  E: "a#2@2 ~ a2@2 ~@2 c3@2 ~ b2@2 ~@2 a#2@2 ~ a2@2 ~@2 g2@3 ~@3 g2@3 ~@4 g2@3 ~@4 g2@3 ~@4",
  F: "g2@3 ~@4 g2@3 ~@4 a2@7 g#2@6 c3@3 ~@4 b2@3 ~@4 a2@3 ~@4",
  G: "d3@3 ~@4 g2@3 ~@4 a2@7 a#2@6 b2@7 c3@3 ~@4 c3@3 ~@4", H: "c3@3 ~@4 c3@3 ~@4 c3@3 ~@4 c3@3 ~@3 g2@7 c2@7 f2@3 ~@4",
  I: "g#2@7 g2@2 ~ g2@2 ~@2 f#2@7 g2@3 ~@3 g2@3 ~@4 c2@7 c3@7",
  J: "g#2@3 ~@4 g#2@3 ~@4 g2@3 ~@4 c3@3 ~@3 f2@3 ~@4 a#2@3 ~@4 d#2@3 ~@4",
  K: "d#3@2 ~ a#2@2 ~@2 b2@7 b2@3 ~@4 a#2@3 ~@3 d#2@7 f2@3 ~@4 f2@3 ~@4",
  L: "a#2@2 ~ a#2@2 ~@2 a#2@7 d2@3 ~@4 d2@3 ~@3 d2@7 g2@7 c3@3 ~@4",
  M: "c3@3 ~@4 c3@3 ~@4 c3@3 ~@4 c3@3 ~@3 c3@3 ~@4 g2@7 c2@7",
  N: "f2@3 ~@4 g#2@7 g2@2 ~ g2@2 ~@2 f#2@6 d2@3 ~@4 d2@3 ~@4 d2@7",
  O: "d2@2 ~ e2@2 ~@2 f2@3 ~@4 f2@3 ~@4 f2@6 f2@2 ~@2 f2@2 ~ d2@7 d2@7",
  P: "g2@14 c3@2 ~ b2@2 ~@2 a#2@2 ~ a2@2 ~ c3@2 ~@2 b2@2 ~ a#2@2 ~@2 a2@2 ~ c3@2 ~@2 b2@2 ~", Q: "g2 ~@3", R: "c3",
  S: "c3@6 ~ c3", T: "d3@3 c3 b2@4", U: "c3 e3 f3 e3", V: "d3 g2", W: "c3@4 c3 ~ f2@2", X: "a#2@4 a#2 a#2@2 a#2",
  Y: "c3@3 a#2 a2@2 f2@2", Z: "[a#2 d2 d#2@4 c2@2]/2",
  AA: "[f2@24 a#2@83 a#2@42 a#2@42 a#2@10 c3@10 ~ d3@10 a#2@10 ~ d#3@7]/5",
  AB: "[~@3 d#3@5 d3@5 ~ c3@10 f2@10 a#2@10 ~ c3@10 d3@16 d3@5 f#2@10 ~ g2@9]/2",
  AC: "[~ e2@10 f2@10 ~ d2@10 d#2@31 ~@11 d#2@3 ~@2 d2@3 ~@3 d#2@3 ~@2 f2@3 ~@2 g2@3 ~@2 f2@3 ~@2 g2@3 ~@3 a2@3 ~@2 a#2@10 c3@10 ~ f3@7]/3",
  AD: "[~@3 a#2@52 a#2@10 ~ c3@10 f3@10 ~ a#2@52 f2@31 ~@5 f2@3 f2@3 f2@41 a#2@42 a#2@42 a#2@30]/7",
  AE: "~ f2@5 f2@5 a#1@10 ~@27",
})).s("gm_tuba").gain(0.4)

stack(trumpet, trumpet_2, french_horn, bass)

More by Alan Silvestri