Strudelify

houki boshi

Younha

KeyD majorTempo155 bpm
0:00/0:00
// houki boshi — Younha
// 155 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5841314; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 124 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(155/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.

// chords · piano · "Piano, pianoRH"
const piano = note(`<
  A B C@2 D E@3 F@2 G@2 H@2 G@2 F@2 G@2 H@2 I@2 ~ J K J L J M@3 J K J L J N J O ~ F@2 P@2 H@2 G@2 F@2 G@2 H@2 I@2 ~ J K
  J L J M@3 J K J L J N J Q R S T U R S T U V@2 W@3 X ~@3 J K J L J M@3 J K J L J Y@2 Z AA ~ J@5 AB R S T AC R S T AD
>`.pickRestart({
  A: "~ d5 a5 d5 c#5 d5 a5 d5", B: "[b4,g5] f#5 e5 d5@2 [a4,c#5] d5 e5",
  C: "[[f#4,d5] c#5 d5 a5 [b4,g5] f#5 e5 d5@2 d5@2 d5@2 c#5 d5 c#5]/2", D: "d5 c#5 d5 a5 [b4,g5] f#5 e5 d5",
  E: "[e5 d5 c#5 d5@2 a4@2 a4@2 c#5 d5 a5 g5 f#5 e5 d5@4 f#4@2 g4 a4 ~]/3",
  F: "[[f#3,a3,d4]@2 [f#3,a3,d4] [f#3,a3,d4]@2 [f#3,a3,d4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 a3 [e3,a3,c#4]@2]/2", // D A
  G: "[[d3,f#3,b3]@2 [d3,f#3,b3] [d3,f#3,b3]@2 [d3,f#3,b3]@2 [b2,d3,g3]@2 [b2,d3,g3]@2 [c#3,e3,a3]@2 [e3,a3,d4]@2 b3]/2", // Bm G A Dsus2
  H: "[[f#3,a3,d4]@2 [f#3,a3,d4] [f#3,a3,d4]@2 [f#3,a3,d4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 a3 [e3,a3]@2]/2", // D A A5
  I: "[[d3,f#3,b3]@2 [d3,f#3,b3] [d3,f#3,b3]@2 [d3,f#3,b3]@2 [b2,d3,g3]@2 [d3,a3]@2 ~@5]/2", // Bm G D5
  J: "[d5,a5,c#6,d6] [d5,a5,d6]!7", K: "[b4,g5] f#5 e5 d5@2 c#5 d5 e5", L: "[b4,g5] f#5 e5 d5@2 c#5@2 d5",
  M: "[e5 d5 c#5 d5@2 a4@2 a4@2 c#5 d5 a5 g5 f#5 e5 d5@4 f#4@2 g4 a4@2]/3", N: "e5 d5 c#5 d5@2 a4@2 a4",
  O: "[d5,a5,d6]@11 ~@5", // D5
  P: "[[d3,f#3,b3]@2 [d3,f#3,b3] [d3,f#3,b3]@2 [d3,f#3,b3]@2 g3 g3 [b2,d3,g3]@2 [c#3,e3,a3]@2 [e3,a3,d4]@2 b3, ~@7 [b2,d3]@2 ~@7]/2", // Bm G A Dsus2 Bm
  Q: "[d5,a5,d6] ~", R: "[f#4,a4,d5]!2 ~@6", S: "[e4,a4,d5]!2 ~@6", T: "[f#4,a4,d5]!2 ~@2 [f#4,a4,d5]!2 ~@2",
  U: "[g4,b4,d5]!2 ~@2 [e4,a4,c#5]!2 ~@2", // G A
  V: "[[a3,d4,f#4]@2 [d4,f#4] a3 ~ [a3,d4,f#4] a4 [a3,c#4,e4]@3 a3 [c#4,e4,a4]@2 [c#4,e4] a3 ~]/2", // D A C#m
  W: "[[b3,d4,f#4]@2 [b3,d4,f#4]@3 [b3,d4,f#4]@2 [b3,d4,g4]@4 [b3,d4,a4]@2 [b3,d4,g4]@2 [a3,d4,f#4]@4 d4 f#4 d4 e4 ~]/3", // Bm G Bm7 G D
  X: "~@5 [c#4,a4] ~@2", Y: "[e5 d5 c#5 d5@2 a4@2 a4@2 c#5 d5 a5 g5 f#5 e5 d5]/2", Z: "[d5,f#5,a5,d6]!2 ~@6",
  AA: "[d5,f#5,a5,d6]@3 [d5,f#5,a5,d6]@2 [d5,f#5,a5,d6] [d5,f#5,a5,d6]@2", AB: "[d5,a5,c#6,d6] [d5,a5,d6] ~@6",
  AC: "[g4,b4,d5]!2 ~@2 [e4,a4,d5]@2 ~@2", AD: "[g4,b4,d5]!2 ~@6",
})).s("gm_piano").gain(0.5)

// chords · piano · "Piano, pianoRH" · soft notes
const piano_soft = note(`<
  ~@7 A ~@15 B C ~@15 D ~@16 E F ~@15 G ~@12 H@2 I J K ~@15 L ~ M ~@5 K ~@3 N ~@3 O
>`.pickRestart({
  A: "~@7 d5", B: "~@3 [d3,g3] [b3,d4]@2 [b3,d4,g4] [b3,d4,a4]", C: "[d4,g4,b4] [g4,b4,d5] ~@2",
  D: "~@12 [d5,d#5,e5,f5,f#5,g5] [g#5,a5,a#5,b5,c6,c#6,d6,d#6,e6,f6,f#6,g6] [g#6,a6,a#6,b6,c7,c#7] ~, ~@7 d7",
  E: "~@3 [d3,g3] [b3,d4] [b3,d4,e4] [b3,d4,g4] [b3,d4,a4]", // G5 Bm E7 G Bm7
  F: "[d4,g4,b4]@4 [g4,b4,d5]@4 [a6,a#6,b6,c7,c#7,d7] [a5,a#5,b5,c6,c#6,d6,d#6,e6,f6,f#6,g6,g#6] [d#5,e5,f5,f#5,g5,g#5] ~@5, ~@5 d5 ~@2", // G
  G: "~@8 [f6,f#6,g6,g#6,a6,a#6,b6,c7,c#7,d7] [a4,a#4,b4,c5,c#5,d5,d#5,e5,f5,f#5,g5,g#5,a5,a#5,b5,c6,c#6,d6,d#6,e6] [d#4,e4,f4,f#4,g4,g#4] ~@5, ~@5 d4 ~@2",
  H: "[~@4 a4 ~@2 [c#4,e4,c#5]@4 [c#4,e4,c#5]@2 ~ [a3,e4]@2]/2", I: "[a4,d5,f#5]@2 d5 [a4,d5,f#5]@2 d5 [a4,d5,f#5] d5",
  J: "[g4,b4,d5]@2 a4 g4@2 a4 b4 f#4", // G
  K: "~@8 [a6,a#6,b6,c7,c#7,d7] [a5,a#5,b5,c6,c#6,d6,d#6,e6,f6,f#6,g6,g#6] [d#5,e5,f5,f#5,g5,g#5] ~@5, ~@5 d5 ~@2",
  L: "~@8 [d5,d#5,e5] [f5,f#5,g5,g#5,a5,a#5] [b5,c6,c#6,d6,d#6,e6] [f6,f#6,g6,g#6,a6,a#6] [b6,c7] ~@3, ~@3 c#7", // Cmaj7
  M: "~@12 [a6,a#6,b6,c7,c#7,d7] [a5,a#5,b5,c6,c#6,d6,d#6,e6,f6,f#6,g6,g#6] [d#5,e5,f5,f#5,g5,g#5] ~, ~@7 d5",
  N: "~@3 [e4,a4,c#5]", O: "~@4 [e4,a4,d5]@2 a4 [a4,d5,f#5,a5]",
})).s("gm_piano").gain(0.3)

stack(piano, piano_soft)