Strudelify

arrival of the birds

The Cinematic Orchestra

KeyG♭ majorTempo135 bpm
0:00/0:00
// arrival of the birds — The Cinematic Orchestra
// 135 bpm, 3/4, key Gb 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/5890971; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 107 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(135/3)

// 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 · flute
const flute = note(`<
  ~@15 A ~@4 B C D@2 C E B@2 F G H A I@2 J@2 K I L M N O P@2 N Q P@2 R S T U N Q V@4 W X Y@2 Z@2 AA@2 W X Y@2 Z@2 AB@2
  AC@3 AD U P@2 AE AF AG@2 AH AI AH AI AH AI ~@4 AJ AK@7 AL AM@3
>`.pickRestart({
  A: "f5@3 gb5@2 bb5@5 ~ bb5@5", B: "gb5@3 eb5@2 gb5@3 eb5@3 gb5@2 eb5@3", C: "gb5@3 db5@2 gb5@3 db5@3 gb5@2 db5@3",
  D: "gb5@3 f5@2 gb5@5 ~ gb5@5", E: "gb5@3 f5@2 gb5@3 db5@3 gb5@2 db5@3", F: "gb5@3 f5@2 gb5@3 f5@3 gb5@2 f5@3",
  G: "gb4@3 f4@2 gb4@3 bb4@3 gb4@2 f4@3", H: "gb4@3 f5@2 gb5@3 bb5@3 gb5@2 f5@3",
  I: "gb5@3 eb5@2 gb5@3 bb5@3 gb5@2 eb5@3", J: "ab5@3 eb5@2 ab5@3 b5@3 ab5@2 eb5@3",
  K: "db5@3 eb5@2 gb5@3 bb5@3 gb5@2 eb5@3", L: "b4@3 eb5@2 b4@3 eb5@3 b4@2 eb5@3",
  M: "db5@3 f5@2 db5@3 f5@3 db5@2 f5@3", N: "f5 gb5", O: "bb5 f5", P: "[eb5@15 ~]/2", Q: "bb5@8 f5@3 eb5@2 f5@3",
  R: "f5@10 ~ bb5@5", S: "db6@15 ~", T: "b5@10 ~ bb5@5", U: "f5@15 ~", V: "[eb5@61 ~@3]/4",
  W: "b4@3 f5@2 gb5@3 bb5@3 gb5@2 f5@3", X: "db5@3 f5@2 gb5@3 bb5@3 gb5@2 f5@3", Y: "eb5@3 f5@2 gb5@3 bb5@3 gb5@2 f5@3",
  Z: "gb5@3 ab5@2 bb5@3 db6@3 bb5@2 ab5@3", AA: "gb5@3 ab5@2 bb5@3 eb6@3 bb5@2 ab5@3",
  AB: "b4@3 db5@2 eb5@3 gb5@3 eb5@2 db5@3", AC: "b4@3 db5@2 eb5@3 ab5@3 eb5@2 db5@3", AD: "gb5@15 ~", AE: "db5@15 ~",
  AF: "b4@15 ~", AG: "[bb4@15 ~]/2", AH: "gb4@5 eb4@5 ~ gb4@5", AI: "eb4@5 gb4@5 ~ eb4@5", AJ: "~@11 gb5 ~ f5@3",
  AK: "gb5@3 ~@2 f5@3 gb5@3 ~@2 f5@3", AL: "gb5@3 ~@2 f5@3 gb5@3 ~@3 f5@2",
  AM: "[gb5@3 ~@3 f5@3 gb5@3 ~@3 f5@3 eb5@19 ~@11]/3",
})).s("gm_flute").gain(0.25)

// other · flute
const flute_2 = note(`<
  ~@39 A B C D E B C D E F G H@2 B C I J@2 K L M N@2 O A P@2 L M N@2 O A Q@5 O R S@2 T U T U V W X@4 ~@16
>`.pickRestart({
  A: "db5@15 ~", B: "bb4@3 eb4@2 bb4@3 eb5@3 bb4@2 eb4@3", C: "db5@3 bb4@2 db5@3 bb4@3 db5@2 bb4@3",
  D: "ab4@3 b4@2 eb5@3 ab5@3 eb5@2 b4@3", E: "eb4@3 f4@2 bb4@3 gb4@3 f4@2 eb4@3",
  F: "bb4@3 gb4@2 bb4@3 gb4@3 bb4@2 gb4@3", G: "db5@3 bb4@2 db5@3 f5@3 db5@2 bb4@3",
  H: "b4@3 bb4@2 b4@3 eb5@3 b4@2 gb4@3", I: "ab4@3 bb4@2 b4@3 ab5@3 b4@2 bb4@3", J: "b4@3 bb4@2 b4@3 eb5@3 b4@2 bb4@3",
  K: "b4@3 bb4@2 b4@3 ab4@3 gb4@5", L: "b3@15 ~", M: "db4@15 ~", N: "[eb4@25 ~@2 f4@5]/2", O: "bb4@15 ~",
  P: "[eb5@15 ~]/2", Q: "[eb5@19 ~]/5", R: "ab4@15 ~", S: "[gb4@15 ~]/2", T: "gb5@5 eb5@5 ~ gb5@5",
  U: "eb5@5 gb5@5 ~ eb5@5", V: "gb4@15 ~", W: "f4@15 ~", X: "[eb4@61 ~@3]/4",
})).s("gm_flute").gain(0.3)

// other · flute · soft notes
const flute_soft = note(`<
  ~@3 A ~@3 A ~@3 A ~@3 B C D E@2 C D E@2 F@2 G@2 H I J I K L M@2 N@2 O ~@52 L P Q@2 L P Q@2 L P Q@2 R@2 S@2
>`.pickRestart({
  A: "f5@3 gb5@2 bb5@5 ~ bb5@5", B: "f4@3 gb4@2 bb4@5 ~ bb4@5", C: "gb5@15 ~", D: "f5@15 ~", E: "[eb5@15 ~]/2",
  F: "[gb4@15 ~]/2", G: "[f4@15 ~]/2", H: "bb4@15 ~", I: "db5@15 ~", J: "eb5@15 ~", K: "eb4@15 ~", L: "gb4@15 ~",
  M: "[ab4@15 ~]/2", N: "[bb4@15 ~]/2", O: "b4@15 ~", P: "f4@15 ~", Q: "[eb4@15 ~]/2", R: "eb4/2",
  S: "[~@2 eb4@19 ~@11]/2",
})).s("gm_flute").gain(0.2)

stack(flute, flute_2, flute_soft)

More by The Cinematic Orchestra