Strudelify

The Rhythm of Life

Cy Coleman

KeyE majorTempo72 bpm
0:00/0:00
// The Rhythm of Life — Cy Coleman
// 72 bpm, 2/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 4 "Bass" named as a bass, played on electric bass finger (its choir aahs patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5937684; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 167 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(72/2)

// 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.

// bass · electric bass finger · "Bass"
const bass = note(`<
  A B C D E F G H I J K L M N O P ~@16 Q R S T U V W X A B Y D E F Z AA ~@8 AB J AC AD AE AF AG AH AB J AC AD AE AF AG
  AH AI AJ AK AL AM AN AO AP AI AJ AK AL AM AN AO AP AI AJ AK AL AM AN AQ AR AS AT W AU AV AW AX AY AS AT W AU AV AW AX
  AY AS AT W AU AV AW AX AZ ~@16 BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ@6 BR BS@3 BT BU@4
>`.pickRestart({
  A: "c#3 d#3 c#3 c3 c#3@2 g#3@2", B: "g#3 f#3 e3 d#3", C: "c#3 d#3 c#3 c3 c#3@2 d#3@2", D: "d#3 e3 e3@2",
  E: "e3 f#3 e3 d#3 e3@2 b3@2", F: "b3 a3 g#3 f#3", G: "e3 f#3 e3 d#3 e3@2 f#3@2", H: "f#3@2 g#3@2 g#3@2 a3 b3",
  I: "c#4@2 c#4@2 c#4 b3 a3 b3", J: "c#4!2 d#4 c#4", K: "b3!4 b3@2 g#3@2", L: "b3!2 c#4 b3",
  M: "a3!2 a3@2 b3 a3 g#3 f#3", N: "g#3!2 g#3@2 c#4@4", O: "f#3@2 f#3!2 g#3 f#3 e3 d#3", P: "d#3 e3 e3@2 e3@2 ~@2",
  Q: "g3 f#3", R: "e3", S: "f#3 e3", T: "d3", U: "e3 d3", V: "c3 a2", W: "b2 d#3", X: "e3 ~",
  Y: "c#3 d#3 c#3 c3 c#3!2 d#3@2", Z: "e3 f#3 e3 d#3 e3 f#3 e3 f#3", AA: "f#3 g#3!2 ~", AB: "~@2 c#4!2 c#4@2 c#4@2",
  AC: "~@2 b3!2 b3@2 b3@2", AD: "c#4!3 b3", AE: "~@2 a3!2 a3@2 a3@2", AF: "b3!3 a3", AG: "g#3 c#4 c4 d#4",
  AH: "c#4 c4 c#4 ~", AI: "~@2 f3!2 f3@2 f3@2", AJ: "f3@2 f#3@2 f#3 f3 d#3@2", AK: "~@2 f#3!2 f#3@2 f#3@2",
  AL: "f#3@2 g#3@2 g#3 f#3 f3@2", AM: "~@2 g#3!2 g#3@2 g#3@2", AN: "g#3@2 a#3@2 a#3 g#3 f#3@2", AO: "c4 g#3 a#3 c4",
  AP: "c#4 c4 a#3 g#3", AQ: "g#3 f#3 g#3 a#3", AR: "c4 a#3 g#3 f#3", AS: "c#3 e3", AT: "f#3 a2", AU: "e3 g#2",
  AV: "a2 c#3", AW: "d#3 f#2", AX: "g#2 c3", AY: "c#3", AZ: "c#3@3 ~", BA: "b3 a#3", BB: "g#3", BC: "a#3 g#3",
  BD: "f#3", BE: "g#3 f#3", BF: "e3 c#3", BG: "d#3 g3", BH: "g#3@3 ~", BI: "~ c#4!3", BJ: "c#4!2 c#4@2 c#4@4",
  BK: "~ b3!3", BL: "b3!2 b3@2 b3@4", BM: "~ a3!3", BN: "a3!4 b3@2 a3@2", BO: "~ g#3!3", BP: "g#3!2 a#3 c4",
  BQ: "[~@4 c#4@11 ~]/2", BR: "g#3!2 g#3@2 g#3@2 g#3@2", BS: "~@2 g#3!2", BT: "~@4 g#3!2 g#3@2", BU: "[c#3@7 ~]/4",
})).s("gm_electric_bass_finger").gain(0.3)

stack(bass)