Strudelify

I'll Face Myself

Shoji Meguro

KeyE♭ majorTempo100 bpm
0:00/0:00
// I'll Face Myself — Shoji Meguro
// 100 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 3/4 at bar 11, 4/4 at bar 12, 3/4 at bar 15, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: ch 14 "Double Bass" named as a bass, played on acoustic bass (its contrabass patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/1256451; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 156 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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 · violin
const violin = note(`<
  A B C B D E F G H I J K L M@2 N O P Q R S T U V S W X Y Z AA AB AC AD AE AF AG AF AH AI AJ AK AL I AM I AN AO@3 AP@2
  AQ@5 AR@5 AS ~@17 AT@2 AU@8 AV@6 AW@7 ~@9 AX AY AZ BA BB@3 ~@3 BC BD@3 BE@3 BF@4 BG BH@8 BI@3 ~@4 BJ BK BL BM@2 ~@3
>`.pickRestart({
  A: "~@8 c4!2 g3!2 ~ g3!2 ~", B: "g3!2 ~ g3!2 ~ g3!2 c4!2 g3!2 ~ g3!2 ~", C: "g3!2 ~ g3 g3@4 c4!2 g3!2 ~ g3!2 ~",
  D: "g3!2 ~ g3 g3@4 c5!2 g4!2 ~ g4!2 ~", E: "g4!2 ~ g4!2 ~ g4!2 c5!2 g4!2 ~ g4!2 ~",
  F: "g4!2 ~ g4 g4@4 c5!2 eb4 d4 ~ d4 db4 ~", G: "db4 c4 ~ c4 b3 ~ bb3 b3 c5!2 eb4 d4 ~ d4 db4 ~",
  H: "db4 c4 ~ c4 b3@4 [c4,g4]@2 [c4,g4]@2 ~@4", I: "[c4,g4]!2 ~@2 [c4,g4]!2 ~@2",
  J: "[c5,g5]@2 [c5,g5]@2 ~@2 c4 eb4 ~@3 c4 ab3@2 ~@2", K: "~@2 ab3 ~@2 bb3 ~@2", L: "bb3 ~@3 ab3 ~@3",
  M: "[bb3@2 ~@8 a3@4 a3@4 c4 eb4 ab3@6 bb3@6]/2", N: "ab3@3 bb3@5", O: "ab3@3 bb3@3 bb3 g3",
  P: "g3@4 ~@4 g3!2 g3@2 ~@2 c4 eb4", Q: "c5@3 f4@3 bb4@8 f4 ab4", R: "c5@3 f5@3 bb4@8 f4 ab4",
  S: "c5@3 f4@3 bb4@4 f4@4 g4@2", T: "g4@2 eb4 eb4@10 g4 c5 eb5", U: "c5@3 f4@3 bb4@8 ~@2", V: "c5@3 f5@3 f5@8 ~@2",
  W: "g4@2 g4 g4@5 c4@2 c4@2 g4@4", X: "c5@3 g4@3 g4@2 d5@3 g4@3 g4@2", Y: "eb5@3 d5@3 bb4 g4 bb4@3 c5@3 g4@2",
  Z: "bb4@3 ab4@3 g4 f4@4 eb4@3 d4@2", AA: "d4@2 g4 g4@3 g4@2 g4@4 c5@4", AB: "g5@3 c5@3 c5@2 g5@3 c5@3 c5@2",
  AC: "g5@3 g5@3 ~@5 g5@3 c5@2", AD: "f5@3 f5@3 ~@2 c5@3 c5@3 ab4@2", AE: "g4@2 g4 g4@9 c4@2 ~@2",
  AF: "c4!2 g3!2 ~ g3!2 ~ g3!2 ~ g3!2 ~ g3!2", AG: "c4!2 g3!2 ~ g3!2 ~ g3!2 ~ g3 g3@2 ~@2",
  AH: "c4!2 g3!2 ~ g3!2 ~ g3!2 ~ g3 g3@4", AI: "c5!2 g4!2 ~ g4!2 ~ g4!2 ~ g4!2 ~ g4!2",
  AJ: "c5!2 g4!2 ~ g4!2 ~ g4!2 ~ g4 g4@4", AK: "c5!2 eb4 d4 ~ d4 db4 ~ db4 c4 ~ c4 b3 ~ bb3 b3",
  AL: "c5!2 eb4 d4 ~ d4 db4 ~ db4 c4 ~ c4 b3@4",
  AM: "[c4,g4]@2 [c4,g4]@2 ~@4 [c4,g4]@2 [c4,g4]@2 [db4,ab4]@3 [db4,ab4]", // C5 Db5
  AN: "[c4,g4]@2 [c4,g4]@2 ~@4 [c5,g5]@2 [c5,g5]@2 ~@2 eb4 f4", // C5
  AO: "[ab4@3 bb4 ~@2 ab4@4 bb4 ~@3 ab4@3 bb4 ~@4 c5@2]/3", AP: "[bb4@2 bb4@2 bb4@2 ab4@3 bb4 ~@2 ab4@4]/2",
  AQ: "[~@4 [g4,d5]@2 ~@2 ab4@4 f4@2 bb4@6 bb4@2 g4@2 g4@2 g4 g4@9 c4 g4 c5 eb5 c5@3 f4@3 bb4@8 ab4 bb4 c5@3 f5@3 c5@8 ab4 bb4 c5@3 f4@3 bb4@2]/5", // G5
  AR: "[~@2 f4@4 g4@2 g4@2 eb4 eb4@9 ~ a3 c4 eb4 g4@3 c4@3 f4@8 c4 eb4 g4@3 bb4@3 f4@8 c5 eb5 g5@3 c5@3 f5@4 eb5@4 d5@2 d5@2 c5 c5@5]/5",
  AS: "g4!2 g5@2 ~@4", AT: "[~@19 g4@4 ab4@4 bb4@4 bb4@8 ab4@4 g4@4 eb4@4 f4@8 g4@5]/2",
  AU: "[~@3 eb4@12 f4@4 g4@4 ab4@4 g4@4 f4@8 eb4@4 f4@4 g4@28 g4@4 ab4@4 bb4@4 eb4@4 eb4@12 eb4@4 g4@4 ab4@4 bb4@4 c5@8 eb4@16 f4@4 g4@4 c4@4 g4@4 f4@16 c4@4 g4@4 c4@4 g4@4 f4@8 eb4@4 d4@4 eb4@36 g3@8 ~ bb3@4]/8",
  AV: "[~@4 eb4@13 eb4@4 ~ g4@4 ab4@5 bb4@4 bb4@9 ~ ab4@4 g4@5 [eb4,c5]@4 bb4@9 d5@9 c5@14 c5@5 g4@4 ab4@5 g4@4 f4@9 eb4@5 f4@4 g4@32 eb5@5 eb5@5 f5@4 c5@5 c5@13 bb4@2]/6", // Cm
  AW: "[~@3 bb4@4 eb5@5 f5@5 f5@9 bb4@18 c5@4 c5@5 a4@4 c5@5 c5@18 a3@2 c4@2 ~@5 c4@5 eb4@4 c4@5 f4@4 eb4@5 d4@5 d4@18 c4@59 ~@30]/7",
  AX: "~@15 c4", AY: "c4 g3!2 ~ g3!2 ~ g3!2 ~ g3!2 ~ g3!2 c4", AZ: "c4 g3!2 ~ g3!2 ~ g3!2 ~ g3 g3@4 c5",
  BA: "c5 eb4 d4 ~ d4 db4 ~ db4 c4 ~ c4 b3 ~ bb3 b3 c5",
  BB: "[c5 eb4 d4 ~ d4 db4 ~ db4 c4 ~ c4 b3@4 [c4,g4]@2 [c4,g4]@2 ~@4 [c4,g4]@2 [c4,g4]@2 ~@4 [g4,c5]@2 [g4,c5]@2 ~@4 [c5,g5]@2 [c5,g5]@2 ~@2 c4 eb4 ~]/3", // C5
  BC: "~@3 a3@4 a3@4 ~@5", BD: "[~@7 [ab3,c4]@6 [bb3,d4]@10 ab3@6 bb3@6 bb3@2 g3@2 g3@4 ~@4 g3]/3",
  BE: "[g3 g3@2 ~@4 c5@3 f4@3 bb4@8 ab4 bb4 c5@3 f5@3 bb4@8 ab4 bb4 c5@3 f4@3 bb4@3]/3",
  BF: "[~ f4@4 g4@2 g4@2 eb4 eb4@9 eb4 a4 c5 eb5 ab4@3 f4@3 bb4@8 ab4 bb4 ab4@3 f5@3 bb4@8 c5 eb5 c6@3 g5@3 c6@3]/4",
  BG: "~ bb5@4 bb5@4 f5@4 bb5@3",
  BH: "[~ bb5@4 g5@2 g5@2 g5 g5@5 c4@2 c4@2 ~@4 g5@2 g5@2 ~@4 c6@2 c6@2 ~@2 g4@2 c5@3 g4@3 g4@2 d5@3 g4@3 g4@2 eb5@3 d5@3 bb4 g4 bb4@3 c5@3 g4@2 bb4@3 ab4@3 g4 f4 f4@3 eb4@3 d4@2 d4@2 g4 g4@3 g4@6 bb4@4 g5@3 c5@3 c5@2 f5@3 c5@3 c5@2 g5@3 g5@3 ~@3]/8",
  BI: "[~@3 g5@2 c5@2 f5@3 f5@3 ~@2 c5@3 c5@3 g4@2 g4@2 g4 g4@11 ~@11]/3", BJ: "~@16 g5@6 c5@6 ~ c5@3",
  BK: "~ f5@6 c5@6 ~ c5@4 g5@6 g5@6 ~@2", BL: "~@9 g5@6 c5@4 f5@6 ~ f5@6",
  BM: "[~@4 c5@6 ~ c5@6 g4@4 g4@4 g4@2 g4@11 d4@8 g4@4 ~@14]/2",
})).s("gm_violin").gain(0.4)

// other · violin · soft notes
const violin_soft = note("<~@61 A B C D@2 E F G H I@8 J@2 ~@21 K@4 L@2 ~@37 M@5 ~@3 N@4>".pickRestart({
  A: "~ eb5", B: "f5 g5", C: "d5 eb5", D: "[d5 c5@2 eb4]/2", E: "f4 g4", F: "f4 d4 [eb4,f4]@2", G: "b3 g3",
  H: "d4@2 [g4,c5] ~@5", // C5
  I: "[b4@16 g4@35 c5@32 bb4@16 c5@16 c5@16 bb4@16 [ab4,db5]@16 ~@16 c5@16 c5@16 c5@16 b4@16 g4@13]/8", // Db5
  J: "[~@3 g4@16 f4@16 [bb4,eb5]@12 eb4@4 ~@13]/2", // Eb5
  K: "[~@2 [c5,eb5]@36 [f4,ab4]@18 [d5,ab5]@18 ~ [g4,c5]@18 [g4,c5]@18 [f4,ab4]@17]/4", // Cm Fm Ddim C5 Fm
  L: "[~ [g4,b4]@18 [g4,c5]@36 ~@9]/2", M: "[~@9 eb4@17 f4@17 g4@17 [eb4,ab4]@17 f4@17 eb4@8 bb3@8 g3@34 ~@16]/5",
  N: "[~@24 f5@17 d4@20 g4@43 ~@24, ~@23 c5@18 ~@87]/4",
})).s("gm_violin").gain(0.2)

// other · viola
const viola = note(`<
  ~@6 A B C D E ~@7 F@2 G H I J K L M N O P Q R S T ~@3 U V@3 W D X D Y Z@5 AA@2 AB ~@3 AC AD AE AF ~@2 AG@2 AH AI AJ
  AK@2 AL AM ~@17 AN@6 AO@4 ~@10 AP AQ AR ~@2 AS AT@3 AU AV@4 AW AX AY AZ@2 BA@4 BB BC@3 BD BE BF@6 ~@4 BG BH BI BJ@2
  ~@3
>`.pickRestart({
  A: "~@10 c3@2 ~@2 c3 ~", B: "~@2 c3 ~@3 c3 ~@3 c3@3 ~@3", C: "g3 g3@2 ~@2 c3!3 [c4,g4]@2 [c4,g4]@2 ~@4",
  D: "[c4,g4]!2 ~@2 [c4,g4]!2 ~@2", E: "[c4,g4]@2 [c4,g4]@2 c4!2 ~@10", F: "~ f3 ~ f3 ~ g3 ~ g3",
  G: "~ f3 ~ f3 ~ g3 ~@2", H: "~@2 [eb3,a3]@2 ~@2 [eb3,a3]@2 ~ a3 ~ a3 ~@4", I: "ab4@3 f4@3 [g3,bb3]@8 c4 eb4",
  J: "ab4@3 f5@3 [g3,bb3]@8 c4 eb4", K: "ab4@3 f4@3 bb4@4 f4@4 g4@2", L: "g4@2 g4 g4@5 g3@2 g3@2 g4@4",
  M: "~ g3 c4@2 ~ g3 c4@2", N: "~ c3 g3@2 ~ eb3 bb3@2", O: "~ c3 g3@2 ~ d3 bb3 f3",
  P: "~@2 [g3,d4]@3 [g3,bb3]@2 [c3,g3]@4 ~ g4@4", Q: "c5@3 g4@3 g4@2 d5@3 g4@3 g4@2",
  R: "eb5@3 d5@3 bb4 g4 bb4@3 c5@3 g4@2", S: "bb4@3 ab4@3 g4 f4 f4@3 eb4@3 d4@2", T: "d4@2 c4 c4@9 c4@2 ~@2",
  U: "~@8 c4 c3@2 c4@3 c4!2", V: "c3@2 c4@2 c3@2 c4 c3@3 c4 c3@2 c3 c4 c3",
  W: "c3@2 c4@2 c3@2 c4 c3@2 c3 c4 c3 c4 c3 c4!2",
  X: "[c4,g4]@2 [c4,g4]@2 ~@4 [c4,g4]@2 [c4,g4]@2 [db4,ab4]@3 [db4,ab4]", // C5 Db5
  Y: "[c4,g4]@2 [c4,g4]@2 ~@4 [c4,g4]@2 [c4,g4]@2 c4!2 ~@2", // C5
  Z: "[eb4@3 f4 ~@2 eb4@4 f4 ~@3 eb4@3 f4 ~@3 f4 g4@3 ab3@2 c4@2 eb4 eb4@3 f4 ~@2 eb4@3 f4]/5",
  AA: "[~@4 ab4@2 ~@2 f3@3 f3 c4@2 g3@4 g3@2 d4@2 g3@2 c4@6 c3@2]/2", AB: "c3!2 ~@6", AC: "~@3 [f4,ab4]",
  AD: "~ [g4,bb4] ~ [ab4,c5]", AE: "~ [bb4,d5] ~ [f4,ab4]", AF: "~ [g4,b4] ~@2",
  AG: "[~@6 ab4 bb4@2 g4 f4@2 f4@2 eb4@2]/2", AH: "d4@4 g4@4 c5@3 g4@3 g4@2", AI: "d5@3 g4@3 g4@2 eb5@3 d5@3 bb4 g4",
  AJ: "bb4@3 c5@3 g4@2 bb4@3 ab4@3 g4 f4", AK: "[f4@3 eb4@3 d4@2 d4@2 c4 c4@9 ~@4 [f3,eb4]@8]/2", AL: "~ c4",
  AM: "~ bb3@18 ~@13",
  AN: "[~@13 [eb4,bb4]@9 c4@36 f4@9 bb4@9 ~@14 f4@5 eb4@18 d4@18 ~@27 g4@5 ab4@5 bb4@4 eb4@5 eb4@13 eb4@2, ~@38 eb4@7 ~@51, ~@85 c4@9 ~@98]/6", // Eb5
  AO: "[~@3 g4@4 ab4@5 bb4@5 c5@9 eb4@18 f4@4 g4@5 c4@4 g4@5 f4@18 ~@5 [c3,f3]@36 ~@7]/4", AP: "~@15 c3",
  AQ: "c3!2 ~@2 c3 ~@2 c3 ~@2 c3 ~@2 c3 ~ c3", AR: "c3!2 ~@2 c3 ~@2 c3 ~@2 c3 ~ ab3 bb3 c4 ~",
  AS: "~ c3@2 ~@2 c3 ~@3 c3 ~@3 c3@2 ~",
  AT: "[~ c3@2 ~@2 c3 ~@3 c3 ~@2 c3!3 [c3,g3]@2 [c3,g3]@2 c3@4 [c3,g3]@2 [c3,g3]@2 c3@4 [c4,g4]@2 [c4,g4]@2 ~@4 c5@2 c5@2 ~@2 c4 eb4 ~]/3", // C5
  AU: "~@3 [ab3,c4]@2 ~@6 c3@3 ~@2", AV: "[~ d3@4 ~@2 d3@2 ~@6 c3@2 ~@6 d3@2 ~@6 eb3@2 ~@14 c3@2 ~@6 c3@3 ~@3 d3@3]/4",
  AW: "~@3 d3@2 ~@6 c3@2 ~@3", AX: "~@3 d3@2 ~@11", AY: "~@9 [c3,f3]@2 ~@2 [c3,f3]@2 ~",
  AZ: "~ [d3,g3]@2 ~@2 [d3,g3]@2 ~@2 [c3,f3]@2 ~@2 [c3,f3]@2 ~", // G5 F5
  BA: "[~ [d3,g3]@2 ~ d3 g3 d3 ~@8 [eb3,a3]@2 [eb3,a3]@2 [eb3,a3]@2 ~@10 [g3,bb3]@8 ~@8 [bb3,d4]@8 g5@3 c5@3 f5@3]/4", // G5 Ebdim Gm Bb
  BB: "~ eb5@4 d5@4 c5@4 f5@3",
  BC: "[~ eb5@4 d5@2 d5@2 c5 c5@5 g3@2 g3@2 ~@4 c5@2 c5@2 ~@4 c5@2 c5@2 ~@6 [c4,g4]@2 [g4,c5]@2 [c4,g4]@2 ~]/3", // C5
  BD: "~ [bb3,g4]@2 [g4,c5]@3 g3 ~@2 [f3,c4]@2 [c4,g4]@4 ~", // Eb C5 F5 C5
  BE: "~ [g3,d4]@2 [d4,bb4]@2 [g3,d4]@2 ~@2 c4@2 ab4@2 d4@2 ~", // G5 Gm G5
  BF: "[~ d4@2 b4@2 a4@2 ~@2 [d4,g4]@3 [g4,c5]@6 ~ g4@4 c5@3 g4@3 g4@2 d5@3 g4@3 g4@2 eb5@3 d5@3 bb4 g4 bb4@3 c5@3 g4@2 bb4@3 ab4@3 g4 f4 f4@3 eb4@3 d4@2 d4@2 c4 c4@11 ~@11]/6", // G5 C5
  BG: "~@16 c5@6 g4@6 ~ g4@3", BH: "~ d5@6 g4@6 ~ g4@4 eb5@6 d5@6 bb4@2", BI: "g4@2 ~ bb4@6 c5@6 g4@4 bb4@6 ~ ab4@6",
  BJ: "[g4@2 f4@2 f4@6 ~ eb4@6 d4@4 d4@4 c4@2 c4@11 ~@26]/2",
})).s("gm_viola").gain(0.3)

// other · viola · soft notes
const viola_soft = note("<~@61 A B C ~@7 D@4 E ~@5 F G@2 ~@3 H@2 ~@12 I@4 J@2 K L M ~@34 N@5 ~@3 O@4>".pickRestart({
  A: "~@5 g4 c5@2", B: "~ g4 c5@2 ~ c4 f4@2", C: "~ d4 bb4@2 ab4 g4 ~@2",
  D: "[~@19 [ab3,c4]@32 [g3,bb3]@16 [c4,g4]@16 [f3,f4]@16 [bb3,f4]@16 ~@13]/4", E: "~@3 [g4,db5]@16 ~@13",
  F: "~@3 [eb3,c4]@8 ~@21", G: "[~@23 eb4@4 eb4@4 eb4@4 eb4@4 eb4@4 ~@21]/2", H: "[~@27 g3@16 [g3,eb4]@8 ~@13]/2",
  I: "[~@2 [eb4,ab4]@36 [f4,ab4]@18 [d4,b4]@18 ~ [c4,g4]@18 [c4,eb4]@18 [f3,c4]@17]/4", // Ab5 Fm G C5 Cm F5
  J: "[~ [g3,d4]@18 [c4,eb4]@36 ~ c4@8]/2", K: "~ c4@9 c4@10 c4@3 ~@7 c3@2", L: "c3!2 ~@2 c3 ~@2 c3 ~@2 c3 ~@2 c3 ~ c3",
  M: "c3!2 ~@2 c3 ~@2 c3 ~@2 c3 c3@4 ~", N: "[~@9 ab3@17 ab3@17 ab3@17 ab3@17 ab3@17 bb3@17 ~@16 bb3@13 g3@4 ~@16]/5",
  O: "[~@24 c5@17 [g3,d4]@20 [c4,g4]@43 ~@24, ~@23 eb4@18 ~@87]/4", // G5 C5
})).s("gm_viola").gain(0.2)

// other · cello · "Violoncello"
const cello = note(`<
  ~@4 A B C@2 D E F@2 G H I J K L M@2 N O P@3 Q R S@2 T U V W X ~@4 Y@3 Z E AA E AB AC@5 AD@2 AE AF AG AH AI AJ AK AL AM
  ~@17 AN@8 AO@6 AP@8 ~@6 AQ AR AS AR AT AU AV@6 AW@4 AX AY AZ@4 BA BB BC BD BE@7 BF BG BH@2 ~@12
>`.pickRestart({
  A: "c3 c2@2 c3@3 c3!2 c2!2 eb3@3 c2@3", B: "[c3,g3]@3 c2@3 [c2,g2]!2 c2!2 eb3@3 c2@3",
  C: "[[c3,g3] [c3,g3]@2 c2@2 c2 [c2,g2]!2 c2@2 g2@2 c2@2 g2 c2@3 g2 c2@2 c2 g2 c2 c2@2 g2@3 c2@3]/2", // C5
  D: "c3 c3@2 c2@2 c3!3 [c3,g3]@2 [c3,g3]@2 c3@4", E: "[c3,g3]!2 c3@2 [c3,g3]!2 c3@2",
  F: "[[c3,g3]@2 [c3,g3]@2 c3!2 ~@2 f2@3 f2 f3@2 g2@4 g2@2 f3@3 f2@2 f2 g3@4 g2@2]/2", // C5
  G: "g3@2 g2@2 f2@3 f2 f3@2 g2@4 g2@2", H: "f3@2 g2@2 a2@3 a2 [eb3,a3]@2 a2@2 ~@4", I: "~@7 f2 f3@2 g2@4 g2@2",
  J: "f3@3 f2@2 f2 g3@4 g2@2 g3@2 g2@2", K: "~@3 f2 f3@2 g2@4 g2@2 f3@2 g2@2",
  L: "[c2,g2]@4 [c3,g3]@4 c2!2 c3@2 c3!2 d2 eb2", M: "f2@2 c3@2 f2!2 c3@2 g2@2 d3@2 g2!2 d3@2",
  N: "f2@2 c3@2 f2!2 c3@2 g2@2 d3@2 g2 d3 g3 d3", O: "a2@2 [eb3,a3]@2 a2!2 [eb3,a3]@2 a2 a3 a2 a3 a2 c2 d2 eb2",
  P: "~ f2 ~ f2 ~ f2 ~ f2 ~ g2 ~ g2 ~ g2 ~ g2", Q: "[c2,c3]!2 [g2,c3]@2 [c2,c3]!2 [g2,g3]@2", R: "c3 bb2", S: "f2 g2",
  T: "c3@3 bb2", U: "~ [g3,c4,d4] ~ [g3,bb3,d4]", V: "~ [g3,c4,d4] ~ [g3,c4,d4]", W: "~ [g3,c4,d4] ~ [f3,b3,d4]",
  X: "~@4 g3@4 g3@2 g2@2 g3 g2 ~@2", Y: "~@2 g3@2 ~@2 g3 ~@3 g3 ~@3 g3 ~", Z: "~@2 g2@2 ~@2 g2 ~@9",
  AA: "[c3,g3]@2 [c3,g3]@2 c3@4 [c3,g3]@2 [c3,g3]@2 [db3,ab3]@3 [db3,ab3]", // C5 Db5
  AB: "[c3,g3]@2 [c3,g3]@2 c3@4 [c3,g3]@2 [c3,g3]@2 c3!2 ~@2", // C5
  AC: "[[g3,c4]@3 [g3,d4] ~@2 [f3,c4]@4 [g3,d4] ~@3 [f3,c4]@3 [g3,d4] ~@3 [g3,d4] [ab3,eb4]@3 ab3@2 c4@2 eb4 [f3,c4]@3 [g3,d4] ~@2 [f3,c4]@3 [g3,d4]]/5", // C5 G5 F5 G5 F5 G5 Ab5 F5 …
  AD: "[~@8 f3@3 f3 c4@2 g3@4 g3@2 d4@2 g3@2 c3@6 c3@2]/2", AE: "c3@2 c3@2 c3 c2 d2 eb2 ~@2 ab2 c3 f3 ab3 ~@2",
  AF: "bb2 d3 f3 g3 bb3 d4 bb3 g3 ~@2 ab2 c3 f3 ab3 ~@2",
  AG: "bb2@2 d3@4 g3@2 bb3@3 d3@2 bb2@3 ~@4 ab2@2 c3@2 f3@2 ab3@2 ~@4",
  AH: "bb2 d3 f3 g3 bb3 d4 bb3 g3 a3 a2 a3 a2 a3 a2 a3 a2", AI: "a3 a2 a3 a2@2 c2 d2 eb2 f2@8", AJ: "g2!2",
  AK: "ab2 f2", AL: "g2@2 c3 g3", AM: "c4 ~@3",
  AN: "[~@23 [ab3,c4]@4 [ab3,c4]@4 [ab3,c4]@4 [ab3,c4]@4 [ab3,c4]@4 [ab3,c4]@4 [ab3,c4]@4 ~@4 [g3,bb3]@4 [g3,bb3]@4 [g3,bb3]@4 ~@4 [g3,c4]@4 [g3,c4]@4 [g3,c4]@4 ~@4 [f3,ab3]@4 [f3,ab3]@4 [f3,ab3]@4 ~@4 [f3,c4]@4 [f3,c4]@4 [f3,c4]@4 ~@4 [eb3,g3]@4 [eb3,g3]@4 [eb3,g3]@4 [g3,bb3]@4 [g3,bb3]@4 [bb3,eb4]@4 [bb3,eb4]@4 ~@4 [f3,ab3]@4 [f3,ab3]@4 ~@4 [g3,bb3]@4 [g3,bb3]@4 [g3,bb3]@4 g2@4 ~@4 [f3,ab3]@4 [f3,ab3]@4 ~@4 [g3,bb3]@4 [g3,bb3]@4 [g3,bb3]@4 ~@4 a2@28 a2@4 ab2@13, ~@19 ab2@32 g2@16 c3@16 f2@16 bb2@16 eb2@32 f2@12 g2@16 ~@4 f2@12 g2@20 ~@45]/8", // Ab Gm C5 Fm F5 Eb Gm Eb5 …
  AO: "[~@3 bb2@16 ~@24 bb2@8 eb2@26 bb2@9 ~@2 eb2@2 ~@3 c3@2 eb3@2 c3@2 eb3@2 ~ ab3@2 c4@2 ab3@2 ~ eb3@2 c3@2 eb3@2 c3@2 ~@3 eb2@2 ~@2 d2@2 ~@3 bb2@2 d3@2 ~ bb2@2 d3@2 g3@2 ~@5 g3@4 ~@3 ab2@3 g2@3 ~@3 c2@2 ~@2 ab2@2 ~ c3@2 ab2@2 c3@2 f3@2 ~@3 f2@2 ~@3 d3@2 f3@2 d3@2 f3@2, ~@19 eb3@32 ~@35 ab2@4 ab2@27 ~ ab2@4 g2@5 g2@13 c3@9 c3@9 ~ f2@4 f2@14 bb2@4 bb2@11]/6",
  AP: "[~ bb3@2 ~@2 bb2@2 ~@3 eb3@2 bb3@2 f3@2 ~ bb3@2 db4@2 eb3@5 bb2@2 ~@2 g3@2 ~ bb2@2 ab2@2 g2@2 ~@3 c2@2 ~@2 ab2@2 ~ c3@2 f3@2 ~@5 bb2@2 d3@2 g3@2 ~ bb3@2 g3@2 d3@2 g2@5 ~@2 c2@2 ~@3 ab2@2 c3@2 f3@2 ~@5 bb2@2 d3@2 ~ g3@2 bb3@2 d3@3 c3@3 bb2@3 ~@5 a3@4 a3@5 [a3,c4]@5 [a3,c4]@4 [a3,c4]@5 ~@6 eb2@2 ~@5 [eb3,ab3]@5 [ab3,c4]@4 ~@5 [ab3,c4]@4 [ab3,c4]@5 [ab3,c4]@5 [ab3,c4]@4 c3@71, ~@3 db3@4 db3@14 ~@7 eb3@12 f2@4 f2@9 g2@18 ~@5 f2@5 f2@9 g2@22 a2@34 ~@3 f2@14 ~@93, ~@140 [a3,c4]@9 ~@13 bb2@23 ~@71]/8", // Am Ab5 Ab Am
  AQ: "~@15 c4", AR: "c4 eb3 d3 ~ d3 db3 ~ db3 c3 ~ c3 b2 ~ bb2 b2 c4", AS: "c4 eb3 d3 ~ d3 db3 ~ db3 c3 ~ c3 b2@4 c4",
  AT: "c4 eb3 d3 ~ d3 db3 ~ db3 c3 ~ c3 b2@4 c2", AU: "c3 c2 c3 c2 c3 c2 c3 c2 c3 c2 c3 c2 c3 c2 c3 c2",
  AV: "[c3 c2 c3 c2 c3 c2 c3 c2 c3 c2 c3 ~@4 c2@2 g2@2 c2@2 g2 c2@3 g2 c2@2 c2 g2 c2 c2@2 g2@2 c2@2 g2 c2@3 g2 c2@2 c3!3 [c3,g3]@2 [c3,g3]@2 [c2,g2]@4 [c3,g3]@2 [c3,g3]@2 [c2,g2]@4 [c3,g3]@2 [c3,g3]@2 [c2,g2]@4 [g3,c4]@2 [g3,c4]@2 c3!2 ~@2 f2@3 f2 f3@2 g2@4 g2@2 f3@3 f2@2]/6", // C5
  AW: "[f2 g3@4 g2@2 g3@2 g2@2 f2@3 f2 f3@2 g2@4 g2@2 g3@2 g2@2 a2@3 a2 a3@2 a2@2 ~@11 f2 f3@2 g2@4 g2@2 f3@3 f2@2 f2 g3@3]/4",
  AX: "~ g2@2 g3@2 g2@2 ~@3 f2 f3@2 g2@3", AY: "~ g2@2 g3@2 g2@2 [c2,g2]@4 [c3,g3]@4 c2",
  AZ: "[c2 c3@2 c3!2 d2 eb2 f2@2 [c3,f3]@2 f2!2 [c3,f3]@2 g2@2 [d3,g3]@2 g2!2 [d3,g3]@2 f2@2 [c3,f3]@2 f2!2 [c3,f3]@2 g2@2 [d3,g3]@2 g2!2 [d3,g3]@2 f2@2 [c3,f3]@2 f2!2 [c3,f3]@2 g2@2 [d3,g3]@2 g2 d3 g3 d3 a2@2 [eb3,a3]@2 a2!2 a3@2 a2]/4", // F5 G5 F5 G5 F5 G5 Ebdim
  BA: "a3 a2 a3 a2 c2 d2 eb2 ~ f2 ~ f2 ~ f2 ~ f2 ~", BB: "g2 ~ g2 ~ g2 ~ g2 ~ ab2 ~ ab2 ~ ab2 ~ ab2 ~",
  BC: "bb2 ~ bb2 ~ bb2 ~ bb2 ~ c3 ~ c3 ~ c3 ~ c3 ~", BD: "d3 ~ d3 ~ d3 ~ d3 ~ eb3 ~ eb3 ~ eb3 ~ eb3 ~",
  BE: "[f3 ~ f3 ~ ab2 ~ bb2 c3@2 c3@2 c3@4 c3@2 c3@2 [c2,g2]@4 g2@2 g2@2 [c2,g2]@4 c2@2 c2@2 ~@4 c3@8 bb2@8 f2@8 g2@8 f2@8 g2@8 c3@8 bb2@6 g2@2 ~@4 [eb3,ab3,c4]@4 ~]/7", // C5 Ab
  BF: "~@3 [f3,ab3,d4]@4 ~@4 [g3,c4,d4]@4 ~", BG: "~@3 [g3,c4,d4]@4 ~@4 [g3,c4,d4]@4 ~",
  BH: "[~@3 [g3,b3,d4]@4 c3@8 c2@6 ~@11]/2", // G
})).s("gm_cello").gain(0.3)

// other · cello · "Violoncello" · soft notes
const cello_soft = note("<~@61 A B C D@2 E F G H I ~@3 J@6 ~@21 K@3 ~ L@3 ~@36 M@5 N@7>".pickRestart({
  A: "~ c4", B: "ab3 eb3", C: "f3 ab3", D: "[bb3@2 c4@3 g3 ~ c4, ~@3 eb3]/2", E: "~ d4 ~ c4, f3 eb3",
  F: "~ d4 ~ eb4, f3 eb3", G: "~ g3 ~ ab3, c3!2", H: "~ f3 [f3,eb4]@2, d3 ~", I: "[g3,d4] ~",
  J: "[~@19 [db3,bb3]@16 [eb2,eb3]@16 ~@8 eb3@8 ab3@8 c4@8 ~@8 [f3,ab3]@8 ~@8 [f3,b3]@8 c4@8 c4@8 c4@8 c4@8 bb3@8 f3@8 bb2@8 eb3@8 ~@13, ~@51 ab2@32 d2@16 g2@16 c3@16 c3@16 bb2@16 eb2@16 ~@13]/6", // Gb Eb Fm Fdim
  K: "[~ ab3@18 d4@9 g3@9 ~@11]/3", L: "[~ g3@18 c3@70 ~@7]/3",
  M: "[~@5 g3@4 ab2@17 ab2@17 ab2@17 ab2@17 ab2@17 bb2@16 c3@17 bb2@13 g2@4 ab2@8 [eb3,ab3,c4]@8]/5", // Ab
  N: "[~ ab2@8 [f3,ab3,d4]@8 ~@9 [g3,c4,d4]@8 ~@9 [g3,c4,d4]@8 ~@9 [f3,bb3,c4]@8 ~@9 [f3,b3,d4]@8 c3@17 d3@8 g3@8 ~@2 eb4@17 g3@20 c4@43 ~@24, ~@18 g2@17 c3@16 f2@17 g2@17 ~@34 f3@18 ~@87]/7", // Ddim Gsus4 Fsus4 Bdim
})).s("gm_cello").gain(0.2)

// bass · acoustic bass · "Double Bass"
const bass = note(`<
  ~@2 A@7 B C D E F G H I J K@3 L M@3 N O P@2 Q R@3 S T U T U T U T U B V B W ~@11 X Y Z AA AB ~@17 AC@8 AD@6 AE@7 ~@7
  AF AG AH AG AI@5 AJ@2 ~@3 AK ~ AL ~@5 AM AN AO AP AQ@2 AR@8 ~@5 AS AT@4 ~@3
>`.pickRestart({
  A: "[~@8 c3!2 ~@2 [c2,g2]@12 c3!2 ~@2 [c2,g2]@8 ~@4 c3!2 ~@2 [c2,g2]@12 c3!2 ~@2 [c2,g2]@8 ~@4 c3!2 ~@2 [c2,g2]@12 c3!2 ~@2 [c2,g2]@8 ~@8 c2@4]/7", // C5
  B: "~ c2 ~ c2", C: "~@4 c2!2 ~@6 c3@2 ~@2", D: "~@4 c3@3 ~@3 d3@4 ~@2", E: "d3 ~@3 c3 ~@3", F: "c3@2 ~@10 a1!2 a2 a1",
  G: "~@4 f1@3 ~ c3@2 ~@6", H: "c3@3 ~@3 d3@4 ~@2 d3@2 ~@2", I: "f1@3 ~ c3@2 ~@6 c3@2 ~@2", J: "[c2,g2] [c3,g3] ~@2",
  K: "f2 ~@3 g2 ~@3", L: "a2 ~@3 a2 ~@3", M: "f1 ~ f1 ~ f1 ~ f1 ~ g1 ~ g1 ~ g1 ~ g1 ~", N: "c2!2 ~@2 c2!2 d2@2",
  O: "c2 bb1", P: "f1 g1", Q: "c2@3 bb1", R: "[f1,f2] [g1,g2]", S: "[c2,c3]@7 ~",
  T: "[c2,c3]!2 ~@2 [c2,g2]@8 [c2,g2]@4", U: "[c2,c3]!2 ~@2 [c2,g2]@8 [c2,g2]@2 ~@2", V: "~@4 c2@4 ~@4 db2@3 db2",
  W: "~@4 c2@4 ~@4 c2!2 ~@2", X: "~ f1", Y: "g1!2", Z: "ab1 [f1,f2]", AA: "[g1,g2]@2 c2 g2", AB: "c3 ~@3",
  AC: "[~@19 ab1@32 g1@16 c2@16 f1@16 bb1@16 g1@32 f1@12 g1@16 g1@4 f1@12 g1@20 a1@28 a1@4 ab1@13]/8",
  AD: "[~@3 bb1@16 eb2@32 eb2@35 ab1@36 g1@18 ~@5 d3@4 bb1@3 ab1@3 g1@3 ~ f1@18 bb1@15, ~@70 c2@9 ~@17]/6",
  AE: "[~@3 db2@18 eb2@19 f1@13 g1@18 g1@5 f1@14 g1@22 a1@34 ab1@2 ~ f1@13 bb1@23 c2@36 ~@3]/7",
  AF: "~@15 c2@5 c3 ~@2 c2@3 ~@4 c3@2", AG: "c3 g2!2 ~ g2!2 ~ g2!2 ~ g2!2 ~ g2!2 c3",
  AH: "c3 g2!2 ~ g2!2 ~ g2!2 ~ g2 g2@4 c3",
  AI: "[c3 g2!2 ~ g2!2 ~ g2!2 ~ g2 g2@4 c2@16 c2@8 ~@4 c2 a1 c2 b1 c2@16 c2@12 ~@5]/5",
  AJ: "[~@3 c2@4 ~@4 c2@4 c3@2 c3@2 c2@4 c3@2 c3@2 c3!2 ~@3]/2", AK: "~@5 a1!2 a2 a1 ~@2 f1@3 ~@2", AL: "~@7 f1@3 ~@6",
  AM: "~@7 f1 ~ f1 ~ f1 ~ f1 ~ g1", AN: "~ g1 ~ g1 ~ g1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ bb1",
  AO: "~ bb1 ~ bb1 ~ bb1 ~ c2 ~ c2 ~ c2 ~ c2 ~ d2", AP: "~ d2 ~ d2 ~ d2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ f2",
  AQ: "[~ f2 ~ ab1 ~ bb1 ~ c2@2 c2@2 g2@4 g2@2 g2@2 c3@4 c3@2 c3@2 c3@4 c3]/2",
  AR: "[~ c3@2 ~@4 c2@8 bb1@8 f1@8 g1@8 f1@8 g1@8 c2@8 bb1@6 g1@2 [ab1,ab2]@4 ~@4 [ab1,ab2]@4 ~@4 [g1,g2]@8 [c2,c3]@8 [f1,f2]@8 [g1,g2]@8 c2@8 ~]/8", // Ab G C F G
  AS: "~@2 f1 ~", AT: "[~ f1@8 ~@9 g1@17 c2@16 f1@17 g1@17 c2@17 ~@26]/4",
})).s("gm_acoustic_bass").gain(0.3)

// bass · acoustic bass · "Double Bass" · soft notes
const bass_soft = note("<A@3 ~@50 B@4 ~@8 C D E F G ~@86>".pickRestart({
  A: "[~@8 c3!2 ~@2 [c2,g2]@12 c3!2 ~@2 [c2,g2]@8 ~@12]/3", B: "[~@4 f2@3 g2@5 f2@3 g2@5 f2@3 g2@5 ~@4]/4", C: "~ ab2",
  D: "ab2!2", E: "ab2 g2", F: "c2 f2", G: "g2 ~",
})).s("gm_acoustic_bass").gain(0.2)

// … 1 more lines

More by Shoji Meguro