Strudelify
Rhythm of the Night cover art

The Rhythm of the Night

Rhythm of the Night

Corona

KeyF minorTempo124 bpm
0:00/0:00
// Rhythm of the Night — Corona
// 124 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 157 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(124/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · synth bass 2 · "SYN BASS 2"
const bass = note(`<
  ~@11 A B A B A B A C A B A D E D F G A B A D E D F G A B A D E D F H E F A I J E F A I K L C L C L C L C A B A D E D F
  G A B A D E D M ~ E F A I J E F A I J E F A I J E F A I J ~@8 E F A I J E F A I J E F A I J E F A I J ~ E F A I J E F
  A I J E F A I J E F A I ~ E F A I J E F A I J H
>`.pickRestart({
  A: "bb1@2 ~ bb1 ~@2 bb1 ~@3 bb1 ~@3 bb1 ~", B: "bb1@2 ~ bb1 ~@2 bb1 ~ bb1@2 ~ bb1 ~@2 bb1 ~", C: "bb1 ~@15",
  D: "ab1@2 ~ ab1 ~@2 ab1 ~ ab1@2 ~ ab1 ~@2 ab1 ~", E: "ab1@2 ~ ab1 ~@2 ab1 ~@3 ab1 ~@3 ab1 ~",
  F: "c2@2 ~ c2 ~@2 c2 ~@3 c2 ~@3 c2 ~", G: "c2@2 ~ c2 ~@2 c2 ~ c2@2 ~ c2 ~@2 c2 ~", H: "c2 ~@15",
  I: "f1@2 ~ f1 ~@2 f1 ~ f1@2 ~ f1 ~@2 f1 ~", J: "f1@2 ~ f1 ~@2 f1 ~@3 f1 ~@3 f1 ~", K: "f1 ~@15", L: "c2 ~@13 b1 ~",
  M: "c2@2 ~ c2 ~@2 c2 ~@9",
})).s("gm_synth_bass_2").gain(0.38).pan(0.6)

// other · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  A B C D E F B C D G H ~@15 I J K L M N O ~ P J ~ Q M N O ~ A B C D E F B C D G H ~@7 I J K L M N O ~ P J ~ Q M N O ~ A
  B C D E F B C D G R B C D E F B C D G H ~@7 A B C D E F B C D G R B C D E F B C D G H S T ~ U@2 S T ~ U@2 S T ~@3 S T
  ~ U@2 A B C D E F B C D G V ~
>`.pickRestart({
  A: "~ g4!3 c5 bb4 g4 f4", B: "eb4@2 c4 ~@9 bb4@3 ~", C: "bb4@2 g4 ~@9 g4@4", D: "f4@2 ~@12 g4 ~",
  E: "c5 ~ bb4 ~ g4@2 f4 eb4@3 c4@2 ~@4", F: "~@2 g4 ~ g4 ~ g4 ~ c5@2 bb4@2 g4@2 f4@2",
  G: "c5 ~ bb4 ~ g4 ~ f4 ~ eb4@2 c4 ~ eb4@2 c4 ~", H: "eb4@2 c4 ~ eb4@2 c4 ~ eb4@2 c4 ~ eb4@2 c4 ~",
  I: "~@12 g4 ~ bb4 ~", J: "bb4@2 ab4 ~ ab4@2 g4 ~ g4@2 f4 ~ f4@3 ~", K: "~@7 bb4",
  L: "~@2 ab4 ~ ab4@2 g4@2 f4@3 ~ g4@2 eb4@2", M: "~@2 c4@3 ~@11", N: "c4@2 ~ eb4@2 ~ f4@2 ~@2 g4 ~ bb4@2 g4 ~",
  O: "~@2 c4 ~ eb4@2 c4 ~ g4@3 c4@2 ~ c4@2", P: "~@3 bb4", Q: "bb4@2 ab4 ~ ab4@2 g4@2 f4@3 ~ g4@2 eb4@2",
  R: "eb4 g4!3 c5 bb4 g4 f4", S: "~ g4!3 c5 bb4 f4 eb4", T: "f4@8 eb4@4 c4@3 ~", U: "[c5@5 ~ c5 bb4@4 g4@2 ~@3]/2",
  V: "eb4 ~@7",
})).s("gm_electric_guitar_jazz").gain(0.22)

// other · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth = note(`<
  ~@11 A@7 ~ A@3 B@3 C@2 A@3 B@3 C@2 A@3 B@3 C D B C A E@2 B C A E@2 ~@8 A@3 B@3 C@2 A@3 B@3 F ~ B C A E@2 B C A E@2 B C
  A E@2 B C A E@2 ~@8 B C A E@2 B C A E@2 B C A E@2 B C A E@2 ~ B C A E@2 B C A E@2 B C A E@2 B C A E ~ B C A E@2 B C A
  E@2 G
>`.pickRestart({
  A: "bb2!16", B: "ab2!16", C: "c3!16", D: "c3 ~@15", E: "f2!16", F: "c3!9 ~@7", G: "c3 ~@7",
})).s("gm_lead_2_sawtooth").gain(0.15).pan(0.4)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  ~ A B C D@2 A B C D@2 ~@8 E@3 F@3 G@2 H@3 I@3 J@2 H@3 I@3 B ~ A B C D@2 A B C D@2 ~@8 H@3 I@3 J@2 H@3 I@3 K ~ A B C
  D@2 A B C D@2 A B C D@2 A B C D@2 ~@8 A B C D@2 A B C D@2 A B C D@2 A B C D@2 ~ A B C D@2 A B C D@2 A B C D@2 A B C L
  ~ A B C D@2 A B C M ~@2
>`.pickRestart({
  A: "[ab3,c4,eb4]", B: "[bb3,c4,eb4,g4]", C: "[bb3,d4,f4]", D: "[f3,c4,f4]/2", E: "[bb3,d4]/3", F: "[ab3,c4]/3",
  G: "[eb4,g4]/2", H: "[f3,bb3,d4]/3", I: "[eb3,ab3,c4]/3", J: "[bb3,c4,eb4,g4]/2", K: "[bb3,c4,eb4,g4] ~",
  L: "[f3,c4,f4]", M: "[f3,c4,f4] ~@15",
})).s("gm_string_ensemble_2").gain(0.06)

// chords · drawbar organ · "ORGAN 1"
const drawbar_organ = note("<~@53 A B A B A B A B ~@96>".pickRestart({
  A: "[e5,f5,a5,c6] ~@3 [e5,f5,a5,c6] ~@3 [e5,f5,a5,c6] ~@2 [e5,f5,a5,c6] ~@2 [eb5,e5,ab5,b5] ~", // Fmaj7 Emaj7
  B: "[d5,eb5,g5,bb5] ~@3 [d5,eb5,g5,bb5] ~@3 [d5,eb5,g5,bb5] ~@2 [d5,eb5,g5,bb5] ~@2 [eb5,e5,ab5,b5] ~", // Ebmaj7 Emaj7
})).s("gm_drawbar_organ").gain(0.1)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@68 A B@3 C@3 D ~@50 E F G H@2 I J G H@2 E F G H@2 I J K L ~@12>".pickRestart({
  A: "c5 eb5 g5 c6", B: "bb5/3", C: "ab5/3", D: "c5 ~", E: "[eb3,eb4]", F: "[g3,g4]", G: "[bb3,bb4]", H: "[c4,c5]/2",
  I: "[eb4,eb5]", J: "[g4,g5]", K: "[bb4,bb5]", L: "[f3,c5,a5]",
})).s("gm_string_ensemble_1").gain(0.07)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note("<~@97 [~@6 c6 ~ c5 ~ c6 ~ c5 ~@3]!7 ~@53>").s("gm_string_ensemble_1").gain(0.33)

// other · ocarina
const ocarina = note("<~@126 [f5 eb5 c5 eb5 f5 eb5 c5 eb5 f5 eb5 c5 eb5 f5 eb5 c5 eb5]!19 ~@12>")
  .s("gm_ocarina").gain(0.03)

// drums · kick
const kick = s("bd").struct("<~@19 A@7 B A@7 B A@7 B A@17 B A@7 B A@7 B A@27 B A@20 B A@19 B A@10 B>".pickRestart({
  A: "x!4", B: "x",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct("<~@26 A ~@7 A ~@17 A ~@7 A ~@7 A ~@17 A ~@27 A ~@20 A ~@19 A ~>".pickRestart({
  A: "x!16",
})).gain(0.4)

// drums · clap
const clap = s("cp").struct("<~@19 A@23 ~ A@32 B ~ A@27 ~ A@20 ~ A@19 ~ A@10 ~>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.32)

// drums · hihat
const hihat = s("hh").struct("<~ A@8 ~@10 B@23 C B@32 D ~ B@27 ~ B@20 ~ B@19 ~ B@10 ~>".pickRestart({
  A: "~@4 x!2 ~@2", B: "x!2 ~ x!3 ~ x!3 ~ x!3 ~ x", C: "x", D: "x!2 ~ x!3 ~ x ~@8",
})).gain(0.32)

// drums · open hat
const open_hat = s("oh").struct("<~ A@8 ~@10 B@23 ~ B@32 C ~ B@27 ~ B@20 ~ B@19 ~ B@10 ~>".pickRestart({
  A: "~@3 x", B: "~ x ~ x ~ x ~ x", C: "~ x ~ x ~@4",
})).gain(0.32)

// drums · tambourine
const tambourine = s("tb").struct("<~ [~@7 x]!8 ~@148>").gain(0.24)

// drums · crash
const crash = s("cr").struct(`<
  ~@19 A ~@7 A ~@7 A ~@7 A ~@9 A ~@7 A ~@7 A ~@7 A ~@9 A ~@17 A ~@9 A ~@10 A ~@9 A ~@9 A ~@9 A
>`.pickRestart({
  A: "x",
})).gain(0.4)

// drums · congas
const congas = s("conga:13").struct("<~@97 [~@7 x ~@2 x!2 ~@4]!7 ~@53>").gain(1.02)

stack(
  bass, electric_guitar_jazz, lead_2_sawtooth, string_ensemble_2, drawbar_organ, string_ensemble_1, string_ensemble_1_2,
  ocarina, kick, snare, clap, hihat, open_hat, tambourine, crash, congas
)

More by Corona