Strudelify

everything went numb

Thomas Kalnoky

KeyB♭ majorTempo140 bpm
0:00/0:00
// everything went numb — Thomas Kalnoky
// 140 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5967037; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 25 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/4)

// 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 · trumpet · "B♭ Trumpet"
const trumpet = note("<~@3 A B C D E ~ F@2 G H I@2 J ~@8 K>".pickRestart({
  A: "~@7 bb4", B: "c5 d5 c5 b4 c5@6 d5@2 eb5@2 f5@2", C: "g5 ab5 g5 f5 g5@6 ab5@2 bb5@2 ab5@2",
  D: "g5 ab5 g5 f5 g5@6 g5@2 f5@2 eb5@2", E: "c5 d5 eb5 f5 g5 ab5 bb5 b5 c6 ~@3 c4@4",
  F: "[~@8 g5 g5@2 g5 ~ f5 ~ c5@5 ~@12]/2", G: "~@8 c5@4 bb4 ab4 g4 ab4",
  H: "c5@2 g5 ab5 g5@2 f5@2 eb5@2 d5@2 c5@2 bb4@2", I: "[ab4@2 bb4@2 c5@2 d5@2 g5!2 ~ f5 ~ bb5 ~ g5@9 f5@8]/2",
  J: "eb5 d5", K: "c4",
})).s("gm_trumpet").gain(0.3)

// other · alto sax · "Alto Saxophone"
const alto_sax = note("<~@2 A B A C A D E@3 F G H@2 I J K L@2 M@2 N@2 O>".pickRestart({
  A: "c5 ~@2 c5 ~@2 c5 ~ ab4 ~ bb4 ~ g4 ~@3", B: "ab4@6 bb4 ab4 g4 ~@7", C: "c4 ~@2 c4 ~@2 c4 ~ ab3 ~ g3 ~ f3 ~@3",
  D: "~@3 c4",
  E: "[g4@2 g4!2 g4@2 f4 eb4 f4 eb4 f4 eb4 g4 eb4@2 f4@2 f4@2 f4@2 eb4 c4 ~ bb4 bb4@2 bb4 ~ ab4 ~ eb4@5 ~@12]/3",
  F: "~@8 g4@4 f4 eb4 d4 eb4", G: "d4 ~@3", H: "[~@8 g4!2 ~ f4 ~ bb4 ~ g4@9 f4@8]/2", I: "eb4 d4",
  J: "~@2 g4!3 ab4 g4 f4", K: "eb4@2 g4!3 ab4 g4 f4", L: "[g4 f4 eb4 f4@2 eb4@2 ab4@2 ab4@2 ab4 g4 f4 eb4 d4]/2",
  M: "[c4@2 c4 eb4@2 d4@2 c4@2 c4@2 c4 bb3 c4 bb3@2]/2", N: "[c4@2 c4 eb4@2 eb4@2 ab4@2 ab4@2 ab4 g4 f4 eb4 d4]/2",
  O: "c4",
})).s("gm_alto_sax").gain(0.3)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note("<A B A C A B A D ~ E F G H I J K ~@4 L M L M N>".pickRestart({
  A: "c3 ~@2 c3 ~@2 c3 ~ ab2 ~ bb2 ~ g2 ~@3", B: "c2 ~@2 c2 ~@2 c2 ~ ab2 ~ g2 ~ f2 ~@3", C: "ab2@6 g2 ab2 g2 ~@7",
  D: "~@3 eb3", E: "~@8 bb3 bb3@2 bb3 ~ ab3 ~ eb3", F: "f2@2 f2@2 f2@2 g2 ab2 c3@2 bb2@2 ab2@2 g2@2",
  G: "ab2@2 ab2!2 bb2@2 ab2@2 eb3@4 db3 b2 bb2 b2", H: "bb2 ~@3", I: "~@8 bb3!2 ~ ab3 ~ db4 ~ [d3,eb3,e3,f3,gb3,g3]",
  J: "[ab2,a2,bb2,b2,c3,db3] ~@7 f2@8, g2 ~", K: "eb2 d2", L: "c3@2 g3 ab3 g3@2 eb3@2 f3@2 eb3@2 g3@2 eb3@2",
  M: "ab2@2 eb3@2 g3 ab3 g3@2 eb3@2 g3@2 eb3 g3 ab3@2", N: "c3",
})).s("gm_baritone_sax").gain(0.3)

stack(trumpet, alto_sax, baritone_sax)