Strudelify

The Anchor Song

Bjork and Oliver Lake

KeyC majorTempo120 bpm
0:00/0:00
// The Anchor Song — Bjork and Oliver Lake
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 5/4 at bar 13, 4/4 at bar 14, 5/4 at bar 23, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/696706; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 47 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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.

// other · violin
const violin = note("<~@8 A B@2 ~@3 C D ~@3 C D ~@3 E F ~@3 E G@5 H I J K ~@8>".pickRestart({
  A: "~@3 c4", B: "[e4@2 f4 g4 g4@2 g4@6 ~@4]/2", C: "c4@2 e4@2 f4 g4 g4@2", D: "g4@3 ~", E: "~@2 c4@2 e4@2 f4 g4",
  F: "g4 g4@3", G: "[g4@4 g4@36 g4@4 g4 c5@9 g4@4 g4@4 c4@4 d4@4 ~@10]/5", H: "c4 d4 c4 d4", I: "c4 f4 e4 d4",
  J: "~@4 c4@3 d4", K: "c4@2 g4@3 e4@2 ~",
})).s("gm_violin").gain(0.3)

// other · viola
const viola = note("<~ A@2 B@2 C@4 ~ D@4 ~ E@3 F ~ G@2 H@2 ~@2 I J@2 ~ K@4 ~@6 I ~ L ~ M N O>".pickRestart({
  A: "[~ c4@2 ~]/2", B: "[~@4 a3@3 g3@3 f3@2 ~@2 g4@2]/2", C: "[b3 c4 d4@4 e4@3 d4 e4@4 ~@2]/4",
  D: "[~@4 c4@8 ~@2 g3@9 d4@7 ~@2]/4", E: "[~@3 c4@4 a3@2 g3@3]/3", F: "c4@3 ~", G: "[~@3 c4@4 ~]/2",
  H: "[g3@9 d4@7]/2", I: "c4", J: "[a3@2 g3@3 c4@3]/2", K: "[~ e4@4 g4@4 d4@4 ~@3]/4", L: "a3@3 g3@3 f3@2", M: "d4",
  N: "e4@3 d4", O: "e4",
})).s("gm_viola").gain(0.3)

// other · cello · "Violoncello"
const cello = note("<~ A@2 B@2 C@4 ~ D@4 ~ E@3 F ~ G@2 H@2 ~@2 I@3 ~ J@4 ~@5 K@2 ~ L ~ M N O>".pickRestart({
  A: "[~ a3@2 g3@3 ~@2]/2", B: "[~@4 g3@3 f3@3 d3@2 ~@4]/2", C: "[~ c4@2 b3@2 c3@2 ~]/4",
  D: "[~@4 d3@8 ~@2 a2@9 e3@7 ~@2]/4", E: "[~ d3@2 d3]/3", F: "b3@3 ~", G: "[~@3 d3@4 ~]/2", H: "[a2@9 e3@7]/2",
  I: "[d3@2 d3 b3]/3", J: "[~ c3@4 b2@4 a2@4 ~@3]/4", K: "[~@3 a3@2 g3@3]/2", L: "g3@3 f3@3 d3@2", M: "c4", N: "b3",
  O: "[c2,c3]", // C
})).s("gm_cello").gain(0.3)

stack(violin, viola, cello)