Strudelify

tabi no tochuu

Kiyoura Natsumi

KeyG majorTempo90 bpm
0:00/0:00
// tabi no tochuu — Kiyoura Natsumi
// 90 bpm, 6/8, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5164017; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 54 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(90/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · piano
const piano = note(`<
  A B C D E ~@8 F G H I F J H K F G H I F J H L M N O P M N Q R S T U V W X Y Z AA T AB V W AC Y AD AE
>`.pickRestart({
  A: "[e3,e4,e5]@5 ~@3", B: "[a3,a4,a5]@5 ~@3", C: "[b3,b4,b5]@5 ~@3", D: "[d4,d5,d6]@5 ~@3", E: "[f#4,f#5,f#6]@5 ~@3",
  F: "e2@5 b2@3 e3@5 [e3,b3]@8 b2@3, e4 ~", G: "c2@5 c3@3 f#3@5 [g3,c4]@8 c3@3, e4@23 ~",
  H: "d2@4 d3@2 a3@2 d3@5 d4@3 a3@5 d3@3, d4 ~",
  I: "g2@5 d3@3 g3@5 [f#2,a3,c#4,e4]@3 [c#3,e4]@5 [f#3,f#4]@3, b3 ~, g3 ~@2", // F#m7 C#m F#
  J: "c2@5 c3@3 g3@5 [g3,c4]@8 c3@3, e4@23 ~", // C5
  K: "g2@5 d3@3 g3@5 [f#2,a3,c#4,e4]@3 [c#3,e4]@5 [f#3,f#4]@3, [b3,d4,g4] ~", // F#m7 C#m F# G
  L: "g2@5 c3@3 g3@5 [f#2,b3,e4]@3 [b2,d#4]@5 [f#3,b3]@3, [b3,d4,g4] ~", // Esus2 B B5 G
  M: "e2@4 b2@2 e3@2 b2@5 b3@3 e3@5 b2@3, [b3,e4,g4]@12 ~ [e4,g4]@11", // Em
  N: "[b1,b2]@4 b2@2 f#3@2 b2@5 b3@3 f#3@5 b2@3, d#4@23 ~", O: "[c2,c3]@4 c3@2 g3@2 c3@5 c4@3 g3@5 c3@3, e4 ~",
  P: "g2@5 d3@3 g3@5 [f#2,a3,c#4,e4]@3 [c#3,g4]@5 [f#3,a4]@3, b3 ~, g3 ~@2", // F#m7 C#dim F#m
  Q: "[c2,c3]@4 c3@2 g3@2 c3@5 c4@3 ~@2 b4@3 c3@3, e4@12 ~@4 g3@5 ~@3", // C
  R: "[g1,g2]@4 g2@2 g3@2 d3@5 [a2,a3]@3 a3@5 e3@3", // G A
  S: "[f#2,a3]@4 c#3@2 ~@2 f#3@5 [b2,b3,d#4]@3 [b3,d#4]@5 [d3,e4]@3, [c#4,e4] ~, ~ a3 ~@2", // F#m B Dsus2 C#m
  T: "[d1,e2,e4]@4 e2@2 e3@2 b2@2 e2@2 e3@4 b2@5 e2@3", U: "[c1,d2,d4]@4 a2@2 a3@2 d3@2 a2@2 a3@4 d3@5 a2@3",
  V: "[c#2,c#3,a4]@4 c#3@2 c#4@2 a3@2 c#3@2 c#4@4 a3@5 c#3@3", W: "[c2,c3,a4]@4 c3@2 c4@2 a3@2 c3@2 c4@4 a3@5 c3@3",
  X: "[a1,a2,b4,d5]@4 a2@2 a3@2 e3@2 a2@2 a3@4 e3@5 a2@3", Y: "[g1,g2,g4,b4]@4 g2@2 g3@2 d3@2 g2@2 g3@4 d3@5 g2@3",
  Z: "[f#1,f#2]@4 f#2@2 f#3@2 f#2@5 f#3@3 f#2@5 [f#1,f#2]@3", // F#
  AA: "[b1,b2]@5 [b2,b3]@3 [b2,b3]@5 [b2,b3]@3 [b2,b3]@5 [b1,b2]@3", // B
  AB: "[c1,d2,e4]@4 a2@2 a3@2 d3@2 a2@2 a3@4 d3@5 a2@3", AC: "[g1,a2,b4,d5]@4 a2@2 a3@2 e3@2 a2@2 a3@4 e3@5 a2@3",
  AD: "f#2@4 ~@12 f#2@5 [f#1,f#2]@3, f#1@7 ~, ~ f#2 f#2@2 ~@2, ~@6 f#3@7 f#3@11", AE: "[d#2,f#2,b2,f#3,b3,f#4]",
})).s("gm_piano").gain(0.48)

stack(piano)