Strudelify
Hazard cover art

Rush Street

Hazard

Marx Richard

KeyG minorTempo125 bpm
0:00/0:00
// Hazard — Marx Richard
// 125 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 151 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(125/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.

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@16 A B A C D E F G A B A C D E F H I J K L M N O P Q@2 R S T U O V ~@7 W A B A C D E F G A B A C D E F G I J K L M N
  O P Q@2 R S T U O V X Y Z AA AB AC AD AE AF A B A C D E F G A B A C D E F G I J K L M N O P Q@2 R S T U O V A@19 AG@3
>`.pickRestart({
  A: "g1 d1", B: "g1@2 ~ g1 d1@4", C: "g1@2 ~ g1 d1@2 g1@2", D: "f1 c1", E: "f1@2 ~ f1 c1@4", F: "c2 g1",
  G: "c2@5 ~ c2@2 g1@4 c1@3 ~", H: "c2@5 ~ c2@2 g1@7 ~", I: "eb1@5 ~ eb1@2 bb1@4 ~@2 bb1@2",
  J: "eb1@4 ~@2 eb1@2 bb1@4 g1@2 bb1 ~", K: "bb1@4 ~@2 bb1@2 f1@5 ~ f1@2", L: "bb1@5 ~ bb1@2 f1@4 c2@2 d2@2",
  M: "eb1@5 ~ eb1@2 bb1@5 ~ bb1@2", N: "eb2@5 ~ eb2 ~ bb1@4 eb1@2 f1@2", O: "g1@4 ~@2 g1@2 d2@6 g1 ~",
  P: "g1@5 ~ g1@2 g2@4 d2@2 g1@2", Q: "eb1@2 ~ eb1 bb1@2 ~ bb1", R: "d1@2 ~ d1 d2@2 ~ d2", S: "g1@2 ~ g1 d2@2 ~ d2",
  T: "f1@4 ~@2 f1@2 c2@5 ~ c2@2", U: "eb1@5 ~ eb1@2 bb1@4 f1@4", V: "g1@4 ~@2 g1@2 d2@3 ~ d2@2 g1@2", W: "~@3 d1",
  X: "f1@4 ~@2 f1 ~ f1@8", Y: "eb1@4 ~@2 eb1 ~ eb1@4 f1@4", Z: "g1@5 ~ g1 ~ g1@8",
  AA: "f1@4 ~@2 f1 ~ f1@2 c1 ~ c1@2 d1@2", AB: "f1@5 ~ f1 ~ f1@4 c1@2 d1@2", AC: "eb1@5 ~ eb1 ~ eb1@8",
  AD: "d1@5 ~ d1@2 eb1@5 ~ eb1@2", AE: "f1@5 ~ f1 ~ f1@6 f1 ~", AF: "f1@5 ~ f1@2 f1@5 ~ f1@2", AG: "[g1@11 ~@5]/3",
})).s("gm_electric_bass_finger").gain(0.45)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  ~@97 A B ~@6 C@3 ~@5 D ~ E ~ F ~ G H I@2 J K L M@2 ~ N@2 ~@2 O@2 ~@4 P@2 Q@2 ~ R S@2 T@3 ~
>`.pickRestart({
  A: "~@2 [d5,bb5]@2 d5@2 [d5,bb5]@2 [d5,bb5]@3 [c5,a5]@3 [c5,a5]@2, ~@4 bb5 ~@11", B: "[c5,a5] [d5,bb5] ~@2",
  C: "[~@2 [d6,bb6] ~ [d6,bb6] ~ [d6,bb6]@2 [d6,bb6]@2 [c6,a6]@2 [c6,a6]@2 [c6,a6]@4 [bb5,g6]@4 [c6,a6]@4 [d6,bb6]@11 ~@11]/3", // Gm F Eb F Gm
  D: "~@2 g5 [eb5,eb6]@3 ~@2", E: "f4 bb4 c5 d5 c5@3 ~", F: "[eb4,g4,bb4,eb5]@3 ~@13", G: "[bb4,d5,g5,d6]",
  H: "[g4,a4,c5]", I: "[[eb4,g4,bb4,eb5]@6 [eb4,g4,g5]@4 [g4,bb4]@9 ~@13]/2",
  J: "[bb4,c5,f5,bb5,f6]@5 [f5,f6] [f5,f6]@2", K: "[g4,g5]@3 ~", L: "[c5,f5,a5,c6]@3 [g4,a4,c5,g5]@2 [c5,f5,a5,c6]@3",
  M: "[[eb4,g4,bb4,eb5]@6 [g4,g5]@2 [g4,g5]@2 [bb4,bb5]@11 ~@11]/2", // Eb G Bb
  N: "[~@2 [d5,bb5]@2 d5@2 [d5,bb5]@2 [d5,bb5]@6 [c5,a5]@11 ~@7, ~@4 bb5 ~@27]/2", // Gm F
  O: "[~@2 [d6,bb6]@2 [d6,bb6]@2 [d6,bb6] ~ [d6,bb6]@2 [c6,a6]@2 [c6,a6] ~ [c6,a6]@4 [bb5,g6]@4 [c6,a6]@4 [d6,bb6]@5 ~]/2", // Gm F Eb F Gm
  P: "[~@2 c5@2 [f5,bb5]@2 [f5,bb5]@2 [f5,bb5]@2 a5@2 [f5,a5] ~ [c5,a5]@4 [c5,g5]@9 ~@5, ~@10 f5 ~@3 f5 ~@17]/2", // Bb5 F C5
  Q: "[~@3 [a4,c5,f5] [a4,c5,f5]@3 [bb4,d5,g5,bb5]@2 [g4,bb4,d5]!2 [g4,bb4,d5]@5]/2", // F Gm
  R: "~ [d6,bb6]!2 d6!2 a6@3, ~@6 bb6 ~ bb6 ~@7", // Gm
  S: "[~@7 [g5,bb5,d6,g6]@2 [g5,bb5,d6,g6]@2 [a5,c6,f6]@2 [g5,bb5,d6]@3]/2", // Gm F Gm
  T: "[[d5,g5,bb5]@6 [c5,f5,a5]@6 [bb4,d5,g5]@2 [g4,bb4,d5]@33 ~]/3", // Gm F Gm
})).s("gm_piano").gain(0.3)

// other · alto sax
const alto_sax = note(`<
  ~@15 A B@2 C@2 D@2 E@2 F G H@2 I@2 J@2 K@2 L@2 M@2 N@2 K@2 O@2 P@4 ~@8 Q R S@2 T@2 U@2 V W@3 X@2 Y@2 K@2 Z@2 AA@2 AB@2
  K@2 AC AD AE@4 AF@2 AG@2 AH@2 AI AJ@2 AK@2 ~@13 AL K@2 AM@2 AA@2 AN@2 K@2 AO AD AP@4 AQ AR AS@2 ~@18
>`.pickRestart({
  A: "~@7 d3", B: "[bb3!5 a3!2 a3@2 g3 g3@2 a3@2 bb3@2]/2", C: "[~@2 bb3!2 a3@2 g3 c4@2 bb3@2 a3@3 g3!2]/2",
  D: "[g3 f3 f3@2 f3 g3 f3@4 ~@4 f3@2]/2", E: "[f3@4 g3@4 e3@4 d3@2 c3@9 ~@9]/2", F: "bb3@2 bb3!2 bb3@2 a3!2",
  G: "a3 g3 g3@2 a3@2 bb3@2", H: "[~@2 bb3@2 a3@2 g3 c4@2 bb3@2 a3@2 g3!3]/2", I: "[g3 f3!2 d3 f3 g3 f3@4 ~@3 f3!3]/2",
  J: "[f3@2 g3@2 e3@2 d3 c3@5 ~@2 bb3@2]/2", K: "[bb3@6 bb3 c4@2 bb3@2 a3 g3@3 f3]/2",
  L: "[f3@4 g3@2 d3@15 ~@7 bb3@4]/2", M: "[bb3@5 ~ bb3 c4@2 bb3@2 a3@2 bb3@2 c4]/2", N: "[d4@5 ~@2 c4]/2",
  O: "[f3@6 g3 d3@6 ~ f3@2]/2", P: "[f3@6 f3 f3@2 eb3@2 eb3@2 c4@2 bb3@2 a3 g3@12 ~@2]/4", Q: "bb3!5 a3!3",
  R: "a3 g3!2 a3@2 bb3@3", S: "[~@2 bb3!2 a3@2 g3 c4@2 bb3@2 a3@2 g3!3]/2", T: "[g3 f3!2 d3 f3 g3 f3@7 ~ f3@2]/2",
  U: "[f3!2 g3@2 e3@2 d3 c3@7 ~@2]/2", V: "bb3@2 bb3!3 a3 a3@2",
  W: "[a3 g3 g3@2 a3@2 bb3@4 bb3!2 a3@2 g3 c4@2 bb3!3 a3@2 g3@2]/3", X: "[g3 f3!2 d3 f3 g3 f3@6 ~@2 f3!2]/2",
  Y: "[f3@4 g3@4 e3@4 d3@2 c3@11 ~@3 bb3@4]/2", Z: "[f3@2 g3 d3@11 bb3@2]/2",
  AA: "[bb3@6 bb3 c4@2 bb3@2 a3@2 bb3@2 c4]/2", AB: "[d4@6 ~ c4]/2", AC: "f3@3 d4", AD: "c4 bb3 g3@10 f3@4",
  AE: "[f3@6 f3 f3@2 eb3@2 eb3@2 c4@2 bb3@2 a3 g3@10 ~@4]/4",
  AF: "[~@2 c3@2 a3@2 a3@2 a3@4 a3@2 a3@4 g3@2 f3@2 g3 f3 eb3@6 ~@2]/2", AG: "[bb3@2 a3 g3@2 f3@2 d3@2 c3@7]/2",
  AH: "[~@2 c3@2 a3@2 a3@2 a3@4 a3@2 bb3@4 a3@4 g3 f3 eb3@7 ~]/2", AI: "f3!3 g3@2 f3@2 eb3",
  AJ: "[d3@5 c3 bb2 c3@5 ~ bb2 a2 bb2]/2", AK: "[a2 g2@15]/2", AL: "~@3 bb3", AM: "[f3@2 g3 d3@9 ~@2 bb3@2]/2",
  AN: "[d4@20 ~@4 c4 d4 c4 bb3 c4@4]/2", AO: "f3@5 bb3 d4@2", AP: "[f3@6 f3 f3@2 eb3@2 eb3@2 c4@2 bb3@2 a3 g3@14]/4",
  AQ: "a3", AR: "f3", AS: "[d3@3 ~]/2",
})).s("gm_alto_sax").gain(0.64)

// other · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@32 A@2 B@2 A@2 C@2 A@2 D E F G C@2 ~@24 A@2 B@2 A@2 C@2 A@2 D E F G C@2 ~@25 A@2 B@2 A@2 C@2 A@2 D E F G C@2 ~@22
>`.pickRestart({
  A: "g4 f4 g4 eb4 f4 g4 eb4 f4", B: "f4 eb4 f4 d4 eb4 f4 d4 eb4", C: "g4 c5 d5 bb4 c5 d5 a4 bb4",
  D: "d4 f4 a4 f4 g4 a4 d4 f4", E: "g4 c5 d5 a4 bb4 c5 a4 bb4", F: "f4 bb4 c5 a4 bb4 c5 g4 a4",
  G: "eb4 g4 a4 bb4 g4 a4 bb4 a4",
})).s("gm_acoustic_guitar_steel").gain(0.35).pan(0.7)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@32 A@8 B@4 C D@3 ~@24 A@8 B@4 C D@3 E F@2 G@2 H@4 ~@16 A@8 B@4 C D@3 ~@22
>`.pickRestart({
  A: "[[g3,eb4]@2 [f3,d4]@2 [g3,eb4]@2 d4 [a3,c4], bb3@7 ~, ~@3 g4]/8", B: "[[g3,eb4]@2 f3 g3, bb3, ~ d4]/4",
  C: "[f3,a3,c4]", D: "[eb3@2 d4@3 [a3,c4,f4], [g3,bb3]@5 ~]/3", E: "[c4,f4,a4]", F: "[[bb3,eb4] [d4,bb4], g4]/2",
  G: "[c4,f4,a4]/2", H: "[[eb4,g4]@16 [d4,f4]@7 [eb4,g4]@9 d4@16 [a3,c4]@16, bb3@3 ~, ~ f4]/4",
})).s("gm_string_ensemble_1").gain(0.35)

// other · blown bottle · "BOTTLEBLOW"
const blown_bottle = note(`<
  ~@8 A@2 B@2 C@2 D@2 E@4 F@2 G@2 E@4 F@2 G@2 ~@16 A@2 B@2 C@2 D@2 E@4 F@2 G@2 E@4 F@2 G@2 ~@25 E@4 F@2 G@2 E@4 F@2 G@2
  ~@16 E@19 H@2 ~
>`.pickRestart({
  A: "[[bb4,d5,g5]@3 [a4,c5,f5]]/2", B: "[bb4,d5]/2", C: "[[g4,c5]@3 [f4,bb4]]/2", D: "[[d4,g4]@31 ~]/2",
  E: "g4 c5 d5 bb4 c5 d5 bb4 c5", F: "f4 bb4 c5 a4 bb4 c5 a4 bb4", G: "c4 g4 c5 e4 g4 c5 e4 g4", H: "g4/2",
})).s("gm_blown_bottle").gain(0.25).pan(0.3)

// other · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  ~@55 A@3 B@2 C@2 D@2 E@2 F@2 C@2 G@2 ~@16 H@2 I ~ J@2 ~@3 K L@2 M N@2 O@2 P@2 Q R S@3 T ~@23 U V@5 W X Y Z AA AB@3 ~
>`.pickRestart({
  A: "[~@15 bb3 c5@4 g4@2 d4@24 c4 ~, ~@15 f4@5 ~@28]/3", B: "[c4@2 d4 g3@10 bb3 c4 g4]/2", C: "[f4@15 f4]/2",
  D: "[f4@2 e4@11 ~@3]/2", E: "[[a3,c4] d4 g4 d4@13, f4 ~@7, ~ bb3@5 ~@10]/2", F: "[c4!2 d4 g3@11 c4 g4]/2",
  G: "[f4@6 e4@21 ~@5]/2",
  H: "[~ c4 f4 g4 ~@2 f4 ~@4 f4 g4 ~@2 a4, a4@2 ~@2 a4@3 g4@5 ~ g4@3, ~@5 c4@2 ~@2 bb3@3 ~@4, ~@5 eb4 ~@2]/2",
  I: "bb4@3 bb4 bb4@4", J: "[~@4 f4@2 g4@8 ~@8 f4@4 g4@5 ~, a4@3 ~@4 g4@3 ~@6, ~@2 c4@4 ~@12 bb3@9 ~@5]/2",
  K: "~@6 [d4,bb4]@2 [d4,bb4]@2 ~ [c4,a4]@3 [c4,a4]@2", // Gm F
  L: "[[c4,a4]@4 [bb3,g4]@2 [c4,a4]@4 [d4,bb4]@12 [d4,bb4]@2 [c4,a4]@3 [d4,bb4]@2 ~ [eb4,c5]@2]/2", // F Eb F Gm F Gm Cm
  M: "[eb4,c5]@2 [f4,d5]@2 [f4,d5]@2 [f4,d5]@4 c5@3 [d4,bb4]@3", N: "[a4 bb4 a4@4 f4@6 g4@2 c4@14 ~@2 f4@2]/2",
  O: "[f4@4 e4@2 c4@18 bb3 a3 g3@2 f3 g3 a3@2]/2",
  P: "[bb3@2 c4@2 ~@2 bb3 ~ c4@2 bb3@2 g3@2 g4@4 a4@2 bb4@2 c5 ~ d5@3 bb4@3 c5@2, ~@4 d4@4 bb3 ~@5 f4 ~@9 c5 ~@7]/2",
  Q: "g4@3 a4@2 bb4@3 c5@3 d5@2 f5@2 ~", R: "f5@3 eb5@2 d5@3 c5@3 bb4@2 a4@2 ~, d5 ~@15",
  S: "[a4@6 g4@4 a4@2 f4@6 g4@2 d4@2 c4@16 a3 bb3 c4@2 d4@2 f4@2 g4 ~]/3",
  T: "[d4,a4,bb4]@2 ~ [d4,bb4]@2 [d4,bb4]@2 ~ [c4,a4]@3 [bb3,g4]@2 f4@2 ~", // Bbmaj7 Gm F Eb
  U: "~@3 d4@2 ~ c4@2 [c4,a4]@3 [bb3,g4]@4 ~, ~@2 bb4@3 a4@2 ~@9", // F Eb
  V: "[[bb3,g4]@6 f4@4 g4@2 d4@2 c4@8 bb3@2 c4 ~ d4@4 g3@8 a3@8 bb3@8 d4@4 g4@4 f4@8 d4@2 ~@8, ~@26 c4 ~@27 c4 ~@3 f4 ~@21]/5", // Eb
  W: "~ [c4,d4] c4 bb3 c4 d4 c4 bb3", X: "c4@2 bb3@2 g3@2 bb3@2 c4@5 ~@3", Y: "~@3 c4 g4 f4 bb3 d4",
  Z: "f4@4 g4@2 d4@2 ~@2 f4@3 ~ c4@2", AA: "~@2 bb3@2 ~@2 c4@3 ~ d4@5 ~",
  AB: "[~@3 c4 [d4,f4]@2 g4@2 f4@4 g4@2 g3@34]/3", // Dm
})).s("gm_acoustic_guitar_nylon").gain(0.45).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  A@19 B A@7 B A@4 C@5 B C@7 B A D A@11 B A@7 B A@4 C B C@3 A C B C@5 B C@2 A@3 E A@2 C@3 A@16 C B C@3 B C B C@5 B C@2
  A@19 ~@3
>`.pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@2 x!2 ~ x ~", C: "x ~@2 x!2 ~@2 x", D: "~@3 x!2 ~@2 x", E: "x ~@2 x!3 ~ x",
})).gain(0.45)

// drums · snare
const snare = s("sd").struct("<~@87 A B@8 C ~@15 D B@15 E ~@22>".pickRestart({
  A: "~ x ~@2 x ~ x ~", B: "~ x ~ x", C: "~@2 x ~@3 x!2", D: "~@5 x ~ x", E: "~ x!2 ~@3 x ~",
})).gain(0.45)

// drums · crash
const crash = s("cr").struct(`<
  ~@32 A ~@7 A ~@7 A ~@7 A ~@15 A ~@7 A ~@7 A ~@3 A ~ B A ~ A ~@7 A ~@7 A ~@7 A ~@7 A ~@21
>`.pickRestart({
  A: "x", B: "x!2",
})).gain(0.35)

// drums · tambourine
const tambourine = s("tb").struct("<A B C B C B C B@9 D@32 B@8 D@73 ~@22>".pickRestart({
  A: "x ~ x ~ x ~ x ~ x ~ x ~ x!3 ~", B: "x!8", C: "x!7 ~", D: "x!4",
})).gain(0.3)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct("<~@16 [~ x ~ x ~ x ~ x]!32 ~@8 [~ x ~ x ~ x ~ x]!73 ~@22>").gain(0.15)

// drums · congas
const congas = s("conga:13").struct("<[~ x ~ x]!87 ~@10 [~ x ~ x]!15 [~ x ~@2] ~@16 [~ x ~ x]!19 ~@3>").gain(1.43)

// drums · cabasa
const cabasa = s("cabasa:4").struct(`<
  A ~ B C B ~ B C ~@8 D@2 E@2 F G@2 E@2 G@3 D E@2 G@3 H I J K E L M G N O L K P G ~@8 G@2 D E Q G@3 E R F S G D E G P T
  H U V N W O X Y T J G X Z W T AA ~ AB AC AA AD ~@2 F G@2 X AE G@3 X AB G@3 AF F D AG AA AG AH AI AG AJ AK AL AA AG AI
  AM AN AI G@2 E F G@3 E F G@3 D F G@6 AO@2 X
>`.pickRestart({
  A: "~@7 x", B: "x ~@6 x", C: "~@3 x", D: "x ~ x!3 ~ x ~", E: "x!4", F: "x ~ x ~ x ~ x!2", G: "x ~ x!3 ~ x!2",
  H: "x ~ x!5 ~", I: "x!3 ~ x!2 ~ x", J: "x ~ x!4 ~ x", K: "x ~ x ~ x!4", L: "x ~ x ~ x!3 ~", M: "x ~ x!2 ~ x!3",
  N: "x ~ x!6", O: "x ~ x!4 ~@2", P: "x ~@2 x!5", Q: "x!3 ~ x ~ x ~", R: "~ x!3", S: "x ~ x!3 ~@2 x",
  T: "x ~@2 x!2 ~ x!2", U: "x!3 ~ x!3 ~", V: "~@2 x ~ x!3 ~", W: "x!5 ~ x!2", X: "x", Y: "~@4 x ~@2 x", Z: "x!8",
  AA: "x ~@2 x!2 ~@2 x", AB: "~@6 x!2", AC: "x!2 ~ x!2 ~ x!2", AD: "x ~@2 x!2 ~@3", AE: "~@4 x ~ x!2",
  AF: "x ~@2 x!2 ~ x ~", AG: "x ~@2 x!3 ~ x", AH: "x!2 ~@2 x!2 ~@2", AI: "x!2 ~ x!3 ~ x", AJ: "x!2 ~ x!2 ~@2 x",
  AK: "x ~@2 x!3 ~@2", AL: "x ~@2 x ~@3 x", AM: "x ~@3 x!2 ~ x", AN: "x!2 ~ x!3 ~@2", AO: "x!16",
})).gain(1.51)

// drums · shaker
const shaker = s("sh").struct("<A@3 B A@2 B A@9 C@32 A@8 C@92 ~@3>".pickRestart({
  A: "x!4", B: "x ~ x ~ x ~ x!2", C: "x!8",
})).gain(0.3)

// drums · triangle
const triangle = s("triangles:35").struct("<~@97 A B@7 C B@7 ~@16 B@3 D C B@2 D C B@2 E C B@6 ~@3>".pickRestart({
  A: "~@5 x ~@2", B: "~ x ~@3 x ~@2", C: "x ~@4 x ~@2", D: "~ x ~@3 x!2 ~", E: "~ x ~@3 x ~ x",
})).gain(2.59)

stack(
  bass, piano, alto_sax, acoustic_guitar_steel, string_ensemble_1, blown_bottle, acoustic_guitar_nylon, kick, snare,
  crash, tambourine, tambourine_soft, congas, cabasa, shaker, triangle
)

More by Marx Richard