Strudelify
KeyB♭ majorTempo60 bpm
0:00/0:00
// saturn — Sleeping at Last
// 60 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1696531; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 45 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(60/4)

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

// other · violin · "Violin II"
const violin = note("<~@10 A B C D E F C G H ~@8 I@3 J I@3 K D@3 L D@3 L D M>".pickRestart({
  A: "~@6 a3 c4", B: "bb3@3 c4 bb3@4", C: "eb4", D: "bb3", E: "a3@12 a3@3 c4", F: "bb3!2", G: "bb3@4 d4 c4@2 bb3",
  H: "a3@3 ~@5", I: "bb3!32", J: "c4!32", K: "a3!32", L: "c4", M: "bb3@6 bb3 ~",
})).s("gm_violin").gain(0.25)

// other · viola
const viola = note("<~@18 A B C D E F@2 G H F@2 D E F@2 I H F@2 D E J@2 K L M N>".pickRestart({
  A: "~@3 g4!2 f4!2 d4", B: "d4@4 d4@2 f4 eb4", C: "eb4@3 g4!2 f4!2 d4", D: "d4@2 f4 bb3", E: "a3@3 g4!2 f4!2 d4",
  F: "[d4@4 d4@2 f4 eb4@4 g4!2 f4!2 d4]/2", G: "d4@2 d4!2", H: "c4@3 g4!2 f4!2 d4", I: "d4@2 d4 c4",
  J: "[d4@4 d4@2 f4 g4@4 g4!2 f4!2 d4]/2", K: "d4@4 f4 eb4@2 d4", L: "c4@3 g4!2 f4!2 bb3", M: "bb3", N: "bb3@6 bb3 ~",
})).s("gm_viola").gain(0.3)

// other · cello · "Violoncello"
const cello = note(`<
  ~@3 A B C@2 A B C@2 A B C@2 D B C E F B F C A B C@2 A B C@2 G H F C I J K L G M C@2 F N
>`.pickRestart({
  A: "g2", B: "eb3", C: "f3", D: "g2@3 d3 g3 a3 bb3@2 a3@2 g3@2 f3@2 d3@2", E: "f3@3 ~@5", F: "bb2",
  G: "g3@3 d3 g3 a3 bb3@2 a3@2 g3@2 f3@2 d3@2", H: "eb3 bb2 eb3 f3 g3 f3 f3@2", I: "bb2@2 d3 f3", J: "g3!2",
  K: "d3@2 f3 bb2", L: "c3@3 g2!2 f2!2 g3", M: "eb3!2", N: "bb2@6 bb2 ~",
})).s("gm_cello").gain(0.25)

stack(violin, viola, cello)