Strudelify

Failure

The Soul Rebels

KeyF majorTempo134 bpm
0:00/0:00
// Failure — The Soul Rebels
// 134 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/2657486; 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(134/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 · "B♭ Trumpet"
const trumpet = note("<~@8 A B A B A B A B C@8 D@8 E F E F E F E F>".pickRestart({
  A: "c5 ~ c5@2 bb4@2 c5 ~@3 c5 ~ bb4@2 c5 ~", B: "~@2 b4 ~ g4@2 b4 ~@3 b4 ~ g4@2 b4 ~", C: "[eb5 ~@13 d5@18]/2",
  D: "[eb5 ~ d5 c5 ~ d5 ~ eb5 ~ d5 ~ c5 ~ eb5 ~ d5@2 d5 ~ d5@2 d5 ~ d5 ~@4 d5 eb5 ~ d5@2 c5 ~ c5@2 c5 ~ c5 ~@4 c5 eb5 ~ d5@2 d5 ~ d5@2 d5 ~ d5 ~@8]/4",
  E: "~@2 eb5 d5 c5 bb4 c5 d5 eb5@2 ~@4 eb5 ~", F: "~@2 d5 c5 bb4 g4 bb4 c5 d5@2 ~@4 d5 ~",
})).s("gm_trumpet").gain(0.3)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note("<~@8 A B A B A B A B C D C D C D C D ~@8 C D C D C D C D>".pickRestart({
  A: "g4 ~ g4@2 f4@2 g4 ~@3 g4 ~ f4@2 g4 ~", B: "~@2 f4 ~ eb4@2 f4 ~@3 f4 ~ eb4@2 f4 ~",
  C: "~@2 eb4 ~ d4@2 eb4 ~ g4@4 eb4@2 bb3 ~", D: "~@2 eb4 ~ d4@2 eb4 ~ f4@4 d4@2 bb3 ~",
})).s("gm_tenor_sax").gain(0.3)

// other · french horn · "Horn in F"
const french_horn = note("<~@8 A B A B A B A B C@8 D@8 C@8>".pickRestart({
  A: "eb4 ~ eb4@2 d4@2 eb4 ~@3 eb4 ~ d4@2 eb4 ~", B: "~@2 d4 ~ c4@2 d4 ~@3 d4 ~ c4@2 d4 ~", C: "[eb4 ~@13 d4@18]/2",
  D: "[eb4 ~ d4 c4 ~ d4 ~ eb4 ~ d4 ~ c4 ~ eb4 ~ d4@2 d4 ~ d4@2 d4 ~ d4 ~@4 d4 eb4 ~ d4@2 c4 ~ c4@2 c4 ~ c4 ~@4 c4 eb4 ~ d4@2 d4 ~ d4@2 d4 ~ d4 ~@8]/4",
})).s("gm_french_horn").gain(0.3)

// other · trombone
const trombone = note("<~@8 A B A B A B A B C@8 D@8 C@8>".pickRestart({
  A: "c4 ~ c4@2 bb3@2 c4 ~@3 c4 ~ bb3@2 c4 ~", B: "~@2 b3 ~ g3@2 b3 ~@3 b3 ~ g3@2 b3 ~", C: "[c4 ~@13 bb3@18]/2",
  D: "[c4 ~ bb3 g3 ~ bb3 ~ c4 ~ bb3 ~ g3 ~ c4 ~ bb3@2 bb3 ~ bb3@2 bb3 ~ bb3 ~@4 bb3 c4 ~ bb3@2 g3 ~ g3@2 g3 ~ g3 ~@4 g3 c4 ~ bb3@2 bb3 ~ bb3@2 bb3 ~ bb3 ~@8]/4",
})).s("gm_trombone").gain(0.3)

// bass · tuba
const bass = note("<A B A B A B A B ~@8 A B A B A B A B A C D E A C D E A B A B A B A B>".pickRestart({
  A: "c3!2 bb2 c3 ~ c3 bb2 c3", B: "~ g2 f2 g2 ~ g2 f2 g2", C: "g2!2 f2 g2 eb3 c3 bb2 a2", D: "ab2!4 ~ bb2@2 bb2",
  E: "eb2!4 ~ d2 eb2 bb2",
})).s("gm_tuba").gain(0.3)

stack(trumpet, tenor_sax, french_horn, trombone, bass)