Strudelify
KeyC♭ majorTempo138 bpm
0:00/0:00
// run — Awolnation
// 138 bpm, 4/4, key Cb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 2 "B♭ Clarinet" clarinet (copy of ch 1 "Flute" flute)
// note: Transcription provider: pdmx. https://musescore.com/score/2877236; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 116 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(138/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// 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("<~@48 A B C@2 D@2 C E A B C@2 D@2 C E ~@3 F ~@8 G@7 ~@32 G>".pickRestart({
  A: "b4 ab4 b4 ab4 eb5 ab4 b4 ab4", B: "eb5 ab4 b4 ab4 eb5 ab4 b4 ab4", C: "bb4 gb4 db5 gb4 bb4 gb4 db5 gb4",
  D: "ab4 e4 b4 e4 ab4 e4 b4 e4", E: "bb4 f4 db5 f4 bb4 f4 db5 f4", F: "~@3 bb4", G: "~@2 bb4 ~",
})).s("gm_flute").gain(0.3)

// other · flute · soft notes
const flute_soft = note(`<
  ~@16
  [b4 ab4 b4 ab4 eb5 ab4 b4 ab4]
  [eb5 ab4 b4 ab4 eb5 ab4 b4 ab4]
  [bb4 gb4 db5 gb4 bb4 gb4 db5 gb4]!2
  [ab4 e4 b4 e4 ab4 e4 b4 e4]!2
  [bb4 gb4 db5 gb4 bb4 gb4 db5 gb4]
  [bb4 f4 db5 f4 bb4 f4 db5 f4]
  ~@92
>`).s("gm_flute").gain(0.2)

// bass · clarinet · "Bass Clarinet"
const bass = note(`<
  ~@16 A B C D A B C E F G F G F G F H ~@35 I J K J K J K J K J K J K J K J L ~@2 M N ~@2 M O ~@16 J K@3 P K@3
>`.pickRestart({
  A: "ab2@2 ~@2 ab2@2 ~ ab2", B: "ab2!3 ~", C: "ab2!5 ab2@2 ~", D: "ab2!2 ab2@2 ab2@2 ~@2", E: "g2!2 g2@2 g2@2 ~ b2",
  F: "b2!8", G: "b2@2 ~@5 b2", H: "bb2 ~@3", I: "~@3 ab3", J: "a2@2 ab2!6", K: "ab2!8", L: "ab2!5 ~@3", M: "~ ab3 ~@2",
  N: "gb3 ~@3", O: "gb3 ~ eb3 ~", P: "a2 ~ ab2!6",
})).s("gm_electric_bass_finger").gain(0.5)

// other · clarinet · "Contra-alto Clarinet"
const clarinet = note("<~@84 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 ~@8>".pickRestart({
  A: "a1@2 ab1!2", B: "ab1!4",
})).s("gm_clarinet").gain(0.5)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  ~@8 A@7 B A@7 B ~@7 C A@7 B A@7 B A@7 B A@7 B ~@3 D E F E F E F E F E F E F E F E G ~@2 H I ~@2 H J ~@8 E F@3 E F@3 E
  F@3 K F@3
>`.pickRestart({
  A: "ab3!8", B: "g3!8", C: "~@5 ab3!3", D: "~@3 ab3", E: "a2@2 ab2!6", F: "ab2!8", G: "ab2!5 ~@3", H: "~ ab3 ~@2",
  I: "gb3 ~@3", J: "gb3 ~ eb3 ~", K: "a2 ~ ab2!6",
})).s("gm_tenor_sax").gain(0.4)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  ~@23 A B C B C B C B D ~@32 E@3 F G H G H G H G H G H G H G H G I ~@16 G H@3 G H@3 G H@3 J H@3
>`.pickRestart({
  A: "~@7 b2", B: "b2!8", C: "b2@2 ~@5 b2", D: "bb2 ~@3", E: "ab2!7 ab3", F: "ab2!5 ~ db3@2", G: "a2@2 ab2!6",
  H: "ab2!8", I: "ab2!5 ~@3", J: "a2 ~ ab2!6",
})).s("gm_baritone_sax").gain(0.5)

// other · french horn · "Horn in F"
const french_horn = note("<~@16 A B A B A B C D ~@24 E@2 F@5 G H I J K H I J L ~@3 M ~@7 N O@7 ~@32 O>".pickRestart({
  A: "~@3 ab4 b4 ~ gb4 ab4", B: "bb4 ~ gb4 ab4", C: "~@3 ab4 b4 ~ e4 gb4", D: "g4 ~ ab4 bb4", E: "eb4", F: "[ab3,eb4]",
  G: "[g3,db4]", H: "ab4@2 ~@2 ab4@2 ~ ab4", I: "ab4!3 ~", J: "ab4!6 ~@2", K: "ab4!2 ab4@2 ab4@2 ~@2",
  L: "g4!2 g4@2 g4@2 ~@2", M: "~@3 eb4", N: "~ ab4 ~@2 gb4 ~ eb4 ~", O: "~@2 eb4 ~",
})).s("gm_french_horn").gain(0.45)

// other · trumpet · "B♭ Trumpet"
const trumpet = note("<~@16 A B C D A B C E ~@24 F@2 G@5 H I J K L I J K M ~@3 N ~@8 O@7 ~@32 O>".pickRestart({
  A: "ab4@2 ~@2 ab4@2 ~ ab4", B: "ab4!3 ~", C: "ab4!5 ab4@2 ~", D: "ab4!2 ab4@2 ab4@2 ~@2", E: "g4!2 g4@2 g4@2 ~@2",
  F: "eb5", G: "[ab4,eb5]", H: "[g4,db5]", I: "ab5@2 ~@2 ab5@2 ~ ab5", J: "ab5!3 ~", K: "ab5!6 ~@2",
  L: "ab5!2 ab5@2 ab5@2 ~@2", M: "ab5 bb5 bb5@2 b5@4", N: "~@3 ab4", O: "~@2 ab4 ~",
})).s("gm_trumpet").gain(0.3)

// other · trombone
const trombone = note(`<
  A B A B A B C D A B A B A B C D A B A B A B C D A B A B A B C D A B A B A B C D A B A B A B C D A B A B A B C D A B A
  B A B C D ~@3 E F G F G F G F G F G F G F G F H ~@2 I J ~@2 I K ~@8 F G@3 F G@3 F G@3 L G@3
>`.pickRestart({
  A: "~@3 ab2 b2 ~ gb2 ab2", B: "bb2 ~ gb2 ab2", C: "~@3 ab2 b2 ~ e2 gb2", D: "g2 ~ ab2 bb2", E: "~@3 db3",
  F: "a2@2 ab2!6", G: "ab2!8", H: "ab2!5 ~@3", I: "~ ab3 ~@2", J: "gb3 ~@3", K: "gb3 ~ eb3 ~", L: "a2 ~ ab2!6",
})).s("gm_trombone").gain(0.45)

// other · tuba · "Euphonium"
const tuba = note(`<
  ~@16 A B C D A B C E ~@16 F ~ F ~ F ~ F ~ F ~ F ~ F ~ F ~ F ~ F ~ F ~ F ~@4 G ~@8 H@7 ~@3 I J ~@2 I K ~@8 L M@3 L M@3
  L M@3 N M@3
>`.pickRestart({
  A: "ab3@2 ~@2 ab3@2 ~ ab3", B: "ab3!3 ~", C: "ab3!5 ab3@2 ~", D: "ab3!2 ab3@2 ab3@2 ~@2", E: "g3!2 g3@2 g3@2 ~@2",
  F: "ab3@3 ab3@3 ab3 ~", G: "~@3 db3", H: "~@2 db3 ~", I: "~ ab3 ~@2", J: "gb3 ~@3", K: "gb3 ~ eb3 ~", L: "a2@2 ab2!6",
  M: "ab2!8", N: "a2 ~ ab2!6",
})).s("gm_tuba").gain(0.45)

// bass · tuba
const bass_2 = note(`<
  A B A B A B A C A B A B A B A C A B A B A B A C A B A B A B A C A B A B A B A C A B A B A B A C A B A B A B A C A B A
  B A B A C ~@3 D E F E F E F E F E F E F E F E G H I@3 H I@3 H I@3 H I@3 H I@3 H I@3 E F@3 J F@3
>`.pickRestart({
  A: "ab1@3 ~@2 ab1 ~@2", B: "~ ab1 ~@2", C: "~ eb1 ~@2", D: "~@3 db3", E: "a2@2 ab2!6", F: "ab2!8", G: "ab2!5 ~@3",
  H: "a1@2 ab1!2", I: "ab1!4", J: "a2 ~ ab2!6",
})).s("gm_tuba").gain(0.5)

// drums · kick
const kick = s("bd").struct(`<
  ~@32 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B ~@4 C B C B C B C B C B C B C B C B D ~ E ~ D ~ E
  ~ D ~ E ~ D ~ E ~ D ~ E ~ D ~ E ~@2 B C B ~ B C B
>`.pickRestart({
  A: "x ~ x!2 ~ x ~@2", B: "~ x ~@2", C: "x ~ x!2 ~@4", D: "~@2 x!2", E: "~ x",
})).gain(0.4)

// drums · rim
const rim = s("rim").struct("<~@68 [~ x]!16 ~@32>").gain(0.5)

// drums · snare
const snare = s("sd").struct("<~@32 A@32 ~@21 B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B C D@3 C D@3>".pickRestart({
  A: "~ x", B: "x", C: "x!2 ~@2 x!2 ~@2", D: "~@4 x!2 ~@2",
})).gain(0.45)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@32 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B ~@4 C@8 D@7 E F@4 G F@19 H@3 I H@3 I
>`.pickRestart({
  A: "~@2 x ~@2 x ~@2", B: "x", C: "~ x", D: "x!16", E: "x!9 ~@7", F: "x!5 ~ x ~", G: "~@2 x!2", H: "x!8",
  I: "x!9 ~ x ~ x ~ x ~",
})).gain(0.5)

// drums · crash
const crash = s("cr").struct("<~@108 [~ x ~ x]!8>").gain(0.45)

// drums · high tom
const high_tom = s("ht").struct("<~@30 x [~@2 x!3 ~ x!2] ~@84>").gain(0.4)

stack(
  flute, flute_soft, bass, clarinet, tenor_sax, baritone_sax, french_horn, trumpet, trombone, tuba, bass_2, kick, rim,
  snare, hihat, crash, high_tom
)

More by Awolnation