Strudelify

Zero No Tsukaima - I Say Yes

Nathaniel W. Uribes

KeyG majorTempo128 bpm
0:00/0:00
// Zero No Tsukaima - I Say Yes — Nathaniel W. Uribes
// 128 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "B♭ Clarinet" named as a reed, played on clarinet (its glockenspiel patch is not one); ch 6 "Horn in F" named as a brass, played on brass section (its electric guitar muted patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/6288406; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 65 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(128/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 · flute
const flute = note("<~@8 A ~@15 B@2 C@2 D@2 E@2 F@2 G@2 H@2 I@2 J@2 K@2 L M N@2 J@2 K@2 L M O@2 P@3 ~@6>".pickRestart({
  A: "g5@15 ~", B: "[e5@4 e5 f#5 g#5 g#5@2 f#5@2 c#5@2 f#5@3]/2", C: "[f#5@4 f#5 g#5 a5 a5@2 g#5@2 f#5@2 g#5@3]/2",
  D: "[e5@4 e5 d#5 e5 b5@3 e5 e5@3 e5 f#5]/2", E: "[a5@4 g#5@2 e5@4 d#5@4 e5@17 ~]/2",
  F: "[e5@4 d#5@2 e5@4 b5@4 b5@17 ~]/2", G: "[e5@4 d#5@2 e5@4 c#6@4 b5@17 ~]/2",
  H: "[b5@2 a5 a5@2 g5@2 g5@2 f#5@2 e5@2 f#5@3]/2", I: "[f#5@8 a5@2 g#5@2 a5@2 b5@17 ~]/2",
  J: "[e5@4 f#5@2 g5@4 e6@4 d6@9 ~ d6@2 c6@2 b5@2 c6@2]/2", K: "[d6@4 g5@2 g5@4 c6@4 b5@9 ~ b5@2 c6@2 b5@2 a5@2]/2",
  L: "g5@2 b5 d6@4 g5", M: "g5@2 b5 d6@4 d5", N: "[c6@4 b5@2 a5@4 g5@4 g5@17 ~]/2",
  O: "[c6@4 b5@2 a5@17 ~ g5@4 f#5@4]/2", P: "[g5@23 ~]/3",
})).s("gm_flute").gain(0.3)

// other · flute · soft notes
const flute_soft = note("<A@2 B@2 C@2 D@2 ~@57>".pickRestart({
  A: "[e5@4 f#5@2 g5@4 e6@4 d6@9 ~ d6@2 c6@2 b5@2 c6@2]/2", B: "[d6@4 g5@6 c6@4 b5@9 ~ b5@2 c6@2 b5@2 a5@2]/2",
  C: "g5 d6", D: "[c6@4 b5@2 a5@6 g5@2 a5@9 ~ g5@4 f#5@4]/2",
})).s("gm_flute").gain(0.2)

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A@2 B@2 C D E@2 F ~@7 G H@3 I@2 J K L@2 M@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@2 V W X@2 T@2 U@2 V W Y@2 Z@3 ~@6
>`.pickRestart({
  A: "[[e4,e6]@2 [f#4,f#6] [g4,g6]@2 [e5,e7]@2 d5@5 [d5,d7] [c5,c7] [b4,b6] [c5,c7], ~@7 d7 ~@8]/2", // E F# G E D C B C
  B: "[[d5,d7]@2 g6 g6@2 [c5,c7]@2 b4@5 [b4,b6] [c5,c7] [b4,b6] [a4,a6], ~@2 g4@3 ~@2 b6 ~@8]/2", // D C B C B A
  C: "g6@2 b6 ~@4 g6, g4 d5, ~@3 d7@4 ~", D: "g6@2 b6 ~@4 d6, g4 d5, ~@3 d7@4 ~",
  E: "[[c5,c7]@2 [b4,b6] [a4,a6]@3 [g4,g6] a4@5 g4@2 [f#4,f#6]@2, ~@7 a6 ~@8]/2", F: "[g4,g6]", G: "e6@4 e6 f#6 g#6!2",
  H: "[~ f#6@2 c#6@2 f#6@2 [d#6,f#6]@5 f#6 g#6 a6 [f#6,a6]@2 g#6@2 [d#6,f#6]@2 g#6 ~@2]/3", // D#m F#m D#m
  I: "[[c#6,e6]@4 e6 f#6 g#6 g#6@2 f#6@2 c#6@2 f#6@2 e6]/2", J: "[b5,e6]@3 f#6 [d#6,f#6]@4",
  K: "d#6 b6 e7 d#7 b6 f#6 d#6@2",
  L: "[e4@4 [e4,e6,e7] [f#4,f#6,f#7] [g#4,g#6] [g#4,g#6]@2 [f#4,f#6,f#7]@2 [c#4,c#6,c#7]@2 [f#6,f#7]@2 [f#6,f#7], ~@13 f#4@3]/2", // E F# G# F# C# F#
  M: "[[f#4,d#6,f#6]@4 [f#4,f#6,f#7] [g#4,g#6] [a4,a6] a4@2 [g#4,g#6]@2 [f#4,f#6,f#7]@2 [g#4,g#6]@3, ~@7 a6 ~@8]/2", // D#m F# G# A G# F# G#
  N: "[[e4,e6,e7]@4 e4 d#4 e4 b4@3 e4 e4@3 e4 f#4]/2", O: "[a4@2 g#4 e4@2 d#4@2 e4@9]/2",
  P: "[e4@2 d#4 e4@2 b4@2 b4@9]/2", Q: "[e4@2 d#4 e4@2 c#5@2 b4@9]/2", R: "[b4@2 a4 a4@2 g4@2 g4@2 f#4@2 e4@2 f#4@3]/2",
  S: "[f#4@4 a4 g#4 a4 b4@9]/2",
  T: "[[e4,e6,e7]@2 [f#4,f#6,f#7] [g4,g6,g7]@2 [e5,e7]@2 [d5,d7]@5 [d5,d7] [c5,c7] [b4,b6] [c5,c7]]/2", // E F# G E D C B C
  U: "[[d5,b6,d7]@2 [g4,g6,g7] [g4,g6,g7]@2 [c5,a6,c7]@2 [b4,b6]@5 [b4,b6] [c5,c7] [b4,b6] [a4,a6]]/2", // G F B C B A
  V: "[g4,g6,e7]@2 [b4,b6] [d5,b6,d7]@4 [g4,g6,g7]", W: "[g4,g6,c7]@2 [b4,b6] [d5,b6,d7]@4 [d4,d6,d7]",
  X: "[[c5,a6,c7]@2 [b4,b6] [a4,a6]@2 [g4,g6,g7]@2 [a6,g7]@7 ~@2, ~@7 g4@9]/2", // F B A G A7
  Y: "[[c5,a6,c7]@2 [b4,b6] a6@2 [g6,g7]@2 ~@5 g4@2 f#4@2, ~@3 a4@9 ~@4, ~@7 [a6,g7]@7 ~@2]/2", Z: "g4/3",
})).s("gm_clarinet").gain(0.2)

// other · brass section · "Horn in F"
const brass_section = note(`<
  A B C D A C E@2 F C G@2 B C E H ~@8 I J B C K J B L H@2 I@2 M@2 J B A B C N A C E@2 A B C N A C E@2 O@3 ~@6
>`.pickRestart({
  A: "e4", B: "b3", C: "c4", D: "g4", E: "d4", F: "g3", G: "d4/2", H: "f#3", I: "g#3", J: "a3", K: "c#4", L: "e3",
  M: "c4/2", N: "g3 f#3", O: "g3/3",
})).s("gm_brass_section").gain(0.2)

// bass · tuba · "B♭ Tuba"
const bass = note(`<
  ~@16 A B C D C B E@2 F B C G D B C H I@2 F@2 J@2 B C H K L M H L N@2 H K L M H L N@2 C L O@2 K L O ~@2
>`.pickRestart({
  A: "e3", B: "a2", C: "b2", D: "c#3", E: "b2/2", F: "g#2", G: "c3", H: "e2", I: "f#2", J: "c3/2", K: "b1", L: "c2",
  M: "g1 f#1", N: "d2/2", O: "d2",
})).s("gm_tuba").gain(0.3)

// bass · tuba · "B♭ Tuba" · soft notes
const bass_soft = note("<A B C D E F G@2 D F H@2 I F G J ~@49>".pickRestart({
  A: "e2", B: "b1", C: "c2", D: "g2", E: "e3", F: "c3", G: "d3", H: "d3/2", I: "b2", J: "f#2",
})).s("gm_tuba").gain(0.2)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  A@4 B C D@2 E@7 F G H I J K H L I M N O P Q R O G S@2 T@2 U@2 V W X@2 Y@2 Z AA AB@2 ~@8 AC AD AE@2 AC AD AF@2 ~
>`.pickRestart({
  A: "[[e2,e4]@2 f#4 g4@2 e5@2 ~@2 b2 ~@2 d5 c5 b4 c5 ~ g2 g4@3 c5@2 ~@2 g2 ~@2 b4 c5 b4 a4, ~@2 e3@7 ~ d3@7 ~ c3@7 ~ b2@6, ~@7 d5@5 ~@4 d5@2 ~@5 b4@5 ~@4]/4", // E
  B: "g4 d5, e3", C: "g4 d5, c3", D: "[c5@2 b4 a4@3 g4 ~@5 g4@2 f#4@2, d3 d3, ~@7 a4@5 ~@4]/2",
  E: "[a3@2 d4@2 g4 b3 d4 ~@3 d4@2 g4 c4 d4 ~@3 d4 c4 g4 c4 d4 c4@3 d4@2 a4 c4@2 ~@3 d4@2 g4 b3 d4 ~@3 d4@2 g4 c4 d4 ~@3 d4@2 g4@2 d4 c4, g2 c3 d3@2 b2 c3 d3, ~@7 b3@3 ~@5 c4@3 ~@13 c4@3 ~@5 b3@3 ~@5 c4@3 ~@6]/7",
  F: "f#2, f#4 ~", G: "e3", H: "~ c#3@7", I: "~ f#3@7", J: "~ g#3@7", K: "~ e3@7", L: "~ d#3@7", M: "~ e3@7, g#3",
  N: "~ c#3@7, a3", O: "~ f#3@7, b3", P: "~ f#3@7, c4", Q: "~ g#3@7, c#4", R: "~ e3@7, a3", S: "f#3", T: "g#3",
  U: "c4/2", V: "a3", W: "b3", X: "[e5@2 f#5 g5@2 e6@2 d6@5 d6 c6 b5 c6]/2",
  Y: "[d6@2 g5 g5@2 c6@2 b5@5 b5 c6 b5 a5]/2", Z: "g5@2 b5 d6@4 g5", AA: "g5@2 b5 d6@4 d5",
  AB: "[c6@2 b5 a5@2 g5@2 g5@9]/2", AC: "b2", AD: "c3", AE: "d3", AF: "d2/2",
})).s("gm_string_ensemble_1").gain(0.2)

// chords · piano · "Grand Piano"
const piano = note(`<
  A@2 B@2 C D E@2 F G@3 H@3 I J@2 K@2 L@2 M N O@2 P Q R@2 S@2 T@2 U@2 V@2 W X Y@2 Z@2 AA AB AC@2 AD@2 AE@2 AF AB AG@2 AH
  AI AJ AK AL AI AJ AM AN
>`.pickRestart({
  A: "[e2 b2 [e3,f#4] b2 g3 b2 e3 b2 b1 f#2 b2 f#2 [d3,d5] [f#2,c5] [b2,b4] [f#2,c5], e4@4 ~@2 g4@4 e5@4 d5@9 ~@9]/2", // Esus2 D F#dim B F#dim
  B: "[c2 g2 [c3,g4] g2 e3 g2 c3 g2 g1 d2 g2 d2 [f#1,b4] [d2,c5] [f#2,b4] [d2,a4], d5@4 ~@2 g4@4 c5@4 b4@9 ~@9]/2", // C5 B5 D7 B5 D5
  C: "e2 b2 [e3,b4] b2 g3 b2 e3 [b2,g4], g4@2 ~ d5@4 ~", D: "c2 g2 [c3,b4] g2 d3 g2 b2 [g2,d4], g4@2 ~ d5@4 ~",
  E: "[d2 a2 [d3,b4] a2 f#3 a2 [d3,g4] a2 d2 a2 d3 a2 f#3 a2 d3 a2, c5@4 ~@2 a4@6 ~@2 a4@13 ~ f#4@4]/2", // G G5
  F: "e2 b2 e3 b2 ~ b2 e3 b2, [d4,g4]@15 ~, g3@8 g3@7 ~", // G5
  G: "[c2 g2 c3 g2 d3 g2 c3 g2 d2 a2 d3 a2 f#3 a2 d3 a2 d2 a2 d3 a2 e3 a2 d3 [a2,f#4], ~@4 g4@2 ~ g4@4 ~ g4@2 ~ g4@4 ~ f#4@2 ~@2]/3", // D
  H: "[e2 b2 e3 b2 g3 b2 e3 b2 c2 g2 c3 g2 d3 g2 c3 g2 d2 a2 d3 a2 f#3 a2 d3 [a2,g4], ~@4 g4@2 ~ g4@4 ~ g4@2 ~ g4@4 ~ g4@2 ~@2]/3", // A7
  I: "[f#2,f#4]@15 ~", // F#
  J: "[e2 b2 e3 b2 [g#3,e4] [b2,f#4] [e3,g#4] b2 a1 e2 a2 e2 c#3 e2 a2 [e2,b2], e4@4 ~@3 g#4@2 f#4@2 c#4@2 f#4@3]/2", // C#m B5 E E5
  K: "[b1 f#2 b2 f#2 [d#3,f#4] [f#2,g#4] [b2,a4] f#2 c#2 g#2 c#3 g#2 f#3 g#2 c#3 g#2, f#4@4 ~@3 a4@2 g#4@2 f#4@2 g#4@3]/2", // D#m F#sus2 B7
  L: "[[e1,b1,e2] b2 e3 b2 [g#3,e4] [b2,f#4] [e3,g#4] b2 a1 e2 a2 e2 c#3 e2 a2 [e2,b2,e4], e4@4 ~@3 g#4@2 f#4@2 c#4@2 f#4@2 ~]/2", // E5 C#m B5 E E5
  M: "b1 f#2 b2 [f#2,f#4] d#3 f#2 b2 f#2, e4@3 ~ f#4@4", N: "~ b1, a1 ~, ~@6 d#4@9 ~",
  O: "[[e1,b1,e2] b2 e3 b2 [g#3,e4,e5] [b2,f#4,f#5] [e3,g#4] b2 a1 e2 a2 e2 c#3 e2 a2 [e2,b2,f#4,b4,f#5], [g#3,b3,e4]@4 ~@3 g#4@2 [f#4,f#5]@2 [c#4,c#5]@2 [f#4,f#5]@2 ~]/2", // E5 C#m B5 E Esus2 E F# C# …
  P: "b1 f#2 b2 f#2 [d#3,f#4,f#5] [f#2,g#4] [b2,a4] [f#2,a4], [b3,d#4,f#4] ~", // D#m F#sus2 B7 F#m B
  Q: "c#2 g#2 c#3 g#2 e3 g#2 c#3 g#2, ~ g#4@2 [f#4,f#5]@2 g#4@3", // F#
  R: "[[e1,b1,e2] b2 e3 b2 [g#3,e4] [b2,d#4] [e3,e4] b2 a1 e2 [a2,e4] e2 c#3 [e2,e4] [a2,f#4] [e2,b2,a4], [e4,e5]@4 ~@3 b4@3 ~ e4@2 ~@3]/2", // E5 C#m B E A5 E D Esus4 …
  S: "[b1 f#2 [b2,g#4] f#2 d#3 f#2 b2 f#2 [e1,b1,e2] b2 e3 b2 g#3 b2 e3 b2, a4@4 ~@2 f#4@4 e4@4 e4@15 ~@3]/2", // E E5
  T: "[~ a2 [c#3,d#4] a2 e3 a2 c#3 a2 f#2 a2 c#3 a2 e3 a2 c#3 a2, [b3,e4]@4 ~@2 e4@4 b4@4 [g#4,b4]@17 ~]/2", // C#sus2 E5 G#m
  U: "[g#2 b2 [e3,d#4] b2 b3 b2 e3 b2 g#2 b2 e3 b2 b3 b2 e3 b2, [b3,e4]@4 ~@2 e4@4 c#5@4 [g#4,b4]@17 ~]/2", // Emaj7 E5 G#m
  V: "[e3 c3 [g3,a5] c3 e3 c3 d3 c3 e3 c3 g3 c3 a2 c3 e3 c3, [g#4,b4]@2 ~ a5@2 g5@2 g5@2 f#5@2 e5@2 f#5@3]/2", // Gsus2 G#m
  W: "f#2 a2 c#3 a2 [e3,a4] [a2,g#4] [c#3,a4] [a2,b4], [f#4,d5,f#5] ~", X: "f#2 b2 e3 b2 f#3 b2 d#3 b2, b4@15 ~",
  Y: "[e2 b2 [e3,f#4,f#5] b2 g3 b2 e3 b2 b1 f#2 b2 f#2 [d3,d5] [f#2,c5] [b2,b4] [f#2,c5], [e4,e5]@4 ~@2 [g4,g5]@4 e5@4 d5@9 ~@9]/2", // Esus2 D F#dim B F#dim E G
  Z: "[c2 g2 [c3,g4,g5] g2 e3 g2 c3 g2 g1 d2 g2 d2 [f#1,b4] [d2,c5] [f#2,b4] [d2,a4], [b4,d5]@4 ~@2 [g4,g5]@4 [a4,c5]@4 b4@9 ~@9]/2", // C5 B5 D7 B5 D5 Bm G Am
  AA: "e2 b2 [e3,b4] b2 g3 b2 e3 [b2,g4,g5], [g4,e5,g5]@2 ~ [b4,d5]@4 ~", // E5 Em C Bm
  AB: "c2 g2 [c3,b4] g2 d3 g2 b2 [g2,d4,d5], [g4,c5,g5]@2 ~ [b4,d5]@4 ~", // Cmaj7 G5 C5 Bm
  AC: "[d2 a2 [d3,b4] a2 f#3 a2 d3 a2 d2 a2 d3 a2 f#3 a2 [d3,f#4,d5,f#5] [a2,g4,g5], [a4,c5]@4 ~@2 a4@4 [g4,g5]@4 [a4,g5]@13 ~@5]/2", // G D A7 Am G A7
  AD: "[e2 b2 [e3,f#4,f#5] b2 g3 b2 e3 b2 b1 f#2 b2 f#2 [d3,d5] [f#2,c5] [b2,b4,g5] [f#2,c5], [e4,e5]@4 ~@2 [g4,g5]@4 e5@4 d5@9 ~@9]/2", // Esus2 D F#dim Em F#dim E G
  AE: "[c2 g2 [c3,g4,g5] g2 e3 g2 c3 g2 g1 d2 g2 d2 [f#1,b4,g5] [d2,c5] [f#2,b4,g5] [d2,a4], [b4,d5,g5]@4 ~@2 [g4,g5]@4 [a4,c5]@4 [b4,g5]@9 ~@9]/2", // C5 Gmaj7 D7 Gmaj7 D5 G Am Em
  AF: "e2 b2 [e3,b4] b2 g3 b2 e3 [b2,g4,g5], g4@2 ~ [b4,d5]@4 ~", // E5 Em Bm
  AG: "[d2 a2 [d3,b4] a2 f#3 a2 [d3,g4,g5] a2 d2 a2 d3 a2 f#3 a2 d3 a2, [a4,c5]@4 ~@2 a4@6 ~@2 [a4,f#5]@9 ~ [f#4,d5,f#5]@4 [g4,g5]@4]/2", // G G5 Am D G
  AH: "e2 b2 e3 b2 g3 b2 e3 b2, [g4,e5,g5]@15 ~", AI: "c2 g2 c3 g2 d3 g2 c3 g2", AJ: "d2 a2 d3 a2 f#3 a2 d3 a2",
  AK: "d2 a2 d3 a2 e3 a2 d3 a2", AL: "e2 b2 e3 b2 g3 b2 e3 b2", AM: "f#3!2 d3 c3 f#3 c3 d3 f#3", AN: "g3@15 ~",
})).s("gm_piano").gain(0.4)

// other · vibraphone
const vibraphone = note("<A B C D A C E@2 A C E ~@29 A B C D A C E@2 A B C D A C E@2 B C E@2 B C E ~@2>".pickRestart({
  A: "e4", B: "b3", C: "c4", D: "g3 f#3", E: "d4",
})).s("gm_vibraphone").gain(0.25)

stack(flute, flute_soft, clarinet, brass_section, bass, bass_soft, string_ensemble_1, piano, vibraphone)

More by Nathaniel W. Uribes