Strudelify

Splatoon 2 - Fresh Start

Toru Minegishi Ryo Nagamatsu Shiho Fujii

KeyD majorTempo125 bpm
0:00/0:00
// Splatoon 2 - Fresh Start — Toru Minegishi Ryo Nagamatsu Shiho Fujii
// 125 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (2/4 at bar 1, 4/4 at bar 1, 2/4 at bar 132) are rendered on a constant 4/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5183448; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 132 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(125/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
const piano = note(`<
  ~@10 A B C D E@2 F@2 G H I J K@2 L M N O P Q R S T@2 U V W X Y Z AA AB AC AD AC AE AC AF AG AH AI AJ AI AK AI AL AG AM
  AN AO AP AQ AR@2 AS AT AU AV AW AX AU AY AZ BA BB BC BD BE BB BF BG@2 BH BI BJ@2 BK BL@2 BM U V W X Y Z BN BO@2 BP@2
  BQ@2 BR@2 BS BT AC AD AC BU AC AF AG BV AI BW AI BX BY BZ CA CB CC CD@2 CE@3 CF CG@2
>`.pickRestart({
  A: "~@6 [d5,f#5] [e5,g5], d2@15 ~", B: "[d5,f#5]@11 ~@5, e2@15 ~", C: "[d5,f#5] [e5,g5], b2@15 ~",
  D: "[d5,a5]@11 ~@5, g2@15 ~", E: "[f#2@15 ~@9 [e5,g5]@8, [d5,a5]@19 ~@13, ~@16 [g3,b3]@15 ~]/2",
  F: "[[d3,a3,d5,f#5]@15 ~]/2", G: "d2!6 [d2,b4] [d2,d5], a4 d5!2 ~",
  H: "e2!2 [e2,e5] [e2,f#5] [e2,e5] e2!2 [e2,e5], e5@2 ~@3 d5@2 ~", I: "b2!6 [b2,f#5] [b2,e5], f#5!2 a5 ~",
  J: "g2!7 [g2,a4], d5@2 b4@2 a4@3 ~", // Gsus2
  K: "[[f#2,a4] [f#2,b4] [f#2,d5] [f#2,e5] f#2!4 f#2!4 g2!3 [g2,a4], ~@8 f#5@15 ~@9]/2", // F#m B5 D F#7 Gsus2
  L: "[a2,a4] [a2,b4] [a2,d5] [a2,e5] a2!3 [a2,f5], ~@4 a5@3 ~", M: "[a2,e5] a2!7, ~ d5@3 ~@4",
  N: "[d2,a4]@2 [d2,d5]@2 [d2,d5]@2 b4 d5, ~@3 d2", O: "[e2,e5]@2 e5 f#5 e5 ~@2 e5, ~ e2!3, ~@5 d5@2 ~",
  P: "[b2,f#5]@2 [b2,f#5]@2 [b2,a5]@2 f#5 e5, ~@3 b2", Q: "[g2,d5]@2 [g2,b5]@2 g2@2 ~ a4, ~@4 a5@3 ~, ~@3 g2",
  R: "a4 b4 d5 e5 f#2@2 ~ a4, f#2@2 f#2@2 f#5@3 ~, ~@3 f#2", S: "a4 b4 d5 e5 [a2,f#5]@2 f#5 a5, g2!2 ~ a2",
  T: "[d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 ~ d5, [a4,d5]@7 d2]/2", U: "e5 ~ e5 d5 e5 ~ e5 d5, g2 ~",
  V: "e5@2 d5@2 e5@2 f#5 ~@3 a4@2 ~@4, b2 ~", W: "~ e5!2 d5 e5 f#5 e5 d5, g2 ~", X: "b2@4 ~@3 b4, b4 ~@3",
  Y: "d5@2 d5 e5 g5@2 g5 a5, a#2 ~", Z: "c6@2 c5 c5@2 c5@2 c5, d2 ~", AA: "d5 b5 a5 [f#5,a5], e2 f#2",
  AB: "[e5,g5] [d5,f#5] [d2,f#5,a5]@2, a2 ~", AC: "[g2,f#5] a5 [g2,b5]@2 [g2,a5] f#5 [g2,e5] d5",
  AD: "[f#2,e5]@2 d5@2 [f#2,e5]@2 f#5@2 [b2,e5]@2 ~@2 b2@3 ~, ~@5 d5@3", // F#7 E5
  AE: "[f#2,c#5,e5]@2 [b4,d5]@2 [f#2,c#5,e5]@2 [d5,f#5]@2 b2@3 ~ b2@3 ~, ~ [a4,d5]", // F#7 Bm F#7 D D5
  AF: "[f#2,e5] d5 [f#2,e5] f#5 [b2,e5] ~ b2 a4, ~@5 d5@2 ~", AG: "[e2,b4] [e2,f#5] [f#2,e5] [f#2,a5]",
  AH: "[a2,e5] f#5 [a2,e5,a5] [d3,a4,d5]@3 b2@2", AI: "[g2,f#5] a5 [g2,b5]@2 [a2,a5] f#5 [a2,e5] d5",
  AJ: "[d2,e5]@2 d5@2 [d2,e5]@2 f#5@2 [b2,e5]@2 ~@2 b2@3 ~, ~@5 d5@3", // Dsus2 E5
  AK: "[g#2,e5]@2 d5@2 [g#2,e5]@2 f#5@2 g#2@3 ~ g#2@3 ~, ~ b5", // C#m
  AL: "[d2,e5] d5 [d2,e5] f#5 [b2,e5] ~ b2 a4, ~@5 d5@2 ~", AM: "[b2,e5] [b2,f#5] a5 [b2,b5]@3 ~@2",
  AN: "[g2,a4]@2 [g2,d5]@2 [a2,d5]@2 b4 d5, ~@3 a2", AO: "[f#2,e5]@2 e5 f#5 e5 d5 b4 a4, ~ f#2 b2!2", AP: "g2!2 a2!2",
  AQ: "g#2@2 g#2@2 g#2@2 ~ a4, ~@3 g#2",
  AR: "[a4 b4 d5 ~@3 a2@2 f#2@2 f#2@2 b2@2 b2@2, g2!2 a2 ~@5, ~@6 e5@4 f#5@13 ~@9]/2",
  AS: "a4 b4 d5 e5 f#5 e5 a5 b5, g2!2 a2!2", AT: "e5 f#5 [f#2,a4] [b2,b4]@3 b2@2, f#2 ~@3",
  AU: "[f#3,b3] ~@2 a3 [f#3,b3] ~@2 a3", AV: "[f#3,b3] ~@5 [f#3,b3] ~", AW: "b4@2 f#5@2 f#5@3 f#5",
  AX: "e5 d5 f#5@2 ~@4", AY: "[f#3,b3] ~@2 a3 b3 a3 c#4 a3", AZ: "a5 f#5 f#5@2 a5 f#5 f#5@2",
  BA: "e5 f#5 e5 f#5 a4@2 ~@2", BB: "e5@2 e5@2 e5@2 e5 d5", BC: "e5@2 b5 a5@3 f#5 a5", BD: "b5@2 a5@2 f#5@2 d5 b4",
  BE: "e5 f#5 e5 f#5 a4@4", BF: "e5@2 b5 a5@2 f#5 e5!2", BG: "[[d5,e5]@2 f#5@2 c#6@2 a5 a5@3 ~@4 f#5 a5]/2",
  BH: "[c3,b5]@2 a5 b5 c3@2 ~ [a5,e6], ~@2 c3@2 [a5,e6]@3 ~, ~@3 c3", // Cmaj7 A5
  BI: "[b2,f#5,d6]@2 b5 a5 [b2,b5]@2 [b2,f#5]@2, ~ b2 ~@2", // Bm B B5
  BJ: "[[e2,e5,a5]@2 [f#5,b5] [b4,f#5] e2@2 e2@2 e2@2 e2@2 e2@2 ~ d5, ~@4 e2@4 [d5,g#5]@15 ~@5 e2@4]/2", // A5 B5 Ddim
  BK: "a5 ~@2 d5 a5 ~@2 d5, g2!4, ~ d5@2 ~@2 d5@2 ~",
  BL: "[[a2,a4,f#5]@2 [a2,g5]@2 [a2,f#5]@2 d5 ~ d2@2 d2@2 d2@2 d2@2, ~@3 a2 ~@4, ~@7 d5@3 ~@6]/2", // D A7 D
  BM: "d2@2 d2@2 d2@2 ~ d5, ~@3 d2", BN: "~ b5 [f#5,a5] f#5, [e2,d5] f#2",
  BO: "[e5@4 d5@4 e5@2 d5@2 d5@11 ~@3 a5@4 ~@2, [g2,a5]@8 b5@15 ~@9]/2", // Gsus2
  BP: "[f#5 a5 b5@2 a5 f#5 e5 d5@3 ~@6, g2 ~@7]/2", BQ: "[f#5 a5 b5@2 a5 f#5 e5 f#5@3 ~@4 e5 d5, c#3 ~@7]/2",
  BR: "[f#5 a5 b5@2 a5 f#5 e5 d5@3 ~@3 b4!2 a4, g2 ~@7]/2", BS: "[a2,b4]@4 [f#5,a5]@11 ~", BT: "~@5 a5 ~@2",
  BU: "[f#2,e5]@2 d5@2 [f#2,e5]@2 f#5@2 b2@3 ~ b2@3 ~, ~ d5", BV: "[a2,e5] f#5 [a2,a5] [d3,d5]@3 b2@2",
  BW: "[d3,e5]@2 d5@2 [d3,e5]@2 f#5@2 [b2,e5]@2 ~@2 b2@3 ~, ~@5 d5@3", // Dsus2 E5
  BX: "[g#2,e5]@2 f#5@2 [g#2,c#6]@4 g#2@3 ~ g#2@3 ~, ~ b5", BY: "g2 b5 [g2,b5] a5 [a2,b5]@2 [a2,d6]@2",
  BZ: "[f#2,a5]@2 [f#2,a5] b5 [b2,f#5]@2 [b2,b4] a4", CA: "[e2,b4] [e2,f#5] [f#2,b4] [f#2,d5]",
  CB: "[b2,e5]@2 [b2,f#5]@2 a5@2 b2@4 b2 ~ b2 ~@3, ~@3 b5@3 ~@2", CC: "~@2 d5@2 d5@2 b4 d5",
  CD: "[e5@4 e5@2 f#5@2 e5@2 d5@2 b4@2 a4@13 ~@5]/2", CE: "[~@14 a4@4 b4@2 d5@2 e5@2 f#5@19 ~@3 a4@2]/3",
  CF: "a4 b4 d5 e5 f#5 e5 a5@2", CG: "[b5@19 ~@13]/2",
})).s("gm_piano").gain(0.26)

// chords · piano
const piano_2 = note(`<
  A@2 B C D E F G H@3 I J K J K L@2 M@7 N O P Q R S T@3 U V U W X Y Z AA AB AC AB AC AB AC AD AE AB AC AF AG@3 AH AI AJ
  AK AL AM AN AO AP AQ AR AS AT AU AR AS AV AW AX AY AZ BA AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ ~
  BR BS BT BU BV BW BX BY BZ CA CB CA CB CA CC CD CE CF CG CH@3 CI CJ CK CL CM CN CO CP CQ CR@2
>`.pickRestart({
  A: "[~@9 [e5,a5]@13 ~@8 e3@2, ~@4 [a4,d5]@7 a4@5, ~@3 e4, ~@13 d4@3, ~@7 a3]/2", // A5 D5
  B: "~@2 a3 ~@4 d4, [d3,f#3], ~@3 [a3,a4]@5, ~@2 d4 f#4, ~@5 [e4,d5]@3", // D A E7
  C: "~@7 d6, [g3,d4,e4]@5 a5 c#6@2, ~ b3@3, ~@3 c#5@5, ~ d5", // Em7
  D: "~@7 d4, [b2,d5]@4 d4 b4 f#4@2, f#3 f#3@3, ~ a3@7, ~@3 b3@5", // Bm
  E: "g3@3 ~@3 g5@2, [e3,a4], d3@5 d3@3, a5 [f#3,a5], ~@3 g3@5", // A5 F#m
  F: "~@7 a3, [d3,f#5]@3 f#4, a3@3 d4 a3 d4@3, ~ d5@7, ~ a4@3", // D
  G: "~@7 d6, [d3,g3]@4 d5 a5 c#6@2, b3 b3@3, ~ d4@7, ~@3 c#5@5", // G5
  H: "[~@11 d4@2 ~@2 d4 [d4,f#4,f#5] a3 f#3 d4 a3@4, d3@13 d4 [g4,g5]@3 ~@7, d4@3 [d4,a5]@4 [d4,a5]@4 [a4,a5]@6 ~@7, d5@2 d5@4 d5@4 d5@7 ~@7, ~ c#5@4 c#5@4 c#5@8 ~@7]/3", // D G D5 A
  I: "~@3 c#5 d5 a5 c#6 d6", J: "a5@2 a5 f#5", K: "d5@2 ~ c#5 d5 a5 c#6 d6",
  L: "[d5 c#5 d5 a5@2 c#5 d5 a5@2 c#5 d5 a5@3 ~@2]/2", M: "a4 d5 e5 d5", N: "a4@2 d5 g5 f#5 d5 a4 g4",
  O: "f5 ~ f#5 ~ a5 ~ b5 ~ d6 ~ e6 ~ b5 ~ d6 ~, ~@3 f#4",
  P: "a5 ~ b5 ~ f#5 ~ c#4@2 d4@2 a4@2 c#5@2 d5@2, g4@4 ~@2 a5 ~ e5 ~ f#5 ~ a5 ~ b5 ~",
  Q: "d6 ~ e6 ~ b5 ~ d6 ~ a5 ~ b5 ~ f#4@2 a4@2, d4@4 ~@2 [f#4,a4]@6 f#5 ~ a5 ~", // F#m
  R: "e4@2 f#4@2 a5 ~ b5 ~ d4@2 e4@2 f#4@2 g4@2, e5 ~ f#5 ~ a4@4 d6 ~ e6 ~ b5 ~ d6 ~",
  S: "a5 ~ b5 ~ f#5 ~ a5 ~ e5 ~ f#5 ~ a5 ~ b5 ~, a4 ~@3",
  T: "[d6 ~ e6 ~ b5 ~ c#4@2 d4@2 a4@2 f#4@2 a5 ~ e5 ~ c#4@2 d4@2 b5 ~ d6 ~ c#4@2 d4@2 d6 ~ a5 ~ g4@2 f#4@2 a5 ~ e5 ~ f#5 ~ d5 ~@3, d4@4 ~@2 d6 ~ a5 ~ b5 ~ f#5 ~ a4@4 f#5 ~ a5 ~ a4@4 e6 ~ b5 ~ a4@4 b5 ~ f#5 ~ d4@4 ~@6]/3",
  U: "g3!2 b3 [a3,c#4] ~ b3 ~@2", V: "a3!2 d4 [c#4,e4] ~ a3 ~@2", W: "b3!2 d4 [f#3,c#4] ~ [b3,d4] ~@2",
  X: "f3!2 a#3 [a3,c4] ~ a#3 ~@2", Y: "d3!2 f3 [e3,g3] ~ f3 ~@2", Z: "e3 f#3", AA: "g3 a3", AB: "d5 a5",
  AC: "e5@3 c#5 d5 a5 c#6 d6", AD: "d5 [d5,a5]", AE: "e5 f#5 a5 d5@3 e5@2", AF: "d5@3 e5 a5@4",
  AG: "[d#5@4 d#5 b5 f#5 b5@2 c#5 d5 a5@2 c#5 d5 a5@2 c#5 d5 a5@3 f#5 e5]/3", AH: "d5 [c#5,e5]",
  AI: "[b4,e5]@3 [b4,f#5]@3 ~@2", AJ: "[b3,d4]!2 ~ [c#4,e4]@3 ~@2", AK: "[c#4,e4]!2 ~ [d4,f#4]@3 ~@2",
  AL: "[b3,d4]@2 [b3,d4]@2 b5@2 ~@2 a5 ~ f#5 ~ e5 ~ d5 ~, f#5 ~ a5 ~@3 [c#4,e4]@6 ~@4", // Bm C#m
  AM: "[b3,e4,e5]@2 [b3,e4]@2 e5 ~ [b3,d#4]@6 ~@4, ~@6 f#5 ~@9", // E5 B
  AN: "[e3,g3]@2 [e3,g3]@2 a5 ~ b5 ~ d6 ~ e6 ~ b5 ~ d6 ~, e5 ~ f#5 ~@3 [f#3,a3]@6 ~@4", // Em F#m
  AO: "[f#3,a3]@2 [f#3,a3]@2 f#5 ~ a5 ~ e5 ~ f#5 ~ a5 ~ b5 ~, a5 ~ b5 ~@3 [f#3,b3]@6 ~@4", // F#m B5
  AP: "[e3,g3]@2 [e3,g3]@2 b5 ~ d6 ~ a5 ~ b5 ~ f#5 ~ a5 ~, d6 ~ e6 ~@3 [f#3,a3]@6 ~@4", // Em F#m
  AQ: "e5 ~ f#5 ~ a5 ~ b5 ~@3 b3@2 b3@2 ~@2, [f#3,b3] ~", AR: "e5 ~ d5 ~ e5 ~ f#5 ~ e5 ~@3 e5 ~ d5 ~",
  AS: "e5 ~ f#5 ~ e5 ~ f#5 ~ e5 ~ f#5 ~ e5 ~ f#5 ~", AT: "[f#3,b3]@2 b4 ~@3 a3@2 [f#3,b3]@2 ~@4 a3@2, d5 ~@15",
  AU: "[f#3,b3] ~@5 f#3 a3", AV: "[f#3,b3] ~@2 a3 [f#3,b3] ~@2 a3, a5 ~@15", AW: "[f#3,b3] d4 e4 f#4 [f#3,b3] ~@3",
  AX: "g3@5 e4 g3@2 e4 ~@7", AY: "g3@2 e4 g3@2 e4 g3@2 e4 ~@7", AZ: "f#3@5 e4 f#3@2 e4 ~@7",
  BA: "f#3@2 e4 f#3@2 e4 f#3@2 e4 ~@7", BB: "~@3 a3 ~ c5 d5 [a3,b5], d5 ~, b3@3 ~ b3@3 ~, ~ [e5,b5]@7 ~@8",
  BC: "a5@2 b4 [a3,a5] [b3,b5] [a3,a5] [f#3,f#5] [a3,a5], b3@3 ~@5", // A B A F# A
  BD: "[b3,g#5]@3 a3 ~@3 a3, ~@3 d5@2 b5@3, ~@4 b3@3 ~", BE: "b3 d4 e4 f#4 b3@4",
  BF: "[f#3,d5]@3 a3 ~@3 a3, ~@3 [d5,a5]@2 [d5,f#5]@3, ~@4 f#3@3 ~", BG: "f#3@3 a3 b3 a3 f#3 a3, f#5 ~@3",
  BH: "[d3,a5]@3 [d3,f#5] [d3,a5]@3 [d3,f#5]", BI: "a5 f#5 e5 [d3,d5] [d3,f#5]@4, d3@3 ~@5",
  BJ: "g3 [g3,d5] b3 [a3,c#4,a5] ~ [b3,d5] ~ d6", BK: "a3 [a3,a4] d4 [c#4,e4,a5] ~ [a3,d5] ~@2",
  BL: "[g3,a6] g3 [b3,a5] [a3,c#4,d6] ~ [b3,a4] ~ d5", BM: "b3 [b3,a5] [d4,f#5] [f#3,c#4,a5] e5 [b3,d4,f#5] d5 ~",
  BN: "[f3,a5] [f3,d6] [a#3,a5] [a3,c4,d5] ~ a#3 ~ a5", BO: "d3 [d3,d5] f3 [e5,g5]@2 f5@2 ~, ~@3 [e3,g3] ~ f3 ~@2",
  BP: "a5 d6 a5 d5 ~ a4 ~ a5, e3 f#3", BQ: "~ b5 a5 f#5 ~@4, g3 ~",
  BR: "[f#3,b3,e5] ~ f#5 ~ a5 ~ [f#3,b3,b5] ~ d6 ~ e6 ~ [f#3,b3,b5] ~ d6 ~", // Esus2 B5
  BS: "a5 ~ [f#3,b3,b5] ~ f#5 ~ a5 ~ [f#3,b3,e5] ~ f#5 ~ [f#3,b3,a5] ~ b5 ~", // B5 Esus2 B7
  BT: "[a3,c#4,d6] ~ e6 ~ b5 ~ [a3,c#4,d6] ~ a5 ~ b5 ~ [c#4,e4,f#5] ~ a5 ~", // Dmaj7 F#7
  BU: "e5 ~ [c#4,f#4,f#5] ~ a5 ~ b5 ~ [c#4,e4,d6] ~ e6 ~ [c#4,e4,b5] ~ d6 ~", // F#5 C#m C#m7
  BV: "[f#3,b3,a5] ~ b5 ~ f#5 ~ [b3,a4,a5] ~ e5 ~ f#5 ~ [b3,a4,a5] ~ b5 ~", // B7
  BW: "d6 ~ [b3,a4,e6] ~ b5 ~ d6 ~ [b3,a4,a5] ~ b5 ~ [b3,a4,f#5] ~ a5 ~", // Esus4 B7
  BX: "[a3,c#4,e5] ~ f#5 ~ a5 ~ [c#4,a4,b5] ~ d6 ~ [c#4,a4,e6] ~ [c#4,a4,b5] ~ d6 ~", // A F#m A F#m
  BY: "a5 ~ b5 ~ f#5 ~ a5 b5 d6@2 c#6@2 a5@2 e5@2", BZ: "[d5,a5]@3 [g4,b4] ~@2 [g4,b4]@2",
  CA: "[c#5,e5]@3 c#5 d5 a5 c#6 d6", CB: "[d5,a5]@3 [d5,f#5] ~@2 [d5,f#5]@2", CC: "[d5,f#5] [d5,f#5,a5]",
  CD: "e5@2 f#5@2 a5@2 d5@4 d5 ~ a5 ~ d6 ~", CE: "e5 ~ c#5@2 d5@2 a5@4 c#5@2 d5@2 a5@2, ~@2 f#5 ~@13",
  CF: "[b4,e5]@3 c#5 f#5@2 c#5@2 d5@2 f#5 a5@3 f#5@2", CG: "d5@3 c#5 d5 a5 f#5 d5",
  CH: "[d#5@2 b4@2 d#5@2 ~@2 d6 ~ f#5@2 g6 ~ a6 ~ e6 ~ c#5@2 d5@2 e6 ~ b5 ~ d6 ~ c#5@2 b5 ~ d6 ~ c#5@2 d5@2 d6 ~@3 b5 ~ c#5@2 d5@2, ~@6 b5@4 e6 ~ b4@6 f#6 ~ d6 ~ a5@6 a5 ~ d5@4 e6 ~ b5 ~ a5@6 f#5 ~ a5 ~]/3",
  CI: "e5 ~ f#5 ~ a5 ~ b5 ~ d6 ~ e6 ~ a5 ~ b5 ~, b4 c#5", CJ: "e5 ~ f#5 ~ a5 ~ [b4,d#5]@6 ~@4, [a4,c#5]@6 b5 ~@9",
  CK: "[g3,d4]@3 [a3,e4]@3 ~@2", CL: "[f#3,c#4]@3 [b3,f#4]@3 ~@2",
  CM: "a4 d5 a5 d5 c#5 d5 a5 d5, [g3,d4]@3 [a3,e4]@3 ~@2", CN: "[b3,d#4]@2 [b4,g#5] ~, d#5 ~@7",
  CO: "[g3,b3]@3 [a3,c#4]@3 c#4 d4", CP: "[f#3,c#4]@3 [b3,d4]@2 f#3 b3 f#4", CQ: "[g3,b3]@3 [a3,c#4]@3 [a3,c#4]@2",
  CR: "[~ [f#4,b4]@19 ~@12, [b3,d4]@5 ~@3]/2", // B5 Bm
})).s("gm_piano").gain(0.23)

stack(piano, piano_2)