Strudelify

Cadets

Wade Allen

KeyE♭ majorTempo72 bpm
0:00/0:00
// Cadets — Wade Allen
// 72 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 14 "Double Basses" named as a bass, played on acoustic bass (its string ensemble 1 patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/292536; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 50 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(72/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 · string ensemble 1 · "Violins 2"
const string_ensemble_1 = note(`<
  A B C D E F G E H I J D K F G E L F M N O P Q M R S T U V W X Y Z D AA AB AC AD D AE AF AG AH AI D AJ D AK AL D
>`.pickRestart({
  A: "~@2 bb3@2 f4@3 g4", B: "a4", C: "g4@3 f4", D: "eb4", E: "eb4@3 f4", F: "c4 d4@3", G: "f4 eb4@2 d4",
  H: "f4 eb4@2 c4", I: "eb4@4 f4@8 ab3 bb3 c4 d4", J: "d4 c4@2 d4", K: "eb4@3 c4", L: "bb3@3 c4", M: "g3 ab3", N: "g3",
  O: "g3 f4 g3@2", P: "ab3", Q: "ab3 g3", R: "f4", S: "g3@2 ab3 bb3", T: "g4 bb4 c5@2", U: "bb4",
  V: "g4@2 ab4@2 bb4@3 d4", W: "c4", X: "c4 eb4 d4 f4", Y: "eb5 c5 f4@2", Z: "f4@3 g4 f4@4", AA: "g4 ab4@2 f4",
  AB: "g4", AC: "g4 ab4@3", AD: "bb3 c4@2 eb4", AE: "c4@2 bb3!2", AF: "c4 eb4 bb3@2", AG: "f4 eb4 d4@2",
  AH: "eb4 c4@2 bb3", AI: "bb3", AJ: "f4 eb4@2 eb4", AK: "c4@2 d4 bb3", AL: "c4@2 eb4 d4",
})).s("gm_string_ensemble_1").gain(0.3)

// other · string ensemble 1 · "Violas"
const string_ensemble_1_2 = note(`<
  A@2 B A C D E C F G H I J K L M N O P Q R S T U V W X Y Z AA@2 AB S E AC Y AD AE AF AG AH AI AJ A AK AL AM AN AO I
>`.pickRestart({
  A: "eb4", B: "d4 c4@2 bb3", C: "c4@3 c4", D: "c4 bb3@3", E: "bb3@3 bb3", F: "bb3@3 c4", G: "c4 eb4@2 d4",
  H: "c4@3 bb3", I: "bb3", J: "c4@3 ab3", K: "ab3 bb3@3", L: "g3", M: "ab3@3 a3", N: "bb3@2 c4 ab3", O: "f3 bb3@3",
  P: "g4 bb4 c5@2", Q: "bb4", R: "g4@2 ab4@2 bb4@3 d4", S: "c4", T: "c4 eb4 d4 f4", U: "eb4 g4 eb4@2",
  V: "f4@3 eb4 f4@4", W: "g4 f4", X: "g4 ab4", Y: "g4", Z: "g4 f4 g4@2", AA: "[~ eb4 d5 c5@3 ~@2]/2", AB: "eb4 c4",
  AC: "g4@2 f4 eb4 ab4@8 f4@4", AD: "g4@2 f4 eb4 c5@10 bb4@2", AE: "f4@2 ab4@2 g4@9 eb4 g4 c5",
  AF: "eb5@6 d5 eb5 d5@6 eb4@2", AG: "c5@3 c5 bb4@4", AH: "ab4@3 eb4 d5@3 c5", AI: "f4", AJ: "eb4@3 f4", AK: "bb3 c4@3",
  AL: "bb3 bb3@2 bb3", AM: "c4 bb3", AN: "ab3 a3 bb3 g3", AO: "ab3 bb3",
})).s("gm_string_ensemble_1").gain(0.3)

// other · string ensemble 1 · "Violoncellos"
const string_ensemble_1_3 = note(`<
  A B C D E F G H I J K L E M G N O J P L Q R S T R U V W X Y Z AA AB L AC AD AE AF AG AH AI AJ AK U AL AM AN AO AP L
>`.pickRestart({
  A: "bb3", B: "a3", C: "c3@3 bb2", D: "eb3", E: "g3@3 f3", F: "f3 f3@3", G: "bb3@3 bb3", H: "ab3@3 f3", I: "g3@3 eb3",
  J: "ab3 bb3@3", K: "g3@3 bb3", L: "g3", M: "f3 bb3@3", N: "c4@3 c4", O: "g3@3 ab3", P: "eb3 g3 ab3@2",
  Q: "bb2 ab2 g2@2", R: "ab2", S: "ab2 b2", T: "c3 bb2 ab2@2", U: "bb2", V: "bb2 c3", W: "c3", X: "g3 f3 g3@2",
  Y: "ab3", Z: "ab3 bb3", AA: "c4 f3", AB: "f3 ab3", AC: "g3 bb2 eb3 bb2 ab3 c3 d3 bb2",
  AD: "eb3 bb2 f3 bb2 g3 bb2 f3 bb2", AE: "eb3 bb2 eb3 c3 ab3 c3 eb3 g3", AF: "f3 bb2 eb3 bb2 eb3 g3 bb3@2",
  AG: "eb4 d4", AH: "c4@2 f3@2 d4@2 eb4 d4", AI: "c4 eb3@3", AJ: "bb2@2 bb2!2", AK: "bb2 c3@2 d3", AL: "eb3 eb3@3",
  AM: "f3 g3@2 eb3", AN: "~ g3@2 g3", AO: "eb3 f3!2 eb3", AP: "c4 bb3",
})).s("gm_string_ensemble_1").gain(0.3)

// bass · acoustic bass · "Double Basses"
const bass = note(`<
  A@2 B C D E F G H I J K L M N O H I P K Q R S T R C U K V A W X Y K Z@2 A C AA@2 AB AC AD@2 AE AF AG AH AI A
>`.pickRestart({
  A: "eb2", B: "d2 c2@2 d2", C: "bb1", D: "c3@3 ab2", E: "ab2 bb2@3", F: "eb3", G: "ab2@3 a2", H: "bb2@2 c3 ab2",
  I: "f2 bb2@3", J: "g2@3 f2", K: "g2", L: "c3@3 c3", M: "c3 d3@3", N: "f2 eb2@2 d2", O: "eb2@3 f2", P: "eb2 g2 ab2@2",
  Q: "bb1 ab1 g1@2", R: "ab1", S: "ab1 b1", T: "c2 bb1 ab1@2", U: "bb2!2 c3@2", V: "bb2 ab2 f2@2", W: "eb2 f2",
  X: "g2 f2", Y: "f2 ab2", Z: "eb2/2", AA: "[~ g2@2 g2@2 f2@2 eb2]/2", AB: "eb2 bb2", AC: "ab2", AD: "f2/2",
  AE: "g1 ab1@3", AF: "d2 eb2@2 g1", AG: "eb2 d2", AH: "c2 bb1", AI: "ab2 bb1",
})).s("gm_acoustic_bass").gain(0.3)

stack(string_ensemble_1, string_ensemble_1_2, string_ensemble_1_3, bass)