Strudelify

Cranham

Jacob collier

KeyC majorTempo66 bpm
0:00/0:00
// Cranham — Jacob collier
// 66 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (25/4 at bar 1, 25/8 at bar 8, 18/4 at bar 11, 4/4 at bar 16, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5908894; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 94 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(66/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 · tinkle bell · "Bells"
const tinkle_bell = note("<~@36 A B@3 C D E F G H I J K L M N@2 ~@41>".pickRestart({
  A: "~@7 f2@6 c3@6 g3@6 e4@6 a3@12 a#3@5",
  B: "[~ e4@6 f2@3 c3@3 a3@3 g3@3 c5 a#4 ~ a4 g4 ~ [a#3,f4]@2 ~@2 d4@2 ~ f5 ~ e5 d5 ~ c5@2 a#4@2 g4@2 a4@2 f4@2 c4@2 g3@2 c4@2 f3@2 a#2@3 f3@3 c4@3 g4@3 c5@3 c5@9 a#2@6 d3@6 ~ c5 ~ g4 c5@7 ~ g2@3 f3@3 a#3@3 d4@3 a2@3 g3@3 c4@3 f4@3 d4@12 ~@2 d#5@2 ~, ~@19 g2@3 d3@3 ~@2 e4@2 ~@8 c4@6 ~@21 e5@6 ~@33 a#4@12 ~@29, ~@28 a3@3 c3@3 e3@3 ~@54 c4@12 ~@41]/3", // A#5
  C: "d5@2 a#4@5 ~@3 d3@3 f3@3 a3@3 ~@2 [f3,f4]@2 ~ [c4,d4]@2 f4@2 g4@2 ~@3 [b4,e5]@2 [f#4,d#5]@2 [g#4,c#5]@2 [e4,b4]@2 f#4@2 c5@3 [a#3,a4]@2, ~@26 a4@5 ~@17", // F Csus2 E5 D#m C#5 E5 A#maj7
  D: "~ [d4,f4]@3 d4@3 ~@3 [d4,a4]@3 [g3,e4]@3 e4@3 [d4,a4]@3 [a3,f#4]@3 d4@3 a3@3 f3@3 e4@3 d4@3 a3@3 ~@5, ~@25 g3@6 ~@3 g3@9 ~@5", // Dm D5 C D5 D
  E: "~@7 a#2@3 g3@3 d4@6 [a3,d5]@2 ~@2 b4@2 c#4@3 d4@3 ~@3 [f3,c4]@3 [g#3,d#4]@3 [a#3,f4]@3 a3@3 f3@2, ~@21 c#5@2 ~@2 a4@6 ~@17, ~@22 b3@3 ~@23", // D5 F5 G#5 A#5
  F: "~ d4@6 ~@3 [f#3,b3]@3 [c#4,f#4]@6 ~@3 [g3,c4]@3 [d4,g4]@6 ~@3 [g#3,c#4]@3 [d#4,g#4]@6 ~@3 [g3,d4]@2", // B5 F#5 C5 G5 C#5 G#5 G5
  G: "~ [d4,f#4]@6 ~@36 f4@3 c4@2", // D
  H: "~ g3@3 a3@3 [a#3,g#4]@3 [c4,d#4]@3 ~@3 c4@3 [c4,a#4]@3 [d4,f4]@3 ~@3 d4@3 c#5@3 a4@3 f#4@3 e4@3 g3@3 a3@2, ~@13 g#3@6 ~@6 a#3@6 ~@12 d4@5", // A#7 Cm C7 Dm
  I: "~ d4@6 d3@3 [f3,a3,d4]@3 [a3,c4]@3 c4@3 ~@3 c#4@3 d#4@3 f4@3 ~@3 d3@9 ~@5, ~@19 b3@6 g#3@6 ~@17", // Dm Am
  J: "~@7 f4@3 [g3,g4]@3 e4@3 c4@3 ~@3 a3@3 c4@6 a#3@6 ~@11, ~@13 a4@6 ~@29", // G
  K: "~@7 d3@3 [a3,g4]@3 [c4,f4]@6 c#3@3 [a#3,f4]@3 e4@6 c3@3 [g3,f4]@3 d#4@6 b2@3 a3@2", // A7 F5 A#5 G7
  L: "~ d#4@6 ~@3 a3@3 d4@3 f4@3 ~@12 e4@3 c4@3 f4@6 d#4@3 [f#3,f4]@2", // F#maj7
  M: "~ [g#3,c#4]@6 ~@3 g#2@3 f3@3 a#3@3 ~@3 c4@3 g3@3 ~ d4@3 ~@4 c#3@3 g#3@4 d#4@4 ~", // C#5
  N: "[~@2 d#3@4 a#3@4 f4@4 ~@5 e4@4 c4@4 ~ g4@4 ~@5 d4@5 a#3@5 f4@5 ~@5 f#4@5 d4@5 b4@5 ~@6 [c#4,b4]@6 f#4@12]/2", // C#7
})).s("gm_tinkle_bell").gain(0.3)

// other · tinkle bell · "Bells" · E5 Bsus2 B5
const tinkle_bell_2 = note(`<
  ~@60
  [g4@2 c#4@2 a4@2 d4 ~]
  ~@6
  [f#4 g#4 b3 b4 g#4 f#4 [b3,e4] b4]
  [f#4 g#4 [b3,c#4] b4 [b3,f#4] e4 b3 ~]
  ~
  [d4 e4 g4 a4 b4 c5 d5@6]
  ~@23
>`).s("gm_tinkle_bell").gain(0.3)

stack(tinkle_bell, tinkle_bell_2)

More by Jacob collier