Strudelify

Routine

Alan Walker

KeyF majorTempo120 bpm
0:00/0:00
// Routine — Alan Walker
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3328466; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 87 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "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.

// chords · piano · "Klavir"
const piano = note(`<
  A B@2 C D E F G D E F H I J K L M N O P Q R Q R S T S U V W V X V W V X Y J K L M N Z AA AB AC AD AA AB AE Q R Q R S T
  S U V W V X V W V AF V AG V AG AH AI AJ AK AL AK AL AK AM AK AL AK AN AK AO AK AN
>`.pickRestart({
  A: "a5@11 ~ f5@4, [a3,d4,f4]@15 ~", // Dm
  B: "[c6@8 ~@4 f4 g4 ~@8 c5@6 e4 f4 g4@2, [bb3,d4,f4]@11 ~@3 a4@8 ~@6 bb5@4, ~@8 bb5@8 [c4,f4,a5]@11 ~@5]/2", // Bb F
  C: "e5 bb5, [c4,e4,g4]@15 ~", D: "d3 [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4], a5@11 ~ f5@4",
  E: "bb2 [f3,bb3] ~ [f3,bb3] ~ [f3,bb3] ~ [f3,bb3], c6 bb5", // Bb5
  F: "f3 [a3,c4] ~ [a3,c4] ~ [a3,c4] ~ [a3,c4], a5@11 ~ bb5@4", G: "c3 [g3,c4] ~ [g3,c4] ~ [g3,c4] ~ [g3,c4], e5 bb5",
  H: "c3@2 [g3,c4]@2 ~@2 [g3,c4]@2 bb5@2 ~ a5 g5 f5 e5@2, e5 ~", I: "d5 a4 f5 a4@4 ~, d3@15 ~",
  J: "~ f4 d5 c5@4 ~, bb2@15 ~", K: "~ a4 c5 a4@4 ~, f3@15 ~", L: "~ g4 c5 g4@4 ~, c3@15 ~",
  M: "f5 f5@2 e5, [d3,f3]@15 ~", N: "d5 c5, [bb2,f3]@15 ~", O: "~ a4 c5 a4@4 ~, [f3,a3]@15 ~",
  P: "e5@2 d5 e5@2 f5@3, [c3,g3]@15 ~", Q: "d3 a3 f4 a3 bb2 f3 d4 c4, d5@4 d5@11 ~",
  R: "f3 a3 c4 a3 c3 g3 c4 g3, a4@4 a4@11 ~",
  S: "[d3,d5]@2 ~ c5 f4@2 a3@2 f5 [d5,e5] a3@2 f4@2 a3@2, ~@2 a3@2 d5 ~ d5 ~ d3@2 c5 ~ a4 ~ c5 ~", // D Dsus2
  T: "d3 a3 f4 a3 d3 a3 f4 a3, a4 ~", U: "a4@2 c5 f5 f5@2 f5 g5!3 a5 g5 f5 e5!3",
  V: "[d3,d5]@2 ~ c5 d5 ~ [a3,d4]@2 f5 [d5,e5] [f3,bb3]@2 a4 ~ [f3,bb3]@2, ~@2 [a3,d4]@2 ~@2 d5 ~ bb2@2 c5 ~@3 c5 ~", // D D5 Dsus2 Bb5 D5
  W: "[f3,a4]@2 c5 f5 f5@2 f5 g5!3 a5 g5 f5 e5!3, ~ [a3,c4] ~ [a3,c4] c3 [g3,c4] ~ [g3,c4]", // F Am C5
  X: "[f3,a4]@2 c5 f5 f5@2 f5 g5 c3@2 [g3,c4]@2 d5 ~ [g3,c4]@2, ~@2 [a3,c4]@2 ~@2 [a3,c4]@2 g5 ~ a5 ~@3 e5 ~", // F C5 Am
  Y: "~ a4 f5 a4@4 ~, d3@15 ~", Z: "d3 a3 f4 ~@3 g5@2, a5@11 ~@5, ~@3 a3@4 ~",
  AA: "bb2 f3 d4 ~ f5@2 c6@2, f5 ~, ~@3 c4@4 ~", AB: "[f3,a5]@2 ~ bb5 c4@2 ~@6 f5@4, ~ a3 a5@4 ~@2, ~@3 a3@4 ~",
  AC: "c3 g3 c4 ~ f5@2 c6@2, g5 ~, ~@3 g3@4 ~", AD: "d3@2 a3@2 f4@2 ~@4 f5@2 d5@3 e5, a5 ~, ~@3 a3@4 ~",
  AE: "c3@2 g3@2 c4@2 ~@5 a5 g5 f5 e5@2, g5 ~, ~@3 g3@4 ~",
  AF: "[d3,a4]@2 ~ c5 f5 ~ [a3,c4]@2 g5 [e5,f5] d5 ~ d5@2 ~@2, ~@2 [a3,c4]@2 ~@2 f5 ~@9", // D5 Am Fmaj7 Am
  AG: "[d3,a4]@2 ~ c5 f5 ~ [a3,c4]@2 g5 [e5,f5] [g3,c4]@2 d5@2 [g3,c4]@2, ~@2 [a3,c4]@2 ~@2 f5 ~ c3@2 d5 ~@5", // D5 Am Fmaj7 C5 Am
  AH: "d3 [a3,d4] ~ [a3,d4] bb2 [f3,bb3] ~ [f3,bb3], d5 ~", AI: "d3 [a3,c4] ~ [a3,c4] c3 [g3,c4] ~ [g3,c4], a4 ~",
  AJ: "d3 [a3,d4] ~ [a3,d4] bb2 [f3,bb3] f5 [a3,d4,gb5], d5@11 ~@5", // D5 Bb5 D
  AK: "[gb3,gb5]@2 ~ e5 gb5 ~ [db4,gb4]@2 a5 [gb5,ab5] [a3,d4]@2 db5 ~ [a3,d4]@2, ~@2 [db4,gb4]@2 ~@2 gb5 ~ d3@2 e5 ~@3 e5 ~", // Gb Gb5 Gbsus2 D5 Gb5
  AL: "[a3,db5]@2 e5 a5 a5@2 a5 b5!3 db6 b5 a5 ab5!3, ~ [db4,e4] ~ [db4,e4] e3 [b3,e4] ~ [b3,e4]", // A Dbm E5
  AM: "[a3,db5]@2 e5 a5 a5@2 a5 b5 e3@2 [b3,e4]@2 gb5 ~ [b3,e4]@2, ~@2 [db4,e4]@2 ~@2 [db4,e4]@2 b5 ~ db6 ~@3 ab5 ~", // A E5 Dbm
  AN: "[gb3,db5]@2 ~ e5 a5 ~ [db4,e4]@2 b5 [ab5,a5] gb5 ~ gb5@2 ~@2, ~@2 [db4,e4]@2 ~@2 a5 ~@9", // Gb5 Dbm Amaj7 Dbm
  AO: "[gb3,db5]@2 ~ e5 a5 ~ [db4,e4]@2 b5 [ab5,a5] [b3,e4]@2 gb5@2 [b3,e4]@2, ~@2 [db4,e4]@2 ~@2 a5 ~ e3@2 gb5 ~@5", // Gb5 Dbm Amaj7 E5 Dbm
})).s("gm_piano").gain(0.4)

// bass · electric bass finger · "Electric Bass"
const bass = note(`<
  ~@4 A B C D A B C E F G H I J K L M N O N O P@3 ~ Q R Q R Q R Q R F G H I S T U V W X U V W X N O N O P@3 ~ Q R Q R Q
  R Q Y Q Z Q Z Q Z AA AB AC AB AC AB AC AB AC AB AD AB AE AB AD
>`.pickRestart({
  A: "d3 [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4]", B: "bb2 [f3,bb3] ~ [f3,bb3] ~ [f3,bb3] ~ [f3,bb3]",
  C: "f3 [a3,c4] ~ [a3,c4] ~ [a3,c4] ~ [a3,c4]", D: "c3 [g3,c4] ~ [g3,c4] ~ [g3,c4] ~ [g3,c4]",
  E: "c3 [g3,c4] ~ [g3,c4] ~@4", F: "d2", G: "bb1", H: "f2", I: "c2", J: "d3", K: "bb2", L: "f3", M: "c3",
  N: "d2 a2 f3 a2 bb1 f2 d3 c3", O: "f2 a2 c3 a2 c2 g2 c3 g2", P: "d2 a2 f3 a2 d2 a2 f3 a2",
  Q: "d2 [a2,d3] ~ [a2,d3] bb1 [f2,bb2] ~ [f2,bb2]", R: "f2 [a2,c3] ~ [a2,c3] c2 [g2,c3] ~ [g2,c3]", S: "[d3,f3]",
  T: "[bb2,f3]", U: "d3 a3 f4 a3@4 ~", V: "bb2 f3 d4 c4@4 ~", W: "f3 a3 c4 a3@4 ~", X: "c3 g3 c4 g3@4 ~",
  Y: "d2 [a2,c3] ~ [a2,c3] ~@4", Z: "d2 [a2,c3] ~ [a2,c3] c2 [g2,c3] ~ [g2,c3]",
  AA: "d2 [a2,d3] ~ [a2,d3] bb1 [f2,bb2] ~ [a2,d3]", AB: "gb2 [db3,gb3] ~ [db3,gb3] d2 [a2,d3] ~ [a2,d3]",
  AC: "a2 [db3,e3] ~ [db3,e3] e2 [b2,e3] ~ [b2,e3]", AD: "gb2 [db3,e3] ~ [db3,e3] ~@4",
  AE: "gb2 [db3,e3] ~ [db3,e3] e2 [b2,e3] ~ [b2,e3]", // Dbm E5
})).s("gm_electric_bass_finger").gain(0.2)

stack(piano, bass)

More by Alan Walker