Strudelify

splatoon - calamari inkantation

Squid Sisters

KeyG♭ majorTempo145 bpm
0:00/0:00
// splatoon - calamari inkantation — Squid Sisters
// 145 bpm, 4/4, key Gb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1750466; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 73 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(145/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(`<
  A B C D A E F G H I J K J L M N O@2 P Q P R S T U V W X U Y Z AA AB AC AD AE AF AG AH AI H I J K J L M N O@2 P Q P R S
  T U V W X U Y Z AA AB AC AD AE AF AG AH AI AJ
>`.pickRestart({
  A: "[eb4,eb5]@2 ~ [db4,db5] [eb4,eb5]@2 ~ [db4,db5], ab2 bb2", // Eb Db Eb Db
  B: "[eb4,eb5]@2 ~ [db4,db5] [eb4,eb5] [db4,db5] [bb3,bb4] [db4,db5], eb2@15 ~", // Eb Db Eb Db Bb Db
  C: "[eb4,eb5]@2 ~ [db4,db5] eb4@2 ~ [db4,db5], ab2 bb2", // Eb Db
  D: "[eb4,eb5] [gb4,gb5] [ab4,ab5] [bb4,bb5] [eb4,eb5]@2 ~ [db4,db5], eb2 db2", // Eb Gb Ab Bb Eb Db
  E: "[eb4,eb5] [db4,db5] [bb3,bb4] [db4,db5] [eb4,eb5] [gb4,gb5] [ab4,ab5] [bb4,bb5], eb2@15 ~", // Eb Db Bb Db Eb Gb Ab Bb
  F: "[ab4,ab5] ~ [ab4,ab5] [gb4,gb5] [eb4,eb5] ~ [eb4,eb5] [gb4,gb5], ab2 bb2", // Ab Gb Eb Gb
  G: "[ab4,ab5] [bb4,bb5] [db5,db6] [bb4,bb5] [ab4,ab5] [gb4,gb5] [eb4,eb5] [db4,db5], b2 db3", // Ab Bb Db Bb Ab Gb Eb Db
  H: "f6 eb6 db6 [ab2,bb5] ab5 gb5 f5 eb5 f5 eb5 db5 [db3,bb4] ab4 gb4 eb4 db4, eb2@3 ~@3 bb2@2 b2@3 ~@3 eb3@2", // Absus2 Gb
  I: "f6 eb6 db6 [ab2,bb5] ab5 gb5 eb5 db5 eb5 db5 eb5 [db3,f6] eb6 db6 bb5 ab5, eb2@3 ~@3 bb2@2 b2@3 ~@3 eb3@2", // Absus2 Db
  J: "f6 eb6 db6 [ab2,bb5] ab5 gb5 eb5 db5 f5 eb5 db5 [db3,bb4] ab4 gb4 eb4 db4, eb2@3 ~@3 bb2@2 b2@3 ~@3 eb3@2", // Absus2 Gb
  K: "~@2 eb2@2 f6 eb6 db6 bb5 [bb2,f5] [bb2,eb5] f6 [ab3,eb6] [bb2,db6] bb5 f6 eb6, eb2@2 ~@2 gb2@2 ab2@2 ~@5 bb2@3, ~ f6@3 ~@12", // Bb5 Eb5 Ab5 Bbm
  L: "f6 eb6 db6 bb5 ab5 gb5 eb5 db5 [bb2,eb5] [bb2,f5] eb5 [bb2,db5] [bb2,eb5] f6 eb6 db6, eb2!2 gb2 ab2 ~@3 bb2", // Eb5 Bb5 Bbm Eb5
  M: "f6 eb6 db6 [ab2,bb5] ab5 gb5 eb5 db5 f6 eb6 db6 [db3,bb5] ab5 gb5 eb5 db5, eb2@3 ~@3 bb2@2 b2@3 ~@3 eb3@2", // Absus2 Gb
  N: "f6 eb6 db6 bb5 f6 eb6 db6 bb5 f6 eb6 db6 bb5 ab5 gb5 eb5 db5, ab2@3 ab3@3 ab2@2 bb2@4 ~@4",
  O: "[[eb2,eb4,eb5]@3 ab2 [eb4,eb5]@2 [bb2,gb4,gb5]@2 b2@3 db3 ~@2 eb3@2 eb2@3 ab2 ~@2 [bb2,ab3,ab4]@2 b2@2 ~ db3 ~@2 [eb3,db4,db5]@2, ~@8 [bb3,bb4]@13 ~@5 [ab3,ab4]@4 ~@2]/2", // Eb Ebm Bb7 Eb7 Bb Ab
  P: "[eb2,eb4,eb5]@3 ab2 [eb4,eb5]@2 [bb2,gb4,gb5]@2 b2@3 db3 ~@2 [eb3,ab3,ab4]@2, ~@4 [bb3,bb4]@3 ~", // Eb Ebm Ab5 Bb
  Q: "[eb2,bb3,bb4]@2 [eb2,db4,db5]@2 [gb2,c4,c5]@2 [ab2,ab3,ab4]@2 bb2!2 ~ ab3 bb2 ~ [db4,db5]@2, ~@8 [bb3,bb4]@2 ~@3 bb2@3", // Eb5 Eb7 Gbdim Ab Db Bb
  R: "[eb2,bb3,bb4]@2 [eb2,ab3,ab4]@2 [gb2,bb3,bb4]@2 [ab2,ab3,ab4]@2 bb2!2 ~ bb2 [bb3,bb4]@2 [bb2,db4,db5]@2, ~@8 [bb3,bb4]@2 [ab3,ab4]@2 bb2 ~@3", // Eb5 Ab5 Gb Ab Bb Bbm Bb Ab
  S: "ab2@3 ab2 [bb4,bb5]@2 [ab2,ab4,ab5]@2 [bb2,bb4,bb5]@2 ~ bb2 [bb4,bb5]@2 [bb2,ab4,ab5]@2, ~@5 [db5,db6] ~@2", // Bb Ab Bb Bb7 Db
  T: "[eb2,eb4,eb5]@2 ~@2 [eb2,eb4,eb5]@2 ~@2 [eb2,eb4,eb5]@2 db5 f5 ab5 bb5 db6 f6", // Eb
  U: "[ab2,eb4,eb5]@3 ab3 ab2 ~ [ab2,db4,db5]@2 [b2,eb4,eb5]@3 db4 b2 ~ [b2,db4,db5]@2", // Ab5 Db5 B Bsus2
  V: "[b2,eb4,eb5]@3 b3 b2 ~ [b2,db4,db5]@2 [b2,eb4,eb5]@2 ~ b3 [bb3,bb4]@2 [b2,db4,db5]@2, ~@10 [db4,db5]@2 b2 ~@3", // B Bsus2 B Bb Bsus2 Db
  W: "[eb2,eb4,eb5]@3 ab1 gb2@2 ~ b1 [ab2,eb4]@3 db2 ~@2 [db4,db5]@2, ~@3 [db4,db5] ~@2 gb2@2", // Eb Ab5 Db
  X: "[gb2,eb4,eb5]@2 ~ gb3 [ab4,ab5]@2 [gb2,bb4,bb5]@2 [gb2,eb4,eb5]@3 gb3 gb2 ~ [gb2,db4,db5]@2, ~@2 [gb4,gb5]@2 gb2 ~@11", // Ebm Ab Gb Ebm Gb5 Gb
  Y: "[b2,eb4,eb5]@2 ~ b3 [bb3,bb4]@2 [b2,db4,db5]@2 [b2,eb4,eb5]@2 ~ b3 [ab4,ab5]@2 [b2,bb4,bb5]@2, ~@2 [db4,db5]@2 b2 ~@5 [gb4,gb5]@2 b2 ~@3", // B Bb Bsus2 B Ab Bmaj7 Db Gb
  Z: "[db3,ab4,ab5]@3 db4 [ab4,ab5]@2 [db3,gb4,gb5]@2 [db3,eb4,eb5]@3 db4 [eb4,eb5]@2 [db3,gb4,gb5]@2, ~@4 db3 ~@7 db3 ~@3", // Db5 Ab Gb5 Dbsus2 Eb Gb5
  AA: "[eb3,ab4,ab5]@2 ~ eb4 [db5,db6]@2 [eb3,bb4,bb5]@2 [eb3,ab4,ab5]@2 ~ eb4 [eb4,eb5]@2 [eb3,db4,db5]@2, ~@2 [bb4,bb5]@2 eb3 ~@5 [gb4,gb5]@2 eb3 ~@3", // Ab5 Db Eb5 Ab5 Eb Eb7 Bb Gb
  AB: "[f2,eb4,eb5]@3 eb3 f2 ~ [f2,db4,db5]@2 [f2,eb4,eb5]@3 eb3 f2 ~ [f2,db4,db5]@2", // F7 Db F7 Db
  AC: "[e2,eb4,eb5]@3 d3 e2 ~ [e2,db4,db5]@2 [e2,eb4,eb5]@2 ~ d3 [bb3,bb4]@2 [e2,db4,db5]@2, ~@10 [db4,db5]@2 e2 ~@3", // Emaj7 Dbm Emaj7 Bb Dbm Db
  AD: "[eb2,eb4,eb5]@3 db3 eb2 ~ [eb2,db4,db5]@2 [eb2,eb4]@3 db3 eb2 ~ [eb2,db4,db5]@2", // Eb Eb7 Eb Eb7
  AE: "[c3,eb4,eb5]@2 ~ bb3 [ab4,ab5]@2 [c3,bb4,bb5]@2 [c3,eb4,eb5]@3 bb3 c3 ~ [c3,db4,db5]@2, ~@2 [gb4,gb5]@2 c3 ~@11", // Cm Ab C7 Cm Dbmaj7 Gb
  AF: "[bb2,eb4,eb5]@3 ab3 bb2 ~ [bb2,db4,db5]@2 [c3,eb4,eb5]@3 bb3 c3 ~ [c3,db4,db5]@2", // Eb5 Bbm Cm Dbmaj7
  AG: "[db3,eb4,eb5]@2 ~ b3 [bb3,bb4]@2 [db3,db4,db5]@2 [db3,eb4,eb5]@2 ~ b3 [ab4,ab5]@2 [db3,bb4,bb5]@2, ~@2 [db4,db5]@2 db3 ~@5 [gb4,gb5]@2 db3 ~@3", // Dbsus2 Bb Db Dbsus2 Ab Gb Db Gb
  AH: "[eb3,ab4,ab5]@3 db4 [ab4,ab5]@2 [eb3,gb4,gb5]@2 [eb3,eb4,eb5]@3 db4 [eb4,eb5]@2 [eb3,gb4,gb5]@2, ~@4 eb3 ~@7 eb3 ~@3", // Ab5 Ab Ebm Eb Ebm
  AI: "[eb3,ab4,ab5] [bb4,bb5] [eb3,db5,db6] [bb4,bb5] [eb3,ab4,ab5] [gb4,gb5] [eb4,eb5] [db4,db5]", // Ab5 Bb Eb7 Bb Ab5 Gb Eb Db
  AJ: "[eb2,eb3,eb4,eb5]@15 ~", // Eb
})).s("gm_piano").gain(0.45)

// chords · piano
const piano_2 = note(`<
  A B A B A B A C D E@2 F E G E H I J K L K M N O P Q R S P Q T U V W X Y Z AA AB AC D E@2 F E G E H I J K L K M N O P Q
  R S P Q T U V W X Y Z AA AB AC AD
>`.pickRestart({
  A: "ab2@15 ~", B: "eb2@15 ~", C: "b2@15 ~", D: "eb2@2 gb2 ab2 ~@2 db3@2 eb3@2 gb3 ab3 ~@2 ab3@2, [eb4,eb5] ~",
  E: "eb2@2 gb2 ab2 ~@2 db3@2 eb3@2 gb3 ab3 ~@2 ab3@2", F: "eb2!2 eb2@2 gb2!2 ab2@2 bb2@2 ~ ab3 bb2!2 bb2@2",
  G: "eb2!2 eb2@2 gb2!2 ab2@2 bb2@2 ~ bb2!3 bb2@2", H: "ab2@2 ab2 ab3@2 ab3 ab2@2 bb2@4 ~@4",
  I: "f6 eb6 [gb2,db6] [ab2,bb5] ab5 gb5 f5 eb5 f5 eb5 [gb3,db5] [ab3,bb4] ab4 gb4 eb4 db4, eb2 ~@2 db3 eb3 ~@2 ab3", // Gb5 Absus2 Gb5 Absus2
  J: "f6 eb6 [gb2,db6] [ab2,bb5] ab5 gb5 eb5 db5 eb5 db5 [gb3,eb5] [ab3,f6] eb6 db6 bb5 ab5, eb2 ~@2 db3 eb3 ~@2 ab3", // Gb5 Absus2 Ebm Db
  K: "f6 eb6 [gb2,db6] [ab2,bb5] ab5 gb5 eb5 db5 f5 eb5 [gb3,db5] [ab3,bb4] ab4 gb4 eb4 db4, eb2 ~@2 db3 eb3 ~@2 ab3", // Gb5 Absus2 Gb5 Absus2
  L: "eb2!2 eb2@2 [gb2,f6] [gb2,eb6] db6 bb5 f5 eb5 f6 [ab3,eb6] [bb2,db6] [bb2,bb5] f6 eb6, ~ f6@3 ~@2 ab2@2 bb2@2 ~@4 bb2@2", // Gbmaj7 Ebm Ab5 Bbm Bb
  M: "[eb2,f6] [eb2,eb6] db6 bb5 [gb2,ab5] [gb2,gb5] eb5 db5 eb5 f5 eb5 [bb2,db5] [bb2,eb5] [bb2,f6] eb6 db6, ~ eb2 ~ ab2 bb2 ~@2 bb2", // Ebsus2 Eb Gbsus2 Gb Bbm Eb5 Bb5
  N: "f6 eb6 [gb2,db6] [ab2,bb5] ab5 gb5 eb5 db5 f6 eb6 [gb3,db6] [ab3,bb5] ab5 gb5 eb5 db5, eb2 ~@2 db3 eb3 ~@2 ab3", // Gb5 Absus2 Gb5 Absus2
  O: "[eb3,eb6] ~ [eb3,eb6] ~ [eb3,eb6] ~@3", P: "ab2!2 b2!2", Q: "b2!4", R: "eb2 gb2 ab2 gb2", S: "eb2!4", T: "db3!4",
  U: "eb3!4", V: "f2!4", W: "e2!4, [eb4,eb5] [db4,db5,db6]", X: "eb2!4, [bb3,bb4,bb5]@15 ~",
  Y: "c3!4, [bb3,bb4,bb5] [db4,db5,db6]", Z: "bb2!2 b2!2, [eb4,eb5,eb6]@15 ~",
  AA: "db3!2 eb3!2, [b3,b4,b5] [bb3,bb4,bb5]", AB: "e3!2 f3!2, [ab3,ab4,ab5]@15 ~",
  AC: "[gb3,ab4]@2 [gb3,ab4]@2 [ab3,ab4]@2 eb4 db4, ~@3 ab3", AD: "[eb2,eb3,eb4,eb5,eb6]@15 ~",
})).s("gm_piano").gain(0.45)

stack(piano, piano_2)