Strudelify

Spirited Away - Reprise

Joe Hisaishi

KeyG majorTempo100 bpm
0:00/0:00
// Spirited Away - Reprise — Joe Hisaishi
// 100 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (3/4 at bar 1, 4/4 at bar 71, 3/4 at bar 73) are rendered on a constant 3/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5645685; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 152 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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 · piano
const piano = note(`<
  ~@10 A B C B D E F G H@2 I J K L M N O P Q R S Q T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR
  AS AT AU AV AW AX AY AZ@3 BA BB BC BD BE@6 BF@2 BG@2 BH@7 ~@10 BI@3 BJ@6 BK@6 BL@8 BM@8 BN BO BP@8 BQ@7 BR@2 ~ BS BT
  BU
>`.pickRestart({
  A: "~@5 g4@3 ~@4, ~ b3 ~, ~@9 d4@7 ~@8", B: "~@5 f#4@3 ~@4, ~ b3 ~, ~@9 d4@7 ~@8",
  C: "~@5 g4@3 ~@4, ~ c4 ~, ~@9 e4@7 ~@8", D: "~@5 g4@3 ~@4, ~ b3 ~, ~@9 e4@7 ~@8", E: "~@5 g4@7, ~ b3@2, ~@3 e4 ~@4",
  F: "~ [a3,d4] ~", G: "~@5 [b4,b5], ~ [d4,d5], ~@2 [g4,g5]",
  H: "[~@11 [d3,b4,b5], d2@5 [d3,d5] ~ d3 a3@4, [a4,a5]@4 [g3,a4,a5]@7 b4@7 d3@2 b3@4, ~ a2@5 g2@6, ~@3 d3 f#3@2 b5@5 ~]/2", // G D A Gsus2
  I: "~@5 [e3,c5,g5,c6], g2, [c5,e5,c6] e5@2, ~ e3 c4 e3 [c4,b4,f#5,b5]@2, ~@2 [c5,c6]@3 ~", // C B C
  J: "~@5 [g3,d5,f#5,d6], g2, [d5,f#5,d6]@2 b3, ~ d3@2 d3@3, ~@2 g3@3 ~", // Gmaj7 D
  K: "~ [c#5,f#5,c#6] ~@3 [a#3,e5,e6], [f#2,a#5]@2 [c#4,d5,d6], [d5,d6]@2 a#3 f#3@3, ~ c#3@5, ~ [c#5,f#5,c#6]@2", // F#5 A#dim F# Dmaj7 D F#5
  L: "~@5 [c#2,e5,e6], b5@2 [d2,d5,d6], [e5,e6]@2 [d5,d6] f#2@3, b2 b2@2, ~ f#3@5", // C#m D E D
  M: "~@5 f3, [b1,f5]@2 [f2,e5,e6] b2 [d3,d5,d6]@2, ~ b5@23, ~ d6@3 d2@20, ~ f6@11", // Bdim Fmaj7 D
  N: "~@5 [g#3,d5,d6], [e2,g#5]@2 [e3,c5,c6], [c5,c6] d3, ~ g#2@5, ~ [b2,b4,b5]@2", // G#dim E C B
  O: "~@5 c4, [a1,e5]@2 [a2,d5,d6] e3 [a3,c5,c6]@2, ~ a5@23, ~ e6@11, ~ e2@5", // A5 D5 Am
  P: "~@5 f#3, [d2,b4]@2 [d3,a#4,e5,a#5] f#3 [a3,a4,d#5,a5]@2, ~ f#5@23, ~ b5@11, ~ a2@5", // G Em7b5 Adim
  Q: "~ d3 ~@3 b3, [g1,g2], ~ [b2,d3,g3] [b2,d3,g3,d4], ~@3 b3@2 ~", // G
  R: "~ d3 ~@3 b3, b1, b2 [b2,d3,f#3] [b2,d3,f#3,d4], ~@3 b3@2 ~", // Bm
  S: "~ e3 ~@3 c4, c2, c3 [c3,e3,g3] [c3,e3,g3,e4], ~@3 c4@2 ~", T: "g3@2 g3@2 ~ [f#2,f#3], g2@2 [g2,g3], ~ [b2,d3]@2",
  U: "~@2 g4 ~ f#4!2, b3@2 [d#2,f#2,b2,d#3,d#4,b4], [e2,g2,b2,e3] [e2,g2,e3,e4]@2, ~ g3@5, ~@2 [b2,b4] g4@3", // B Em B
  V: "g4 ~@4 a3, [d2,g2,b2,d3,d4,b4], ~ g4@2 g4@3, ~ [d5,g5,b5]@2, ~@2 [c#2,e2,a2,c#3,c#4,e4,a4]", // G A
  W: "~ a3 c4 ~ [d2,a2,d3,d4,f#4,a4]@2, [c2,g2,c3,g4], [c4,e4] [a1,e2,a3,e4]@2, ~ a2 ~, ~ c4", // D C5 C A5
  X: "~@5 b2, [g1,g2] b2 d3 g3 d3@2, g3 g4@7, ~ b3@23, ~ d4@11", // G
  Y: "[f#2,f#3]!24, f#5@4 [b3,d#4,f#4,b4] [b3,d#4,f#4], [f#4,d#5] b4 d#5@4, b4 e5@5, ~ e4 [d#4,f#4,b4] [c4,e4,c5]@3", // F# B D#m B C
  Z: "~@5 [c#3,e3,e4], e2, e4@2 d#3, e3@3 e3@2 ~, ~ [f#3,b3,b4]@2", // C#m B5
  AA: "~@5 [e3,b3,b4], [f#2,f#3,d#4]@2 d#3, d#3@2 [b3,b4] c#3@3, b2 b2@2, ~ a#2@5", // E5 D#m B
  AB: "~@5 b2, [a2,f#3,c#4,c#5]@2 [d#3,a3,a4], a3@2 d#3 c#3@3, ~ e3@5, ~ [b3,b4]@2", // F#m D#dim B
  AC: "~@5 [g#3,d#4,d#5], [e2,g#2,b3,b4], e3!2 [e3,c#4,c#5], ~ b2@5, ~@3 g#3@2 ~", // G#5 E C#m
  AD: "~@5 f#3, [a2,e4,e5], a3 g#3, f#3 [d#4,d#5]@2, ~ g#3 f#3@2 [a3,c#4,c#5]@2", // A5 D# A
  AE: "~@5 [e3,f#4], [g#2,b3,b4], g#3@2 e4 f#3@3, ~ f#3 e3@2 [g#3,e4]@2, ~ e5@2", // Esus2 G#m C#m
  AF: "~@5 [e2,e3,e4], f#2, [g#3,g#4] [c#3,c#4,c#5], ~ e2@4 ~, ~ g#2 [g#2,g#3,g#4]", // E G# C# G#
  AG: "~@5 [b2,b3,f#4], d#2@2 [a2,a3,g#4], [b2,b3,f#4] [g#2,g#3], f#3 [f#2,f#3]@2, ~ e2@5", // B5 Amaj7 B5 G# F#
  AH: "~@5 [b4,g#5], [e2,g#2,b2,e4], ~ e5@2, ~ g#5 [e3,g#3,b3,c#5,a5], ~@2 [e3,g#3,b3] [d#5,f#5]@3", // E C#m7 E D#m
  AI: "~@5 [f#4,a4], [d#2,f#2,b2,d#4], ~ d#5@2, ~@2 [d#3,f#3,b3,b4] a4 [d#3,f#3,b3,g#4,b4]@2, ~ c#5", // F#m B G#m7
  AJ: "c#4@2 ~ d#5 ~ [c#5,e5], [g#2,c#3,e3], ~@2 [c#5,e5]@3 ~, ~ [g#3,c#4,e4] [g#3,c#4,e4,d#5,f#5], ~ b4", // C#m
  AK: "b3@2 ~ c#5 ~ [d#5,g#5], [g#2,e3], ~@2 d#5@3 ~, ~ [g#3,b3,e4,f#5] [g#3,b3,e4,c#5,f#5], ~ e5", // G#5 C#m E C#m7
  AL: "e5@2 ~@3 g#5, [f#2,a2,c#3], a5@2 [f#3,a3,e4] g5@3, ~ e5@2, ~ g#5 [f#3,a3,e4,c#5,a5]", // F#m F#m7
  AM: "~@5 [d#4,f#4], [g#2,b2,e3,d#5]@3 f#4 [g#3,b3,e4,g#4]@2, b4 b4@2, ~ c#5@5, ~ a4 [g#3,b3,e4,g#4] a4@3", // D#m Emaj7 E
  AN: "[a2,f#3]@2 f#3@2 ~ f#4, [c#2,f#2,a3,c#4], ~ [a2,c#3]@2, ~@2 [d#3,f#3,b3,g#4]", // D F#m A G#m7
  AO: "~@5 [e4,e5], [g#2,b2,e3,g#3], e4@5 ~, ~ [c#4,c#5], ~@2 [d#4,d#5]", // E C# D#
  AP: "~@5 [b3,b4], [b2,e3], [f#4,f#5] [e4,f#4,f#5]@2, ~ b3@2 b3@2 ~, ~@2 d#4", // B E5 F# Esus2
  AQ: "~@5 [b2,g#4,g#5], e2, [g#4,g#5]@5 ~, ~ b2@2 b2@2 ~, ~ g#3!2", // E G#
  AR: "~@5 [c#3,a4,c#5,a5], e2, [a4,c#5,a5]@2 [a4,c#5,a5]@3 ~, ~ c#3@2 c#3@2 ~, ~ a3 [a3,g#4,b4,g#5]", // F#m A E
  AS: "~@5 [b3,b4,g#5,b5], [e2,d#5]@2 g#4, [b4,b5] e4, ~ b2@5, ~ g#3@2", // E Emaj7 B
  AT: "~ [a#4,g5,a#5] ~@3 [a#2,c#5,c#6], [g1,g2,g#5], [b4,b5]@2 d#3 g3@3, ~ a#2@3 [d#3,b4,b5]@2, ~ [a#4,g5,a#5]@2", // D# A#m G#maj7 B G#m D#
  AU: "~@5 [b2,c#5,c#6], [g#1,g#2,a#5], [c#5,c#6]@2 [d#3,b4,b5] g#3@3, ~ b2@3 [d#3,b4,b5]@2, ~ g#5@2", // Bsus2 G#sus2 C# G#m
  AV: "~@5 a2, [f#1,f#2,d5,d6], b5@2 c#3 f#3@3, ~ a2@3 [c#3,b4,b5]@2, ~ [c#5,c#6]@2", // D C#7 C#
  AW: "~@5 [a2,b4,b5], [c#2,c#5,f5], [a4,a5]@2 c#3 f3@3, c#3 [g#4,g#5]@2, ~ a2@3 [c#3,a4,a5]@2", // Asus2 C# A G# F#m
  AX: "~@5 a2, [f#1,f#2,c#5,f#5,c#6], ~ a2@3 [c#3,a4,a5]@2, ~ [b4,b5]@2, ~@2 c#3 f#3@3", // F#5 F#m B
  AY: "~@5 f#2, [b1,g#4,b4,d#5,g#5], b2 [g4,g5]@2, ~ f#2@3 [b2,f#4,f#5]@2, ~@2 b2 d#3@3", AZ: "e6@2 e6",
  BA: "~@7 b4, e6", BB: "[c2,c5]@2 [g3,c4,e4]@2 ~ c5, ~@8 g5@11 ~@5, ~@2 [g3,c4,e4]",
  BC: "[e2,b4]@2 [g3,b3,d4]@2 ~ g5, ~@8 g5@11 ~@5, ~@2 [g3,b3,d4]", BD: "[f2,c5,a5] [f3,a3,c4,g5] [f3,a3,c4,f5]",
  BE: "[[g4,g5]@8 ~@8 [d3,d4]@3 ~ [a3,a4]@3 ~ [g3,g4]@5 ~@3 [a2,a3,a4]@2 b2@2 [a3,a4] ~ [a3,a4] ~@40 [g3,a4,d5] [c2,c3,c4]@8 [g3,g4]@12 [c3,c4]@4 [b2,b3]@8 [g3,g4]@12 [g3,g4]@4 [a3,a4]@8 [g3,g4]@8, ~@4 [g1,g2]@12 ~@2 c3 d3 [e4,e5]@20 ~@32, ~@44 [d4,d5]@13 ~@87, ~@24 g2!6 [g2,d4,f4]!6 [g2,d4,f4]!4 ~@32, ~@49 g3@2 g3@2 g3@2 g3@2 g3@2 g3@2 [g3,a4,d5]@2 [g3,a4,d5]@2 [g3,a4,d5]@2 [g3,a4,d5]@2 [g3,a4,d5]@2 [g3,a4,d5]@2 [g3,a4,d5]@2 [g3,a4,d5]@2 [g3,a4,d5]@2 ~@65]/6", // G D A G A Gsus2 C G …
  BF: "[[f3,f4]@8 [g3,g4]@19 ~ [e3,e4]@4 [f3,f4]@8 [e3,e4]@8]/2", // F G E F E
  BG: "[[d3,d4]@8 e4@19 ~ [a2,a3]@4 [d3,d4]@8 [c3,c4]@8, ~ e3@2 ~@3]/2", // D A D C
  BH: "[[b2,b3]@4 c3@2 ~@2 c3@2 c5@2 [e3,a3,e4,e5]@2 [g4,g5]@2 ~@11 b4 ~@11 d6 ~@11 b5 ~@9 f#4@15 ~@8, ~@4 c4@6 a2 ~@5 [f1,f2]@3 c6 [f1,f2,b5] a5 g5 f5 [f1,f2,e5] d5 c5@2 c5@7 g5 [e1,e2,a5] b5 c6@2 ~ d6@3 [d1,d2] e6 d6 c6 [d1,d2,e6] d6 c6@2 a5@4 [d1,d2,d5] c5 b4 a4 [d1,d2,g4]@16 ~@8, ~@16 e3@2 ~@2 [c3,c4]@11 ~ f6@24 ~@4 e5@4 [e1,e2,g5]@4 f5@12 ~@4 a6@20 ~@4 f#5@44 ~@16, ~@17 e6@11 ~ d5@11 [d1,d2,e6]@4 f#6@8 [d1,d2]@3 e5@21 ~@8, ~@18 d6@10 [e1,e2]@3 f5@2 e5@7 ~@3 g6@9 ~ g5@23 ~@8]/7", // B A5 G F Fdim Fmaj7 A5 D …
  BI: "[~ [f3,a3,c4]@3 a3@3 a3@2, ~@2 a4@3 ~@3 a4@3 ~@3 a4@3 ~, ~@2 e4 ~@15]/3", // F
  BJ: "[~@7 [d4,d5] ~@5 [d4,d5] ~@5 [d4,d5] ~@5 [f4,f5] ~@5 [f4,f5] ~@3 [c5,c6], ~@2 [f2,a2,e3,a3]@6 [g2,b2,e3,a3]@6 ~@2 [d4,d5]@3 ~@3 [f4,f5]@3 ~@3 [f4,f5]@3 ~ c4@4, ~@2 a4@3 [a4,a5]@3 a4@3 [a4,a5]@3 a4@3 [a4,a5]@3 c5@3 [c5,c6]@3 c5@3 [c5,c6]@3 c5@3 ~, ~@3 [e4,e5]@3 [e4,e5]@2 ~ [e4,e5]@3 [e4,e5]@2 ~ [e4,e5]@3 [e4,e5]@2 ~ [g4,g5]@3 [g4,g5]@2 ~ [g4,g5]@3 [g4,g5]@2 ~ [g4,g5]@3, ~@4 [d4,d5]@3 ~@3 [d4,d5]@3 ~ a3@6 [f2,g#2,c3,g3,c4]@6 [g2,a#2,d3,g3,c4]@6 ~@2 [f4,f5]@2]/6", // D F C Fmaj7 Em D F A …
  BK: "[~ [f4,f5] ~@5 [f4,f5] ~@5 [f4,f5] ~@5 [f4,f5] ~@5 [f4,f5] ~@5 [f4,f5] ~@3 [c5,c6], [g4,g5]@2 [g#2,c3,f3,g#3,c4]@6 [g2,a#2,d3,g3,c4]@6 ~@2 [f4,f5]@3 ~@3 [f4,f5]@3 ~@3 [f4,f5]@3 ~ c4@4, ~@2 c5@3 [c5,c6]@3 c5@3 [c5,c6]@3 c5@3 [c5,c6]@3 c5@3 [c5,c6]@3 c5@3 [c5,c6]@3 c5@3 ~, ~@3 [g4,g5]@3 [g4,g5]@2 ~ [g4,g5]@3 [g4,g5]@2 ~ [g4,g5]@3 [g4,g5]@2 ~ [g4,g5]@3 [g4,g5]@2 ~ [g4,g5]@3 [g4,g5]@2 ~ [g4,g5]@3, ~@4 [f4,f5]@3 ~@3 [f4,f5]@3 ~ c4@6 [a#1,c#2,f2,c4]@6 [c2,d#2,f2,c4]@6 ~@2 [f4,f5]@2]/6", // F C G Fm Gm F C G …
  BL: "[~ [f4,f5] ~@11 [f4,f5] ~@11 [f4,f5] ~@5 [f4,f5] ~@5 [g4,g5] ~@5 b4 ~@3 f#5, [g4,g5] [a#2,c#3,f3,g#3]@6 [c3,d#3,g3,a#3]@6 [c2,e2,a2,c3,c4,e4,a4]@3 [d2,f#2,a2,d3,d4]@3 [g1,d2,g2]@3 [b1,b2]@2, ~@2 c4@4 [g4,g5]@2 c4@6 c4@4 [g4,g5]@2 c4@6 ~@2 [f4,f5]@3 ~@3 [g4,g5]@3 ~ g4@2 [g3,b3,d4,g4,d5]@2 [g3,b3,d4,g4,d5]@2 ~@2 [f#3,b3,d4,f#4,d5]@2, ~@2 c5@2 [f4,f5] c5@2 [f4,f5] c5 [g4,g5]@2 [c5,c6]@3 c5@2 [f4,f5] c5@2 [f4,f5] c5 [g4,g5]@2 [c5,c6]@3 c5@3 [c5,c6]@3 d5@3 [d5,d6]@3 ~@3 g5@3 ~ b4@3, ~@3 [g4,g5]@2 c6@5 [f4,f5]@2 [g4,g5]@2 ~ [g4,g5]@2 c6@5 [f4,f5]@2 [g4,g5]@2 ~ [g4,g5]@3 [g4,g5]@2 ~ [a4,a5]@3 [a4,a5]@2 ~ b4@4 ~ f#4@2 ~@2]/8", // F G A#m7 Cm7 Am D G5 B …
  BM: "[~ b4 ~@5 c5 ~@5 b4 ~@5 b4 ~@5 b4 ~@5 f#5 ~@5 [b4,b5] ~@9 d3, [f#3,b3,d4,f#4,d5]@2 [c2,c3]@6 [b1,b2,g4]@6 [e2,e3]@6 [b1,b2]@6 [a1,a2,a4]@4 [d2,d3,a5]@2 [g1,g2]@6 d2@5 [d3,d5] [g2,b5]@4, ~@4 g4@4 [g3,c4,e4,g4,e5]@4 [g3,c4,e4,g4,e5]@4 ~@4 [f#3,b3,d4,f#4,d5]@4 [f#3,b3,d4,f#4,d5]@4 ~@4 [g3,b3,e4,g4,e5]@4 [g3,b3,e4,g4,e5]@4 ~@4 [g3,b3,e4,g4,d5]@4 [g3,b3,e4,g4,d5]@4 ~@4 [a3,c4,e4,g4,e5]@8 ~@6 [d4,d5]@6 ~@2 a2@9 b4@9, ~@3 c5@4 ~@2 b4@4 ~ g4@2 ~ g5@3 ~ b4@4 ~@2 c5@5 ~@4 [g4,g5]@2 [a4,a5]@2 [g3,a4,a5]@4 ~@2 a3@2, ~@5 g5@3 ~@3 f#5@3 ~ b4@4 ~ g4@2 ~ f#5@3 ~@3 g5@3 g5@4 ~@5 d3 f#3@2 ~ d3@2 ~]/8", // B Bm C Em E B A D5 …
  BN: "~ [d3,b4,b5] ~@3 e3, b3 g2@2, ~ [c5,e5,c6] [c4,c5,e5,c6], ~@3 e3@2 ~", // G C
  BO: "~ [e3,c5,g5,c6] ~@3 d3, [c4,b4,f#5,b5] [g2,d5,f#5,d6]@2, ~@3 d3@2 ~, ~@2 g3", // C B Gmaj7
  BP: "[~ [g3,d5,f#5,d6] ~ [c#5,f#5,c#6] ~@3 [a#3,e5,e6] ~@5 [c#2,e5,e6] ~@5 f3 ~@5 [g#3,d5,d6] ~@5 c4 ~@5 f#3 g4@2 ~@3 [d5,b5] f#4@2 ~ [c5,e5], b3@8 [f#2,a#5]@16 [c#4,d5,d6]@8 [e5,e6]@8 [d5,d6]@4 f#2@4 [d2,d5,d6]@8 [b1,f5]@8 [f2,e5,e6]@4 b2@4 [d3,d5,d6]@8 ~@4 g#2@12 [e3,c5,c6]@8 ~ a5@7 [a2,d5,d6]@4 e3@4 [a3,c5,c6]@8 ~@2 b5@6 [d3,a#4,e5,a#5]@4 f#3@4 [a3,a4,d#5,a5]@8 ~@8 b5@8 [g3,b3,d4,g4,e5,c6]@8 ~@8 [f#3,b3,d4,f#4,d5,f#5]@8, ~@8 [d5,d6]@8 a#3@4 f#3@12 ~@4 f#3@20 ~ d6@3 d2@20 [e2,g#5]@24 [a1,e5]@24 ~@4 a2@20 ~@8 [g3,b3,d4,g4]@4 [f#5,a5]@12 ~@16, ~@6 c#3@10 b2@4 b2@8 ~ f6@11 ~@4 [b2,b4,b5]@8 ~@2 e2@10 [d2,b4]@12 [g1,d2,g2]@12 [b1,b2]@8, ~@16 [c#5,f#5,c#6]@16 b5@24 ~ b5@23 [c5,c6]@12 d3@12 ~@2 e6@22 ~ f#5@23 ~@8 g5@16 ~@16]/8", // Gmaj7 F#5 A#dim C#m G#dim G C F# …
  BQ: "[~@4 [a4,c5]@4 e4@8 ~@4 f#5@4 ~@4 [e5,g5]@4 d4@8 ~@4 e5@4 ~@4 [f#5,b5]@4 g5@8 ~@12 b5@4 ~@17 [c#1,c#2,e4,e5]@9 ~@19 [d1,d2,f#4,a4,d5,f#5]@10 [c1,c2,e4,g4,b4,d5,g5]@33, [f#3,b3,d4,f#4,b4,d5]@8 [c2,c3]@24 [b1,b2]@24 [e1,e2,e5]@24 ~@36 [a0,a1]@19 ~@33, ~@16 [e5,g5]@12 ~@12 f#5@12 ~@16 a#5@12 ~@9 [g5,b5,d6,g6]@17 ~@62, ~@2 [g3,c4,e4,g4] [g3,c4,e4,g4,f#5,a5] ~ [f#3,b3,d4,f#4,a5] [f#3,b3,d4,f#4,e5,a5] ~ [g3,b3,e4,g4,g5]@2 ~@11, ~@20 d5@12 ~@12 g5@12 ~@8 b5@8 [d#1,d#2,d#5,c6]@8 [d1,d2,d4,d5]@26 [c1,c2,g4,b4,e5,g5]@29 ~@33]/7", // Am Em B5 C#m D Cmaj7 Bm C …
  BR: "[[a1,a2,d#4,g4,b4,d5,f#5]@17 ~@7]/2", BS: "~@23 [g2,b4,d5]",
  BT: "[g1,f#5,a5] [g2,b4,d5] ~ [g1,f#5,a5] [g2,b4,d5] ~ [g1,f#5,a5] [g2,b4,d5] ~ [g1,f#5,a5] [g2,b4,d5] [g1,f#5,a5] ~ [g2,b4,d5] [g1,f#5,a5] ~ [g2,b4,d5] [g1,f#5,a5] [g2,b4,d5] ~ [g1,f#5,a5] [g2,b4,d5] ~ [g1,f#5,a5]", // D G D G D G D G …
  BU: "[g2,b4,d5] [g1,f#5,a5] ~ [g2,b4,d5] [g1,f#5,a5] ~ [g2,b4,d5] [g1,f#5,a5] ~ [g2,b4,d5] [g1,f#5,a5] [g2,b4,d5] ~ [g1,f#5,a5] [g2,b4,d5] ~ [g1,g2,b4,d5,f#5,a5]@8", // G D G D G D G D …
})).s("gm_piano").gain(0.35)

// chords · piano · soft notes
const piano_soft = note(`<
  A@2 B C D C D C E F G H I J K L M N ~@46 O P Q R ~@4 S@2 T U V W X Y Z AA ~@4 AB@6 AC@3 AD@7 ~@45 AE@2 AF ~@2
>`.pickRestart({
  A: "~ [b3,d4]!2, g3", B: "~ [b3,d4]!2, g2", C: "~ [b3,d4]!2, b2", D: "~ [c4,e4]!2, c3", E: "~ [c#4,e4]!2, a2",
  F: "~@5 a3, d3, ~ [c4,g4]@2, ~@2 [b3,f#4]", G: "~@2 [b3,d4,g4], [g2,g3]", H: "b3 ~ [b3,d4,f#4], b2",
  I: "c4 ~ [c4,e4,g4], c3", J: "b3 ~ [d3,b3,d4,f#4], b2", K: "e4@9 ~@7 [b3,e4,g4]@8, e3", L: "b3@2 ~ [e3,e4]@3, b2",
  M: "a3 ~ [d3,a3,d4], a2", N: "[g2,g3]", O: "~@5 b5, [e3,g3,b3,d4], ~ b5@4 ~, ~ a5@2, ~ e5",
  P: "~@5 b5, [e3,g3,a3,c#4], ~ b5@4 ~, ~ a5@2, ~ e5", Q: "~@5 b5, [d3,f3,a3,c4], ~ b5@4 ~, ~ a5@2, ~ e5",
  R: "~@19 c5@5, [f3,g#3,b3,d4]@2 d5, ~ b5@5, ~ g#5@2, ~ f5", // Fdim
  S: "[~@23 g3@2 ~@10 [a4,d5]@2 ~@11, ~@16 g2@2 g2@2 g2@2 g2@2 ~@9 [a4,d5]@2 ~@13, ~@17 g3@2 g3@2 g3@2 ~@9 [d4,f4]@2 [d4,f4]@2 ~@12]/2", // D5 Dm
  T: "~@4 [e2,g2] ~", U: "[e2,g2,c3] ~ e2@2 [g2,b2] ~", V: "[g2,b2,e3] ~ f2@2 [a2,c3] ~", W: "[a2,c3] ~ e2@2 [g2,b2] ~",
  X: "[g2,b2,e3] ~ d2@2 [a2,d3] ~", Y: "[a2,f3] ~ c2@2 [a2,c3] ~", Z: "[a2,c3,e3] ~ b1@2 [f2,b2] ~",
  AA: "[f2,d3] ~ a1 c3 ~@2, ~@6 a2 ~@5", // Dm
  AB: "[~@2 [d1,d2]@6 ~@5 d5 ~@5 [d5,g5,d6] ~@5 d5 ~@5 d5 ~@3 a5, ~ e4@7 a4@6 a4@6 [a4,c6,g6]@4 e5@2 a4@6 a4@4, ~@3 d4@13 ~@2 e5@6 e5@4 ~@2 e5@6 e5@4 ~@2 e5@4 a5@6 ~@2 e5@4 a5@6 ~@8, ~@10 d5@3 ~@3 d5@3 ~@3 d5@2 [g5,d6]@8 ~@2 d5@2, ~@11 a5@3 ~@3 a5@3 ~@2 [b5,f#6]@4 ~@2 d5@2 e5@2 ~ e5@3]/6", // D G5 Am7 G5 B5
  AC: "[~ d5 ~@5 d5 ~@5 d5 ~@3 a5, e5 a4@2 [e5,b5,f#6] [a4,g5,d6]@3 a4@2, ~@2 c6@2 [c6,g6]@4 ~@3 a5@3 ~@4, ~@3 g5@5 ~ e5@3 e5@2 ~ e5@3, ~@3 e5 d5 a5@3 ~@2 d5@3 ~@3 d5@2]/3", // Esus2 Dsus4 C5
  AD: "[~ d5 ~@5 d5 ~@5 d5 ~@5 d5 ~@5 [d4,d5] e4 ~@4 [d4,d5] ~@5 [d4,d5] ~@4, e5@2 [c6,g6]@10 e5@2 ~ e5@2 a5@3 ~@3 [a4,a5]@3 ~@2 [d4,d5]@3 ~@3 [d4,d5]@3 ~@5, ~@2 a4@6 a4@6 a4@6 ~ [e4,e5]@3 [e4,e5]@2 ~ [e4,e5]@3 [e4,e5]@2 ~ [e4,e5]@3 [e4,e5]@2 ~@4, ~@3 e5@2 a5@3 ~@2 [a#5,f6]@10 ~@9 [a4,a5]@3 ~@3 [a4,a5]@3 ~@4, ~@4 d5@2 e5@2 ~ e5 d5 a5@3 ~@2 d5@2 e5@2 ~@2 [d4,d5]@3 ~ [e3,g3,b3]@6 ~@10]/7", // D C5 A D E A#5 A D …
  AE: "[~@12 [d5,f#6,a6]@32 [g1,f#5,a5] [g2,b4,d5] ~ [g1,f#5,a5], ~@5 [d4,g5]@17 ~@2, ~@11 [g4,b5,d6]@33 ~@4]/2", // D G D G5 G
  AF: "[g2,b4,d5] ~ [g1,f#5,a5] [g2,b4,d5] [g1,f#5,a5] ~ [g2,b4,d5] [g1,f#5,a5] ~ [g2,b4,d5] [g1,f#5,a5] [g2,b4,d5] ~ [g1,f#5,a5] [g2,b4,d5] ~ [g1,f#5,a5] [g2,b4,d5] ~ [g1,f#5,a5] [g2,b4,d5] [g1,f#5,a5] ~@2", // G D G D G D G D …
})).s("gm_piano").gain(0.2)

stack(piano, piano_soft)

More by Joe Hisaishi