Strudelify

Crazy Race

RH Factor

KeyE♭ majorTempo120 bpm
0:00/0:00
// Crazy Race — RH Factor
// 120 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/4792179; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 19 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 · alto sax · "Alto Saxophone"
const alto_sax = note("<A@2 B@4 ~ C ~ C ~@5 D ~ E@2>".pickRestart({
  A: "[f4@2 db4@4 f3@2 gb3@2 bb3@2 db4@2 eb4@2 f4@6 f4@2 e4@4 c4@2 eb4@10 bb4@3 a4@2 ab4@3 g4@4 gb4@12]/2",
  B: "[~@6 f3@2 gb3@2 bb3@2 db4@2 eb4@2 f4@6 f4@2 e4@4 c4@2 eb4@10 bb4@3 a4@2 ab4@3 g4@4 gb4@12]/2",
  C: "~@8 b3@3 db4@2 db4@3 d4@4 d4@12", D: "~@8 bb3@3 b3@2 c4@3 db4@4 d4@12", E: "[~@8 bb4@3 b4@2 c5@3 db5@4 d5@44]/2",
})).s("gm_alto_sax").gain(0.3)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note("<~@2 A@4 ~ B ~ B ~@7 C@2>".pickRestart({
  A: "[~@6 f3@2 gb3@2 bb3@2 db4@2 eb4@2 f4@6 f4@2 e4@4 c4@2 eb4@10 bb4@3 a4@2 ab4@3 g4@4 gb4@12]/2",
  B: "~@8 gb3@3 ab3@2 bb3@3 b3@4 b3@12", C: "[~@8 bb3@3 b3@2 c4@3 db4@4 d4@44]/2",
})).s("gm_tenor_sax").gain(0.3)

// other · piano
const piano = note("<A@2 B@4 C@4 ~@5 D ~ E@2>".pickRestart({
  A: "[eb5@2 db5@4 f4@2 gb4@2 bb4@2 db5@2 eb5@2 f5@6 f5@2 e5@4 c5@2 eb5@9 ~ bb5@3 a5@2 ab5@3 g5@4 gb5@11 ~]/2",
  B: "[~@6 f3@2 gb3@2 bb3@2 db4@2 eb4@2 f4@6 f4@2 e4@4 c4@2 eb4@9 ~ bb4@3 a4@2 ab4@3 g4@4 gb4@11 ~]/2",
  C: "[~@8 gb3@2 bb3@2 db4@2 eb4@2 f4@6 f4@2 e4@4 c4@2 eb4@9 ~ bb4@3 a4@2 ab4@3 g4@4 gb4@11 ~]/2",
  D: "~@8 gb4@3 g4@2 ab4@3 bb4@4 b4@11 ~", E: "[~@8 db5@3 bb4@2 a4@3 ab4@4 gb4@42 ~@2]/2",
})).s("gm_piano").gain(0.3)

stack(alto_sax, tenor_sax, piano)