Strudelify

Rosalina's Observatory

Koji Kondo

KeyD majorTempo180 bpm
0:00/0:00
// Rosalina's Observatory — Koji Kondo
// 180 bpm, 3/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5848422; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 73 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(180/3)

// 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 · bassoon
const bassoon = note(`<
  A@7 B@2 C D E@2 A@2 F C@2 D E D E A C G C D E@2 A@2 F C@2 D E D E A C G ~@2 H I J K L M N@2 O@2 P G Q R C D E@2 A@2 F
  C@2 D E D E A C G
>`.pickRestart({
  A: "~@5 c#4@3 ~@3 c#4@3 ~@2", B: "g4/2", C: "~@5 a3@3 ~@3 a3@3 ~@2", D: "~@5 a#3@3 ~@3 a#3@3 ~@2",
  E: "~@5 b3@3 ~@3 b3@3 ~@2", F: "~@5 g#3@3 ~@3 g#3@3 ~@2", G: "a3", H: "d4@5 e4@5 ~ f#4@5", I: "g4@5 f#4@5 ~ e4@5",
  J: "d4", K: "~@5 c#4@5 ~ b3@5", L: "a3@5 b3@5 ~ c#4@5", M: "d4@5 c#4@5 ~ b3@5", N: "[a3@27 g3@5]/2", O: "f#3",
  P: "g3", Q: "b3", R: "c#4",
})).s("gm_bassoon").gain(0.25)

// other · bassoon
const bassoon_2 = note(`<
  ~@4 A B C D@2 E@2 F@4 G E@3 F@4 E H E@2 F@4 G E@3 F@4 E H I@2 J@2 K@2 L@2 I@2 J@2 K@4 E@2 F@4 G E@3 F@4 E H
>`.pickRestart({
  A: "g3", B: "a3", C: "b3", D: "c#4/2", E: "~@5 f#3@3 ~@3 f#3@3 ~@2", F: "~@5 g3@3 ~@3 g3@3 ~@2",
  G: "~@5 f3@3 ~@3 f3@3 ~@2", H: "f#3", I: "b2/2", J: "a2/2", K: "g2/2", L: "f#2/2",
})).s("gm_bassoon").gain(0.25)

// other · bassoon
const bassoon_3 = note(`<
  A B C D A B C E@2 F G H@2 I@2 F@3 G H J I@2 F K F G H@2 I@2 F@3 G H J I@2 F K ~@16 F G H@2 I@2 F@3 G H J I@2 F K
>`.pickRestart({
  A: "g2", B: "a2", C: "b2", D: "c#3", E: "a3/2", F: "d2@5 ~@11", G: "f#2@5 ~@11", H: "g2@5 ~@11", I: "a2@5 ~@11",
  J: "a#2@5 ~@11", K: "d2",
})).s("gm_bassoon").gain(0.3)

// other · bassoon · soft notes
const bassoon_soft = note("<~@41 A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@2 ~@16>".pickRestart({
  A: "g2/2", B: "f#2/2", C: "e2/2", D: "d2/2", E: "a2/2",
})).s("gm_bassoon").gain(0.2)

stack(bassoon, bassoon_2, bassoon_3, bassoon_soft)

More by Koji Kondo