Strudelify

Last Carnival

Norihiro Tsuru

KeyB♭ majorTempo82 bpm
0:00/0:00
// Last Carnival — Norihiro Tsuru
// 82 bpm, 6/8, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5362489; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 99 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(82/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(`<
  A B A B C D E F G H I J K L E F M N A O P Q R S P Q R T U V W X Y Z A B A AA AB AC AD AE AF AG AH AI AB AC AD AE AJ AK
  AL O P Q R S P Q R T U V W F Y Z A B C AM AN AO AP AM AN AO C D A B A AQ ~ AR@8 AS@6
>`.pickRestart({
  A: "[g2,g3] g4 bb4 [f2,f3,g4,d5] [bb3,d4,bb4,g5]@2, ~ [bb3,d4]@2 ~@3", // G G7 Gm Bb
  B: "[eb2,eb3] g4 bb4 [f2,f3,g4,d5] [g3,bb3,bb4,g5]@2, ~ [bb3,d4]@2 ~@3", // Eb G7 Gm Bb
  C: "~ [bb3,d4,g4] [g4,bb4] ~ [bb3,d4,g4]@2, eb3@11 ~ eb3@11 ~", D: "~ [a3,c4,f4]!2 ~ [a3,c4,f4]@2, f3@11 ~ f3@11 ~",
  E: "~ [d4,f4] [f4,a4] ~ [a3,c4,f4]@2, bb2@11 ~ a2@11 ~", F: "~ [g3,b3,d4] [b3,d4,g4] ~ [b3,d4,f4]@2, g2@11 ~ f2@11 ~",
  G: "~ [g3,bb3,eb4] [bb3,eb4,g4] ~ [bb3,eb4,g4] d5, c3@11 ~ c3@11 ~", // Eb
  H: "c5 [a3,c4,eb4,f4] c4 ~ [a3,c4,eb4,g4]@2, f2@11 ~ c3@11 ~", // F7 Am7b5
  I: "g3 [g4,b4] d5 [gb3,b4,g5] [b3,d4,d5,b5]@2, ~ [b3,d4]@2 ~@3", // G Gmaj7 Bm
  J: "e3 [g4,b4] d5 [gb3,b4,g5] [b3,d4,d5,b5]@2, ~ [b3,d4]@2 ~@3", // G Gmaj7 Bm
  K: "~ [bb3,d4,g4] [g4,bb4] ~ [bb3,d4,g4]@2, [eb2,eb3]@11 ~ [eb2,eb3]@11 ~", // Gm Eb
  L: "~ [a3,c4,f4]!2 ~ [a3,c4,f4]@2, [f2,f3]@11 ~ [f2,f3]@11 ~", // F
  M: "~@2 [g3,bb3,eb4]@2 [bb3,eb4,g4]@2 eb5@2 g5@2 d6 db6, c3@11 ~ c3@11 ~", // Eb
  N: "c6 [a3,c4,gb4]!2 ~ [a3,c4,gb4]@2, d3@11 ~ d3@11 ~", // Gbdim
  O: "[eb2,eb3]@2 g4@2 bb4@2 [f2,f3,g4,d5]@2 [g3,bb3]@2 eb3 d3, ~ [bb3,d4]@2 ~ [bb4,g5]@2", // Eb G7 Gm Bb Eb
  P: "c3 [g3,eb4,g4,bb4]!2 c3 [g3,eb4,g4,bb4]!2", Q: "c3 [g3,eb4,g4,bb4]!2 c3 [g3,eb4,g4,bb4] [c3,eb4,g4,bb4]",
  R: "d3 [a3,d4,f4,a4] [a3,f4,c5] d3 [a3,d4,f4,a4] [a3,f4,c5]", // Dm F Dm F
  S: "d3 [a3,d4,f4,a4] [a3,f4,c5] d3 a3 db3, ~@2 [d4,f4,a4]", // Dm F Dm
  T: "d3@2 a3@2 a2 ab2 ~@2 [g3,b3,d4]@2 [b3,d4,f4]@2, ~@4 [d4,f4,a4]@8 g2@11 ~", // G Bdim Dm
  U: "~ [g3,bb3,d4] [bb3,d4,g4] ~ [eb4,g4,bb4]@2, eb2@11 ~ eb2@11 ~", // Gm Eb
  V: "~ [a3,c4,f4] [c4,f4,a4] f3 a3@2, f2@11 ~ [f4,a4,c5]@11 ~", // F
  W: "~ [a3,d4,f4] [d4,f4,a4] ~ [a3,c4,f4]@2, bb2@11 ~ a2@11 ~", // Dm F
  X: "~ [g3,b3,d4] [b3,d4,g4] ~ [b3,d4,f4]@2, g2@11 ~ c3@11 ~", // G Bdim
  Y: "~ [g3,bb3,eb4] [bb3,eb4,g4] ~ [eb4,g4,bb4]@2, c3@11 ~ c3@11 ~", // Eb
  Z: "~ [a3,c4,d4,gb4] [c4,d4,gb4,a4] ~ [gb4,a4,c5,d5]@2, d3@11 ~ d3@11 ~", // D7
  AA: "[eb2,eb3] g4 bb4 [f2,f3,g4,d5] [bb4,g5] d5, ~ [bb3,d4]@2 ~ [g3,bb3]@2", // Eb G7 Eb Bb Gm
  AB: "eb3 [bb3,d4,g4] [bb3,d4,g4,c5] eb3 ~ eb5, d5@2 ~ d5@2 ~, ~@2 [bb3,d4,g4]", // Gm
  AC: "f3 [a3,c4,f4] [a3,c4,f4,a4] f3 ~ c5, bb4@2 ~ bb4@2 ~, ~@2 [a3,c4,f4]", // F
  AD: "[bb2,d5] [bb3,d4,f4,a4] [bb3,d4,f4] a2 [a3,c4,f4]@2, ~@12 a4@11 ~", // Bb Bbmaj7 Bb F
  AE: "g2 [g3,b3,d4]!2 f2 g4 a4, g4@15 ~ [g3,b3,d4]@8", // G
  AF: "[c3,eb4] [g3,bb3,eb4,g4] [bb3,eb4,g4,d5] c3 ~ d6, ~@3 c5@2 ~, ~@2 [bb3,eb4,g4]", // Cm Eb Ebmaj7 Eb
  AG: "[f2,c6] [a3,c4,eb4,f4,f5] [c4,d5] [c3,c5] ~ a4, ~@2 [a3,c4,eb4,g4]", // F5 F7 Csus2 C Am7b5
  AH: "[g3,b4] [g4,b4] d5 [gb3,b4,g5] [b3,d4,d5,b5]@2, ~ [b3,d4]@2 ~@3", // G Gmaj7 Bm
  AI: "e3 [g4,b4] d5 [gb3,b4,g5] [d5,b5] d5, ~ [b3,d4]@2 ~ [b3,d4]@2", // G Gmaj7 G Bm
  AJ: "[c3,eb4]@2 [g3,bb3,eb4,g4]@2 [bb3,eb4,g4,d5]@2 c3@2 ~@2 d6 db6, ~@3 c5@2 ~, ~@2 [bb3,eb4,g4]", // Cm Eb Ebmaj7 Eb
  AK: "[d3,c6] [gb3,a3,c4,a4] [gb3,a3,c4,bb4] [d3,c5] bb4 a4, ~@2 [gb3,a3,c4]", // D7 Gbdim D7 Gbdim
  AL: "[g2,g3,g4] g4 bb4 [f2,f3,g4,d5] [bb3,d4,bb4,g5]@2, ~ [bb3,d4]@2 ~@3", // G G7 Gm Bb
  AM: "~ [a3,c4,f4]!2 ~ [a3,c4,f4] d5, f3@11 ~ f3@11 ~", // F
  AN: "[g2,g3] ~ c5 [f2,f3] ~ eb5, d5@2 ~ d5@2 ~, ~ [bb3,d4]@2 ~ [bb3,d4]@2", // G F Bb
  AO: "[eb2,eb3] ~ a4 [f2,f3] ~ d4, bb4@2 ~ g4@2 ~, ~ [bb3,d4]@2 ~ [g3,bb3]@2", // Eb F Bb Gm
  AP: "eb4 [bb3,d4,g4] [g4,bb4] ~ [bb3,d4,g4]@2, eb3@11 ~ eb3@11 ~", // Gm
  AQ: "[eb2,eb3,g4]@4 [eb2,eb3,g4,bb4]@4 [eb2,eb3,g4,d5]@4 [eb2,eb3,g4,d5,g5,bb5]@11 ~", // Eb Ebmaj7
  AR: "[~@10 d5@11 ~ g4@4 ~@4 a5@4 f4@4 ~@4 c6@4 eb4@4 ~@4 g6@4 f4@4 ~@4 c6@4 d6@2 g6@2 [bb4,d5]@8 f4@4 c6@2 g6@2 c6@4 bb5@2 g6@2 [bb4,d5,bb5]@8 a5@2 d6@2 a5@4 d6@4 g4@4 ~@4 c6@4 f4@4 ~@4 eb6@4 eb4@4 ~@4 a5@4 f4@4 d5@4 d5@4 g4@4 [bb4,d5]@8 f4@4 c6@2 g6@2 c6@4 [eb4,bb5]@2, ~@22 g5@8 ~@4 bb5@8 ~@4 d6@8 ~@4 d6@8 ~@8 d6@11 ~@33 d6@8 ~@4 d6@8 ~@4 bb5@8 ~@4 g5@8 ~@4 g5@15 ~@11, ~@13 [bb4,d5]@4 ~@2 [bb4,d5]@4 ~@2 [bb4,d5]@4 ~@2 [bb4,d5]@4 g4@2 ~@6 [bb4,d5]@4 eb4@2 ~@4 f4@2 [bb4,d5]@4 ~@2 [bb4,d5]@4 ~@2 [bb4,d5]@4 ~@2 [bb4,d5]@4 ~@2 bb4@4 ~@8 [bb4,d5]@4 ~]/8", // Bb Eb5 Bb
  AS: "[g6@2 [bb4,d5,bb5]@8 a5@2 d6@2 a5@4 d6@4 g4@4 ~@4 c6@4 f4@4 ~@4 eb6@4 eb4@4 ~@4 a5@4 f4@4 d5@4 d5@4 g4@4 [bb4,d5]@8 f4@4 c6@2 g6@2 c6@4 bb5@2 g6@2 [bb4,d5,bb5]@8 a5@2 d6@2 [bb4,d5,a5]@8 [g1,d2,g2,g5,bb5,d6,g6]@23 ~@3, ~@10 f4@4 [bb4,d5]@8 d6@8 ~@4 d6@8 ~@4 bb5@8 ~@4 g5@8 ~@4 g5@15 ~@59, ~@13 [bb4,d5]@4 ~@2 [bb4,d5]@4 ~@2 [bb4,d5]@4 ~@2 bb4@4 ~@8 [bb4,d5]@4 eb4@2 ~@4 f4@2 ~@17]/6", // Bb Bbmaj7 Gm Bb
})).s("gm_piano").gain(0.3)

stack(piano)