Strudelify

running in the 90s

D.E.P

KeyA minorTempo160 bpm
0:00/0:00
// running in the 90s — D.E.P
// 160 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 13 "Sousaphone" tuba (copy of ch 11 "Trombone" trombone)
// note: Transcription provider: pdmx. https://musescore.com/score/4219526; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 105 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest.
// 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(`<
  A B A B A B A B C D C E C F C B G F G H G F G H I J K L M N O L P Q R S P Q T U V W X Y V Z AA AB V W X AC V Z AD AE G
  F G H G F G H I J K L M N O L P Q R S P Q T U V W X Y V Z AA AB V W X AC V Z AD AE G D G H G D G B AF
>`.pickRestart({
  A: "c5 b4 ~@2 c5 b4 ~@2", B: "c5 b4 a#4 a4 g#4 a4 a#4 b4", C: "a4@2 a4 e5 d5 c5 g4@2 a4@2 a4 e5 d5 c5 g4@2",
  D: "c5 b4 g4 c5@2 b4 g4@2 c5 b4 g4 d5@2 b4 g4@2", E: "c5@2 c5 b4", F: "c5 b4 g4 c5@2 b4 g4@2 e5 b4 g4 d5@2 b4 g4@2",
  G: "a4 e4 a4 e5 d5 c5 g4@2 a4 e4 a4 e5 d5 c5 g4@2", H: "a4 a4@2 a4 b4@2 b4@2 c5 c5@2 c5 b4@2 b4@2",
  I: "~@2 e4!3 e4@3", J: "~@2 e4!3 e4@2 f4", K: "f4 f4@2 f4@5", L: "c5@2 c5@2 b4 b4@3", M: "~@2 a4!2 b4 c5@3",
  N: "~@2 a4!2 b4 c5@2 b4", O: "b4 a4@2 a4@5", P: "a4@2 a4@2 f4 a4 a4@2", Q: "b4!3 c5 b4 g4@3",
  R: "e4@2 e4@2 e4!2 e4@2", S: "e4!3 d4@2 e4 d4 ~", T: "d4@2 d4@2 d4!2 d4@2", U: "a4 b4 a4 b4",
  V: "c5@2 c5@2 b4@2 b4!2", W: "b4 a4@3 ~@2 a4 c5", X: "a4@2 a4!2 b4@2 d5 c5", Y: "c5 ~ g5 f5", Z: "b4 a4@3 ~@3 a4",
  AA: "a4!4 a4@2 a4 g4", AB: "g4 ~ g4!2", AC: "c5 ~ a4!2", AD: "a4!4 a4@2 ~ g4", AE: "g4!4 b4@4",
  AF: "~@2 a4 a5 ~@2 a4 a5",
})).s("gm_clarinet").gain(0.4)

// other · clarinet · "Bass Clarinet"
const clarinet_2 = note(`<
  A B A B A B A B C D C E C D C B F D F G F H F G I J K L M N K L O P Q R O P S T U V W X U Y Z AA U V W X U Y AB AC F D
  F G F H F G I J K L M N K L O P Q R O P S T U V W X U Y Z AA U V W X U Y AB AC F AD F G F AD F B AE
>`.pickRestart({
  A: "c4 b3 ~@2 c4 b3 ~@2", B: "c4 b3 a#3 a3 g#3 a3 a#3 b3", C: "a3@2 a3 e4 d4 c4 g3@2 a3@2 a3 e4 d4 c4 g3@2",
  D: "c4 b3 g3 c4@2 b3 g3@2 c4 b3 g3 d4@2 b3 g3@2", E: "c4@2 c4 b3", F: "a3 e3 a3 e4 d4 c4 g3@2 a3 e3 a3 e4 d4 c4 g3@2",
  G: "a3 a3@2 a3 b3@2 b3@2 c4 c4@2 c4 b3@2 b3@2", H: "c4 b3 g3 c4@2 b3 g3@2 e4 b3 g3 d4@2 b3 g3@2", I: "~@2 e4!3 e4@3",
  J: "~@2 e4!3 e4@2 f4", K: "f3 f3@2 f3@5", L: "c4@2 c4@2 b3 b3@3", M: "~@2 e3!3 e3@3", N: "~@2 a3!2 b3 c4@2 b3",
  O: "f3@2 f3@2 f3!2 f3@2", P: "g3!5 g3@3", Q: "c3@2 c3@2 c3!2 c3@2", R: "c3!3 b2@2 b2!2 ~", S: "d3@2 d3@2 d3!2 d3@2",
  T: "d3 e3 f3 g3", U: "a3@2 a3@2 g3@2 g3!2", V: "g3 e3@3 ~@2 a3 c4", W: "f3@2 f3!2 g3@2 b3 a3", X: "a3 ~ a3!2",
  Y: "g3 e3@3 ~@3 f3", Z: "f3!4 f3@2 f3 g3", AA: "g4 ~ g4!2", AB: "f3!4 f3@2 ~ g3", AC: "g3!4 g#3@4",
  AD: "c5 b4 g4 c5@2 b4 g4@2 c5 b4 g4 d5@2 b4 g4@2", AE: "~@2 a2 a3 ~@2 a2 a3",
})).s("gm_clarinet").gain(0.4)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  A B C D C D C D E F E G E F E H I F I J K F K J L M N O L P Q O R S T U V W T X Y Z AA AB Y AC AD AB Y AE AA AB Y AF
  AG AH I F I J K F K J L M N O L P Q O R S T U V W T X Y Z AA AB Y AC AD AB Y AE AA AB Y AF AG AH I AI I AJ I AI I H AK
>`.pickRestart({
  A: "c4 b3 ~@2 c4 b3 ~@2", B: "c4 b3 a#3 a3 g#3 a3 a#3 b3", C: "e4 d#4 ~@2 e4 d#4 ~@2",
  D: "e4 d#4 d4 c#4 c4 c#4 d4 d#4", E: "a3@2 a3 e4 d4 c4 g3@2 a3@2 a3 e4 d4 c4 g3@2",
  F: "c4 b3 g3 c4@2 b3 g3@2 c4 b3 g3 d4@2 b3 g3@2", G: "c4@2 c4 b3", H: "e5 d#5 d5 c#5 c5 c#5 d5 d#5",
  I: "a4 e4 a4 e5 d5 c5 g4@2 a4 e4 a4 e5 d5 c5 g4@2", J: "c5 c5@2 c5 d5@2 d5@2 e5 e5@2 e5 d5@2 d5@2",
  K: "a3 e3 a3 e4 d4 c4 g3@2 a3 e3 a3 e4 d4 c4 g3@2", L: "~@2 a4!2 b4 c5@3", M: "~@2 a4!2 b4 c5@2 b4",
  N: "b4 a4@2 a4@5", O: "f4@2 g4@2 f4 e4@3", P: "~@2 e4!3 e4@2 f4", Q: "d5 c5@2 c5@5", R: "c4@2 c4@2 b3 c4 c4@2",
  S: "d4 e4 d4 c4 d4 c4@3", T: "a4@2 a4@2 g4 a4 a4@2", U: "a4 g4 e4 g4@2 e4 g4 ~", V: "c5@2 c5@2 b4 c5 c5@2",
  W: "d5 e5 d5 c5 d5 c5@3", X: "a3 b3 c4 d4", Y: "e4@2 e4@2 d4@2 d4!2", Z: "d4 c4@3 ~@2 a3 c4",
  AA: "d4@2 d4 c4 d4@2 g4 e4", AB: "e4 ~ g4 f4", AC: "d4 c4@3 ~@3 d4", AD: "d5 c5 d5 c5 d5@2 c5 e5",
  AE: "d5 c5@3 ~@2 a4 c5", AF: "d5 c5@3 ~@3 d5", AG: "d4 c4 d4 c4 d4@2 ~ e4", AH: "e4 d4 e4 d4 e4@4",
  AI: "c5 b4 g4 c5@2 b4 g4@2 c5 b4 g4 d5@2 b4 g4@2", AJ: "c4 c4@2 c4 d4@2 d4@2 e4 e4@2 e4 d4@2 d4@2",
  AK: "~@2 a3 a4 ~@2 a3 a4",
})).s("gm_alto_sax").gain(0.4)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  A B@7 C D C D C D C E C D C F C D C F G H I J G H I@3 K G L I K M N O G O G O G I K O G O G O G I P C D C F C D C F G
  H I J G H I@3 K G L I K M N O G O G O G I K O G O G O G I P Q F Q F Q F Q E R
>`.pickRestart({
  A: "e4 d#4 ~@2 e4 d#4 ~@2", B: "~ a3 ~ a3", C: "f3 g3", D: "a3@2 a3 g3", E: "e3 d#3 d3 c#3 c3 c#3 d3 d#3",
  F: "a3!3 g3", G: "~ a3 ~ a3 ~ a3 ~ a3", H: "~ a3 ~ a3 ~ a3 ~ g3", I: "~ f3 ~ f3 ~ f3 ~ f3", J: "~ f3 ~ f3 ~ e3 ~ e3",
  K: "~ g3 ~ g3 ~ g3 ~ g3", L: "~ a3 ~ a3 ~ g3 ~ g3", M: "~ d3 ~ d3 ~ d3 ~ d3", N: "~ d3 ~ e3 ~ f3 ~ g3",
  O: "~ f3 ~ f3 ~ g3 ~ g3", P: "~ g3 ~ g3 ~ g#3 ~ g#3", Q: "f3!2 g3!2", R: "a2 a3 ~@2 a2 a3 ~@2",
})).s("gm_tenor_sax").gain(0.3)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A@8 B C B C D C D E D C D F D G D F H I J K H L J@3 M H N J M O P Q H Q H Q H J M Q H Q H Q H J R D C D F D G D F H I
  J K H L J@3 M H N J M O P Q H Q H Q H J M Q H Q H Q H J R S F S F S F S E T
>`.pickRestart({
  A: "~ a2 ~ a2", B: "f3 g3", C: "a2@2 a2 g2", D: "f2 g2", E: "c3 b2 a#2 a2 g#2 a2 a#2 b2", F: "a2!3 g2",
  G: "a3@2 a3 g3", H: "a2 ~ a2 ~ a2 ~ a2 ~", I: "~@2 a2 ~ a2 ~ g2 ~", J: "f2 ~ f2 ~ f2 ~ f2 ~",
  K: "f2 ~ f2 ~ e2 ~ e2 ~", L: "~ a3 ~ a3 ~ a3 ~ g3", M: "g2 ~ g2 ~ g2 ~ g2 ~", N: "a2 ~ a2 ~ g2 ~ g2 ~",
  O: "d2 ~ d2 ~ d2 ~ d2 ~", P: "d2 ~ e2 ~ f2 ~ g2 ~", Q: "f2 ~ f2 ~ g2 ~ g2 ~", R: "g2 ~ g2 ~ g#2 ~ g#2 ~",
  S: "f2!2 g2!2", T: "a2 a3 ~@2 a2 a3 ~@2",
})).s("gm_baritone_sax").gain(0.3)

// other · french horn · "Mellophone"
const french_horn = note(`<
  A B A B A B A B C D C E C D C F G D G H G I G J K L M N O P Q N R S T U V W X Y Z AA AB AC AD AE AF AG Z AH AI AC Z AJ
  AK AL G D G H G I G J K L M N O P Q N R S T U V W X Y Z AA AB AC AD AE AF AG Z AH AI AC Z AJ AK AL G D G J G D G B AM
>`.pickRestart({
  A: "c4 b3 ~@2 c4 b3 ~@2", B: "c4 b3 a#3 a3 g#3 a3 a#3 b3", C: "a3@2 a3 e4 d4 c4 g3@2 a3@2 a3 e4 d4 c4 g3@2",
  D: "c4 b3 g3 c4@2 b3 g3@2 c4 b3 g3 d4@2 b3 g3@2", E: "c4@2 c4 b3", F: "c5 b4 a#4 a4 g#4 a4 a#4 b4",
  G: "a3 e3 a3 e4 d4 c4 g3@2 a3 e3 a3 e4 d4 c4 g3@2", H: "a4 a4@2 a4 b4@2 b4@2 c5 c5@2 c5 b4@2 b4@2",
  I: "c5 b4 g4 c5@2 b4 g4@2 e5 b4 g4 d5@2 b4 g4@2", J: "a3 a3@2 a3 b3@2 b3@2 c4 c4@2 c4 b3@2 b3@2", K: "~@2 e4!3 e4@3",
  L: "~@2 e4!3 e4@2 f4", M: "b4 a4@2 a4@5", N: "c4@2 c4@2 b3 b3@3", O: "~@2 a4!2 b4 c5@3", P: "~@2 a4!2 b4 c5@2 b4",
  Q: "d4 c4@2 c4@5", R: "f4@2 f4@2 f4!2 f4@2", S: "g4!5 g4@3", T: "e4@2 e4@2 e4!2 e4@2", U: "e4!3 d4@2 e4 d4 ~",
  V: "a4@2 a4@2 f4 a4 a4@2", W: "g3!5 g3@3", X: "d4@2 d4@2 d4!2 d4@2", Y: "d4 e4 f4 g4", Z: "a3@2 a3@2 g3@2 g3!2",
  AA: "b3 a3@3 ~@2 a3 c4", AB: "f3@2 f3!2 g3@2 b3 a3", AC: "a3 ~ a3!2", AD: "c5@2 c5@2 b4@2 b4!2", AE: "b4 a4@3 ~@3 a4",
  AF: "a4!4 a4@2 a4 g4", AG: "g4 ~ g4!2", AH: "b4 a4@3 ~@2 a4 c5", AI: "a4@2 a4!2 b4@2 d5 c5", AJ: "g3 e3@3 ~@3 f3",
  AK: "f3!4 f3@2 ~ g3", AL: "g3!4 g#3@4", AM: "~@2 a3 a4 ~@2 a3 a4",
})).s("gm_french_horn").gain(0.4)

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  A B A B A B A B C D C E C D C B F D F G F D F G H I J K H L J K M N O P M N O Q R S T U R V W U R S T X R V Y Z F D F
  G F D F G H I J K H L J K M N O P M N O Q R S T U R V W U R S T X R V Y Z F D F G F D F B AA
>`.pickRestart({
  A: "e5 d#5 ~@2 e5 d#5 ~@2", B: "e5 d#5 d5 c#5 c5 c#5 d5 d#5", C: "a4@2 a4 e5 d5 c5 g4@2 a4@2 a4 e5 d5 c5 g4@2",
  D: "c5 b4 g4 c5@2 b4 g4@2 c5 b4 g4 d5@2 b4 g4@2", E: "c5@2 c5 b4", F: "a4 e4 a4 e5 d5 c5 g4@2 a4 e4 a4 e5 d5 c5 g4@2",
  G: "c5 c5@2 c5 d5@2 d5@2 e5 e5@2 e5 d5@2 d5@2", H: "~@2 a4!2 b4 c5@3", I: "~@2 a4!2 b4 c5@2 b4", J: "b4 a4@2 a4@5",
  K: "f4@2 g4@2 f4 e4@3", L: "~@2 c5!2 d5 e5@2 d5", M: "c5@2 c5@2 b4 c5 c5@2", N: "d5 e5 d5 c5 d5 c5@3",
  O: "a4@2 a4@2 g4 a4 a4@2", P: "a4 g4 e4 g4@2 e4 g4 ~", Q: "a4 b4 c5 d5", R: "e5@2 e5@2 d5@2 d5!2",
  S: "d5 c5@3 ~@2 a4 c5", T: "d5@2 d5 c5 d5@2 g5 e5", U: "e5 ~ g5 f5", V: "d5 c5@3 ~@3 d5", W: "d5 c5 d5 c5 d5@2 c5 e5",
  X: "e4 ~ g4 f4", Y: "d4 c4 d4 c4 d4@2 ~ e4", Z: "e4 d4 e4 d4 e4@4", AA: "~@2 a3 a4 ~@2 a3 a4",
})).s("gm_trumpet").gain(0.4)

// other · trombone
const trombone = note(`<
  A@8 B C B D B D B E B D B F B D B F G H I J G H I J I K G L I K M N O G O G O G I K O G O G O G I P B D B F B D B F G
  H I J G H I J I K G L I K M N O G O G O G I K O G O G O G I P Q F Q F Q F Q E R
>`.pickRestart({
  A: "~ a2 ~ a2", B: "f3 g3", C: "a2@2 a2 g2", D: "a3@2 a3 g3", E: "e3 d#3 d3 c#3 c3 c#3 d3 d#3", F: "a3!3 g3",
  G: "a2 a3 a2 a3 a2 a3 a2 a3", H: "a2 a3 a2 a3 a2 a3 g2 g3", I: "f2 f3 f2 f3 f2 f3 f2 f3",
  J: "f2 f3 f2 f3 e2 e3 e2 e3", K: "g2 g3 g2 g3 g2 g3 g2 g3", L: "a2 a3 a2 a3 g2 g3 g2 g3",
  M: "d2 d3 d2 d3 d2 d3 d2 d3", N: "d2 d3 e2 e3 f2 f3 g2 g3", O: "f2 f3 f2 f3 g2 g3 g2 g3",
  P: "g2 g3 g2 g3 g#2 g#3 g#2 g#3", Q: "f3!2 g3!2", R: "a2 a3 ~@2 a2 a3 ~@2",
})).s("gm_trombone").gain(0.3)

// other · french horn · "Baritone Horn"
const french_horn_2 = note(`<
  A B A B@5 C D C D C D C E C D C F C D C F G H I J G H I J I K G L I K M N O G O G O G I K O G O G O G I P C D C F C D
  C F G H I J G H I J I K G L I K M N O G O G O G I K O G O G O G I P Q R Q R Q R Q E S
>`.pickRestart({
  A: "~ a2 ~ a2", B: "~ a3 ~ a3", C: "f3 g3", D: "a3@2 a3 g3", E: "c3 b2 a#2 a2 g#2 a2 a#2 b2", F: "a3!3 g3",
  G: "a2 a3 a2 a3 a2 a3 a2 a3", H: "a2 a3 a2 a3 a2 a3 g2 g3", I: "f2 f3 f2 f3 f2 f3 f2 f3",
  J: "f2 f3 f2 f3 e2 e3 e2 e3", K: "g2 g3 g2 g3 g2 g3 g2 g3", L: "a2 a3 a2 a3 g2 g3 g2 g3",
  M: "d3 d4 d3 d4 d3 d4 d3 d4", N: "d3 d4 e3 e4 f3 f4 g3 g4", O: "f2 f3 f2 f3 g2 g3 g2 g3",
  P: "g2 g3 g2 g3 g#2 g#3 g#2 g#3", Q: "f2!2 g2!2", R: "a2!3 g2", S: "a2 a3 ~@2 a2 a3 ~@2",
})).s("gm_french_horn").gain(0.3)

// drums · high tom
const high_tom = s("ht").struct("~ x ~ x").gain(0.3)

// drums · whistle
const whistle = s("ballwhistle:0").struct("x!4").gain(0.39)

// drums · claves
const claves = s("clave:2").struct("~ x ~@3 x ~@2").gain(1.46)

stack(
  clarinet, clarinet_2, alto_sax, tenor_sax, baritone_sax, french_horn, trumpet, trombone, french_horn_2, high_tom,
  whistle, claves
)