Strudelify

walking in the air

The Shadows

KeyF majorTempo90 bpm
0:00/0:00
// walking in the air — The Shadows
// 90 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/8 at bar 1, 4/4 at bar 2, 2/4 at bar 42, 4/4 at bar 42, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5981157; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 78 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(90/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 · trombone · "Tenor Trombone"
const trombone = note(`<
  A B@2 C D@2 E F@3 G@2 C D@2 E H@3 I J K L M@2 B@2 C D@2 E H@3 N O P Q R S T U V@2 W@3 X Y@3 Z AA Z AB AC AD@8 AE@3 B@2
  C Q AF E AG@2 AH AI AJ
>`.pickRestart({
  A: "~@7 a3", B: "[d4!2 c4!2 a3@10 ~ a3]/2", C: "d4!2 c4!2 a3@3 f3", D: "[g3@14 ~ g3]/2", E: "bb3!2 a3!2 g3@3 d3",
  F: "[f3!2 e3!2 d3@16 ~@3 a3]/3", G: "[d4!2 c4!2 a3@11 a3]/2", H: "[f3!2 e3!2 d3@18 ~@2]/3",
  I: "c4 bb3 c4 bb3 a3@3 g3", J: "a3 g3 a3 g3 f3@4", K: "f3 e3 f3 e3 d3@3 c3", L: "d3 c3 d3 c3 d3@4",
  M: "[e3@4 g3@10 ~ a3]/2", N: "db3 d3 e3@6", O: "f3 g3 a3@6", P: "b3 c4 d4@4 b3@2", Q: "g3", R: "eb3 f3 g3@6",
  S: "a3 bb3 c4@4 a3@2", T: "d4@3 db4", U: "a3@3 a3 d4!2 c4!2", V: "[a3@10 ~ a3 d4!2 c4!2]/2",
  W: "[a3@3 f3 g3@8 g3@6 ~ g3 bb3!2 a3!2]/3", X: "g3@3 d3 f3!2 e3!2", Y: "[d3@18 ~@2 c4 bb3 c4 bb3]/3",
  Z: "a3@3 g3 a3 g3 a3 g3", AA: "f3@4 c4 bb3 c4 bb3", AB: "f3@4 f3 e3 f3 e3", AC: "d3@3 c4 d4 c4 d4 c4",
  AD: "[bb3@3 g3 a3@16 db3 d3 e3@6 f3 g3 a3@6 b3 c4 d4@4 b3@2 g3@8 eb3 f3 g3@4 ~ g3 a3 bb3 c4@2]/8",
  AE: "[~@2 a3@2 d4@6 db4@2 a3@8 a3@2 ~ a3]/3", AF: "g3@6 ~ g3", AG: "[f3!2 e3!2 d3@8 d3 e3 f3 a3]/2",
  AH: "bb3!2 a3!2 g3@4", AI: "eb4!2 d4!2 c4@4", AJ: "b3",
})).s("gm_trombone").gain(0.3)

// other · trombone · "Tenor Trombone"
const trombone_2 = note(`<
  A B C B D E F@2 G F B C B H E F@2 G F I J@2 K L@2 B C B H E F@2 G F M@3 N O P Q R S T U@2 V F W X Y Z AA AB AC@2 AD@3
  AE AF AG@2 AH@2 AI@2 B C B H E AJ@3 AK AL AJ
>`.pickRestart({
  A: "~@7 c4", B: "d4 c4 c4@2", C: "d4!2 c4!2 a3@4", D: "e4@6 ~ f4", E: "c4!3 d4", F: "d4!2", G: "a3@3 bb3 a3@2 d4@2",
  H: "e4@6 ~ d4", I: "c4!2 c4@2", J: "d4!2 d4@2", K: "d4!3 e4", L: "[e4@14 ~ c4]/2",
  M: "[~@4 db3 d3 e3@4 ~@2 f3 g3 a3@4 ~@2 d4@2 b3@2]/3", N: "g3", O: "eb4 d4 eb4 c4", P: "c4@3 eb4", Q: "d4 bb3 d4 e4",
  R: "db4@3 a3 d4@2 c4@2", S: "c4@4 d4!2 c4!2", T: "a3@2 d4 c4", U: "[c4@4 e4@6 ~ d4 c4@2 c4@2]/2", V: "c4 d4 d4@2",
  W: "d4@4 a3@3 bb3", X: "a3 d4 d4@2", Y: "d4@2 c4!2", Z: "c4@2 d4!2", AA: "d4@2 f3 a3", AB: "c4@2 a3 c4",
  AC: "d4@2 d4!2", AD: "[d4!2 a3@8 ~@2]/3", AE: "db3 d3 e3@4 ~@2", AF: "f3 g3 a3@4 ~@2", AG: "[d4 b3 g3@4 eb4 d4]/2",
  AH: "[eb4 c4 c4@3 eb4 d4 bb3]/2", AI: "[d4@2 e4@2 db4@10 ~ c4]/2", AJ: "d4", AK: "bb3@4 bb3!2 a3!2",
  AL: "g3@4 eb4!2 d4!2",
})).s("gm_trombone").gain(0.3)

// other · trombone · "Tenor Trombone"
const trombone_3 = note(`<
  A B C B D E F G H I B C B D E F G H I J K L M N O B C B D E F G H I P@3 Q R S T U V W X@2 Y Z AA AB AC AD AE AF AG AH
  AI AJ@2 AK AL AM@2 AN@2 AO@2 B C B D E F G N AP AQ AR
>`.pickRestart({
  A: "~@7 c3", B: "d3 e3 f3@2", C: "d3!2 c3!2 a2@4", D: "e3@6 ~ f3", E: "g3 f3 e3 d3", F: "bb2 d3", G: "f3 bb3",
  H: "a2@3 bb2 a2@2 d3@2", I: "f3 d3", J: "c3!2 c3@2", K: "a2!2 a2@2", L: "f3!2 f3@2", M: "f3 gb3 g3 ab3", N: "a3",
  O: "g3@2 f3@2 d3@2 ~ c3", P: "[~@4 a2 b2 db3@4 ~@2 d3 e3 f3@4 ~@2 d3@2 d3@2]/3", Q: "e3", R: "eb3 d3 eb3 c3",
  S: "f3@3 eb3", T: "d3 bb2 ab3 e3", U: "db3@3 a2 d3@2 e3@2", V: "f3@4 d3!2 c3!2", W: "a2@2 d3 e3",
  X: "[f3@4 e3@6 ~ f3 g3@2 f3@2]/2", Y: "e3 d3 bb2@2", Z: "d3 f3", AA: "bb3@4 a2@3 bb2", AB: "a2 d3 f3@2",
  AC: "d3@2 c3!2", AD: "c3@2 a2!2", AE: "a2@2 f2 a2", AF: "c3@2 a2 c3", AG: "f3@2 f3!2", AH: "f3@2 f3 gb3",
  AI: "g3@2 ab3@2 ~ f3 e3 f3", AJ: "[d3@3 ~]/2", AK: "a2 b2 db3@4 ~@2", AL: "d3 e3 f3@4 ~@2",
  AM: "[d3!2 e3@4 eb3 d3]/2", AN: "[eb3 c3 f3@3 eb3 d3 bb2]/2", AO: "[ab3@2 e3@2 db3@10 ~ c3]/2", AP: "g3@4 g3!2 f3!2",
  AQ: "eb3@4 g3!2 f3!2", AR: "d3",
})).s("gm_trombone").gain(0.3)

stack(trombone, trombone_2, trombone_3)

More by The Shadows