Strudelify

When You Believe

Stephen Schwartz

KeyE♭ majorTempo60 bpm
0:00/0:00
// When You Believe — Stephen Schwartz
// 60 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: duplicate parts dropped: ch 3 "Alto Saxophone" alto sax (copy of ch 2 "B♭ Clarinet" clarinet)
// note: Transcription provider: pdmx. https://musescore.com/score/4853689; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 66 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  ~@3 A B@2 C D E@2 F G E@2 H I J K B@2 C A B@2 C A L@3 M N@3 O P Q ~@4 R@8 S T@2 U@3 V W X@2 V W Y@2 Z@4
>`.pickRestart({
  A: "gb4 f4", B: "[eb4@6 ab4@2 ab4@2 ab4@3 gb4 db4@8 ~@10]/2", C: "eb4", D: "gb4",
  E: "[~@2 gb4@2 gb4@2 ab4@2 bb4@3 db5 db5@6 gb4@2 db4@3 bb4 ab4@8]/2", F: "~ gb4 ab4 bb4 f4@3 bb3",
  G: "eb4@3 db4 bb3@12", H: "~ gb4 ab4 bb4 db5@3 db4", I: "eb4@3 gb4 gb4@12", J: "gb4!2 db4 bb4 ab4@3 gb4",
  K: "eb4@3 ~", L: "[~@2 ab4@2 ab4@2 bb4@2 c5@3 eb5 eb5@6 ab4@2 eb4@3 c5 bb4@10 ab4@2 bb4@2 c5@2 g4@6 eb4@2]/3",
  M: "f4@3 eb4 c4@12", N: "[~@2 ab4@2 ab4@2 bb4@2 c5@3 eb5 eb5@6 ab4@2 eb4@3 c5 bb4@10 ab4@2 bb4@2 c5@2 eb5@6 eb4@2]/3",
  O: "f4@3 ab4 ab4@12", P: "ab4@2 eb4 c5 bb4@3 ab4", Q: "ab4 ~",
  R: "[bb3@41 db4@41 bb3@41 db4@36 ab3@29 bb3@29 ab3@29 bb3@26 eb4@26 eb4@26 c4@6 c4@3 bb3@2 c4@3 c4@3 eb4@6 c4@5 c4@4 bb3 ~ ab3@11 c4@5 c4@3 bb3@3 c4@3 c4]/8",
  S: "~ eb4@6 c4@5 c4@4 ~ bb3 ab3@11 bb3@8 ab3@3 bb3@3 eb4@3 eb4@2",
  T: "[c4@3 db4@6 db4@2 c4@3 bb3@6 eb4@5 bb3@8 ~ ab3@2 bb3@3 eb4@3 eb4@3 c4@2 db4@8 ~ c4@3 c4@5 bb3@3 g3@3 ab3@5 ab3@3 g3@3 ab3@4 g3 ab3@6 bb3@4]/2",
  U: "[~ bb3@4 ab3 ~ g3@3 ~@5 g3@3 ab3@5 ab3@3 g3@3 ab3@4 g3 ~ ab3@5 bb3@6 db4@4 c4 bb3@3 eb4@5 bb3@3 eb4@6 eb4@3 bb3@2 eb4@9 eb4@4 ~ bb3@4 eb4@12 eb4@24 ~@17]/3",
  V: "~ bb4@6 bb4@6 c5@6 d5@9 f5@3 f5@17", W: "~ bb4@6 f4@9 d5@3 c5@29",
  X: "[~ bb4@6 c5@6 d5@6 a4@18 f4@6 g4@9 f4@3 d4@41]/2", Y: "[~ bb4@6 c5@6 d5@6 f5@18 f4@6 g4@9 bb4@3 bb4@36 ~@5]/2",
  Z: "[~ c5@6 g4@6 e5@6 d5@18 c5@6 c5@48 d4@48 c4@48 ~@5]/4",
})).s("gm_clarinet").gain(0.3)

stack(clarinet)