Strudelify

lupin the third theme

Maxwell Sithiphong

KeyG minorTempo210 bpm
0:00/0:00
// lupin the third theme — Maxwell Sithiphong
// 210 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5244667; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 144 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(210/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.

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  A@2 B C D@2 B C E F G@2 H@2 I@2 J K L M N O P Q R S T U F V W ~ X@2 ~@2 Y@2 ~@2 Z AA@2 ~ T U F V W AB AC AD@2 AE@2
  AF@2 ~ AG ~ AG AH@2 AI AJ AK@2 AL@2 AM AN AO AP AQ@2 AR@2 AS AT U F V W ~ AU ~ AV ~ AW AX H@2 AY ~ AZ BA BB BC BD BE
  BF BG BH BI BJ BK BL BM BN BO@2 BP BQ ~ BR BS BT@3 BU BV BW BX BY@2 BZ@2 AY A@2 B C D@2 B C E F G@2 H@2 CA@2
>`.pickRestart({
  A: "[~@2 g4 ~ bb4 g4 ~ db5@3 c5 bb4 c5 bb4 f4 g4]/2", B: "~@4 c5 ~@3", C: "bb4 ~@3 a4 ~@3",
  D: "[~@2 d5 bb4 c5 d5 ~ db5@3 c5 bb4 c5 bb4 f4 g4]/2", E: "~@2 g4 ~@2 bb4 ~@2", F: "c5",
  G: "[~@2 c5 ~@2 bb4 ~ d5@9]/2", H: "[d5@3 c5@3 g4@3 gb4@3 f4 ~ eb4 ~]/2", I: "[d4 ~@5 f4@10]/2", J: "bb4!2",
  K: "f5!2", L: "d5@3 d5 ~@4", M: "~@2 bb4 ~@2 gb4@3", N: "~@5 f5 ~@2", O: "f5@3 eb5 ~@4", P: "~ d5 ~@2 eb5@4",
  Q: "d5 ~@3", R: "d5@3 c6 ~@4", S: "eb5@3 d5 ~@4", T: "~@5 g5 ~@2", U: "~@2 g4 d5", V: "~@2 a5@3 f5@3", W: "g5",
  X: "[~@3 f5@5]/2", Y: "[~@2 g4@2 bb4@2 c5@2 d5@2 g5@2 ~@2 c5 db5@3 c5@2 bb4@2 d5@6 ~@4]/2", Z: "~@2 d5 ~ d5@3 d5",
  AA: "[~@2 g4@2 g4 d5 ~ c5@5 ~ c5 ~@2]/2", AB: "~@3 g4@2 bb4 c5 d5", AC: "~ c5@3", AD: "[~@2 eb5 ~ c5 a4 ~ f5@9]/2",
  AE: "[~@2 d5@2 eb5 f5 ~ g5@4 g5 ~@4]/2", AF: "[~@2 c5@2 a4 g4 ~ g4@3 a4 f4 ~ a4 ab4 g4]/2", AG: "~@5 bb5 ~@2",
  AH: "[~@2 g4 ~ bb4 d5 ~ g5@5 ~@2 bb5@2]/2", AI: "a5@2 g5@2 gb5 g5 ~@2", AJ: "~@2 a4 g4 ~ a4 g4 ~",
  AK: "[a4 g4 ~ a4 g4 ~ a4 d5@9]/2", AL: "[~@2 d5 ~ f5 d5 ~ g5@9]/2", AM: "~@4 ab5 a5@5 f5@6", AN: "d5",
  AO: "~@4 d5!2 f5 d5", AP: "g5 a5 f5 g5@5", AQ: "[~@2 a5 ~ f5 g5 ~ d5@9]/2", AR: "[~@2 g4 ~ g4 d5 ~ c5@9]/2",
  AS: "~@2 g4@3 a4@3", AT: "bb4@3 g4@5", AU: "~@2 c5 ~@2 bb4 ~ c5", AV: "~@2 d5 ~", AW: "~@2 c5 ~@2 bb4 ~@2",
  AX: "g4 ~@7", AY: "d5 ~@7", AZ: "d4 gb4", BA: "f4 eb4", BB: "d5 ~ d5@2", BC: "db5 c5", BD: "~ d5 ~@2 c5@4",
  BE: "bb4 c5", BF: "d5@2 ~@2 d5@2 ~ g4", BG: "~ g4@3 gb4@3 f4", BH: "~ f4", BI: "f4@3 eb4 ~@4", BJ: "d4 ~ d4@2",
  BK: "db4 c4", BL: "~ d4 ~@2 c4@4", BM: "bb3 a3", BN: "bb4 g4 f4 eb4 a4 g4 f4 eb4",
  BO: "[~@2 d5 ~ f5 gb5 ~ g5@2 ~@7]/2", BP: "bb4", BQ: "gb4@3 gb4 ~@4", BR: "e4@3 g4 ~@4",
  BS: "~ ab4 ~ bb4 ab4 ~@2 bb4", BT: "[a4@2 bb4@2 eb5 ~ db5 g4@5 ~ eb5 ~ eb5@9]/3", BU: "g5!2 ~@2 f5!2 ~@2",
  BV: "f5@3 f5 ~ eb5@3", BW: "eb5@3 eb5 ~@4", BX: "~ a5 ~ a5 g5 ~ g5 ~",
  BY: "[f5 ~ f5 ~ eb5!2 ~ d5@2 ~ d5!2 ~@2 d5@2]/2", BZ: "[eb5@3 eb5 ~ eb5 ~ eb5@2 db5 c5 bb4 a4 g4 gb4 d4]/2",
  CA: "[d4 ~@5 a5@10]/2",
})).s("gm_trumpet").gain(0.3)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  A@2 B C D@2 B C E F G@2 H@2 I@2 J K L M N O P Q R S T S U V W@2 X@2 ~@2 Y Z AA AB AC AD@2 AE AF S AG AH AI@2 AJ AK@4
  AL@2 AM@2 AN AO AP@2 AQ@2 AR@2 ~ AS K L AT AU AV AW AX AY S AF AY F AZ BA@4 BB@4 H@2 BC ~ BD BE BF K BG BH BI BJ BK BL
  BM BN BO K BP BQ@2 BR AB ~ BS BT BU@3 BV BW BX BY BZ@2 CA@2 CB A@2 B C D@2 B C E F G@2 H@2 CC@2
>`.pickRestart({
  A: "[~@2 d4 ~ f4 d4 ~ g4@3 f4 eb4 f4 eb4 c4 d4]/2", B: "~@4 f4 ~@3", C: "eb4 ~@3 d4 ~@3",
  D: "[~@2 a4 f4 g4 a4 ~ g4@3 f4 eb4 f4 eb4 c4 d4]/2", E: "~@2 bb4 ~@2 d5 ~@2", F: "eb5",
  G: "[~@2 eb4 ~@2 db4 ~ gb4@9]/2", H: "[d5@3 c5@3 bb4@3 gb4@3 f4 ~ gb4 ~]/2", I: "[g4 ~@5 gb4@10]/2", J: "f4 e4",
  K: "g4 gb4", L: "f4@3 f4 ~@4", M: "~@2 f5 ~@2 c5@3", N: "~@5 g4 ~@2", O: "g4@3 gb4 ~@4", P: "~ f4 ~@2 g4@4",
  Q: "f4 ~@3", R: "e4@3 c5 ~@4", S: "f4@3 e4 ~@4", T: "g4@3 ab4 ~ ab4 ~@2", U: "g4", V: "gb4",
  W: "[~@2 a4 f4 g4 a4 ~ g4@3 g4 f4 g4 f4 c4 d4]/2", X: "[~@3 gb4@5]/2", Y: "bb4@3 bb4 ~@4", Z: "db4@3 c4@5",
  AA: "~@5 bb4 ~@2", AB: "a4@3 a4 ~@4", AC: "~@2 g4 ~ ab4@3 g4", AD: "[~@2 eb4@2 eb4 bb4 ~ eb4@5 ~ gb4 ~@2]/2",
  AE: "b4@3 bb4 ~@4", AF: "g4@3 ab4 ~@4", AG: "g4!2", AH: "gb4 ~", AI: "[~@2 g4 db4 c4 bb3 ~ g4@3 ~ g4@2 bb4 c5 d5]/2",
  AJ: "~ bb4@3", AK: "[~@2 bb4 ~ bb4!2 ~ bb4@2 bb4 b4 c5@2 b4 c5 d5@2 ~ c5@2 bb4 f4 ~ bb4@4 bb4 ~ g4 bb4 g4]/4",
  AL: "[~@2 eb5@2 c5!2 ~ c5@3 c5!2 ~@4]/2", AM: "[~ d4 db4 d4 f4 eb4 ~ a4@3 a4!2 ~@4]/2",
  AN: "~ c5 b4 c5 eb5 d5 ab4 a4", AO: "a4@2 g4!2 ~@4", AP: "[~@2 g4 ~ bb4 d5 ~ d5@5 ~@2 d5@2]/2",
  AQ: "[db5@2 db5@2 gb4 g4 ~ c5@9]/2", AR: "[a4 g4 ~ a4 g4 ~ a4 gb4@9]/2", AS: "~ a4 ~@2 ab4@4", AT: "g4@3 gb4@5",
  AU: "~ g4!2 ~@2 a4!2 ~", AV: "~ g4!2 ~@2 gb4!2 ~", AW: "~ f4 ~@2 gb4@4", AX: "f4 ~@7", AY: "e4@3 e4 ~@4",
  AZ: "~@2 eb5@3 c5@3", BA: "[bb4 ~ bb4@8 ~@2 d5 ~ c5@16 ~@2]/4", BB: "[bb4 ~ g4@8 ~@2 bb4@2 e5@16 ~@2]/4",
  BC: "bb3 ~@7", BD: "bb3!2", BE: "db4 c4", BF: "bb4 ~ ab4@2", BG: "~ bb4 ~@2 a4@4", BH: "g4 a4",
  BI: "bb4@2 ~@2 bb4@2 ~ eb4", BJ: "~ eb4@3 c4@3 d4", BK: "~ d4", BL: "db4@3 c4 ~@4", BM: "bb3 ~ ab3@2", BN: "g4 f4",
  BO: "~ bb3 ~@2 a3@4", BP: "g4 ~@7", BQ: "[~@2 a4 ~ c5 db5 ~ d5@2 ~@7]/2", BR: "eb4", BS: "g3@3 f3 ~@4",
  BT: "~ ab3 ~@2 ab3@2 ~@2", BU: "[g3@6 ~ eb4@5 ~ d5 ~ bb4@9]/3", BV: "d4!2 ~@2 bb3!2 ~@2", BW: "g4@3 g4 ~ gb4@3",
  BX: "bb3@3 bb3 ~@4", BY: "~ d5 ~ d5!2 ~ d5 ~", BZ: "[c5 ~ c5 ~ a4!2 ~ a4@2 ~ a4!2 ~@2 a4@2]/2",
  CA: "[a4@3 a4 ~ a4 ~ a4@5 a4 g4 gb4 d4]/2", CB: "a4 ~@7", CC: "[g4 ~@5 d4@10]/2",
})).s("gm_alto_sax").gain(0.3)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  A@2 B C D@2 ~@2 E F G@2 H@2 I J@2 K L M N O@2 P F Q R S F T U ~ V@2 ~@2 W X Y Z AA AB@2 AC AD AE AF AG AH@2 AI AJ@2
  AK@2 AL@2 AM@2 AN AO AP@2 AQ@2 AR AS AT AU I AV@2 AW AX L AY@2 AZ BA BB BC T U ~ BD ~ BE ~ BF I H@2 I ~ BG BH BI ~ BJ
  BK BL BM BN BO BP ~ BJ BQ BR BS@2 BT BU BV BW BX BY@3 BZ CA CB CC CD@2 CE@2 CF A@2 CG CH D@2 ~@2 E F G@2 H@2 CI@2
>`.pickRestart({
  A: "[~@2 g3 ~ bb3 g3 ~ db4@3 c4 bb3 c4 bb3 f3 g3]/2", B: "~ g3 bb3 g3 a3 ~ c4 ~", C: "bb3!2 g3 bb3 a3 d3@3",
  D: "[~@2 d4 bb3 c4 d4 ~ db4@3 c4 bb3 c4 bb3 f3 g3]/2", E: "~@2 g3 ~@2 bb3 ~@2", F: "c4",
  G: "[~@2 c4 ~@2 bb3 ~ d4@9]/2", H: "[g4@3 f4@3 d4@3 db4@3 c4 ~ bb3 ~]/2", I: "g3 ~@7", J: "[~@2 d3 ~ f3 d3 ~ g3@9]/2",
  K: "~@4 ab3 a3@5 f3@6", L: "d3", M: "~@4 d3!2 f3 d3", N: "g3 a3 f3 g3@5", O: "[~@2 a3@2 f3 g3 ~ d3@9]/2",
  P: "~ g3!2 d4", Q: "~@2 g3@3 a3@3", R: "bb3@3 g3@5", S: "~@2 g3 d4", T: "~@2 a3@3 f3@3", U: "g3", V: "[~@3 c4@5]/2",
  W: "f3@3 f3 ~@4", X: "g3@3 gb3@5", Y: "~@5 g4 ~@2", Z: "gb4@3 f4 ~@4", AA: "~@2 f3 ~ gb3@3 g3",
  AB: "[~@2 bb4@2 bb4 g4 ~ a4@5 ~ c4 ~@2]/2", AC: "f3@3 e3 ~@4", AD: "db4@3 d4 ~@4", AE: "b3@3 bb3 ~@4", AF: "c4 db4",
  AG: "c4 ~", AH: "[~@2 g4 db4 c4 bb3 ~ g3@3 ~ g3@2 bb3 c4 d4]/2", AI: "~ eb4@3", AJ: "[~@2 c4 ~ a3 f3 ~ d4@9]/2",
  AK: "[~@2 f4@2 g4 a4 ~ bb4@4 bb4 ~@4]/2", AL: "[~@2 c5@2 a4 g4 ~ a4@3 a4 g4 ~ a3 ab3 g3]/2",
  AM: "[~ d4 db4 d4 f4 eb4 ~ a4@3 a4!2 ~ eb4 ~@2]/2", AN: "~ c4 b3 c4 eb4 d4 ab3 a3", AO: "a3@2 g3!2 ~ d4 ~@2",
  AP: "[~@2 g3 ~ bb3 d4 ~ bb3@5 ~@2 bb3@2]/2", AQ: "[a3@2 g3@2 gb3 g3 ~ a3@9]/2", AR: "a4 g4 ~ a4 g4 ~@3",
  AS: "~@2 d4 ~ c4 bb3 ~ c4", AT: "a3 ~@7", AU: "~@4 d4@2 ~@2 db4 c4 ~ bb3 g3@2 f3@2",
  AV: "[~@2 g3@2 bb3@2 c4@2 d4@2 g4@2 ~@2 c4 db4@3 c4@2 bb3@2 d4@6 ~@4]/2", AW: "g3@2 g3!2", AX: "a3 f3",
  AY: "[~@2 d4 ~ d4 a4 ~ g4@9]/2", AZ: "~@2 d4@3 e4@3", BA: "f4@3 d4@5", BB: "~@2 d4 a4", BC: "g4",
  BD: "~@2 c4 ~@2 bb3 ~ c4", BE: "~@2 a4 ~", BF: "~@2 c4 ~@2 bb3 ~@2", BG: "f3 g3", BH: "g3 gb3", BI: "f3 ~@3",
  BJ: "~ f3 ~@2 f3@4", BK: "eb3 gb3", BL: "f3@2 ~@2 e4@2 ~ c4", BM: "~ c4@3 a3@3 bb3", BN: "~ bb3", BO: "g3@3 gb3 ~@4",
  BP: "f4 ~@3", BQ: "f3 d3", BR: "d3 ~@7", BS: "[~@2 d4 ~ f4 gb4 ~ g4@2 ~@7]/2", BT: "~ b3 c4 d4 eb4 f4 g4 a4",
  BU: "b4@3 c5 ~@4", BV: "~ bb3 b3 c4 d4 eb4 f4 g4", BW: "a4@3 bb4 ~@4", BX: "~ c4 ~ bb3 c4 g3 a3 bb3",
  BY: "[a3@2 bb3@2 eb4 ~ db4 c4@5 ~ g3 ~ gb3@9]/3", BZ: "bb3!2 ~@2 g3!2 ~@2", CA: "f3@3 f3 ~ eb3@3", CB: "g3@3 g3 ~@4",
  CC: "~ bb3 ~ bb3!2 ~ bb3 ~", CD: "[a3 ~ a3 ~ gb3!2 ~ f3@2 ~ f3!2 ~@2 f3@2]/2", CE: "[g3@3 g3 ~ g3 ~ gb3@7 gb4 d4]/2",
  CF: "f4 ~@7", CG: "~ db4 d4 g4 bb4 ~ a4 g4", CH: "~ f4 d4 db4 c4 bb3 g3 ~", CI: "[g3 ~@5 gb4@10]/2",
})).s("gm_tenor_sax").gain(0.3)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A@3 ~ B@2 C@2 D E F@2 G@2 H@2 I J K L I J M N O P Q P R S T U V@2 I J K W X Y Z AA AB P Q P R AC AD AE AF AG AH AI AJ
  AK AL AM AN AO AD AP AQ AR AS AT AU AV AW J K W AP AX M AY O P AZ BA R BB BC BD@2 AD BE BF@2 BG G@2 BH BI BJ J K BK AP
  BL BM J I BN BC BL AP AX BO BP BQ AG BR BS BT BU BV BW BX BY BZ CA CB CC CD CE@2 CF A@3 ~ B@2 CG CH D E F@2 G@2 CI@2
>`.pickRestart({
  A: "[g2@4 e2@3 a2@5 eb2@2 d2 g2@3 ~@6]/3", B: "[g2@4 e2@3 a2@5 d2@3 g2]/2",
  C: "[~@4 f4@4 c4 db4 ~ d4 f4@2 d4@4 bb3@4 g3@4 gb3@6]/2", D: "~@2 g2 ~@2 bb2 ~@2", E: "c3",
  F: "[~@2 a2 ~@2 eb2 ~ d2@9]/2", G: "[g2@3 bb2@3 e2@3 a2@3 eb2 ~ d2 ~]/2", H: "[g2 ~@5 d2@10]/2", I: "g2 f2 e2 bb2",
  J: "a2 eb2 d2 gb2", K: "g2!2 bb2!2", L: "eb2!2 ab2!2", M: "g2!2 ab2!2", N: "g2 ab2 g2 d2", O: "c2!2 g2 c2",
  P: "db2!2 c2!2", Q: "eb2!2 e2!2", R: "a2!2 eb2!2", S: "d2!3 f2", T: "g2!2 e2!2", U: "a2@2 a2@2 d2@2 d2 g2",
  V: "[~@3 d3@5]/2", W: "a2!2 ab2!2", X: "g2!2 eb2 bb2", Y: "a2 db3 d3!2", Z: "g3!2 ab3!2", AA: "g3 d3 bb2 b2",
  AB: "c3!2 g2 c3", AC: "d2!2 e2 gb2", AD: "g2 a2 bb2 a2", AE: "g2@2 ~ g2@5", AF: "~ g3@3", AG: "c2 d2 eb2 e2",
  AH: "f2 g2 ab2 a2", AI: "bb2!2 c3!2", AJ: "d3!2 g2 d3", AK: "c3 d3 eb3 e3", AL: "f3 f2 g2 a2", AM: "f2 eb2 d2 c2",
  AN: "a2!2 bb2 c2", AO: "d2!2 gb2!2", AP: "g2!2 f2!2", AQ: "e2!2 g2 bb2", AR: "a2 g2 f2 eb2", AS: "d2!2 eb2!2",
  AT: "d2!2 a2!2", AU: "~@2 d3 ~ c3 bb2 ~ c3", AV: "a2 ~@3", AW: "g2 d3 c3 bb2", AX: "eb2!2 d2!2", AY: "g2 ab2 g2 db2",
  AZ: "eb2 bb2 b2 db2", BA: "c2!2 bb2!2", BB: "d2!4", BC: "g2 a2 bb2 g2", BD: "[d2 g2 d2 c2@2 d2 e2 f2]/2",
  BE: "g2 g3 d3 bb2", BF: "[g2 bb2 d3 c3@2 d3 e3 f3]/2", BG: "g3 a3 bb3 a3", BH: "g2 ~@7",
  BI: "~@4 g3 gb3 f3 e3 eb3 d3 db3 c3 b2 bb2 a2 ab2", BJ: "g2 db2 c3 bb2", BK: "a2!2 d2 gb2", BL: "eb2!2 d2 gb2",
  BM: "g2 db2 c2 bb2", BN: "a2 db3 d3 d2", BO: "g2!2 d2!2", BP: "g2@2 g2@2 eb2 d2 ~ g2", BQ: "~ g2", BR: "g2 eb2 d2 c2",
  BS: "b2!2 gb2 f2", BT: "e2!2 f2 b2", BU: "bb2 c3 db3 d3", BV: "eb3 eb2 bb2 eb3", BW: "a2 bb2 c3 db3", BX: "d3 d2@3",
  BY: "db4 d4@3 db4 d4@3", BZ: "db4@2 d4@6 db4 c4 ~ b3 bb3 a3 ~ ab3", CA: "g3@4 bb3 g3 ~@2",
  CB: "f3@4 [g2,ab2] [a2,bb2,b2,c3] [db3,d3,eb3] [e3,f3,gb3] ab3@6 gb3@2, ~@8 g3 ~@7", CC: "f3 eb3 ~@2 eb4 ~ d4 db4",
  CD: "c4 bb3 g3 eb3 d3 c3 f3 eb3", CE: "[d3 eb3 g3 bb3 d4 eb4 ~ d4@2 db4 c4 bb3 a3 g3 gb3 d3]/2", CF: "g3 ~@3 d2@4",
  CG: "~@4 [db3,d3] [eb3,e3,f3] [gb3,g3,ab3] [a3,bb3,b3] [c4,db4] c4 ~ bb3 g3@2 ~@2", CH: "c4@2 c4 d4 bb3 g3 ~@2",
  CI: "[g2 ~@5 c2@10]/2",
})).s("gm_baritone_sax").gain(0.3)

stack(trumpet, alto_sax, tenor_sax, baritone_sax)

More by Maxwell Sithiphong