Strudelify

This is what I wrote after watching a Jacob Collier interview

ap

KeyC majorTempo80 bpm
0:00/0:00
// This is what I wrote after watching a Jacob Collier interview — ap
// 80 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5399418; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 16 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/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.

// chords · violin
const violin = note("<A@4 ~ B C D E F G@4 H I>".pickRestart({
  A: "[c6,g6]/4", B: "~@3 e6", C: "d#6 ~@3", D: "[a#3,g#4,d5,g5]", E: "[g3,g4,a#4,d#5]",
  F: "[d#5,c6] [f5,d6] [d#5,c6] [f5,d6] [d#5,c6] [f5,d6] [d#5,c6] [f5,d6] [d#5,c6] [f5,d6] [d#5,c6] [f5,d6] [d#5,c6] [f5,d6] [d#5,c6] [f5,d6] [d#5,c6] [f5,d6] [d#5,c6] [f5,d6] [d#5,c6] [f5,d6] [d#5,c6] [f5,d6] ~@8", // Cm Dm Cm Dm Cm Dm Cm Dm …
  G: "[[c6,g6]@7 ~]/4", H: "~@8 b4@2 ~ b4@2 b4@2 ~ e5@2 ~ e5@2 e5@2 ~@9", I: "[c#6,a6]",
})).s("gm_violin").gain(0.2)

// chords · cello · "Violoncello"
const cello = note("<~ A B C D@2 E@4 F A B C G H>".pickRestart({
  A: "[g3,d4,a4,e5]", B: "[c4,d4,f4,g#4,a#4]", C: "c2 ~",
  D: "[[e3,a3,d4,g4,c5]@3 [g2,d3,g#3,e4,b4]@3 [b2,f#3,d#4,a#4]@2]/2", // Am7 E7 Bmaj7
  E: "[[c5,g5]@28 [d3,g3,c4,f4,a#4,d#5] ~@2 [g2,d3,b3]]/4", F: "[g2,c3] ~@3",
  G: "b2@3 d3@2 f#3@3 b3@3 f#3@2 d3@3 e3@3 g#3@2 b3@3 d4@3 b3@2 g#3@3", H: "a3 ~@7",
})).s("gm_cello").gain(0.2)

stack(violin, cello)