Strudelify

Promise of the world

Chieko Baisho

KeyC majorTempo96 bpm
0:00/0:00
// Promise of the world — Chieko Baisho
// 96 bpm, 3/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5945802; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 141 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(96/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.

// other · violin · "Violon"
const violin = note(`<
  ~@8 A B C D@3 E F G H I J K@2 G L M J N O M P Q R S T U V W T X Y Z AA F AB AC AD@2 AE@4 AF AG AH@2 AI@2 AJ@2 AK AL AM
  AN@2 ~@16 AO AP AQ AR@2 AS AT AU@2 AL AV T AW AK AL AX AY AZ BA BB BC B BD BE BF BG BH BI BJ BK BL BM BN ~@28
>`.pickRestart({
  A: "~@5 b4", B: "a4", C: "g4@2 f4", D: "e4/3", E: "d4@2 ~", F: "c4", G: "b3", H: "a3", I: "a3 b3 c4", J: "d4",
  K: "[c4@4 b3 a3]/2", L: "c4@2 c4", M: "b3@2 g3", N: "e4@2 e4", O: "f4 a3 c4", P: "c4 g3 c4", Q: "d4 c4 g5",
  R: "a5@2 c5", S: "c5 b4 c5", T: "g5", U: "c5@4 c5 g5", V: "g5 f5 e5", W: "d5 e5 f5", X: "~@2 c5", Y: "[a4,c5]@2 a4",
  Z: "c5 b4 a4", AA: "[d4,g4]", AB: "f4 g4 a4", AC: "c5@2 g5@2 f5 a4", AD: "[g4@5 ~, e5 ~]/2", AE: "d5 c5 g4",
  AF: "f5 d5 a4", AG: "e5 d5 a4", AH: "e5 d5 g4", AI: "d6 c6 g5", AJ: "d6 b5 g5", AK: "f5 e5 a4", AL: "e5@4 d5 c5",
  AM: "[g#5,c6] [g5,a#5] [f5,g#5]", AN: "[[d#5,g5] [d5,f5] g5@2 e5@2]/2", AO: "~@4 g3 e4", AP: "e4@4 d4 c4",
  AQ: "e4@2 g4", AR: "[e4@10 e4 g4]/2", AS: "f4@2 a3", AT: "a3@4 e4 d4", AU: "[d4@5 g4]/2", AV: "e5@4 e5 g5",
  AW: "g5@2 g5", AX: "c5", AY: "c5 d5 e5", AZ: "c5@2 e4", BA: "a4 g4 a4", BB: "d5 c5 b4", BC: "c5@2 ~", BD: "b4@2 c5",
  BE: "d5 e4 d4", BF: "e4!2 ~", BG: "[a4,c5]@2 ~", BH: "c5 d5 c5", BI: "b4 d4 e4", BJ: "b4@2 ~", BK: "a4 b4 c5",
  BL: "e5 f5 ~", BM: "e4", BN: "g4@2 ~",
})).s("gm_violin").gain(0.25)

// chords · piano
const piano = note(`<
  A B C D E F G H I J K L M N O P@2 Q@2 R@2 S T P@2 U@2 R V P W X@2 Y@2 Z AA AB W X@2 Y@2 AC AD AE AF AG@2 AH@2 AI@2 AJ
  AK AG@2 AL AM R AN AO AP AQ AR AS AT AU AV AW AX@2 AY AZ BA BB BC BD@3 BE BF@4 BG BH BI BJ BK@2 BL BM BN BO BP BQ BR
  BS BT BU BV BW BX BY BZ CA CB CC CD CE CF CG CH CI CJ@2 CK CL CM CN CO CP CQ CR CS CT CU CV CW CX CY CZ@3 DA DB DC@2
  DD DE
>`.pickRestart({
  A: "~@2 g4", B: "[c3,b3,e4,d5]@15 ~ [a3,c5]@8", C: "[g3,e5]@15 ~ [f#3,d5]@8", D: "[f3,e4,c5,a5]@15 ~ [d4,g5]@8",
  E: "c4@15 ~ b3@8, f5@23 ~", F: "b4 ~@7 b3@8 [d4,e5]@8, e3 ~@2, ~ g5@14 ~@9", G: "a3 c4 [e4,g4], c5@5 ~@3",
  H: "b4 ~@11 e5@4 g5@4 e5@4, e3 b3 d4, ~ g5@11 ~@12", I: "[a3,d5]@2 c4@2 ~ b4, ~@8 c5@11 ~@5, ~@2 e4",
  J: "~ [c4,a4]@23, [f3,e4]", K: "[d4,g4]@15 ~ f4@8, [b2,f3,a3]@23 ~",
  L: "~ e3 f#3 ~ d4 e4, b2@23 ~, e4@5 ~, a3@12 a3@11 ~", M: "~ f#3 a3 b3 e4@2, a2@23 ~", N: "~ d3 f3 a3 b3 e4, g2@23 ~",
  O: "~ [f3,d4]@15 ~@8, [g2,b3]@2 ~", P: "~ g3 c4 d4 c4 g3, c3@23 ~", Q: "~ g3 c4 d4 c4 g3, a2@23 ~",
  R: "~ a3 c4 d4 c4 a3, d3@23 ~", S: "~ g3 b3 d4 b3 g3, g2@15 ~ d3@8", T: "g3 ~ b3 d4 b3 g3, ~ g3@4 ~",
  U: "~ b3 d4 b3 e4@2, e3@23 ~", V: "~ f3 g3 b3 g3 f3, g2@23 ~", W: "[c4,e4] c4 [d4,f4] c4 [c4,e4] c4, c2 d2 e2",
  X: "~ c3 f3 a3 f3 c3, f2@23 ~", Y: "~ c3 d3 g3 d3 c3, e2@23 ~", Z: "~ c3 f3 a3 f3 c3, d2@23 ~",
  AA: "[g2,d3,g3] g3 [a2,e3,g3] g3 [b2,f3,g3] g3", AB: "c3!2 g3 c4 g3 c3, c2@23 ~", AC: "~ c3 f3 a3 f3 c4, d2@23 ~",
  AD: "[a3,d4,f4]@23 ~", AE: "[g3,c4,e4]@23 ~", AF: "[b3,d4]@23 ~, g3@5 ~@3", AG: "~ g3 d4 c4 g3 c4, c3@23 ~",
  AH: "~ g3 d4 c4 g3 c4, a2@23 ~", AI: "~ a3 e4 d4 a3 d4, d3@23 ~", AJ: "~ g3 e4 d4 g3 d4, g2@23 ~",
  AK: "~ g3 e4 d4 g3 d4, b2@23 ~", AL: "~ g3 c4 a3 e4@2, e3@23 ~", AM: "~ g3 b3 c4 e4@2, e3@23 ~", AN: "[g3,b3]@23 ~",
  AO: "f2 c3 f3 g#3 c4 d4", AP: "f4@15 ~ c3@4 g3@4", AQ: "c4@4 f4@4 [c4,e4]@15 ~", AR: "a4 b4 c5",
  AS: "d3@2 a3 e4 f4 a4, [f4,e5]@5 ~@3", AT: "d5 c5 b4, [e3,b3,g#4]@23 ~", AU: "[a3,b3,c4]@11 ~ b3@4 c4@4 e4@4, e4@5 ~",
  AV: "g4 a4 [e4,c5], [f3,a#3,d4]@5 ~@3", AW: "f2 c3 a3 c3 g3 c3, e5 g5 b4",
  AX: "[f2 d3 b3 d3 g3 d3 e2 b2 e3 g3 b3 g3, a4@8 g4@8 a5@15 ~ b5@8 g5@8]/2",
  AY: "d4 e3 b3 c4 e4 g4, [d5,g5,d6]@15 ~ [c5,c6]@8", AZ: "f#3 c4 e4 c4 e4 c4, [b4,f#5,b5]@15 ~ a5@8",
  BA: "f3 c4 d#4 c4 d#4 c4, [a4,d#5,g5]@15 ~ f#5@8", BB: "e3 b3 d4 b3 d4 b3, [b4,e5,a5]@15 ~ g5@8",
  BC: "d#3 a#3 c#4 a#3 c#4 a#3, [g4,c#5,f5]@15 ~ e5@8", // Gm7b5
  BD: "[d3 f#3 c4 g#3 c4 g#3 c4 g#3 d4 g#3 g2 f3 g#3 b3 d4 b3 g4 b3, [f#4,g#4,c5,d#5]@15 ~ d5@23 ~ [f4,g#4,b4,d#5]@23 ~ d5@8]/3", // G#7 Fm7b5
  BE: "g5 g6@7 ~@16, [f3,g3,b3,d4] ~@2", BF: "g6 g5 c6 g5 g6 g5, c4@23 ~", BG: "g6 g5 c6 g5 g6 g5, d4@23 ~",
  BH: "g6 g5 c6 g5 g6 g5, f3@23 ~", BI: "g6 g5 d6 g5 g6 g5, g3@23 ~, c4 b3 a3",
  BJ: "[g2,g3,g6] [d3,f6] [f3,c6] [a3,a5] [d4,g5]@2", BK: "c3 g3 c4 d4 c4 g3", BL: "e3 g3 b3 g3 d4 b3",
  BM: "g4 b3 g3 b3 e4 b3", BN: "d3 a3 c4 a3 f4 a3", BO: "g2 a2 b2", BP: "c3 g3 c4 d4 c4@2", BQ: "c3 g3 c4 a#3 d4 a#3",
  BR: "f3 c4 f4 c4 e4 c4", BS: "d4 c4 g4 d4 g4 c4", BT: "e3 c4 d4 c4 b3 c4", BU: "e3 c4 d4 c4 e4 c4",
  BV: "d3 a3 f4 a3 c4 a3", BW: "g3 a3 b3 g3 d4 b3", BX: "e3 b3 e4 b3 d4 b3", BY: "c3 a#3 d4 a#3 e4 a#3",
  BZ: "f3 c4 d4 c4 e4 c4", CA: "f3 a3 c4 a3 f4 a3", CB: "[e3,d4] b3 d4 c4 b3 c4", CC: "[e3,d4] c4 d4 c4 g3 c4",
  CD: "d3 d4 c4", CE: "[d3,c4]@15 ~ a3@4 b3@4", CF: "g3 a3 f3, c4@23 ~", CG: "~ f3@7 g4@2 e5@2, g2@2 ~, ~ d3@15 ~@8",
  CH: "c3 g3 c4 d4 d5 [g3,c5], e5@5 ~@3, d5 c5 g4", CI: "c3 g#3 c4 d4 ~ g#3, e5@5 ~@3, d5 c5 [g#4,g#5]",
  CJ: "[c3 a3 c4 d4 g4 ~ c3 a#3 c4 d4 e5 g5, e5@20 e5@19 ~@9, d5 c5 c4 d5 c5 [c4,a#4]]/2", // C7
  CK: "f3 a3 c4 d4 [f4,a4,a5]@2, f5@5 ~@3, e6 d6 ~", CL: "c3 a3 c4 a3 e5 d5, a4@15 ~ [f3,a4]@8, e5 d5 ~",
  CM: "g2 g3 d4 g3 c4 g3, d5@23 ~, a4 b4 c5", CN: "g2@4 g3@4 g4 ~@3 g3@4 b2@4 g3@4, d5@2 a2 ~@3, ~@9 g5@7 ~@8",
  CO: "c3 g3 c4 d4 [c4,g4]@2, d5 c5 ~", CP: "c3 g3 c4 d4 [c4,g5]@2, d6 c6 ~", CQ: "e3 g3 b3 g3 e4 b3, d5 b4 g4",
  CR: "~@3 d6@5 ~@2 b5@6 ~@2 g5@6, g4@23 ~, e5!2 b4, ~ g5@7 ~ g5@7 ~ e5@7, ~ b5@3 ~@8",
  CS: "~ f5@3 ~@8, [d3,c4]@23 ~, a4 ~@2, ~ d5@7 ~@16", // D7
  CT: "~@3 e5@5 ~@16, [g3,b3]@23 ~, f4 ~@2, ~ g4@7 ~@16, ~ b4@3 ~@8", CU: "f3@4 c4@4 f4@15 ~, c5 a4 ~",
  CV: "g4@8 b4@15 ~, [g3,b3]@23 ~", CW: "a4!2 ~, [d3,c4]@23 ~", CX: "[g3,b3]@23 ~, f4@5 ~@3",
  CY: "f2 g#3 c4 g4 [f4,a#4,g5,a#5]@2, [g4,d#5,g5] [g#4,f5,g#5] ~", // Gm7 Cm C#
  CZ: "[f2 g#3 d4 g4 f4@2 c3 g3 ~ d4 ~@3 e6 d6 c6 g5 e5, [c5,f5,g#5,c6]@15 ~ [d5,d6]@15 ~ g5@16 ~@24, ~@16 c4@2 ~@2 e4@15 ~, ~@11 g6@6 ~@7, ~@11 c6@5 ~@8]/3", // Fm D
  DA: "[c4,b4,e5,d6]@15 ~ [a4,c6]@8", DB: "[g4,e6]@15 ~ [f#4,d6]@8", DC: "[~ [f5,a6]@46 ~, [f4,b4,a5,e6]@47 ~]/2",
  DD: "~ g6@7, [e2,g4,g5], ~ [c5,c6]@23, ~ [e5,d6]@11", DE: "~ e4@7, [c2,d2,g3], ~ [c3,c4]@23, ~ d4@11",
})).s("gm_piano").gain(0.25)

stack(violin, piano)