Strudelify

Ocean Dream - ãExtraordinary youãOST

yishiuan

KeyC majorTempo62 bpm
0:00/0:00
// Ocean Dream - ãExtraordinary youãOST — yishiuan
// 62 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: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5874653; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 37 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(62/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.

// other · violin · "小提琴"
const violin = note("<~ A B C D E F G H@2 B I J E F G K L ~@8 M N O P Q R S T U V W>".pickRestart({
  A: "~ g5@2 g5 g5@4", B: "~@3 g5@5", C: "g5", D: "~ b5@2 b5", E: "b5", F: "~@3 e5@5", G: "~@3 d5@5", H: "~@3 c5@5",
  I: "g5 g5@3", J: "~@3 b5@3 b5@2", K: "~@3 c5@3 c5@2", L: "~@3 c5@3 ~@2", M: "d5@7 c5", N: "b4@12 g4@3 b4",
  O: "g4@7 e4", P: "d4@3 ~", Q: "d5@14 e5 c5", R: "b4@3 c5 d5@2 e5@2", S: "a5 g5 c5@2", T: "g5 c5", U: "e5", V: "d5",
  W: "c5",
})).s("gm_violin").gain(0.05)

// chords · piano · "鋼琴"
const piano = note("<~@2 A B C@2 A C D@2 E F C G H I J K L M N O P Q R S L T U C V W X@5>".pickRestart({
  A: "~@7 e4, c3, c4 c4@3, ~ e4@2 e4@2 e4 b3@2, ~ g4", B: "c4 e4 c4 e4 g4 e4 b3 e4, c3@15 ~",
  C: "b3 e4 b3 e4 g4 e4 b3 e4, b2@15 ~", D: "c4 f4 c4 f4 g4 f4 c4 a3, c3@15 ~",
  E: "~@7 e4, [g2,c3], c4 c4@3, ~ e4@2 e4@2 e4 b3@2, ~ g4", F: "~@7 e4, g2, b3@5 e4 b3@2, ~ e4@2 e4 g4@4, ~ c4@3",
  G: "b3 e4 b3 e4 g4 e4 b3 e4, g2@15 ~", H: "~@7 e4, c2, c3@5 e4 [c3,b3]@2, c4 c4@3, ~ e4@2 e4 [b2,g4]@4",
  I: "b3 e4 c4 e4 g4 e4 b3 e4, b2@15 ~", J: "~@7 a3, f2, c4 c4@2 c4, ~ f4@2 f4@2 f4@3, ~ g4",
  K: "g3 f4 c4 f4 g4 f4 c4@2, f2@11 ~@5", L: "~@7 e4, [c2,c3], c4 c4@3, ~ e4@2 e4@2 e4 b3@2, ~ g4",
  M: "b3 e4 c4 e4 g4 e4 b3 e4, [b1,b2]@15 ~", N: "g4 e4 b3 e4 d4 e4 b3 [c3,e4], [b1,b2]@4 d3@3 ~",
  O: "~@7 e4, b2, b3@5 e4 b3@2, ~ e4@2 e4 g4@4, ~ d4@3", P: "c4 e4 c4 e4 g4 e4 b3 e4, g2@15 ~",
  Q: "b3 e4 b3 e4 g4 e4 [e3,b3] [b2,e4], [g2,g3]@11 ~@5", R: "c4 f4 c4 f4 g4 f4 c4 a3, c3 a2",
  S: "c4 f4 c4 f4 g4 f4 c4 a3, f2 g2", T: "b3 e4 b3 e4 g4 e4 b3 e4, [g2,g3]@15 ~",
  U: "b3 e4 b3 e4 d4 e4 b3 [c3,e4], [b1,b2]@4 d3@3 ~", V: "~@7 e4, [a2,a3], c4 c4@3, ~ e4@2 e4@2 e4 b3@2, ~ g4",
  W: "b3 e4 b3 [a2,a3,e4] g4 e4 b3 e4, [g2,g3]@3 ~ [b2,b3]@2 [c3,c4]@2", // A5 G B C
  X: "[c4@2 f4@2 c4@2 f4@2 g4@2 f4@2 c4@2 a3@2 ~@14 a3@2 c4@15 ~ g3@15 ~ c4@15 ~, [f2,f3]@24 [f2,f3]@53 ~@3, ~@4 c4 c4@2 c4 ~@12, ~@9 f4@2 f4@2 f4@3 ~@24, ~@3 g4 ~@6]/5", // F
})).s("gm_piano").gain(0.3)

// other · cello · "大提琴"
const cello = note("<~@18 A B C D E F G H I J F K L M N G O P Q>".pickRestart({
  A: "d4@7 c4", B: "b3@12 g3@3 b3", C: "g3@7 e3", D: "d3@2 g3 b3", E: "d4@8 c4@6 e4 c4", F: "b3@3 e3 b3@3 c4",
  G: "b3 a3", H: "g3 c3", I: "g3@5 b3 d4 c4", J: "b3@3 g3", K: "d4@2 e3 b3", L: "d4@2 c4 b3 a3@4",
  M: "b3@3 c4 d4@2 e4@2", N: "a3 g3 c3@2", O: "g3", P: "d3", Q: "e3",
})).s("gm_cello").gain(0.15)

// bass · contrabass · "低音大提琴"
const bass = note("<A@2 B@2 C@2 D E F@2 G H I J K L M N B C O@2 D E P@2 B C O@2 D Q F R@2 ~@2>".pickRestart({
  A: "[~@15 c2@17]/2", B: "c2", C: "b1", D: "a1", E: "g1", F: "f1", G: "g1 e1@2 c1", H: "e1 g1@3", I: "g1@2 e1@4 b1 g1",
  J: "b1 g1@3", K: "a1 c1@3", L: "b1@2 g1@4 b1 c2", M: "a1@2 g1@2 f1@3 c1", N: "a1 g1 c1 ~", O: "b1/2", P: "f1/2",
  Q: "b1@3 c2 d2@2 e2@2", R: "g1/2",
})).s("gm_contrabass").gain(0.2)

stack(violin, piano, cello, bass)