Strudelify

The ultimate price

Evan Call

KeyE♭ majorTempo90 bpm
0:00/0:00
// The ultimate price — Evan Call
// 90 bpm, 6/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5829308; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 43 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/6)

// 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.

// other · flute · "Flutes"
const flute = note("<~@15 A B C D E F G H I J K ~@3 L M N O P Q R S T U ~@4>".pickRestart({
  A: "~@3 c6", B: "g6@2 ab6@2 g6@2 f6@4 d6 eb6", C: "f6@4 g6@4 f6@4 eb6@11 ~", D: "eb6@2 f6@2 eb6@2 d6@3 bb6@3",
  E: "g6@5 ~ f6@2", F: "g6@4 ab6@4 g6@4 f6@8 ~ c6@3", G: "f6@4 g6@4 f6@4 eb6@8 ~ d6@3", H: "eb6 d6 bb5 g5",
  I: "d6 eb6 ~ d6 c6@19 ~", J: "~@4 eb6 d6 bb5 g5", K: "c6@11 ~@13", L: "g4 f4 eb4 g4 f4 eb4",
  M: "g4@4 ab4@4 bb4@4 f4@8 ~@2 d4 eb4", N: "f4@2 eb4@2 d4@2 c4@3 g4@3", O: "f4@11 ~ eb4@11 ~",
  P: "g5 f5 eb5 g5 f5 eb5", Q: "g5@2 f5@2 eb5@2 f5@4 d5 eb5", R: "f5 eb5 d5 f5 g5 ab5", S: "ab5@4 g5@4 gb5@4 g5@11 ~",
  T: "c5@11 ~ g5@4 c5@4 eb5@4", U: "f5 ab5 c6 f6@2 ~",
})).s("gm_flute").gain(0.4)

// other · trumpet · "Trumpets in B♭"
const trumpet = note("<~@15 A B ~ C D ~ E F G H I J K L I J M N O P Q L R S ~@4>".pickRestart({
  A: "~@2 g4@2 f5@3 eb5", B: "c5 ~", C: "c5 bb4 d5 g4", D: "g5", E: "~@7 d5", F: "eb5 d5 bb4 g4",
  G: "d5 eb5 ~ d5 c5@12 ~@2 [bb3,bb4]@6", H: "[d4,d5]", I: "c4@3 g3", J: "f3@3 c4", K: "bb3@3 f3", L: "g3!2",
  M: "bb3@3 g5", N: "f5 eb5", O: "c4@18 g3@4 gb3 f3", P: "f3@14 f3 g3 f3@3 g3@2 ab3@3", Q: "bb3@18 f3@4 gb3 g3",
  R: "c4@6 g3 gb3", S: "f3@3 ~",
})).s("gm_trumpet").gain(0.2)

// chords · piano
const piano = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y I J K Z M N AA AB I J K Z AC AD AE@4
>`.pickRestart({
  A: "[c4,g5] [eb4,f5] [g4,eb5] [g4,g5] [eb4,f5] [g4,eb5]", B: "g5@4 f5@4 eb5@4 f5@11 ~, [c4,f4,ab4]@23 ~",
  C: "[bb3,f5] eb5 d5 [f4,f5] g5 ab5, ~ f4@2 ~ bb4@2", D: "[eb4,ab5]@4 [bb4,g5]@4 [eb5,gb5]@4 [d4,g4,b4,g5]@11 ~",
  E: "[c4,g5] [eb4,f5] [g4,eb5] [eb4,g5] [g4,f5] [eb4,eb5]", F: "g5@2 ab5@2 bb5@2 f5@4 d5 eb5, [c4,f4,ab4]@23 ~",
  G: "f5@2 eb5@2 d5@2 [g3,c4,g4,c5]@3 [b3,b4]@3, [d4,f4,ab4,b4]@11 ~@13", // C5 B Ddim
  H: "c3@2 eb3@2 g3@2 c4@2 [eb4,eb5]@4 [g3,c4,eb4,c5]@11 ~, d5 ~@2", // Eb Cm
  I: "c5@2 c5 eb5 g5 c6 c6@2 c5 eb5 g5 eb5, [eb3,g3,c4]@23 ~", // Cm
  J: "f5@4 f5@2 ab5@2 c6@2 ab5@2 [c3,f3,ab3,f6]@11 ~, [f3,ab3,c4]@11 ~@13", // Fm
  K: "[bb3,bb4,bb5]@2 ~ d4 f4 bb4 f5@2 f5 bb5 ab5 g5, [d3,f3]@23 ~, ~@4 bb3@19 ~", // Bb Dm
  L: "g3 bb3 d4 g4 d4 bb3 g3 g4 d4 bb3 [g3,bb4,d5,g5]@2, g5@3 bb5@3 g5@4 ~@2", // Gm
  M: "c3@2 ~@2 g3 [c4,eb5] eb5 g5 c6 eb6 g6 ab6, [c4,eb4,g4]@6 c5@4 ~@2 eb4@11 ~, ~ eb3 ~@4", // Cm
  N: "bb6@2 c7@2 ab2@2 c3@2 f3@2 ab3@2 [c3,f3,ab3]@10 d5 eb5, f2 ab6 g6 ab6@2 ~", // Fm
  O: "[bb4,d5,f5]@2 eb5@2 d5@2 [eb4,ab4,c5]@3 [bb4,d5]@3, bb2@11 ~ ab2@11 ~", P: "[c3,eb4,g4,c5]@11 ~@7 bb2@6",
  Q: "ab2@2 ~@2 f4 ab4 c5@2 [f4,ab4]@4, eb3@23 ~, c3@6 c3@17 ~, ~@4 ab2@19 ~", // Fm
  R: "eb3@2 ~ g3 bb4 eb5 g5@2 [c5,eb5]@4, [g2,bb2]@23 ~, ~@4 eb3@19 ~", // Cm Gm
  S: "f3@4 ~@2 ab3@2 c5@2 f5@2 ab5@11 ~, [ab2,c3]@23 ~, ~@4 f3@19 ~", // Ab
  T: "~@2 c4 eb4 g4 eb4 [eb3,g3,c4,c5]@3 [bb2,d3,f3,bb4]@3, [c3,eb3,g3]@11 ~@13", U: "~@3 c5 ab4 c5, [c3,eb3,ab3]@23 ~",
  V: "~@4 eb4@2 g4@2 bb4@2 eb5@2 g5@11 ~, [bb2,eb3,g3]@23 ~", W: "[ab2,c3,f3]@11 ~ [bb2,d3,g3]@11 ~",
  X: "[ab2,c3,eb3]@23 ~", Y: "[bb2,d3,f3,bb4]@23 ~",
  Z: "g3@2 bb3@2 d4@2 g4@2 d4@2 bb3@2 [g5,ab5]!8 [g3,bb4,d5,g5]@4, g5@3 bb5@3 g3 g4 d4 bb3 ~@2", // Abmaj7 Gm
  AA: "[bb4,d5,f5]@2 eb5@2 d5@2 [eb4,ab4,c5]@3 [b4,d5]@3, bb2@11 ~ ab2@11 ~", // Bb Ab Bm
  AB: "[d3,f4,ab4,d5]@11 ~ [eb3,g4,bb4,eb5]@11 ~", // Ddim Eb
  AC: "[c3,c4]@2 eb4 g4 [g3,c5] [c4,eb5] g5 c6 g5 eb5 c5 g4, ~@4 eb3@4 ~@4 eb4@11 ~", // C C5 Cm
  AD: "g5@4 ab5@4 bb5@4 [f4,ab4] f5@6 ~@3 d5 eb5, [f2,ab2,c3]@11 ~ [c3,f3,ab3]@8 ~@4, ~@13 c5 ~@10", // Fm
  AE: "[f5@4 eb5@4 d5@4 [g3,c4,g4,c5]@8 [b3,b4]@11 ~ c3@8 ~@8 c4@4 eb4@4 g4@4 ~@6 eb5@6 g5@11 ~ [c6,eb6] c7@10 ~, [d4,f4,ab4,b4]@11 ~@21 c5@28 c5@33 ~@3, ~@40 eb3@53 ~@3, ~@44 g3@49 ~@3, ~@85 g6 ~@10]/4", // C5 B Cm Ddim
})).s("gm_piano").gain(0.3)

stack(flute, trumpet, piano)

More by Evan Call