Strudelify

Marching Band

Misc

KeyD majorTempo120 bpm
0:00/0:00
// Marching Band — Misc
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/149182; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 40 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 · [...]/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 · trumpet · "Bb Trumpet"
const trumpet = note("<A B C@4 A@2 D E F G F E F G D E F H F E F G D E F G F E F G D E F G F E F G>".pickRestart({
  A: "g4@6 g4!2 g4@6 g4!2", B: "g4!4 g4@4",
  C: "[~ c4 g3 c4 d4@2 g3@3 c4 g3 c4 d4 g3 g4@3 d#4 a#3 d#4 f4@2 a#3@3 d#4 a#3 d#4 f4 a#3 a#4@2]/4",
  D: "c4 g4 e5@2 e5@3 e5", E: "d5@3 e5 f5@2 e5@8 ~@2", F: "c4 g4 e5@2 e5@3 c5", G: "d5 c5 b4 c5@4 ~",
  H: "d5@3 c5 b4@2 c5@8 ~@2",
})).s("gm_trumpet").gain(0.3)

// other · french horn · "Horn"
const french_horn = note(`<
  A B ~ C D E A F G H I J K H L ~ M N O P M Q R S T U V W V U V X G H I J K H L Y
>`.pickRestart({
  A: "g3@6 g3!2 g3@6 g3!2", B: "g3 g#3 a3 a#3 b3@4", C: "~@7 a#3", D: "d#4@2 d4 a#3", E: "d#3 f3 g3 g#3 f3@2 d4 f4",
  F: "g3!2 g3@6 g3!2 g3@6", G: "c4 g3 a3 b3 c4 d4 e4 g4", H: "a4@3 g4 a4@2 c5@8 ~@2", I: "c4 d4 e4 d4 c4 b3 a3 g#3",
  J: "g3 a3 b3 g3@4 ~", K: "c4 e4 g4 c5 b4 a4 g4 e4", L: "c4 d4 e4 d4 e4 f4 g4 e4",
  M: "e3 g3 c4 e4 g4@4 e3 g3 c4 e4 g4@4", N: "g2 b2 d3 g3 b3@4 c3 e3 g3 c4 e4@4",
  O: "e3 g3 c4 e4 g4@4 c3 e3 g3 c4 e4@4", P: "g2 b2 d3 g3 b3@4 c3 d3 e3 g3 c4@4",
  Q: "g2 b2 d3 g3 d4@4 c3 e3 g3 c4 e4@4", R: "e3 g3 c4 e4 g4@4 c3 e3 g3 c4 g4@4",
  S: "g2 b2 d3 g3 f4@4 c3 d3 e3 g3 e4@4", T: "c3 g3 e4@2 e4@3 e4", U: "d4@3 e4 f4@2 e4@8 ~@2", V: "c3 g3 e4@2 e4@3 c4",
  W: "d4 c4 b3 c4@4 ~", X: "d4 c4 b3 c4@2 b2!3", Y: "g4!2 f4 e4@4 ~",
})).s("gm_french_horn").gain(0.3)

// bass · tuba · "Bb Tuba"
const bass = note("<A@2 B C D E A@2 F G H I J K F ~ L M L N O P H Q R S T U T S T V F G H I J K F U>".pickRestart({
  A: "g2!4", B: "~ g3@6 ~", C: "~ g3@4 b3 g3 ~", D: "d#3 f3 g3 d#3 d3 f3 g#3 f3", E: "d#3@4 a#2 d3 f3 a#3",
  F: "c3 b2 a2 g#2", G: "g2 b2 c3 g2", H: "c3 d3 e3 f3", I: "g3 b2 c3 g2", J: "c3 e3 g3 c4", K: "b3 g3 c4 e3",
  L: "c3@6 c3!2 e3@6 e3!2", M: "g2@6 g2!2 c3@6 c3!2", N: "g3@6 g3!2 e3@6 e3 d3", O: "c3@6 c3!2 e3@6 g2 d3",
  P: "f3@6 e3 c3 g2@6 b2!2", Q: "f3 d3 g3 c3@4 e3", R: "c2 g2 e3@2 e3@3 e3", S: "d3@3 e3 f3@2 e3@8 ~@2",
  T: "c2 g2 e3@2 e3@3 c3", U: "d3 c3 b2 c3@4 ~", V: "d3 c3 b2 c3@2 g2 a2 b2",
})).s("gm_tuba").gain(0.3)

// drums · kick
const kick = s("bd").struct("<[x!2]!2 ~@38>").gain(0.3)

// drums · snare
const snare = s("sd").struct("<A@2 B@2 C ~@3 D@7 E D@8 ~@8 D@7 F>".pickRestart({
  A: "~ x ~ x", B: "x ~@6 x", C: "~@7 x", D: "x!4 ~ x!7 ~ x!3", E: "~@5 x!3", F: "x!4 ~@4",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct("<~@4 A@2 ~@2 B@7 ~ B@8 ~ C ~ C ~ C ~ C B@7 ~>".pickRestart({
  A: "x", B: "~ x ~ x", C: "~@3 x ~@4",
})).gain(0.3)

// drums · claves
const claves = s("clave:2").struct("<[~ x ~ x] [~ x ~@2] x!4 [~ x ~ x]!9 ~ [x!4]!8 [x ~@2 x]!8 [x ~ x!2]!8>").gain(1.46)

stack(trumpet, french_horn, bass, kick, snare, crash, claves)

More by Misc