Strudelify

Zero (From Ace Combat Zero: The Belkan War OST)

Keki Kobayashi

KeyA minorTempo123 bpm
0:00/0:00
// Zero (From Ace Combat Zero: The Belkan War OST) — Keki Kobayashi
// 123 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/6151837; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 125 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123/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.

// chords · acoustic guitar nylon · "Classical Guitar"
const acoustic_guitar_nylon = note(`<
  ~@6 A B C D E@2 F@2 G H I J K L M J N L O P Q R O S T U V@2 W X Y Z AA AB AC AD AE ~ AF AG AH AI AJ AK AL AM AN AO AP
  AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK 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 CK CL CM CN CO CP CQ CR CS CT CU CV CW CX CY CZ DA@2 DB CZ DC DD DE@2
>`.pickRestart({
  A: "~ [d3,b3,d4]", B: "[c3,a3,c4]@8 [d3,b3,d4]@3 [d3,g3,d4]@2 ~ [d3,d4]@2", C: "[e3,a3,e4]",
  D: "[c4,e4]@13 [a#3,d4] ~@2", E: "[[a#3,d4,f4]@3 [a#3,f4]]/2", F: "[[c4,e4,g4]@3 [e4,g4]]/2", G: "[a#3,d4,f4,a4]",
  H: "[c4,f4,c5]@8 [a4,c5,f5]@3 [b4,d5,g5]@5", I: "[e4,a4,e5]@4 ~@4 [a4,c5]@3 [c5,e5]@3 [b4,d5]@2", J: "[d5,f5] ~@3",
  K: "[a3,g4,b4]@4 ~@4 [g4,b4]@3 [b4,d5]@3 [a4,c5]@2", // Em G Bm Am
  L: "[a4,c5]@3 a4@3 [f4,a4]@2 [f4,c5,f5]@3 [g4,d5,g5]@3 [a4,c5] [g4,b4]", // Am F F5 G5 Am G
  M: "[e4,a4,c5]@4 ~@4 [a4,c5]@3 [c5,e5]@3 [b4,d5]@2", N: "[b3,g4,b4]@4 ~@4 [g4,b4]@3 [b4,d5]@3 [a4,c5] [b4,d5]",
  O: "[e4,a4,c5,e5]@4 ~@4 [e4,a4,c5]@3 [g4,c5,e5]@3 [f4,d5] [e4,c5]", P: "[d4,f4,a4,d5] ~@3",
  Q: "[d4,g4,b4]@4 ~@4 [d4,g4,b4]@3 [g4,b4,d5]@3 [f4,c5] [e4,b4]", // G F5 E5
  R: "[f4,a4,c5]@3 [c4,a4]@3 [c4,a4]@2 [a4,c5,f5]@3 [b4,d5,g5]@3 [a4,c5] [g4,b4]", S: "[d4,f4,a4,d5] ~@2 [c4,f4,a4]",
  T: "[b3,d4,g4]@4 ~@4 [g3,d4,g4]@3 [d4,g4,d5]@3 [f4,c5] [e4,b4]", // G G5 F5 E5
  U: "[c4,f4,c5]@3 [a3,c4,a4]@3 [c4,a4]@2 [f4,a4,c5,f5]@3 [g4,b4,d5,g5]@3 ~@2", V: "[~@2 a5 [c5,e5,f5], [d5,f5]@3 ~]/2",
  W: "[b4,d5,g5]@6 a5 ~ g5 ~@7", X: "~@2 [a4,c5] [b4,d5]", Y: "[c5,e5]@5 ~ a4 b4 c5 d5 ~ b4 c5@2 a4 ~",
  Z: "b4@3 ~@5 [a4,c5]@8", AA: "[f4,a4]@10 ~@2 g5 ~@3", AB: "f5 ~ [g4,b4]@2 [g4,b4]@2 [a4,c5]@2", AC: "[f4,d5,f5]",
  AD: "[f4,c5,f5] ~@3 [f4,c5,e5] ~@3", AE: "[g4,b4,d5] ~@7", AF: "~@15 c5", AG: "[b3,b4] ~",
  AH: "~@8 d5 ~ d5 b4 ~ b4 d5 ~", AI: "c5 a4 ~ d4 [d4,d5]@4 [d4,d5]@4 [e4,e5]@4", AJ: "[f4,d5,f5]@14 g4 e4",
  AK: "[d4,f4] [e4,c5,e5]", AL: "[d4,g4,b4,d5]@9 a4@2 a4@2 f#4 ~ a4",
  AM: "g4 d4 ~ b3 g4@2 ~@2 [c4,d4,a4,c5]@4 [d4,b4,d5]@4", AN: "[d4,c5,e5] [c4,c5]", AO: "[e4,e5] [g4,e5,g5]",
  AP: "[a4,e5,a5]", AQ: "~@9 g5 ~ g5!2 f5 ~ e5, [b4,d5,b5]@3 ~", AR: "e5@3 f5@2 e5 ~ d5 e5 b4 ~ g#4 e4@2 ~@2",
  AS: "~@10 [g4,g5]!6", AT: "[g4,g5]@2 d5 g4 ~@12", AU: "~@2 f4 e4 d4 e4 f4 e4 d4 c4 b3 a3 b3 a3 g3 f3",
  AV: "e3@2 e3 g#3@2 g#3 b3@2 b3 g#3@2 g#3 e3@2 e3@2", AW: "a3@2 a3 c4@2 c4 f4@2 f4 c4@2 c4 a3@2 c4 a3",
  AX: "b3@2 b3 d4@8 ~@5", AY: "~@6 g#4 ~@2 g4 ~ g4 g#4 g4 f4 e4", AZ: "e4 ~ e4 g#4 ~ g#4 e4 ~ e4 g#4 ~ g#4 e4 ~ e4 a4",
  BA: "~ a4 f4 ~ f4 a4 ~ a4 f4 ~ f4 a4 ~ a4 ~ a4", BB: "g4 ~ g4 f4 ~ f4 ~ e4 ~ e4 ~ d4 ~ d4 ~ c4",
  BC: "b3 ~ b3 d4 ~ d4 a3 ~@2 c4 ~ c4 d4 c4 b3 a3", BD: "g#3 ~ g#3 b3 ~ b3 e3 ~@9", BE: "~@9 d5 ~@2 d5 c5 b4 a4",
  BF: "a4 ~ b4 c5 ~ b4 ~ a4 ~ b4 ~ g4 ~@4", BG: "~@2 f4 ~ f4 g4 ~ a4!2 g4 ~ f4!2 g4 ~ f4",
  BH: "e4 ~ e4 g#4 ~ g#4 b4 ~ e4 ~ e4 g#4 ~ g#4 b4 ~", BI: "f4 ~ f4 a4 ~ a4 c5 ~ f4 ~ f4 a4 ~ a4 c5 ~",
  BJ: "g4 ~ g4 b4 ~ b4 d5 ~ d5 e5 ~ d5 c5 b4 ~ d5", BK: "c5 a4 ~ f4 ~@8 f4 g4 f4 e4",
  BL: "d4 f4 ~ e4 ~ b3 ~ g#3 e3@2 ~@2 e3 g#3 b3 g#3", BM: "a3 ~ b3 c4 ~ a3 ~ d4 c4@2 ~@2 a3 b3 c4 a3",
  BN: "b3 ~ d4 e4 ~ g4 ~ a4 ~ b4 ~ g4 ~ b4 ~ g4", BO: "a4 f4!2 c5 ~ f4 d5 ~ f4 c5 ~ f4 d5 f4 c5 f4",
  BP: "b4 e4!2 b4 ~ e4 b4 ~ b4 e4!2 b4 ~ e4 b4 ~", BQ: "c5 f4!2 c5 ~ f4 c5 ~ c5 f4!2 c5 ~ f4 c5 ~",
  BR: "d5 g4!2 d5 ~ g4 d5 ~ d5 g4!2 d5 ~ g4 d5 ~", BS: "e5 c5 a4 e5@2 c5 e5@2 e5 d5 e5 f5 g5@2 f5@2",
  BT: "e5 d5 ~ e5 f5 e5 ~ d5 e5 b4 ~ g#4 e4@2 ~@2", BU: "~@3 [f5,g5] ~ f5 e5 d5 e5 ~ f5!2 ~ e5 ~ d5",
  BV: "e5 b4 ~ a4 ~ b4 ~ a4 b4 c5 ~ d5 ~ c5 ~ b4", BW: "a4 b4 ~ g#4 ~ e4 ~ g#4 a4 b4 ~ c5 ~ d5 ~ c5",
  BX: "b4 c5 ~ b4 ~ a4@2 a4 b4 c5 ~ d5 ~ c5 ~ d5", BY: "~@11 e6!3 [e5,e6]!2",
  BZ: "[e5,e6]!12 [e4,b4,e5]@4, ~@12 e6 ~@3", CA: "[a4,e5,a5] ~@2 [e4,g4,e5]", CB: "[f3,a3,f4]@2 ~@4 [b3,g4,b4]!2",
  CC: "[c4,g4,c5]@2 ~@3 [c4,e4,c5] [d4,f#4,d5]@2", CD: "[d4,g4,d5]@4 [e4,g#4,e5]@3 [e4,g#4,e5]",
  CE: "[c4,a4,c5]@2 ~@2 [a3,g4,a4]@3 [e4,b4]", CF: "[c4,f4,c5] ~ [d4,b4,d5]@2",
  CG: "[e4,c5,e5]@4 [f#4,d5,f#5]@3 [a4,d5]", CH: "[a4,e5,a5] [g#4,b4,g#5]",
  CI: "[g#5,c#6] e5 [f#5,b5] d#5 [e5,a5] c#5 [b4,d#5,g#5] c#5", // C#5 B5 A5 G#m
  CJ: "[a4,e5,a5] b4 [d#5,g#5] a4 [c#5,f#5] b4 [b4,e5,b5] e4", CK: "[g#4,b4,g#5] [f#4,f#5] [e4,e5] [f#4,a#4,f#5]",
  CL: "[d#4,b4,f#5]@4 [c5,e5,g#5]@3 [c5,g#5]", CM: "[e4,c#5,e5]@2 ~@2 [c#4,b4,c#5]@3 [g#4,d#5]",
  CN: "[e4,a4,e5]@4 ~@4 [f#4,d#5,f#5]@6 [d#4,d#5] [c#4,c#5]", CO: "[b3,d#4,f#4,b4]@4 f#4@3 f#4, ~ [c#4,b4]",
  CP: "[c#4,d#4,g#4] [c4,d#4,g#4]", CQ: "[f4,c5,f5] a#4 g#4 [c4,d#4,g4,c5]",
  CR: "[c#4,f4,g#4,c#5]@2 g4@2 f4@2 [g4,d#5,g5]!2", CS: "[g#4,d#5,g#5]@2 c#5@2 c5 [g#4,c5,g#5] [a#4,d5,a#5]@2",
  CT: "[a#4,d#5,a#5]@4 [c4,c5,e5]@3 [c4,c5,e5]", CU: "[g#4,f5,g#5] ~ [d#5,f5]@2",
  CV: "[f4,c#5,f5] ~ [d#4,d#5,g5,a#5]@2", CW: "[c4,c5,g#5]@4 [d4,d5,a#5]@3 [f5,a#5]",
  CX: "[f4,c5,f5]@2 [e4,e5,g5] [c4,c5]", CY: "[f4,c#5,f5] [d#4,d#5]", CZ: "[c#4,c#5] [c4,c5]",
  DA: "[[a#3,a#4]@2 [a#4,g5,a#5]@4 [c#5,f5,g#5] [c5,d#5,g5]]/2", DB: "[f4,g#4,c#5,f5] [d#4,d#5]",
  DC: "[a#3,a#4] [g#3,g#4]", DD: "[g#3,d#4,g#4]@3 [g3,d#4,g4]@5", DE: "[~ f4@31, [f3,c4]]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.64)

// chords · acoustic guitar nylon · "Classical Guitar" · soft notes
const acoustic_guitar_nylon_2 = note(`<
  A B C D A E F ~@2 G ~@9 H ~@3 H ~@10 I@2 J K L M ~ N O P Q R S ~@10 T ~@31 U ~@35
>`.pickRestart({
  A: "[c3,e3,a3]@8 e3@6 d3 c3, ~ g3", B: "[d3,f3]", C: "[b2,d3,a3]@8 d3@6 c3 b2, ~ g3",
  D: "[c3,f3]@8 [f3,a3]@3 [e3,g3]@5", E: "[d3,f3] [a2,c3,a3]", F: "[g2,b2,g3] ~", G: "~@7 [c4,e4]", H: "~@3 f4@3 ~@10",
  I: "[~@7 f5 ~ d5@2 b4 g4@12 ~@8]/2", J: "~@5 a4 ~@10", K: "a4 ~@2 a4@5 ~@8", L: "~@10 g5@2 ~ f5@2 e5", M: "~ f5 ~@6",
  N: "~@2 e5 d5 c#5 e5 d5 g4 ~@2 f4 g4@2 g4 a4@2", O: "~@2 g4 d5@2 d5 [d5,f5,a5]@2 g5 b4 g4 ~@5",
  P: "[b4,d5]@8 [a4,c5,f5] f5@2 g5 ~ f5@2 d5, ~@3 [b4,d5]", Q: "[a4,c5,e5]@3 e5@2 c5 e5 ~ [a#5,b5]@2 ~@2 a5 ~@3",
  R: "~@8 [g3,g4]@5 g3 a3 b3", S: "c4 d4 e4 f4 g4 a4 b4 c5 ~@8", T: "~@6 g4 [g4,g5]!3 ~@6", U: "e5 [e5,e6]!10 e5!3 ~@2",
})).s("gm_acoustic_guitar_nylon").gain(0.32)

// bass · electric bass pick · "Bass Guitar"
const bass = note(`<
  A@6 B C ~@4 D E F G H F I J K L I J K F I J K L I M N O P Q R S T U V W X Y Z AA AB AC AD O AE AF AG AH AI AJ AK AL AM
  AL AK AL AM AL AK AL AM AL AK AL AM AL AK AL AM AL AK AL AM AL AN AO AP AO AQ AR AS AT@2 AU AV K AW AX AY AZ BA BB BC
  BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV@2 BW@2 BV BX ~@2
>`.pickRestart({
  A: "a1/2", B: "a1", C: "a1@4 a1@3 a1", D: "~@10 a2!2 ~ g3 a2 g3",
  E: "[a2,e3,g3]@2 a2!2 ~ g3 a2 g3 [a2,g3]@2 a2!2 ~ g3 a2 g3", // A7
  F: "[a2,d3,f3]@2 a2!2 ~ f3 a2 f3 [a2,f3]@2 a2!2 ~ f3 a2 f3", // Dm
  G: "a2@2 a2!2 ~ f3 a2 f3 a2@2 a2 [b2,d3,g3]@3 [b2,d3,g3]@2, [d3,f3] ~ [c3,f3] ~", // G Dm F5
  H: "[a2,c3,e3,a3]@2 a2!2 ~ e3 a2 e3 [a2,e3]@2 a2!2 ~ e3 a2 e3", // Am A5
  I: "[a2,b2,d3]@2 a2!2 ~ d3 a2 d3 [a2,d3]@2 a2!2 ~ d3 a2 d3", // Bm7 D5
  J: "[a2,c3,f3]@2 a2!2 ~ f3 a2 f3 [c3,f3]@3 [b2,d3,g3]@3 [b2,d3,g3]@2, ~@4 a2 ~@3", // F F5 G
  K: "[a2,c3,e3]@2 a2!2 ~ e3 a2 e3 [a2,e3]@2 a2!2 ~ e3 a2 e3", // Am A5
  L: "[a2,d3,f3]@2 a2!2 ~ f3 a2 f3 a2@2 a2!2 ~ f3 a2 f3, ~@2 f3 ~", // Dm
  M: "[a2,c3,f3]@2 a2!2 ~ f3 a2 f3 a2@2 a2 [b2,d3,g3]@3 [b2,d3,g3]@2, ~@2 [c3,f3] ~", // F G F5
  N: "~ f3@7 [a2,d3,f3,a3]@3 [a2,a3]@3 ~@2", O: "[f3,a3]@3 [a2,d3] [f2,a2,f3]@2 [e2,c3]@2",
  P: "~ g3@7 [b2,d3,g3,b3]@3 [b2,b3]@3 ~@2", Q: "[b3,d4]@3 ~ [g2,c3]@2 [g2,b2,d3]@2",
  R: "[a2,c3,e3]@8 [c3,e3,c4]@3 [c3,c4]@3 ~@2", S: "[a3,c4]@3 c3 [g2,e3]@2 [g2,c3]@2",
  T: "~ f3@7 [a2,c3,f3,a3]@3 [a2,a3]@3 ~@2, [f2,a2,c3] ~", U: "[f2,c3,f3] f2 [e2,c3,e3] e2",
  V: "[d2,a2,d3]@8 [d2,d3]@3 [d2,d3]@3 ~@2", W: "[d2,a2,d3] d2 [c2,g2,c3] c2",
  X: "[b1,g2,b2]@8 [b1,b2]@3 [b1,b2]@3 ~@2", Y: "[g1,g2]@3 g1 [b1,b2]@2 g2@2", Z: "[a1,a2]@8 [a1,a2]@3 [a1,a2]@3 ~@2",
  AA: "~ a1", AB: "[g1,d2]@8 g1@3 g1@3 ~@2, ~ c2", AC: "[g1,b1] ~ [g1,g2] [f1,f2]",
  AD: "[f2,a2,d3,f3]@8 [a2,d3,f3,a3]@3 [a2,a3]@3 [a2,a3]@2", // Dm A
  AE: "~ g3@7 [b2,d3,g3,b3]@3 [b2,b3]@3 [b2,b3]@2, [g2,b2,d3] ~", AF: "[b3,d4]@3 [g3,b3] [g2,c3,d3]@2 [g2,b2,d3]@2",
  AG: "[a2,c3,e3]@8 [c3,e3,c4]@3 [c3,c4]@3 [c3,c4]@2", AH: "[g2,c3,g3]@8 [g2,g3]@3 [g2,g3]@3 [g2,g3]@2",
  AI: "[f2,e3,f3]@8 [f2,f3]@3 [f2,f3]@3 [f2,e3]@2", AJ: "[f2,d3,f3] [f2,a2,d3,f3]",
  AK: "[e2,b2,e3] e3 e2 e3 e2 e3 [e2,b2,e3] e3 e2 e3 e2 e3 [e2,b2,e3] e3 e2 e3", // E5
  AL: "[f2,c3,f3] f3 f2 f3 f2 f3 [f2,c3,f3] f3 f2 f3 f2 f3 [f2,c3,f3] f3 f2 f3", // F5
  AM: "[g2,d3,g3] g3 g2 g3 g2 g3 [g2,d3,g3] g3 g2 g3 g2 g3 [g2,d3,g3] g3 g2 g3", // G5
  AN: "[e2,b2,e3] e2 e3 e2@2 e3 e2@2 [e2,b2,e3] e2 e3 e2@2 e3 e2@2", // E5
  AO: "[f2,c3,f3] f2 f3 f2@2 f3 f2@2 [f2,c3,f3] f2 f3 f2@2 f3 f2@2", // F5
  AP: "[g2,d3,g3] g2 g3 g2@2 g3 g2@2 [g2,d3,g3] g2 g3 g2@2 g3 g2@2", // G5
  AQ: "[e2,b2,e3] e3 e2 e3 e2 e3 e2 e3 e2 e3 e2 e3 [e2,b2,e3] e3 e2 e3", // E5
  AR: "[f2,c3,f3] f3 f2 f3 f2 f3 f2 f3 f2 f3 f2 f3 [f2,c3,f3] f3 f2 f3", // F5
  AS: "[g2,d3,g3] g3 g2 [d3,g3] g2 [d3,g3] g2 g3 [f2,c3,f3] f3 f2 [c3,f3] f2 [c3,f3] f2 f3", // G5 F5
  AT: "[e2,b2,e3] e3 e2 [b2,e3] e2 [b2,e3] e2 e3 [f2,c3,f3] f3 f2 [c3,f3] f2 [c3,f3] f2 f3", // E5 F5
  AU: "[f2,b2,e3] ~ e3 e2 e3 e2 e3 e2 e3 e2 e3 e2 e3 e2 e3 e2", // E
  AV: "e3 e2 e3 e2 e3 e2 e3 e2 e3 e2 e3 e2 [e2,e3]@2 b2@2", // E
  AW: "[f2,c3,f3]@2 f2!2 ~ f3 f2 f3 [f2,f3]@2 f2!2 ~ f3 f2 f3", // F5 F
  AX: "[e2,c3,e3]@2 e2!2 ~ e3 e2 e3 [e2,e3]@2 e2!2 [f#2,f#3]@2 d3@2", // C E F#
  AY: "[g2,d3,g3]@2 g2!2 ~ g3 g2 g3 [g#2,g#3]@2 g#2!2 ~ g#3 g#2 g#3", // G5 G#
  AZ: "[a2,c3,e3]@2 a2!2 ~ e3 a2 e3 [g2,d3]@2 g2!2 ~ d3 g2 d3", // Am G5
  BA: "[f2,a2,c3]@2 f2!2 ~ c3 f2 c3 [f2,d3]@2 f2!2 ~ b2 f2 b2", // F Dm
  BB: "[c2,g2]@2 c2!2 ~ g2 c2 g2 [d2,a2]@2 d2!2 ~ a2 d2 a2", // C5 D5
  BC: "[e2,b2,e3]@2 e2!2 ~ b2 e2 b2 [e2,b2]@2 e2!2 ~ b2 e2 b2", // E5
  BD: "[c#2,e2,g#2]@2 c#2!2 ~ g#2 c#2 g#2 [c#2,g#2]@2 c#2!2 ~ b2 c#2 b2", // C#m C#5
  BE: "[a1,e2,a2]@2 a1!2 ~ a2 a1 a2 [a1,a2]@2 a1!2 ~ a2 a1 a2", // A5 A
  BF: "[g#1,e2,g#2]@2 g#1!2 ~ g#2 g#1 g#2 [g#1,g#2]@2 g#1!2 [a#1,a#2]@2 f#2@2", // C#m G# A#
  BG: "[b1,f#2,b2]@2 b1!2 ~ b2 b1 b2 [c2,c3]@2 c2!2 ~ c3 c2 c3", // B5 C
  BH: "[c#3,e3,g#3]@2 c#3!2 ~ g#3 c#3 g#3 [b2,f#3]@2 b2!2 ~ f#3 b2 f#3", // C#m B5
  BI: "[a2,c#3,e3]@2 a2!2 ~ e3 a2 e3 [a2,f#3]@2 a2!2 ~ d#3 a2 d#3", // A D
  BJ: "[e2,b2]@2 e2!2 ~ b2 e2 b2 [f#2,c#3]@2 f#2!2 ~ c#3 f#2 c#3", // E5 F#5
  BK: "[g#2,d#3]@2 g#2!2 ~ d#3 g#2 d#3 [g#2,d#3]@2 g#2!2 ~ d#3 g#2 d#3", // G#5
  BL: "[f2,g#2,c3]@2 f2!2 ~ c3 f2 c3 [f2,c3]@2 f2!2 ~ c3 f2 c3", // Fm F5
  BM: "[c#2,g#2,c#3]@2 c#2!2 ~ c#3 c#2 c#3 [c#2,c#3]@2 c#2!2 ~ c#3 c#2 c#3", // C#5 C#
  BN: "[c2,g#2,c3]@2 c2!2 ~ c3 c2 c3 [c2,c3]@2 c2!2 [d2,d3]@2 a#2@2", // Fm C D
  BO: "[d#2,a#2,d#3]@2 d#2!2 ~ d#3 d#2 d#3 [e2,e3]@2 e2!2 ~ e3 e2 e3", // D#5 E
  BP: "[f2,g#2,c3]@2 f2!2 ~ c3 f2 c3 [d#2,a#2]@2 d#2!2 ~ a#2 d#2 a#2", // Fm D#5
  BQ: "[c#2,f2,g#2]@2 c#2!2 ~ g#2 c#2 g#2 [c#2,a#2]@2 c#2!2 ~ g2 c#2 g2", // C# F#
  BR: "[g#2,d#3]@2 g#2!2 ~ d#3 g#2 d#3 [a#2,f3]@2 a#2!2 ~ f3 a#2 f3", // G#5 A#5
  BS: "[c3,g3]@2 c3!2 ~ g3 c3 g3 [c3,g3]@2 c3!2 ~ g3 c3 g3", // C5
  BT: "[g#2,c#3,f3]@2 g#2!2 ~ c#3 g#2 c#3 [g#2,c#3]@2 g#2!2 ~ c#3 g#2 c#3", // C# C#5
  BU: "[g#2,c#3]@2 g#2!2 ~ c#3 g#2 c#3 [g#2,c#3]@2 g#2!2 ~ c#3 g#2 c#3", // C#5
  BV: "[a#1,a#2]@2 a#2!2 ~ a#1 a#2 a#1 [a#1,a#2]@2 a#2!2 ~ a#1 a#2 a#1", // A#
  BW: "[c#2,g#2]@2 g#2!2 ~ c#2 g#2 c#2 [c#2,g#2]@2 g#2!2 ~ c#2 g#2 c#2", // C#5
  BX: "[d#2,d#3]@2 d#3!2 ~ d#2 d#3 d#2 [d#2,d#3]@2 d#3!2 ~ d#2 d#3 d#2", // D#
})).s("gm_electric_bass_pick").gain(0.3)

// bass · electric bass pick · "Bass Guitar" · soft notes
const bass_soft = note(`<
  ~@8 A@2 B@2 C ~@6 D ~@3 D ~@3 D ~@4 E ~ F G H ~ I ~ J ~ K ~ L M N O ~@41 P ~@33 Q@2
>`.pickRestart({
  A: "[a2,c3,e3]@2 a2!2 ~ e3 a2 e3 [a2,e3]@2 a2!2 ~ e3 a2 e3", // Am A5
  B: "[a2,d3,f3]@2 a2!2 ~ f3 a2 f3 [a2,f3]@2 a2!2 ~ f3 a2 f3", C: "[a2,e3,g3]@2 a2!2 ~ g3 a2 g3 [a2,g3]@2 ~@6",
  D: "~@10 a2 ~@5", E: "[f2,a2,d3]@4 ~@3 [a2,a3]", F: "[g2,b2,d3]@4 ~@3 [b2,b3]", G: "~@3 [g3,b3] ~@4",
  H: "~@7 [c3,c4]", I: "~@7 [a2,a3]", J: "~@7 [d2,d3]", K: "~@7 [b1,b2]", L: "~@7 [a1,a2]", M: "~ a2@7 ~@8, a1 ~",
  N: "~@7 g1", O: "~ [g2,b2] ~@2", P: "~ e2 ~@14", Q: "[f2,g#2]/2",
})).s("gm_electric_bass_pick").gain(0.15)

stack(acoustic_guitar_nylon, acoustic_guitar_nylon_2, bass, bass_soft)