Strudelify
Running With the Night cover art

1991 · Can't Slow Down

Running With the Night

Lionel Richie

KeyC majorTempo92 bpm
0:00/0:00
// Running With the Night — RICHIE LIONEL
// 92 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 138 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(92/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.

// chords · piano · "Midi C2, T1"
const piano = note(`<
  ~@26 A B A C A B D E@3 F G F H F G F I@3 ~@8 A B A C A B D E@3 F G F H F G F J@3 K@2 L@2 M@2 N@2 O@2 P@2 Q@2 R S T@2
  ~@3 U F G F H F G F G F V@3 F G F G F G F G F G F G F G F G F G F G F G F G W X@2 ~@3
>`.pickRestart({
  A: "[d3,a3,d4,f4,a4]@5 [a3,e4,a4,c5]@3", B: "[g3,d4,g4,b4]@5 [g3,d4,g4,c5]@3", C: "[d4,g4,b4]@5 c5 [d4,g4,b4]@2, g3",
  D: "[d3,a3,d4,f4,a4]", E: "[[a3,e4,g4,c5]@4 ~@2 [g3,d4,g4,b4]@38 g1 a1 [g1,g2] [a1,a2]]/3",
  F: "[c2,c3,g3,c4,e4]@3 [e2,b3,d4,g4]@5", G: "[f2,c4,f4,a4]@6 [g2,c4,f4,a4]@6 g1 a1 [g1,g2] [a1,a2]",
  H: "f2@6 g2@6 g1 a1 [g1,g2] [a1,a2], [c4,f4,a4]", I: "[[f2,c4,f4,a4]@3 [g2,c4,f4,a4]@3 [g2,b3,c4,d4,f4,g4]@17 ~]/3",
  J: "[[f2,c4,f4,a4]@6 [g2,c4,f4,a4]@6 g2@30 g2 ~ [b1,b2] [c2,c3] [c#2,c#3] [d2,d3], ~@6 [b3,c4,d4,f4,g4]@17 ~, ~@14 g1 ~, ~@43 [a1,a2]@2 ~@3]/3", // F B C C# D G7 A
  K: "[[d4,g4,b4,d5]@6 [b3,e4,g4,b4]@18 [d4,b4,d5]@3 [c4,e4,c5]@2 [d4,b4,d5]@3]/2", // G Em G C G
  L: "[[e4,a4,c5,e5]@6 [c4,e4,a4,c5]@18 [c4,a4,c5]@3 [d4,f4,d5]@2 [e4,c5,e5]@3]/2", // Am F Dm C
  M: "[[d4,g4,b4,d5]@3 [b3,d4,g4,b4]@3 [g3,b3,d4,g4]@3 [g3,b3,e4]@3 [e3,g3,b3,d4]@4]/2", // G Em Em7
  N: "[[c4,e4,a4,c5,e5]@6 [c4,e4,a4,c5]@6 [a3,c4,e4]@12 [c4,a4,c5]@3 [d4,f4,d5]@2 [e4,c5,e5]@3]/2", // Am F Dm C
  O: "[[d4,g4,b4,d5]@12 [b3,d4,g4,b4]@2 [c4,f4,a4,c5]@10 [c4,a4,c5]@3 [d4,f4,d5]@2 [e4,c5,e5]@3]/2", // G F Dm C
  P: "[[d4,g4,b4,d5]@12 [b3,d4,g4,b4]@2 [a3,c4,f4,a4]@10 [c4,a4,c5]@3 [d4,f4,d5]@2 [e4,c5,e5]@3]/2", // G F Dm C
  Q: "[[d4,g4,b4,d5]@6 [b3,d4,g4,b4] [a3,c4,f4,a4]@9]/2", R: "[g1,g2,g3,c4,d4,g4]@5 [g1,g2,g3,c4,d4]@3",
  S: "[g1,g2,g3,c4,d4]", T: "[g1,g2,g3,c4,d4,g4]", U: "~@12 g1 a1 [g1,g2] [a1,a2]",
  V: "[[f2,c4,f4,a4]@6 [g2,c4,f4,a4]@8 ~@30 g1 a1 [g1,g2] [a1,a2], ~@7 [g2,b3,c4,d4,f4,g4]@16 ~]/3", // F G A G7
  W: "[c3,g3,c4] ~@7", X: "[c2,c3,g3,c4]/2",
})).s("gm_piano").gain(0.4)

// bass · piano · "Midi C3, T2"
const bass = note(`<
  A B A C A B A D@3 E B A B F B G H E I E C G B E J K L K M K N O P@3 Q B G R A S A T@3 E I E C G B E J K L K M K N O
  P@3 Q B G R A S A U@3 V W X Y Z W X AA AB AC AB AD AB AE AF AG AH AI E B A B Q B G R A S A S A AJ@3 Q B G R A S A S Q
  B G R A S A S Q B G R A S A S AK AL ~@4
>`.pickRestart({
  A: "c2@3 e1@5", B: "f1@3 g1@5", C: "f1@6 g1@7 ~ g1@2", D: "[f1@5 ~ g1@3 ~ g1 ~ g1@34 ~@2]/3",
  E: "c2@2 c2@3 ~ e1@4 e1@6", F: "c2@2 c2@3 ~ e1@10", G: "c2@3 e1@2 e1@3", H: "f1@5 ~ g1@4 g1@4 g1@2",
  I: "f1@3 g1@2 g1@3", J: "f1@5 ~ g1@8 c2@2", K: "d2@6 ~ d2!2 g1 a1@6", L: "g1@6 ~ g1 ~ d1 g1@6",
  M: "g1@7 g1 ~ d1 g1@2 c2@2 c#2@2", N: "g1@7 g1 ~ d1 g1@4 c2@2", O: "d2@6 ~ d2 ~ d2 a1@2 d1@4",
  P: "[a1@5 ~ g1@40 g1 a1]/3", Q: "c2 c2@2 e1@2 e1@3", R: "f1@3 g1@3 g1@2", S: "f1@3 g1@4 g1",
  T: "[f1@5 ~ g1@3 ~ g2@2 g2@34 g1@2]/3", U: "[f1@5 ~ g1@3 ~ g2@2 g2@30 g1 a1 b1 c2 c#2 d2]/3",
  V: "c2 ~ c2 ~ c2@2 g1 c2 ~ g1 c2@4 g1 a1", W: "c2 ~ c2 ~ c2@2 g1 c2 ~ g1 c2@4 c#2@2",
  X: "d2 ~ d2 ~ d2@2 a1 d2 ~ a1 d2@5 a1", Y: "d1 ~ d1 ~ d1@2 d2 d1 ~ d2 d1@3 a1 d2@2",
  Z: "c2 ~ c2 ~ c2@2 g1 c2 ~ g1 c2@2 g1@2 c2 g1", AA: "d1 ~ d1 ~ d1@2 d2 d1 ~ d2 d1@4 f1@2",
  AB: "e1 ~ e1 ~ e1@2 b1 e1 ~ b1 e1@3 b1 e2 b1", AC: "d2 ~ d2 ~ d2@3 a1 ~ a1 d1 ~ d1@4",
  AD: "d2@2 d2@2 a1@3 a1 ~ f1 f1@2 e1@2 d1@2", AE: "d2 ~ d2 ~ d2@2 a1 d2 ~ d2 f1@2 f1@2 f#1@2", AF: "g1@7 g2 ~ g2 g1@6",
  AG: "g1@7 g2 ~ g2 f1@2 f1@2 f#1@2", AH: "g1@7 g2 ~ g2 g1@5 ~", AI: "g1@13 ~ g1@2",
  AJ: "[f1@5 ~ g1@3 ~ g2@2 g2@32 g1 a1 g1 a1]/3", AK: "c2@2 c1!2 c2@2 ~ c2 ~ c2 ~@2 c2 g1 a1 ~", AL: "[c1,c2] ~@7",
})).s("gm_piano").gain(0.58)

// other · piano · "Midi C4, T3"
const piano_2 = note(`<
  A B C B D E F G ~@2 A B H B I E J K L M N O D E P Q ~@20 L M J O D E P Q ~@38 A B H B ~@42
>`.pickRestart({
  A: "c4@2 c4@2 ~@6 d4@2 d4 ~ a3@2", B: "~@2 c4!2 ~@6 c4@2 ~@4", C: "c4 ~ c4@2 ~@6 d4@2 d4 ~ a3 ~",
  D: "c4 ~ c4@3 ~@5 d4@2 d4 ~@3", E: "~@2 c4!2 ~@2 c4@2 ~@2 c4@4 ~@2", F: "c4@2 c4@2 ~@4 g3 ~ d4 ~ d4 ~ a3@2",
  G: "~@2 c4 ~@3 c4@2 c4 ~ c4@4 ~@2", H: "c4 ~ c4@2 ~@6 f4@2 d4 ~ a3 ~", I: "c4 ~ c4@3 ~@5 d4@2 e4 ~@3",
  J: "c4 ~ c4@2 ~@4 d4@2 g4 ~ d4 ~ a3@2", K: "~@2 c4 ~@5 c4 ~ c4@4 ~@2", L: "~@10 d4@2 e4 ~ a3@2",
  M: "~@2 c4!2 ~@4 c4@2 ~@6", N: "c4@2 c4@2 ~@4 d4@2 g4 ~ d4 ~ a3@2", O: "~@2 c4!2 ~@3 c4@2 ~@7",
  P: "c4 ~ c4!2 ~@4 d4@2 g4 ~ d4 ~ a3@2", Q: "~@2 c4 ~@3 c4@2 c4@6 ~@2",
})).s("gm_piano").gain(0.32)

// other · piano · "Midi C4, T3" · soft notes
const piano_soft = note(`<
  A B A B C D A E ~@2 A B A F G H I J K L I M C H A E ~@20 K L I M C H A E ~@38 A B A F ~@42
>`.pickRestart({
  A: "~@13 c4 ~@2", B: "~@3 c4@2 ~@3", C: "~@13 c4 a3@2", D: "~@8 c4 ~@5 g3@2", E: "~@3 c4@2 a3 ~@10",
  F: "~@3 c4!2 ~@3", G: "~@12 d4 c4 a3@2", H: "~@4 c4 ~@2 g3", I: "~@6 c4@2 ~@5 c4 ~@2", J: "~@3 c4@2 a3 c4@2 ~@8",
  K: "c4@2 c4@2 ~@4 c4@2 ~@3 c4 ~@2", L: "~@3 c4 ~@4", M: "~@6 c4 ~@9",
})).s("gm_piano").gain(0.08)

// chords · piano · "Midi C5, T4"
const piano_3 = note(`<
  A B A B A B A C@3 D B D B D B A B E B A B E B E B F G F H F G I J@3 A K A L A K A M@3 E B A B E B E B F G F H F G I
  J@3 A K A L A K A M@3 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@2 V@2 D B D B A K A L A K A K A W@3 A K A K A K A K A K A K A K A
  K A K A K A K A K X@2 ~@4
>`.pickRestart({
  A: "[c3,g3,c4,e4]@3 [e3,b3,d4,g4]@5", B: "[f3,a3,c4,e4]@3 [d3,a3,c4,f4]@5",
  C: "[[f3,a3,c4,e4]@3 [d3,a3,c4,d4,f4]@20 ~]/3", D: "[c3,g3,c4,e4]@3 [e3,g3,b3,d4]@5",
  E: "[c3,c4,e4,g4]@3 [e3,b3,d4,g4]@5", F: "[d3,a3,d4,f4]@5 [a2,a3,c4,e4]@3", G: "[g2,b3,d4,g4]@5 [g2,b3,d4,g4]@3",
  H: "[g2,b3,d4,g4]@3 [g2,b3,d4,g4]", I: "[d3,a3,d4,f4]", J: "[[a2,a3,c4,e4,g4] [g2,b3,d4,g4]@7]/3",
  K: "[f3,c4,f4,a4]@3 [d3,c4,f4,a4]@5", L: "f3@3 d3@5, [c4,f4,a4]",
  M: "[[f3,c4,f4,a4]@3 [d3,c4,f4,a4]@3 [g3,c4,d4,f4,g4]@17 ~]/3", // F Dm7 Gsus4
  N: "[[c3,e4,g4,b4]@6 [e4,g4]@18 [e4,g4]@3 [a4,c5]@2 [g4,b4]@3, ~@3 c3@13]/2", // Cmaj7 Em Am G
  O: "[[d3,f4,a4,c5]@6 [f4,a4]@18 [f4,a4]@3 [b4,d5]@2 [f4,a4,c5]@3, ~@3 d3@13]/2", // Dm7 F Bm F
  P: "[[c3,e4,g4,b4]@3 [c3,e4,g4]@3 [c3,e4,g4]@10]/2", // Cmaj7 C
  Q: "[[d3,f4,a4,c5]@6 [f4,a4]@18 [f4,a4]@3 [b4,d5]@2 [a4,c5]@3, ~@3 d3@13]/2", // Dm7 F Bm Am
  R: "[[e3,g4,b4,d5]@12 [g4,b4] ~ [d3,f4,a4,c5]@10 [a4,c5]@3 [b4,d5]@2 [c5,e5]@3]/2", // Em7 G Dm7 Am Bm C
  S: "[[g4,b4,d5]@12 [g4,b4]@2 [d3,f4,a4,c5]@10 [a4,c5]@3 [b4,d5]@2 [c5,e5]@3, e3@7 ~@9]/2", // G Dm7 Am Bm C
  T: "[[g4,b4,d5]@6 [g4,b4,d5] [d3,f4,a4,c5]@9, e3@7 ~@9]/2", // G Dm7
  U: "[[g3,c4,d4,g4]@5 [g3,c4,d4,g4]@3 [g3,c4,d4,g4]@8, g2]/2", V: "[g2,g3,c4,d4,g4]/2",
  W: "[[f3,c4,f4,a4]@3 [d3,c4,f4,a4]@4 [g3,c4,d4,f4,g4]@16 ~]/3", X: "[c3,g3,c4,e4] ~@7",
})).s("gm_piano").gain(0.22)

// chords · piano · "Midi C7, T6"
const piano_4 = note(`<
  ~@26 A B A B A B C D ~@2 E F E F E F G H ~@10 A B A B A B C D ~@2 E F E F E F G H ~@24 E F E F E F E F G H ~@2 E F E F
  E F E F E F E F E F E F E F E F E F E F ~@6
>`.pickRestart({
  A: "~@4 [a4,d5,f5] ~@11", B: "~@4 [b4,d5,g5] ~@11", C: "~@4 [a4,d5,f5] ~@7 [f4,a4,d5] ~@3", D: "~@4 [g4,c5,e5] ~@11",
  E: "~@3 [c5,e5] c4 ~@3 [g4,b4,d5] ~@3 [g4,b4] ~@3", // C G
  F: "~@2 [a4,c5,f5] [a4,c5,f5]@3 ~@2 [a4,c5,f5] ~@2 [a4,c5,f5] ~@4", // F
  G: "~@3 [c5,e5] c4 ~@3 [g4,b4,d5] ~@3 [b4,d5,e5] ~@3", // C G E7
  H: "~@2 [a4,c5,f5] [a4,c5,f5]@3 ~@2 [a4,c5,f5] ~@3 [g4,c5,d5] ~@3", // F Gsus4
})).s("gm_piano").gain(0.29)

// drums · kick
const kick = s("bd").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B C D C D E D A B A B A B A B A B A B A B A B A
  B A B A B C D C D E D A B A B A B A B A B A B A B A B A B A B A B A B A B C D C D E D E D A B A B C D C D E D E D C D
  C D E D E D C D C D E D E D@2 F ~@4
>`.pickRestart({
  A: "x ~ x ~@4 x ~ x!2 ~@4 x", B: "x ~@6 x ~ x!2 ~@5", C: "x!2 ~ x ~ x ~@2", D: "x ~@4 x ~@2", E: "x ~@2 x ~ x ~@2",
  F: "x",
})).gain(0.8)

// drums · rim
const rim = s("rim").struct("<[~ x ~ x]!132 ~@6>").gain(0.48)

// drums · low tom
const low_tom = s("lt").struct("<~@132 [~@7 x] ~@5>").gain(0.48)

// drums · hihat
const hihat = s("hh").struct(`<
  A B A B A B A B C B A B C B C B C B C B C B C B C B A B C B A B C B C B A B A B A B C B C D A B C B A B C B A B C B A
  B C B C B A B A B A B C B C D A B C B A B C B A B A B A B E@2 A E A B A B A B A B A B A B A B C D A B A B A B A B A B
  A B A B A B A B A B A B A B F ~@5
>`.pickRestart({
  A: "~ x!7", B: "x!5 ~ x!2", C: "x!8", D: "x!5 ~ x ~", E: "~ x!4 ~ x!2", F: "x ~ x!2 ~@2 x ~ x!2 ~@2 x!2 ~@2",
})).gain(0.48)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@36 A ~@3 A@4 ~@20 A ~@3 A@4 ~@19 A@6 ~@3 A@6 ~@2 A ~@3 A@5 ~@3 A@5 ~@3 A@4 B ~@5
>`.pickRestart({
  A: "~@3 x", B: "~@12 x!2 ~@2",
})).gain(0.56)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~
  A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A B ~@5
>`.pickRestart({
  A: "~@5 x ~@2", B: "~@4 x ~@2 x ~@2 x ~@3 x ~",
})).gain(0.56)

// drums · high tom
const high_tom = s("ht").struct("<~@132 [~@9 x ~ x ~@4] ~@5>").gain(0.48)

// drums · crash
const crash = s("cr").struct(`<
  ~@26 A ~@3 A ~@15 A ~@3 A ~@3 A ~@3 A ~@15 A ~@7 A ~@3 A ~ B A@3 ~@12 A ~@2 C D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~
  D ~ D ~@2 A ~@4
>`.pickRestart({
  A: "x", B: "x ~@4 x ~@2", C: "~@5 x ~@2", D: "~@3 x",
})).gain(0.4)

// drums · ride
const ride = s("rd").struct(`<
  A ~ A ~ A ~ A ~@3 A ~@25 A ~ A ~ A ~@4 B ~@18 A ~ A ~ A ~@4 B C@18 A ~ A ~ A ~ A ~ A ~ A ~@4 B C@24 A ~@5
>`.pickRestart({
  A: "x", B: "~@7 x", C: "x!4",
})).gain(0.48)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@26 A@7 ~@3 B@8 ~@10 A@7 ~@3 B@8 ~@24 C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D@2 E ~@4
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "x ~ x!3 ~ x!3 ~ x ~ x ~ x ~", D: "x ~@3 x ~ x!3 ~ x ~ x!3 ~", E: "x",
})).gain(0.16)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct(`<
  ~@96 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B@2 ~@5
>`.pickRestart({
  A: "~ x ~@3 x ~@5 x ~ x ~ x", B: "~ x!3 ~ x ~@3 x ~ x ~@3 x",
})).gain(0.08)

// drums · bongos
const bongos = s("bongo:4").struct("<~@74 [~ x ~ x]!59 ~@5>").gain(1.68)

// drums · congas
const congas = s("conga:13").struct(`<
  ~@96 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B@2 ~@5
>`.pickRestart({
  A: "x ~@6 x ~@2 x ~@5", B: "x ~@8 x!2 ~@5",
})).gain(2.05)

// drums · congas
const congas_2 = s("conga:33").struct("<~@95 [~@7 x]!38 ~@5>").gain(2.05)

// drums · cabasa
const cabasa = s("cabasa:4").struct(`<
  A B@2 C A B@2 C A B A B@2 C A B@2 C A B@2 C A B@2 C A B@2 C A B@2 C A B A B@2 C A B@2 C A B A B@2 C A B@2 C A B@2 C A
  B@2 C A B A B@2 C A B@2 C A B A B@2 C A B@2 C A B A B@2 C A B@2 C A B@2 C A B@2 C A B A B@2 C A B A B@2 C A B A B A
  B@2 C A B A B A B@2 C A B A B@2 ~@5
// … 18 more lines

More by Lionel Richie