Strudelify

The Bitter Taste of Truth

18jduncan

KeyB♭ majorTempo130 bpm
0:00/0:00
// The Bitter Taste of Truth — 18jduncan
// 130 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (2/4 at bar 1, 4/4 at bar 1) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5080605; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 95 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/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 · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  ~ A B C D B E A@2 F G H I A E J K L M J K L N O@2 P Q R@2 S T R@2 U@2 V T W S A B C D B E A@2 F G H I A E J K L M J K
  L N O@2 P Q R@2 S T R@2 U@2 V T W S A B C D B E A@2 F G H I A E J K X@2
>`.pickRestart({
  A: "f3 ab3 c4@2", B: "f3 ab3 db4@2", C: "eb3 g3 c4@2", D: "eb3 g3 bb3@2", E: "e3 g3 c4@2", F: "ab3 db4 f4@2",
  G: "g3 c4 e4@2", H: "ab3 c4 f4@2", I: "f3 bb3 d4@2", J: "~ c4 ab4 c4 g4 c4 ab4 c4", K: "bb4 c4 ab4 c4 g4 c4 ab4 c4",
  L: "bb4 d4 f4 d4 ab4 d4 bb4 d4", M: "g4 c4 e4 c4 g4 c4 c5 c4", N: "g4 c4 e4 c4 g4 c4 c5!2",
  O: "[c4 db4 c4@16 ~@14]/2", P: "~@2 eb4 db4", Q: "c4", R: "[~@8 c4 db4 c4@22]/2", S: "c5", T: "eb5",
  U: "[~@8 bb3 c4 bb3@22]/2", V: "f5", W: "db5", X: "[c5@7 ~]/2",
})).s("gm_clarinet").gain(0.3)

// other · clarinet · "B♭ Clarinet"
const clarinet_2 = note(`<
  ~ A@2 B@2 A B A@2 C D@2 E A B F@2 G H F@2 G H I@2 J@2 K@2 L M K@2 N@2 O M P L A@2 B@2 A B A@2 C D@2 E A B F@2 G H F@2
  G H I@2 J@2 K@2 L M K@2 N@2 O M P L A@2 B@2 A B A@2 C D@2 E A B F@2 Q@2
>`.pickRestart({
  A: "~ ab3@3", B: "~ g3@3", C: "~ db4@3", D: "~ c4@3", E: "~ bb3@3", F: "c4/2", G: "d4", H: "e4", I: "ab4/2",
  J: "[g4 ab4 g4@22 f4@4 eb4@4]/2", K: "f4/2", L: "c4", M: "eb4", N: "[g4@3 eb4]/2", O: "f4", P: "db4", Q: "[f4@7 ~]/2",
})).s("gm_clarinet").gain(0.3)

stack(clarinet, clarinet_2)