Strudelify

Nameless Song

Motoi Sakuraba

KeyG majorTempo55 bpm
0:00/0:00
// Nameless Song — Motoi Sakuraba
// 55 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5963501; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 105 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(55/3)

// 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 · orchestral harp · "Harpe"
const orchestral_harp = note(`<
  ~@4 A B C D E F G H E F@2 E F E I J E F@2 E F E K L M L@2 N O P Q R S T U V W V W X Y F@2 Z AA E K AB AC AD AE AF AG
  AH AI AJ AK AL AM AN AO AP@2 AQ AR AS AT AU AV AW AX AY AZ AY BA ~@7 BB BC BD BE BF BG BH BI BJ BK BL BM BN BO ~@5
>`.pickRestart({
  A: "~@11 [a2,a#2,b2] [c3,c#3] [d3,d#3,e3] [f3,f#3] [g3,g#3,a3] [a#3,b3] [c4,c#4,d4] [d#4,e4] [f4,f#4,g4] [g#4,a4] [d4,a#4] [d#4,e4,f4] [f#4,g4,g#4] [a4,a#4] [c5,c#5,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], ~@21 b4@3 b4@8", // C#maj7 F#maj7 Bmaj7 Emaj7 Amaj7 Gm A#maj7
  B: "[e3,e4], a6@11 ~@21", // E
  C: "~@11 [a2,a#2] [b2,c3] [c#3,d3] d#3 [e3,f3] [f#3,g3] [g#3,a3] [a#3,b3] c4 [c#4,d4] d#4 [f4,f#4] [g4,g#4] a4 [a#4,b4] [c5,c#5] [d5,d#5] [e5,f5] f#5 [g5,g#5] [a5,a#5], e6, e4@21 e4@11", // A#maj7 Cmaj7 Dmaj7 Fmaj7 Gmaj7 Amaj7 Bmaj7 Dmaj7 …
  D: "e3@5 b3@5 ~ f#4@5 g4@16, b5", E: "e3@5 b3@5 ~ e4@5 b4@16", F: "e3@5 b3@5 ~ f#4@5 g4@16",
  G: "e3@5 b3@5 ~ e4@5 ~@5 a2 [a#2,b2,c3] [c#3,d3,d#3] [e3,f3,f#3] [g3,g#3,a3] [a#3,b3,c4] [c#4,d4,d#4] [e4,f4,f#4] [g4,g#4,a4] [a#4,c5] [c#5,d5,d#5], ~@8 b4@7 b4", // A#sus2
  H: "e3@5 b3@5 ~ g4@21, e5@11 ~@21",
  I: "e3@5 b3@5 ~ f#4@5 ~@5 e3 [f3,f#3,g3] [g#3,a3] [a#3,b3,c4] [c#4,d4,d#4] [e4,f4] [f#4,g#4] [a4,a#4,b4] [c5,c#5] [d5,d#5,e5] [f5,f#5], ~@16 g4@11 g4@5", // Amaj7 Fmaj7 F#sus2 C#maj7 F#maj7
  J: "e3@5 b3@5 ~ f#4@5 g4@16, g5", K: "e3@5 b3@5 ~ e4@5 ~ [b4,f#5]@4 e5@5 ~ b4@5, ~@16 f#4@5 ~@11",
  L: "a2@5 e3@5 ~ b3@5 c4@16", M: "b2@5 f#3@5 ~ b3@5 d4@5 f#4@11", N: "c3@5 g3@5 ~@6 b4@5 e4@11, e4 ~, ~@11 c4@21",
  O: "d3@5 a3@5 ~@6 b4@5 e4@11, e4 ~, ~@11 d4@21", P: "[e3,g4]@5 [b3,f#4]@5 ~ g4@10 b4@11, ~@11 e4@21", Q: "e5",
  R: "[e4,c5]@5 b4@5 ~ a4@10 g4@5 ~ a4@5, a3", S: "~ b4@10 [b3,g4]@21, [e3,e4]@11 ~@21",
  T: "[a2,e4,c5]@5 [e3,b4]@5 ~ a3@5 b3@5 g4@5 ~ a4@5, ~@11 a4@10 c4@11", U: "e3@5 b3@5 ~ [e4,g4]@21, [e4,b4]@11 ~@21",
  V: "[b2,b4,f#5]@5 [f#3,e5]@5 ~ c#4@5 d4@5 c#5@5 ~ d5@5, ~@11 d5@10 f#4@11", // B5 F#7
  W: "a2@5 e3@5 ~ a3@5 b3@5 c4@11, e5@11 c5@21", X: "e3@5 b3@5 ~ g4@21", Y: "e3@5 b3@5 ~ e4@21",
  Z: "e3@5 b3@5 ~ e4@5 e4@16", AA: "e3@5 b3@5 ~ f#4@21", AB: "f#3@5 c#4@5 ~ [f#4,c#5]@21, a4@11 ~@21",
  AC: "f#4@11 f#5@21", AD: "e3@5 b3@5 ~ [e4,c#5]@21, g#4@11 ~@21",
  AE: "~@11 [d7,d#7,e7] [b6,c7,c#7] [g#6,a6,a#6] [f6,f#6,g6] [d6,d#6,e6] [b5,c6,c#6] [g#5,a5,a#5] [f5,f#5,g5] [d5,d#5,e5] [b4,c5,c#5] [g#4,a4,a#4] [f4,f#4,g4] [d4,d#4,e4] [b3,c4,c#4] [g#3,a3,a#3] [f3,f#3,g3] [d3,d#3,e3] [b2,c3,c#3] [g#2,a2,a#2] [f2,f#2,g2] [d#2,e2]", // Emaj7
  AF: "d3@5 a3@5 ~ d4@21, [d2,c#5]", AG: "d3@5 a3@5 ~ b4@10 a4@5 ~ g#4@5, c#5@11 d4@21",
  AH: "c#3@5 g#3@5 ~ [a1,a#1,b1,c2] [c#2,d2,d#2] [e2,f2,f#2,g2] [g#2,a2,a#2,b2] [c3,c#3,d3,d#3] [e3,f3,f#3] [g3,g#3,a3,a#3] [b3,c4,c#4,d4] [d#4,f4,f#4] [g4,a4] [d3,a#4,b4,c5] [d#3,e3,f3,f#3] [g3,g#3,a3,a#3] [b3,c4,c#4] [d4,d#4,e4,f4] [f#4,g4,a4] [a#4,b4,c5] [d5,d#5,e5] [f5,f#5,g5,g#5] [a5,a#5,b5,c6] [c#6,d6,d#6,e6], c#5@11 g#4@9 g#4@6 g#4@6, ~@11 c#4@5 e4@3 e4@2 c#5@6 c#5@5", // D#m Gsus2 F#m
  AI: "f6 ~@4 g#3@5 ~ c#4@5 e4@5 g#4@11, f#6@11 c#6@21", AJ: "b2@5 f#3@5 ~ c#4@5 ~@5 f#5@11, ~ d4", AK: "b2",
  AL: "e3@5 b3@5 ~ e4@5 f#4@5 b4@11",
  AM: "b2@5 f#3@5 ~ b3@5 d4@5 f#4 [g4,g#4] [a4,a#4] b4 [c5,c#5] [d5,d#5] [e5,f5] [f#5,g5] [g#5,a5] [a#5,b5] [c6,c#6]", // G#maj7 A#maj7 C#maj7 D#maj7 Fmaj7 Gmaj7 Amaj7 Bmaj7 …
  AN: "g2@5 d3@5 ~ a3@5 b3@5 e4@11, d6", AO: "a2@5 e3@5 ~ b3@5 c#4@5 d4@5 ~ e4@5",
  AP: "b2@5 f#3@5 ~ c#4@5 d4@5 a4@5 ~ d4@5", AQ: "[b2,b4]@5 [f#3,c#5]@5 ~ [b3,d5]@21",
  AR: "[b2,c#5]@5 [f#3,b4]@5 ~ c#4@5 d4@5 f#4@11, ~@11 c#5@21", AS: "[b2,b4]@5 [f#3,c#5]@5 ~ d5@10 e5@11, ~@11 c#4@21",
  AT: "[b2,d5]@5 [f#3,c#5]@5 ~ c#4@5 d4@16, ~@11 b4@21", AU: "a2@5 e3@5 ~ a3@5 b3@5 c4@11, e4",
  AV: "[b3,d4]@16 d5@5 c5@5 ~ b4@5, a2@11 ~@21", AW: "~@5 d3@5 ~@6 a3@5 b3@11, g3@11 g3@21, g2@5 ~@27, ~ e4@31",
  AX: "~@5 d3@5 ~ g3@5 [a3,c5]@5 [b3,b4]@11, e4 ~", AY: "[e2,g4]@5 [b2,f#4]@5 ~ e3@5 f#3@5 g3@11, ~@11 e4@21",
  AZ: "[e2,a4]@5 c3@5 ~@6 g4@5 f#4@11, ~@5 b4@11 ~@16, ~@11 e3@21", BA: "e2@5 c3@5 ~ e3@5 g4@5 f#4@11, a4 b3",
  BB: "~@11 [a1,a#1,b1,c2] [c#2,d2,d#2] [e2,f2,f#2,g2] [g#2,a2,a#2,b2] [c3,c#3,d3,d#3] [e3,f3,f#3] [g3,g#3,a3,a#3] [b3,c4,c#4,d4] [d#4,e4,f4,f#4] [g4,g#4,a4] [d4,a#4,b4,c5] [d#4,e4] [f4,f#4] [g4,g#4] [a4,a#4] [b4,c5] d5 [d#5,e5] [f5,f#5] [g5,g#5] [a5,a#5], ~@21 c#5@5 ~ c#5@5", // Emaj7 F#maj7 G#maj7 A#maj7 Cmaj7 Emaj7 F#maj7 G#maj7 …
  BC: "[f#3,b5]@5 [c#4,f#5]@5 ~ [f#4,c#5]@21", BD: "f#4@11 f#4@21, f#5", BE: "[e2,f#6]@5 [b3,f#5]@5 ~ [e4,c#5]@21",
  BF: "f#6@5 f#5@5 ~ f#5@21, b3", BG: "[d3,f#6]@5 [a3,f#5]@5 ~ [d4,g#4]@21",
  BH: "~ f#6@4 [a3,f#5]@5 ~ b4@10 a4@5 ~ g#4@5, [d3,c#5]@5 ~@6 d4@21", // D Dmaj7
  BI: "~ f#6@4 [g#3,f#5]@5 ~ c#4@5 e4@5 f#4@5 ~ g#4@5, [c#3,c#5]@5 ~@6 g#4@16 ~@5", // G#7 C#
  BJ: "~ f#6@4 [g#3,g#5]@5 ~ c#4@5 ~@5 g#5@11, [c#3,c#5]@5 ~@6 c#6@11 ~@10, ~ e4", BK: "e2@5 b3@5 ~ e4@5 a4@16, b4",
  BL: "e2@5 b3@5 ~ e4@21, g4", BM: "e2@5 b3@5 ~ e4@5 a4@16", BN: "f#4@5 b3@5 ~ e4@21, g4", BO: "e2",
})).s("gm_orchestral_harp").gain(0.25)

// chords · piano
const piano = note(`<
  ~@3 A ~ B C D E F@3 ~@5 G H I J I J K L M N O P Q R S T U@2 V@2 W X Y Z AA AB AC AD AE AF AG AH AI AJ ~@3 AK ~@4 AL AM
  AN AO AP AQ AR AS AT AU AV AW AX@2 AY@2 AZ BA AZ BB BC BD BE BF BG BH BI BJ ~ BK BL BM BN BO BP BQ BR BS BT@2 BU@2 BV
  BW ~@2
>`.pickRestart({
  A: "e7 a7@9 ~@22", B: "~@11 [e6,e7]@10 ~@11", C: "~@11 [b4,b5]@10 [b4,a5]@10 ~",
  D: "~ e6@15, [e3,b3,e4,e5], ~ [a5,b5]@31", E: "~@5 e4@5 ~ b3@5 e3@5 [e3,b3,e4,g4,g5]@10 ~, [f#4,f#5]@5 ~@3",
  F: "[[a4,e5,a5]@10 ~ a4@20 ~ [g4,g5]@20 ~@12 e6@20 ~@12, e2@27 ~@5, ~@53 [f#4,f#5]@30 ~@13]/3", // A5 G F#
  G: "e2@5 b2@5 ~ [f#3,f#4]@5 [g3,g4]@15 ~, ~@11 e3@20 ~", H: "e2@5 b2@5 ~ [a3,a4]@5 [b3,b4]@15 ~, ~@11 e3@20 ~",
  I: "a5@5 ~@11 b5@15 ~, e5@15 ~, b5 ~, b4@11 b4@20 ~, ~@5 a5@25 ~@2",
  J: "f#5@5 ~@11 b5@15 ~, [e5,a5]@15 ~, b5 ~, b4@11 b4@20 ~, ~@5 f#5@25 ~@2", // A5
  K: "e5@5 ~@11 g5@15 ~, [f#5,a5]@15 ~, g5 ~, b4@11 b4@20 ~, ~@5 e5@25 ~@2", L: "[b4,e5,f#5]@15 ~",
  M: "[e1,e2]@5 b2@5 ~ [d3,d4]@5 b4@5 f#4@10 ~, [b4,e5,b5]@5 ~@11", N: "c4@15 ~ b3@15 ~, g4@15 ~",
  O: "~@11 e7@5 b7@5 ~@11", P: "~@11 g7@5 f#7@5 b6@5 ~ f#7@5", Q: "e7@10 ~@11 g7@5 ~ f#7@5", R: "a7@5 ~@11",
  S: "a7 c8@9 ~@11 f#7 b7@4 ~ f#7@5", T: "d7@15 ~ e7@15 ~", U: "e7 b7@9 ~@22", V: "[e5,e6]@15 ~",
  W: "[a4,e5,a5,e6]@15 ~", X: "[b4,e5,b5,e6]@15 ~", Y: "[b1,b2]@5 d4@5 ~ c#4@10 b3@10 ~, [e5,b5,f#6]@15 ~",
  Z: "[a1,e2,e3]@10 ~ e1@20 ~, [e5,c6,g6]@15 ~", AA: "b2@5 b3@5 ~ c#4@10 b3@10 ~, [e5,b5,f#6]@15 ~",
  AB: "[a2,a3]@10 ~ c3@10 e3@10 ~, [e5,a5,g6]@15 ~", AC: "e2@5 b2@5 ~ g3@10 e3@10 ~, [e4,g4]@15 ~, ~@11 b3@20 ~",
  AD: "e2@5 b2@5 ~ c#4@10 a3@10 ~, a4@15 ~, d4@10 ~ f#3@20 ~",
  AE: "[e2,b3,e4,g4,b4]@5 [b2,a4]@5 ~ g3@10 e3@10 ~, ~@11 [b3,e4,g4,b4]@20 ~", // Em B7 Em
  AF: "e2@5 b2@5 ~@6 [e4,a4,e5]@5 f#4@10 ~, [d4,a4,d5]@15 ~@17, ~@11 e3@20 ~", // A5 D5
  AG: "e2@5 b2@5 ~ e3@5 b3@5 e3@5 ~ b2@5, [e4,b4,f#5]@15 ~ [e6,e7]@15 ~", // Esus2 E
  AH: "e2@5 b2@5 ~ [e3,f#4]@5 [b3,g4]@5 [e3,a4,f#5]@5 ~ [b2,b4,g5]@5, [g4,b4,f#5,g5]@5 ~@11", // Esus2 Em F#m7 Em Gmaj7
  AI: "e2@5 b2@5 ~ e3@5 b3@5 e3@5 ~ b2@5, [b4,f#5,a5]@15 ~ [e5,e6]@15 ~", // B7 E
  AJ: "e2@5 b2@5 ~ e3@5 b3@5 [e4,a4]@10 ~, [e1,b5]@15 ~, [b4,d5]@10 ~ c#5@10 ~@11", // A5 E5 Bm
  AK: "a6 a7@9 ~ b7@9 ~@12, ~@11 b6 ~@20", AL: "b1@5 f#2@5 ~ [b2,f#3]@20 ~, b3@5 ~@11",
  AM: "b1@5 b2@5 ~ [c#3,e3,e4]@10 [d3,f#3,f#4]@10 ~, [d3,d4]@5 ~@11", // C#m D
  AN: "[e1,e2]@5 b2@5 ~ e3@10 f#3@10 ~, [e4,g4,e5]@15 ~", // E Em
  AO: "[b0,b1]@5 f#2@5 ~ b2@10 [b1,b2,g4,g5]@5 ~ [a1,a2,a4,a5]@5, [f#4,b4,d5,f#5]@5 ~@3", // B Em A Bm
  AP: "[g1,g2]@5 d3@5 ~ [b3,g4]@10 [a4,a5]@10 ~, [b4,b5]@10 ~ [g2,g3]@20 ~", // G Em A B G
  AQ: "[a1,a2]@5 e3@5 ~@6 [c#5,c#6]@5 [d5,d6]@10 ~, [b4,b5]@15 ~@17, ~@11 [a2,a3]@20 ~", // A C# D B A
  AR: "[b1,b2]@5 f#3@5 ~ b3@10 b2@10 ~, [b4,b5]@15 ~", AS: "[b1,b2]@5 f#3@5 ~ b3@10 b4@10 ~, b5@15 ~, b4@21 ~@11",
  AT: "b6 b7@9 ~@17 c#7@5", AU: "f#6@5 ~@27", AV: "a6@10 ~ g6@10 e6@10 ~", AW: "f#6@5 ~@11",
  AX: "[[a1,a2] a2 e3 a3 [b3,e4] g4 a3 e4 ~ c5 e5 [a3,a4,c5,e5] ~ a4 e4 a3 ~ b4 g4 e4 [e3,b3] [a3,e4]@5 ~@2 [b3,d4] e3 a2 e2 [d3,a3,d4]@5 ~@16 a1 ~ a2 a1 a2 ~ a1 a2 a1 ~ a2, [b4,e5,g5,b5]@8 b4@2 ~ [g5,c6]@10 ~@11 [a1,a2]@20 ~@12, ~@12 e5@9 ~@6 e4@10 [e3,a3,e4]@25 ~@2, ~@12 c5@4 c5@5 [b4,e5]@41 ~@2]/2", // A E5 Am E5 A5 Bm D5 Em …
  AY: "[[g1,g2] g2 d3 g3 [b3,e4] g4 g3 d4 g4 b4 e5 [e5,g5] ~ g4 d4 g3 ~@2 e4 g3 [g2,d3] ~@11 [d3,d4]@10 ~ [g2,a3] [g3,d4] [g2,a3] ~ [g3,d4] [g2,a3] [g3,d4] ~ [g2,a3] [g3,d4] [g2,a3] ~ [g3,d4] [g2,a3] [g3,d4] ~ [g2,a3] [g3,d4] [g2,a3] ~ [g3,d4,a4], [b4,e5,g5,b5]@10 ~ [c5,c6]@10 a4@23 a4@3 a4@2 a4@2 ~ a4@3 a4@2 a4@2 ~ a4@2 ~@2, ~@11 b4@6 b4@4 [e4,b4,c5,e5]@41 ~@2, ~@12 g5@9 ~@43, ~@12 e5@4 e5@5 [g2,g3]@20 ~@23]/2", // G E5 Em G5 D Gsus2 G5 Gsus2 …
  AZ: "e2@5 ~ b2 e3 f#3 b3 d4 e3 [b3,e4] ~ b4 d5 ~@6 b2 f#3 g3 b3 d4 e3 [b3,f#4] ~ b4 d5, e1@29 g4@2 ~, [f#4,g4,b4,d5,f#5]@13 f#4@2 ~ [g4,b4,e5,g5]@15 ~, ~@5 e2@16 e2@9 ~@2", // E5 B5 Gmaj7 Em
  BA: "[e3,e4,a4,e5]@5 e2 c3 ~ f#3 g3 b3 c4 [g3,b3] f#3 e3 c3 e2 c3 e3 f#3 [g3,b3] e4 b3 g3 f#3 e3 c3 e2@5, [b3,c4]@5 ~@11, ~@7 e3@3 ~@22", // A5 G Cmaj7
  BB: "e2@5 ~ c3 e3 a3 c4 e4 e3 [b3,e4] b4 d5 f#5 [b4,d5,f#5,b5]@15 ~, e1@15 ~, [a4,d5,f#5,a5]@15 ~@17, ~@5 e2@25 ~@2", // E5 Bm D
  BC: "[f#2,f#4,c#5]@5 [c#3,a4]@5 ~ [g#3,a3,g#4]@20 ~", // F#5 F#m Amaj7
  BD: "[f#2,f#4,c#5,e5]@5 [c#3,a4]@5 ~ [g#3,g#4]@10 [e5,b5,b6]@10 ~, ~@11 a3@20 ~", // F#7 F#m G# E5
  BE: "g#2@5 c#3@5 ~ [b3,c#4,c#5]@20 ~, [c#6,c#7]@5 ~@11", BF: "~@5 c#3@5 ~ [g#3,b3,b4]@20 ~, [b5,b6]@5 ~@11",
  BG: "[a2,f#4,f#5]@5 f#3@5 ~ c#4@20 ~, ~@5 c#5@25 ~@2", BH: "a2@5 f#3@5 ~ [c#4,a4,a5]@20 ~, [g#4,g#5]@5 ~@11",
  BI: "b2@5 f#3@5 ~@11 [b4,b5]@10 ~, [c#5,c#6]@5 ~@3, ~@11 c#4@20 ~", // B C#
  BJ: "b2@5 f#3@5 ~@11 [f#5,f#6]@10 ~, [e5,e6]@5 ~@3, ~@11 f#4@20 ~", BK: "f#6 f#7@9 ~ c#7@10 ~@11, ~ c#7 ~@30",
  BL: "e7@5 d7@5 ~ c#7@10 ~@11", BM: "c#7@10 ~@11 b6@5 ~ c#7@5", BN: "c#7@5 f#6@5 ~ f#6@10 c#7@5 ~ d7@5",
  BO: "e7@10 ~@11 d7@5 ~ c#7@5", BP: "c#7@5 f#6@5 ~@22", BQ: "c#7@5 e6@5 ~@22",
  BR: "e2@5 b2@5 ~ f#3@20 ~, [g3,g4]@15 ~", BS: "[e2,g3]@5 b2@5 ~ e3@20 ~, [a3,a4]@15 ~",
  BT: "[~@11 f#3@20 ~ [g3,d4]@30 ~@2, [b3,b4]@61 ~@3, e2@35 ~@29, e4@15 ~@17, ~@5 b2@35 ~@24]/2", // G5 B
  BU: "[~ [f#3,a5]@31 [g3,b4,b5]@30 ~@2, [e2,f#5]@31 ~, a4 ~, ~ e6@61 ~@2]/2", // F#m G Esus2
  BV: "~ d6@15, [e2,d5], ~ [b2,b3,f#5,a5]@31", BW: "[e2,g3,e5,f#5,a5,d6]@15 ~",
})).s("gm_piano").gain(0.3)

stack(orchestral_harp, piano)