Strudelify

Fire Emblem Three Houses: Life at Garreg Mach Monastery

Takeru Kanazaki

KeyE majorTempo112 bpm
0:00/0:00
// Fire Emblem Three Houses: Life at Garreg Mach Monastery — Takeru Kanazaki
// 112 bpm, 3/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 3/4 at bar 2) are rendered on a constant 3/4 grid of one bar per cycle
// note: ch 1 "Flute" named as a pipe, played on flute (its tremolo strings patch is not one); ch 3 "B♭ Clarinet" named as a reed, played on clarinet (its pizzicato strings patch is not one); ch 2 "Oboe" named as a reed, played on oboe (its string ensemble 1 patch is not one); ch 8 "Piano" named as a piano, played on piano (its string ensemble 1 patch is not one); ch 4 "Pipe Organ" named as an organ, played on church organ (its tremolo strings patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5870252; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 209 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(112/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 · flute
const flute = note(`<
  ~@8 A B C D E F G H ~ I J K L I J K L ~@11 A M N O P Q R S T U@2 V@2 ~@3 W X Y Z AA AB AC@2 AD AE@3 ~ AF AG AH AI AF
  AG AH AI ~@3 AJ AK@2 AL ~@32 A B C D E F G H ~ I J K L I J K L ~@11 A M N O P Q R S T U@2 V@2 ~@3 W X Y Z AA AB AC@2
  AD AE@3 ~ AF AG AH AI AF AG AH AI ~@3 AJ AK@2 AL ~@25
>`.pickRestart({
  A: "~@11 g#5@2 a5@3", B: "b5@8 a5@3 e5@2 c#5@3", C: "g#5@5 f#5@10 ~", D: "a5@8 g5@3 d5@2 b4@3", E: "f#5@5 e5@10 ~",
  F: "~@11 f#6 ~ g#6 ~@2", G: "a6@8 g#6 ~@2 f#6 ~ e6 ~@2", H: "f#6@15 ~", I: "~@3 c#6 d#6 e6@3 ~@8",
  J: "~@3 d#6 e6 f#6@3 ~@8", K: "~@3 c#6 d#6 e6 ~@2 d#6 e6 ~ f#6 ~ e6 ~ f#6", L: "g#6 ~@2 c#6@3 ~@10",
  M: "b5@8 a5@3 g#5@2 f#5@3", N: "g#5@8 f#5@3 e5@2 d#5@3", O: "c#5@3 d#5@2 b4@10 ~", P: "~@11 d#5 e5 f#5 ~ g#5",
  Q: "a5@8 g5@3 d5@2 a#4@3", R: "f5@5 e5@8 f5@3", S: "g5@8 f5@3 c5@2 g#4@3", T: "d#5@5 d5@5 ~ d5 d#5 f5 ~ g5",
  U: "[a5@15 ~]/2", V: "[c#7@9 ~@7]/2", W: "~@11 d6@2 e6@3", X: "f6@8 e6@3 d6@2 c6@3", Y: "d6@8 c6@3 c6 d6 e6 ~ f6",
  Z: "g6@3 a6@2 a6@10 ~", AA: "f6@3 g6@2 g6@10 ~", AB: "e6@3 f6@2 c6@8 f6@3",
  AC: "[e6@3 f6@2 f6@5 ~ d6@2 e6@5 ~ f6@2 f6@10 ~]/2", AD: "g6@3 a6@2 f6@8 d#6@3", AE: "d6/3",
  AF: "~@3 g#5 b5 c#6 ~ d#6 ~@8", AG: "~@3 e5 g#5 a5 ~ c#6 ~@8", AH: "~@3 c#5 d#5 e5 ~@2 d#5 e5 ~ f#5 ~ e5 ~ f#5",
  AI: "g#5 ~@2 c#5@3 ~@10", AJ: "~@11 f#4@2 g4@3", AK: "[~@11 f#5@2 g#5@3 a5@8 g#5@3 f#5@2 e5@3, a4@15 ~]/2",
  AL: "f#5@15 ~",
})).s("gm_flute").gain(0.3)

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A B C D@2 B C E@2 ~@3 F G@3 ~@18 H I J K L M N O P Q R S@2 T@2 ~@3 U V W X Y Z AA@2 AB AC@3 ~@13 AD AE AF ~@24 A B C
  D@2 B C E@2 ~@3 F G@3 ~@18 H I J K L M N O P Q R S@2 T@2 ~@3 U V W X Y Z AA@2 AB AC@3 ~@13 AD AE AF ~@24 A
>`.pickRestart({
  A: "~@11 c#5 ~ d#5 ~@2", B: "e5@8 d#5 ~@2 c#5 ~ b4 ~@2", C: "c#5@8 b4 ~@2 a4 ~ g#4 ~@2",
  D: "[f#4@3 g#4 ~ g#4@16 ~@6 c#5 ~ d#5 ~@2]/2", E: "[f#4@3 g#4 ~ g#4@16 ~@11]/2", F: "~@11 f#4@2 g4@3", G: "a4/3",
  H: "b2@5 d#3@5 ~@3 g#2@3", I: "f#2@3 a#4 b4 a#3@3 d#5 ~@2 c#4@2 f#5 ~@2, ~@3 c#3@2 c#5 ~@5 f5 ~@4",
  J: "f5 f#5 ~ f5 ~ c#5@3 ~@8, c#4@3 ~@13", K: "a2@3 g#4 a4 d#4@3 d#5 ~@4 e3@3, ~@3 e3@2 b4 ~@10",
  L: "a2@3 e4 f#4 e4@3 b4 ~@4 e3@3, ~@3 e3@2 g#4 ~@10",
  M: "g#2@3 g#4 a4 b3@3 d#3@3 b3@2 d#3@3, ~@3 d#3@2 b4 ~@2 c#5 ~@2 d#5 ~ e5 ~@2",
  N: "d#5 e5 ~ d#5 ~ b4@3 ~@3 d#5 e5 f#5 ~ g#5, b3@3 ~@13", O: "a5@8 g5@3 d5@2 a#4@3", P: "f5@5 e5@8 f5@3",
  Q: "g5@8 f5@3 c5@2 g#4@3", R: "d#5@5 d5@5 ~ d5 d#5 f5 ~ g5", S: "a5/2", T: "[e5@19 ~@13]/2", U: "~@11 d5@2 e5@3",
  V: "f5@8 e5@3 d5@2 c5@3", W: "d5@8 c5@3 c5 d5 e5 ~ f5", X: "g5@3 a5@2 a5@11", Y: "f5@3 g5@2 g5@11",
  Z: "e5@3 f5@2 c5@8 f5@3", AA: "[e5@3 f5@2 f5@5 ~ d5@2 e5@5 ~ f5@2 f5@11]/2", AB: "g5@3 a5@2 f5@8 d#5@3",
  AC: "[d5@37 ~@11]/3", AD: "~@11 f#4@2 g#4@3", AE: "a4@8 g#4@3 f#4@2 e4@3", AF: "f#4",
})).s("gm_clarinet").gain(0.3)

// other · piano
const piano = note(`<
  ~@3 A B ~@2 A C D E F G ~@6 A B ~@2 A C D E F H I@2 J@2 ~@8 K L M N O@2 P@2 Q R S@2 Q R T U V W@2 X Y Z AA AB AC AD
  AE@2 AC AD AF@2 ~@8 AG AH AI AJ AK AL AM AN AO AP AQ AR AO AP AQ AR AS ~ AT ~ AU ~ AV ~@3 A B ~@2 A C D E F G ~@6 A B
  ~@2 A C D E F H I@2 J@2 ~@8 K L M N O@2 P@2 Q R S@2 Q R T U V W@2 X Y Z AA AB AC AD AE@2 AC AD AF@2 ~@8 AG AH AI AJ AK
  AL AM AN AO AP AQ AR AO AP AQ AR AS ~ AT ~ AU ~ AV ~
>`.pickRestart({
  A: "~@5 e4@3 ~@3 f#4@3 ~@2", B: "d#4@3 ~@13", C: "d#4@3 ~@8 g#5@2 a5@3", D: "b5@8 a5@3 e5@2 c#5@3", E: "g#5@5 f#5@11",
  F: "a5@8 g5@3 d5@2 b4@3", G: "f#5@5 e5@11", H: "f#5@5 e5@5 ~ f#5@2 g5@3",
  I: "[d#5@8 c#5@3 c5@2 a#4@3 c5@10 ~ a#4@2 d#5@3, g#5]/2", J: "[[d#5,g#5,c6]@19 ~@13]/2", K: "a5@8 g5@3 d5@2 a#4@3",
  L: "f5@5 e5@8 f5@3", M: "g5@8 f5@3 c5@2 g#4@3", N: "d#5@5 d5@5 ~ d5 d#5 f5 ~ g5", O: "a5/2",
  P: "[c#6@19 ~@8 d5@2 e5@3]/2", Q: "a#3@3 e4@2 f4@3 e5@3 d5@2 c5@3, f5 ~", R: "a#3@3 e4@2 f4@3 c5@3 a#4@2 a4@3, d5 ~",
  S: "[[f2,g4]@3 [c3,a4]@2 g3@3 c3@3 a3@2 c3@3 e3@3 c3@2 g3@3 a3@3 d5@2 e5@3, ~@5 a4@20 ~@7]/2", T: "g4@3 a4@2 a4@10 ~",
  U: "f4@3 g4@2 g4@10 ~", V: "e4@3 f4@2 c5@8 f5@3", W: "[e5@3 f5@2 f5@5 ~ d5@2 e5@5 ~ f5@2 f5@10 ~]/2",
  X: "g5@3 a5@2 f5@8 d#5@3", Y: "d2@3 a2@2 e3@3 ~@3 f#5@2 g#5@3, d5@5 ~@11",
  Z: "d2@3 a2@2 f#3@3 g#5@3 f#5@2 e5@3, a5 ~", AA: "d2@3 a2@2 e3@3 ~@8, f#5@5 ~@11", AB: "d2@3 ~@8 c#5 ~ d#5 ~@2",
  AC: "e5@8 d#5 ~@2 c#5 ~ b4 ~@2", AD: "c#5@8 b4 ~@2 a4 ~ g#4 ~@2", AE: "[f#4@3 g#4 ~ g#4@15 ~@7 c#5 ~ d#5 ~@2]/2",
  AF: "[f#4@3 g#4 ~ g#4@15 ~@12]/2", AG: "f#5@3 a4@2 e5@8 a4@3, g3@15 ~", AH: "e5@3 a4@2 d5@8 a4@3, f#3@15 ~",
  AI: "d5@3 g4@2 c#5@8 g4@3, e3@15 ~", AJ: "c#5@5 d5@10 ~, d3@15 ~",
  AK: "c5@8 ~@3 a#4@2 g4@3, d5@15 ~, g4@13 ~@3, ~@8 c5@7 ~", AL: "~@5 a#4@5 ~ c5@5, [d#4,f4,a4]@15 ~",
  AM: "~@8 d#5@3 e5@5, [e4,a4,c#5]@15 ~", AN: "e5@5 d#5@10 ~", AO: "~@5 [a4,c#5,e5]@3 ~@8",
  AP: "~@5 [g#4,b4,d#5]@3 ~@8", AQ: "~@5 [b4,d#5,f#5]@3 ~@8", AR: "~@5 [b4,c#5,f5]@3 ~@8", AS: "~@3 e5@2 d#5@3 b4@8",
  AT: "b4@15 ~", AU: "~ [a4,c#5]@15, f#4", AV: "~ [a5,c#6]@15, f#5",
})).s("gm_piano").gain(0.3)

// other · string ensemble 1 · "Harp"
const string_ensemble_1 = note(`<
  ~@3 A B ~@2 A B C D E F G H G I ~@2 A B ~@2 A B C D E J K@4 L M N O P Q ~ R S T U V W@4 ~@2 X Y ~@2 Z AA AB AC AD AE
  AF@3 ~@3 A B ~@2 A B C D E F G H G AG ~@4 AH AI AJ AK AL AM@2 AN AL AM@2 AN ~@10 A B ~@2 A B C D E F G H G I ~@2 A B
  ~@2 A B C D E J K@4 L M N O P Q ~ R S T U V W@4 ~@2 X Y ~@2 Z AA AB AC AD AE AF@3 ~@3 A B ~@2 A B C D E F G H G AG ~@4
  AH AI AJ AK AL AM@2 AN AL AM@2 AN ~@8
>`.pickRestart({
  A: "~@13 g#3 ~ f#3", B: "g#3 b3 ~ d#4 e4 g#4 ~ b4 d#5 e5 ~ g#5 b5 d#6 ~ e6", C: "f#2", D: "b2@11 f#2@2 f2@3", E: "e2",
  F: "a2@11 e2@2 d#2@3", G: "d2@3 a2@2 f#3@3 ~@5 a2@3", H: "d2@3 a2@2 d3@3 ~@5 a2@3", I: "d2@3 ~@13",
  J: "a2@11 g#2@2 a2@3", K: "[a#2@51 ~@13]/4", L: "c#4@3 f#4@2 [f#4,b4,c#5]@5 ~ [c#4,a#4]@5",
  M: "b3@3 c#4 d#4 f4 ~ f#4 g#4 a#4 ~ b4 c#5 d#5 ~ f5", N: "[f#5,a#5]@3 ~@13", O: "b4@3 c#5 d#5 e5 ~ f#5 g#5 a#5 ~@6",
  P: "~@5 [d#3,d#4]@3 ~@8", Q: "~@5 [e3,e4]@3 ~@8", R: "d#4@3 e4 f#4 g#4 ~ a4 b4 c#5 ~ d#5 e5 f#5 ~ g#5",
  S: "a5 g5 ~ f5 e5 d5 ~ c5 a#4 a4 ~ g4 f4 d4 ~ c4, g1",
  T: "a#3 c4 ~ d4 e4 f4 ~ g4 a4 a#4 ~ c5 d5 f#1@2 f5, c2@11 g1@2 e5 ~@2",
  U: "g5 f5 ~ d#5 d5 c5 ~ a#4 g#4 g4 ~ f4 d#4 c4 ~ a#3, f1", V: "c4 d4 ~ d#4 f4 g4 ~ g#4 a#4 c5 ~ d5 d#5 f5 ~ g5, a#1",
  W: "[b1@51 ~@13, a5 ~@3]/4", X: "~@13 a3 ~ g3", Y: "a3 c4 ~ e4 f4 a4 ~ c5 e5 f5 ~ a5 c6 e6 ~ f6",
  Z: "b3 d4 ~ f4 g4 b4 ~ d5 f5 g5 ~ b5 d6 f6 ~ g6, b1", AA: "a#3 d4 ~ f4 g4 a#4 ~ d5 f5 g5 ~ a#5 d6 f6 ~ g6, a#1",
  AB: "a3 c4 ~ e4 f4 a4 ~ c5 e5 f5 ~ a5 c6 e6 ~ f6, a1", AC: "a3 c4 ~ e4 f4 a4 ~ c5 e5 f5 ~ a5 c6 e6 ~ f6, d1",
  AD: "a#3 d4 ~ f4 g4 a#4 ~ d5 f5 g5 ~ a#5 d6 f6 ~ g6, g1",
  AE: "a#3 c4 ~ d#4 f4 a#4 ~ c5 d#5 f5 ~ a#5 c6 d#6 ~ f6, d#2", AF: "[d2@43 ~@5]/3",
  AG: "~ a3 ~ d4 f#4 a4 ~ c#5 d5 e5 ~ f#5 a5 c#6 ~ d6, d2@3 ~@13",
  AH: "~ d6@7 ~ c6@2 [a#4,a#5]@2 ~ g5@2, c3, d5@8 c5@3 ~@2 g4@3", AI: "~ a5@4 ~ a#5@5 [c5,c6]@5, f2, a4@5 a#4@5 ~@6",
  AJ: "~ c#6@7 ~ d#6@2 [e5,e6]@5, f#2, c#5@8 d#5@3 ~@5", AK: "~ e6@4 ~ d#6@10, b2, e5@5 d#5@11",
  AL: "g#3 a3 ~ c#4 e4 g#4 ~ a4 c#5 e5 ~ g#5 a5 c#6 ~ e6", AM: "f#3 g#3 ~ b3 d#4 f#4 ~ g#4 b4 d#5 ~ f#5 g#5 b5 ~ d#6",
  AN: "f3 f#3 ~ a3 c#4 f4 ~ f#4 a4 c#5 ~ f5 f#5 a5 ~ c#6",
})).s("gm_string_ensemble_1").gain(0.3)

// chords · church organ · "Pipe Organ"
const church_organ = note(`<
  ~ A B A C D E A ~ F G H I J K L@2 A B A C D E A ~ F G H M N@4 O P Q R S T U V ~@8 W@2 X Y W@2 Z AA AB AC AD AE AF@3 ~
  A B A C D E A ~ F G H I AG AH AI@2 ~@7 AJ AK AL AM AN AK AL AM AO AP@4 ~@4 A B A C D E A ~ F G H I J K L@2 A B A C D E
  A ~ F G H M N@4 O P Q R S T U V ~@8 W@2 X Y W@2 Z AA AB AC AD AE AF@3 ~ A B A C D E A ~ F G H I AG AH AI@2 ~@7 AJ AK
  AL AM AN AK AL AM AO AP@4 ~@4
>`.pickRestart({
  A: "d#3", B: "e3@11 b2@5", C: "~@11 b2@5", D: "d#3@11 e3@5", E: "f#3@11 b2@5", F: "[f#2,c#3]",
  G: "b2@11 f#2@2 f2@3, d#3", H: "[e2,b2]", I: "c#3, a2@11 ~@5", J: "[d3,a3]", K: "[e3,a3]",
  L: "[c#3@16 d3@3 ~@13, a3@19 ~@13]/2", M: "[a2,c#3]@11 g#2@2 a2@3, ~@11 c#3@5", N: "[[a#2,d#3]@51 ~@8 a#4@2 b4@3]/4",
  O: "b2@5 ~@3 b4@3 a#4@2 g#4@3, c#5 ~, ~@5 [c#3,f3]@11", P: "a#4@8 g#4@3 f#4@2 f4@3, d#3, b2@11 a#2@5",
  Q: "d#4@3 f4@2 [g#2,b2,c#4]@11, [g#2,c#3]@5 ~@11", R: "~@11 g#4@2 a4@3, [f#2,a#2]",
  S: "a2@5 ~@3 a4@3 g#4@2 f#4@3, b4 ~, ~@5 [b2,d#3]@11", T: "g#4@8 f#4@3 e4@2 d#4@3, c#3, a2@11 g#2@5",
  U: "c#4@3 d#4@2 [g#2,b2,d#4]@11, [f#2,b2]@5 ~@11", V: "[b2,d#3]@11 ~@5", W: "a#4@3 e5@2 f5@3 ~@8",
  X: "f3@3 c4@2 g4@3 c4@3 a4@2 c4@3", Y: "e4@3 c4@2 g4@3 a4@3 ~@5", Z: "[b1,b4,d6]", AA: "[a#1,a#4,c#5]",
  AB: "[a1,a4,c5]", AC: "[d1,a4,d5]", AD: "[g1,a#4,d5]", AE: "[d#2,a#4,d#5]", AF: "[[d2,a4,d5]@37 ~@11]/3",
  AG: "~@11 f#4@2 g#4@3, [d3,a3]", AH: "a4@8 g#4@3 f#4@2 e4@3, [e3,a3]", AI: "[[c#3,f#4]@16 d3@3 ~@13, a3@19 ~@13]/2",
  AJ: "~@11 g#4@2 a4@3", AK: "b4@8 a4@3 g#4@2 f#4@3", AL: "g#4@8 f#4@3 e4@2 d#4@3", AM: "c#4@3 d#4@2 d#4@11",
  AN: "c#4@11 g#4@2 a4@3", AO: "c#4@11 g#3@2 a3@3", AP: "[~ d#4 e4@2, b3]/4",
})).s("gm_church_organ").gain(0.3)

// other · violin
const violin = note("<~@35 A B C D E F ~@7 G H I J@2 ~@86 A B C D E F ~@7 G H I J@2 ~@52>".pickRestart({
  A: "~@5 a#4@3 ~@3 c#5@3 ~@2", B: "c#5@3 ~@8 g#4@2 a4@3", C: "b4@8 a4@3 g#4@2 f#4@3", D: "g#4@8 f#4@3 e4@2 d#4@3",
  E: "c#4@3 d#4@2 d#4@3 ~@3 b3@3 ~@2", F: "b3@3 ~@13", G: "~@11 d5@2 e5@3", H: "f5@8 e5@3 d5@2 c5@3",
  I: "d5@8 c5@3 a#4@2 a4@3", J: "[g4@3 a4@2 a4@16 ~@11]/2",
})).s("gm_violin").gain(0.4)

// other · pizzicato strings
const pizzicato_strings = note(`<
  ~@35 A B C D E F ~@11 G H I J K L M@2 N O@3 ~@3 P Q ~@2 P R S T U V W X Y Z AA AB AC AD AE AF AG AH ~@3 AI AJ AK AL AM
  AN@2 AO AN AP@3 AQ ~@34 A B C D E F ~@11 G H I J K L M@2 N O@3 ~@3 P Q ~@2 P R S T U V W X Y Z AA AB AC AD AE AF AG AH
  ~@3 AI AJ AK AL AM AN@2 AO AN AP@3 AQ
>`.pickRestart({
  A: "~@5 a#4@3 ~@3 c#5@3 ~@2", B: "e4@3 ~@13", C: "~@5 d#4@3 ~@8", D: "~@5 e4@3 ~@8", E: "~@3 d#4@2 b3@3 ~@3 b3@3 ~@2",
  F: "b3@3 ~@13", G: "~@11 d5@2 e5@3", H: "f5@8 e5@3 d5@2 c5@3", I: "d5@8 c5@3 [c4,c5] [d4,d5] [e4,e5] ~ [f4,f5]",
  J: "[g4,g5]@3 [a4,a5]@2 [a4,a5]@11", K: "[f4,f5]@3 [g4,g5]@2 [g4,g5]@11",
  L: "[e4,e5]@3 [f4,f5]@2 [c5,c6]@8 [f5,f6]@3", // E F C F
  M: "[[e5,e6]@3 [f5,f6]@2 [f5,f6]@5 ~ [d5,d6]@2 [e5,e6]@5 ~ [f5,f6]@2 [f5,f6]@11]/2", // E F D E F
  N: "[g5,g6]@3 [a5,a6]@2 [f5,f6]@8 [d#5,d#6]@3", O: "[[d5,d6]@37 ~@11]/3", P: "~@5 e4@3 ~@3 f#4@3 ~@2",
  Q: "d#4@3 ~@13", R: "d#4@3 ~@8 g#5@2 a5@3", S: "b5@8 a5@3 e5@2 c#5@3", T: "g#5@5 f#5@11", U: "a5@8 g5@3 d5@2 b4@3",
  V: "f#5@5 e5@11", W: "~@11 f#4@2 g#4@3", X: "a4@8 g#4@3 f#4@2 e4@3", Y: "f#4", Z: "~@11 d5!5", AA: "f#5!16",
  AB: "e5!16", AC: "d5!16", AD: "c#5!5 [c#5,d5] d5!10", AE: "d5@8 c5@3 a#4@2 g4@3", AF: "a4@5 a#4@5 ~ c5@5",
  AG: "c#5@8 d#5@3 e5@5", AH: "e5@5 d#5@11", AI: "~@11 g#4@2 a4@3", AJ: "b4@8 a4@3 g#4@2 f#4@3",
  AK: "g#4@8 f#4@3 e4@2 d#4@3", AL: "c#4@3 d#4@2 d#4@11", AM: "c#4@11 ~@5", AN: "~@8 e4@3 g#4@2 b4@3",
  AO: "~@8 c#4@3 e4@2 b4@3", AP: "c#5!16", AQ: "c#5!3 ~@13",
})).s("gm_pizzicato_strings").gain(0.3)

// other · tremolo strings
const tremolo_strings = note("<~@77 A B C ~@12 D E F G H I@2 J I ~@80 A B C ~@12 D E F G H I@2 J I ~@4>".pickRestart({
  A: "~@11 f#4@2 g#4@3", B: "a4@8 g#4@3 f#4@2 e4@3", C: "f#4", D: "~@11 g#4@2 a4@3", E: "b4@8 a4@3 g#4@2 f#4@3",
  F: "g#4@8 f#4@3 e4@2 d#4@3", G: "c#4@3 d#4@2 d#4@11", H: "c#4@11 ~@5", I: "~@8 e4@3 g#4@2 b4@3",
  J: "~@8 c#4@3 e4@2 b4@3",
})).s("gm_tremolo_strings").gain(0.3)

// other · string ensemble 1
const string_ensemble_1_2 = note(`<
  ~@3 A B ~@2 A B C D E F ~@6 A B ~@2 A B C G E H I J K@2 ~@8 L M N O P Q R@2 ~@6 S T U V W X Y@3 ~@3 A B ~@2 A B C D E
  F ~@3 Z AA@2 AB AC AD AE AF AG ~@12 AH@4 ~@2 A B ~@2 A B C D E F ~@6 A B ~@2 A B C G E H I J K@2 ~@8 L M N O P Q R@2
  ~@6 S T U V W X Y@3 ~@3 A B ~@2 A B C D E F ~@3 Z AA@2 AB AC AD AE AF AG ~@12 AH@4
>`.pickRestart({
  A: "~@5 g#3@3 ~@3 b3@3 ~@2", B: "b3@3 ~@13", C: "e5@8 c#5@3 a4@2 e4@3", D: "[a4,d#5]", E: "e5@8 b4@3 g4@2 d4@3",
  F: "[g4,c#5]@11 ~@5", G: "d#5", H: "c#5@11 ~@5", I: "d#5@8 c#5@3 c5@2 a#4@3", J: "c5@11 a#4@2 d#5@3",
  K: "[g#5@19 ~@13]/2", L: "f5@8 d5@3 a#4@2 f4@3", M: "[a#4,c5]", N: "[c5,d#5]@8 c5@3 g#4@2 d#4@3", O: "a#4@11 a#4@5",
  P: "e5@8 d5@3 c#5@2 b4@3", Q: "c#5@11 b4@2 e5@3", R: "[[e5,a5]@19 ~@13]/2", S: "[b4,d5]", T: "[a#4,c#5]",
  U: "[a4,c5]@13 a5@3", V: "g5@3 a5@2 a5@5 ~ d6@2 c6@3", W: "a#5", X: "[a#5,d#6]", Y: "[[f#5,a5]@37 ~@11]/3",
  Z: "~@11 a4!5", AA: "a4!16", AB: "g4!16", AC: "f#4!16", AD: "g4", AE: "f4", AF: "a4", AG: "c#5@5 b4@11",
  AH: "[a4@49 ~@15]/4",
})).s("gm_string_ensemble_1").gain(0.3)

// chords · string ensemble 1
const string_ensemble_1_3 = note(`<
  ~ A B C D A B C D ~@8 A B C D A B C D E F G H I J@3 ~@8 K@2 L M N O P@2 ~@16 A B C D A B C D ~@12 Q R S T ~@16 A B C D
  A B C D ~@8 A B C D A B C D E F G H I J@3 ~@8 K@2 L M N O P@2 ~@16 A B C D A B C D ~@12 Q R S T ~@16
>`.pickRestart({
  A: "~@5 [b3,d#4]@3 ~@8", B: "~@5 [c#4,e4]@3 ~@8", C: "~@5 [g#3,b3]@3 ~@3 [b3,d#4]@3 ~@2", D: "[b3,d#4]@3 ~@13",
  E: "e5@8 c#5@3 a4@2 e4@3", F: "a4", G: "e5@8 b4@3 g4@2 d4@3", H: "g4@11 ~@5", I: "d#5@8 c#5@3 c5@2 a#4@3",
  J: "[c5@11 a#4@24 ~@13]/3", K: "a#4", L: "c5", M: "f4", N: "e5@8 d5@3 c#5@2 b4@3", O: "c#5", P: "[b4@19 ~@13]/2",
  Q: "c4", R: "d#4", S: "e4", T: "a4@5 f#4@11",
})).s("gm_string_ensemble_1").gain(0.3)

// other · pizzicato strings
const pizzicato_strings_2 = note(`<
  ~@35 A B C D E F ~@40 G H I J ~@7 K L M N O P@2 Q P R@4 ~@34 A B C D E F ~@40 G H I J ~@7 K L M N O P@2 Q P R@4
>`.pickRestart({
  A: "~@5 a#3@3 ~@3 c#4@3 ~@2", B: "f#3@3 ~@13", C: "~@5 d#4@3 ~@8", D: "~@5 e4@3 ~@8",
  E: "~@3 d#3@2 b3@3 ~@3 b3@3 ~@2", F: "b3@3 ~@13", G: "~@5 [e4,g4]@3 ~@8", H: "~@5 [e4,g4]@3 ~@3 [d4,g4]@3 ~@2",
  I: "~@5 [g4,b4]@3 ~@8", J: "~@5 [c#4,a4]@3 ~@3 [d4,a4]@3 ~@2", K: "~@11 g#4@2 a4@3", L: "b4@8 a4@3 g#4@2 f#4@3",
  M: "g#4@8 f#4@3 e4@2 d#4@3", N: "c#4@3 d#4@2 d#4@11", O: "c#4@11 ~@5", P: "~@8 e4@3 g#4@2 b4@3",
  Q: "~@8 c#4@3 e4@2 b4@3", R: "[f#4@49 ~@15]/4",
})).s("gm_pizzicato_strings").gain(0.3)

// bass · acoustic bass
const bass = note(`<
  ~@34 A B C D@2 E F ~@10 G H ~@28 I J K L ~@4 M F N O M F N O P Q R S ~@37 A B C D@2 E F ~@10 G H ~@28 I J K L ~@4 M F
  N O M F N O P Q R S ~@4
>`.pickRestart({
  A: "b2@5 d#3@5 ~@3 g#2@3", B: "f#2@3 c#3@3 ~@2 c#3@3 ~@2 c#3@3", C: "a#2@3 ~@13", D: "a2@3 e3@3 ~@7 e3@3",
  E: "g#2@3 d#3@3 ~@2 d#3@3 ~@2 d#3@3", F: "b2@3 ~@13", G: "f2@3 c3@2 g3@3 c3@3 a3@2 c3@3",
// … 58 more lines

More by Takeru Kanazaki