Strudelify

Cherry Pink Apple Blossom White

MineCraft _Gaming YouTuber VN

KeyE♭ majorTempo122 bpm
0:00/0:00
// Cherry Pink Apple Blossom White — MineCraft _Gaming YouTuber VN
// 122 bpm, 3/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5897351; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 137 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(122/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.

// chords · piano · "E♭ Cornet, CherryPinkAppleBlossomWhite-AP07T1"
const piano = note(`<
  A B C@2 ~ D E@2 F G@2 H I J K@2 L M@2 N O P Q@2 R@3 S T U V W X Y Z AA AB@3 AC AD AE AF AG AH AI@2 AJ@2 AK AL@3 AM@2
  AN AO AP@2 AQ AR@2 AS@2 AT AU@4 AN AV AW@2 AX AY@2 AZ@2 BA BB BC BD BE BF BG BH BI BJ BK@2 BL@3 BM BN@2 BO BP BQ BR@2
  BS BT@2 BU BV BW BX BY BZ CA CB@2 CC CD CE@3 BM CF@2 CG CH@2 CI@2 ~ CJ@2 CK@3 CL@3 CM CN
>`.pickRestart({
  A: "~@13 bb5@2 [g5,bb5], ~@13 g5 ~@2", B: "[g5,bb5] ~ [g5,bb5]!2 ~@12",
  C: "[~@5 [ab5,c6]@3 ~@3 [ab5,b5,c6] ~ [bb5,d6]@5 ~ [ab5,c6]@4 ~ [g5,bb5]!2 ~ [g5,bb5]!3 ~@2]/2", // Ab Bb Ab Gm
  D: "bb4@3 ~@2 g5 ~@2 bb5@3 ab5 ~ g5@3", E: "[~@3 g5@3 ~@5 [c5,f5,ab5]@16 bb5@2 c6 ~@2]/2",
  F: "d6@3 c6@3 bb5 ~ ab5@3 g5 ~ [g5,bb5]@3", // Gm
  G: "[~ [g5,bb5]@2 ~@2 bb5 ~ c6@2 ~@2 bb5@10 bb4@3 ~@5 bb5@3, ~@5 g5@16 ~@11]/2", // Gm
  H: "ab5@3 g5@2 ab5 ~@2 g5@3 ~ f5 g5@3", I: "[c5,ab5,c6]", J: "[g5,bb5]@5 ~@2 c5 [bb4,g5]@3 ~@2 [ab4,f5]@3, d5@3 ~@13",
  K: "[[g4,eb5]@24 [g4,bb4,eb5] ~@7]/2", L: "bb5 ~@2 [ab5,bb5] ~ ab5 ~@2 g5@3 ab5 ~ g5@3",
  M: "[~ f5 ~ f5 ~ [f5,ab5]@16 bb5@3 c6 ~@2 d6@2 c6@3]/2", N: "bb5 ~@2 ab5@2 g5 ~@2 [g5,bb5] ~@2 [g5,bb5]@3 ~@2",
  O: "bb5 c6@2 ~@2 bb5@11, g5", P: "bb4 ~@4 g5 ~@2 bb5@3 ab5@2 g5 ~@2",
  Q: "[ab5 ~@2 g5@3 ~ f5 ~@3 c6@16 [g5,bb5]@5, ~@27 d5@2 ~@3]/2", // Gm
  R: "[~@3 bb4@3 ~@2 ab4 ~@2 g4@24 ~@5 [g5,bb5,eb6] ~@2 [g5,bb5,eb6] ~ [g5,bb5,db6,eb6] ~@2, ~@11 eb5@21 ~@16]/3", // Eb Eb7
  S: "[f5,g5,bb5,eb6] ~@2 [g5,bb5,eb6] ~ [g5,bb5,eb6] ~@2 [g5,bb5,eb6]@3 [bb5,d6] ~ [bb5,d6] ~@2", // Eb Bb
  T: "[bb5,d6]@5 [ab5,c6] ~@2 [ab5,c6]@3 [bb5,d6] ~ [ab5,c6]@3", // Bb Ab Bb Ab
  U: "[g5,bb5] ~@2 [g5,bb5] ~ [g5,bb5]@5 ~ [ab5,c6] ~@2 [ab5,c6] ~", // Gm Ab
  V: "[ab5,c6] ~@2 [ab5,bb5,c6] ~ [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5]@3 ~@2", // Ab Gm
  W: "[f5,ab5] ~@2 [f5,ab5] ~ [f5,ab5] ~@2 [f5,ab5]@3 [eb5,g5] ~ [eb5,g5] ~@2", // Fm Eb
  X: "[eb5,g5]@3 ~@2 [g5,eb6] ~@2 [g5,eb6] ~@2 [g5,eb6] ~ [g5,eb6]@3", // Eb Cm
  Y: "[bb5,d6] ~@2 [bb5,d6] ~ [bb5,d6]@5 ~ [ab5,c6] ~ [ab5,b5,c6] ~@2", // Bb Ab
  Z: "[bb5,d6] ~@2 [ab5,c6]@2 [g5,bb5] ~@2 [g5,bb5] ~@2 [g5,bb5]@5", // Bb Ab Gm
  AA: "[ab5,c6] ~@2 [ab5,c6] ~ [ab5,c6] ~@2 [ab5,c6]@3 bb5 ~ bb5 ~@2", // Ab
  AB: "[bb5@5 ab5@2 ~ g5@3 eb5@26 bb4@3 ~@3 g5 ~ bb5@3]/3", AC: "ab5 ~@2 g5@2 ab5 ~@2 g5@5 f5 ~@2", AD: "ab5",
  AE: "bb5@3 c6 ~ d6@3 c6@3 bb5@2 ab5@3", AF: "g5 ~@2 bb5@2 bb5@3 ~@3 bb5 ~ bb5@3", AG: "g5@2 eb5 c5 ~ bb4@3 ~@3 bb4@5",
  AH: "bb4 ~@2 bb5@2 ab5@3 g5@3 ab5 ~ g5@3", AI: "[f5@3 ~@2 c6@16 bb5@5 ~@2 ab5 g5 ~@2]/2",
  AJ: "[~@3 f5@2 eb5@24 ~ eb5 ~]/2", AK: "~@11 bb3@3 eb4@2", AL: "[g4@5 bb4@43]/3",
  AM: "[~@14 ab4@5 g4 ~ ab4 ~@2 g4@5 f4 ~@2]/2", AN: "ab4", AO: "bb4@3 c5@3 d5 ~@2 c5@2 bb4@2 ab4@3",
  AP: "[g4@3 bb4@3 ~ bb4 ~@3 bb4@16 bb4 ~ bb4 ~@2, ~@8 bb4@3 ~@21, ~@9 c5@7 ~@16]/2",
  AQ: "bb4 ~@2 bb4@2 ab4 ~@2 g4@3 ab4 ~ g4@3", AR: "[~ f4 ~ f4@2 c5@16 bb4@5 ~ g4 ~ g4 ~@2, ~@2 g4@3 ~@27]/2",
  AS: "[~@3 f4 ~ eb4@21 ~@3 eb4 ~@2]/2", AT: "~@8 bb3 ~@2 eb4 ~ g4 ~@2",
  AU: "[bb4@43 ~@2 ab4@5 ~ g4 ~ ab4 ~@2 g4@5 [f4,g4] ~@2]/4", AV: "bb4@3 c5 ~ d5@3 c5@3 bb4 ~ ab4@3",
  AW: "[g4 ~@2 bb4 ~ bb4@3 ~@3 bb4 ~ bb4@13 ~ bb3 ~@4, ~@6 c5 ~@9]/2", AX: "g4 ~@2 bb4@2 ab4 ~@2 g4@3 ab4 ~ g4@3",
  AY: "[~ f4 ~@3 c5@16 bb4@6 ~ g4 g4@3, ~@7 bb4]/2", AZ: "[~@3 f4@2 eb4@27]/2",
  BA: "[g4,eb5] ~@2 [g4,eb5] ~ [g4,eb5] ~@2 [g4,eb5] ~@2 [g4,eb5] ~ [g4,eb5]@3", // Cm
  BB: "[g4,eb5] ~@2 [g4,eb5]@5 [bb4,d5] ~@2 [bb4,d5]@3 ~@2", // Cm Bb
  BC: "[ab4,c5]@3 [ab4,c5] ~ [ab4,c5] ~@2 [ab4,c5]@3 [g4,bb4] ~ [g4,bb4] ~@2", // Ab Gm
  BD: "[g4,bb4]@3 ~@2 [ab4,c5]@3 [ab4,c5] ~@2 [ab4,c5] ~ [ab4,c5]@3", // Gm Ab
  BE: "[g4,bb4] ~@2 [g4,bb4] ~ [g4,bb4]@3 ~@3 [f4,ab4]@2 [f4,ab4] ~@2", // Gm Fm
  BF: "[f4,ab4] ~@2 [f4,ab4] ~ [eb4,g4] ~@2 [eb4,g4] ~@2 [eb4,g4]@3 ~@2", // Fm Eb
  BG: "[g4,eb5] ~@2 [g4,eb5] ~ [g4,eb5] ~@2 [g4,eb5]@3 [bb4,d5] ~ [bb4,d5] ~@2", // Cm Bb
  BH: "[bb4,d5]@3 ~@2 [ab4,c5]@3 [ab4,c5] ~@2 [ab4,c5] ~ [ab4,c5]@3", // Bb Ab
  BI: "[g4,bb4] ~@2 [g4,bb4] ~ [g4,bb4]@5 ~ [ab4,c5] ~ [ab4,c5] ~@2", // Gm Ab
  BJ: "[ab4,c5] ~@2 [ab4,c5]@2 bb4 ~@2 bb4 ~@2 bb4@5", BK: "[ab4 ~@2 g4@2 f4@3 ~@3 eb4@16 ~@2 eb4 ~@2]/2",
  BL: "[bb3 ~@2 eb4 ~ g4@2 ~@2 bb4@39]/3", BM: "~@8 ab4@3 g4@2 ab4 ~@2",
  BN: "[g4@5 f4@3 ~@3 f4@11 ~@2 bb4@3 c5 ~ d5@3]/2", BO: "~ c5 ~@3 ab4@3 g4 ~@2 [g4,bb4]@2 ~ [g4,bb4] ~, ~@2 bb4 ~@5",
  BP: "~@3 [g4,bb4] c5 [g4,bb4]@11", BQ: "~@3 [g4,bb4] ~ [g4,bb4] ~@2 [g4,bb4] ~@2 [g4,bb4]@2 ab4 ~@2",
  BR: "[g4@3 ab4 ~ g4@3 ~ f4 g4 ~@2 c5@13 ~@3 bb4@3, ~@13 bb4 ~@18]/2", BS: "~@3 bb4@2 g4@3 ~@3 f4@3 ~@2",
  BT: "[eb4@21 ~@3 [g4,eb5] ~@2 [g4,eb5] ~ [g4,a4,eb5] ~@2]/2", // Cm Am7b5
  BU: "[g4,eb5] ~@2 [g4,eb5] ~ [g4,eb5] ~@2 [g4,eb5] ~@2 db5 ~ [bb4,d5] ~@2, ~@11 [g4,eb5]@5", // Cm Bb Cm
  BV: "[bb4,d5] ~@2 [bb4,d5]@3 ~@2 [ab4,c5]@3 [ab4,c5] ~ [ab4,c5] ~@2", // Bb Ab
  BW: "[ab4,c5]@3 [g4,bb4] ~ [g4,bb4] ~@2 [g4,bb4]@5 [ab4,c5]@3", // Ab Gm Ab
  BX: "[ab4,c5] ~@2 [ab4,c5] ~ [ab4,c5]@3 [g4,bb4] ~@2 [g4,bb4] ~ [g4,bb4]@3", // Ab Gm
  BY: "~@3 [f4,ab4] ~ [f4,ab4] ~@2 [f4,ab4] ~@2 [f4,ab4] ~ [eb4,g4] ~@2", // Fm Eb
  BZ: "[eb4,g4] ~@2 [eb4,g4] ~@4 [g4,eb5] ~@2 [g4,eb5] ~ [g4,eb5] ~@2", // Eb Cm
  CA: "[g4,eb5]@3 [bb4,d5] ~ [bb4,d5] ~@2 [bb4,d5]@3 ~@2 [ab4,c5] ~@2", // Cm Bb Ab
  CB: "[[ab4,c5] ~@2 [ab4,c5] ~ [ab4,c5]@3 [g4,bb4] ~@2 [g4,bb4] ~ g4@5 ~ [ab4,c5] ~ [ab4,c5] ~@2 [ab4,c5] ~@2 [ab4,c5]@2 [g4,bb4] ~@2, ~@13 bb4@3 ~@16]/2", // Ab Gm Ab Gm
  CC: "[g4,bb4] ~@2 [g4,bb4]@5 ab4@3 ~ g4@2 f4 ~, ~@12 f4 ~@3", CD: "eb4@3 ~@13",
  CE: "[~@3 bb3@2 eb4 ~@2 g4 ~@2 bb4@37]/3", CF: "[g4@5 f4!2 ~@4 ab4@13 bb4@3 c5@2 d5@3]/2",
  CG: "c5@3 bb4@2 ab4@3 g4 ~@2 bb4@2 ~ bb4@2", CH: "[~@3 bb4 c5 bb4@13 ~@2 bb4!2 ~@2 bb4 ~@2 bb4@3 ab4 ~]/2",
  CI: "[g4 ~@2 ab4 ~@4 f4@3 c5@13 ~@3 bb4@3 ~@2, ~@5 g4@5 ~@22]/2", CJ: "[c5@27 ~@5]/2",
  CK: "[~@5 d5@32 ~@3 d5@3 ~@5]/3", CL: "[eb5@21 f5@21 ~@2 eb5 ~ bb4 ~]/3",
  CM: "[a4,b4] ~@2 bb4 ~ b4@3 c5 ~@2 db5 ~ d5 ~@2", CN: "eb5@3 ~@2 [g4,bb4,eb5]@3 [g4,bb4,eb5] ~@2 [g4,bb4,eb5]@3 ~@2",
})).s("gm_piano").gain(0.35)

// chords · piano · "E♭ Cornet, CherryPinkAppleBlossomWhite-AP07T1" · soft notes
const piano_soft = note(`<
  ~@2 A ~@2 B C ~@3 D E F G ~@3 H@2 ~@2 B I@2 J ~ K ~@2 L ~ M ~@4 N ~ O ~@4 P ~@2 Q ~@6 R ~@7 S ~@6 T ~@3 U ~ V ~@12 W
  ~@6 X@2 ~@3 Y ~@19 Z ~@17
>`.pickRestart({
  A: "~@13 db6 ~@2", B: "~@3 eb5 ~@12", C: "ab5 ~@6 g5 f5 ~@2 d5@3 ~@2", D: "~@8 eb5 ~@2 g5 ~@4", E: "~@13 f5 ~@2",
  F: "f5", G: "~@5 e5 d5 b4 ~@8, ~@5 f5@6 ~@5", H: "[~@2 g5 ~@2 c5@16 ~@11]/2",
  I: "[~@8 g5 f5 ~ [c5,f5,ab5]@16 ~@4 [e5,f5]]/2", J: "d5 c5 ~ g5@3 ~@2 f5 ~@7",
  K: "~ b4 c5 [d5,e5] f5 ~ [bb5,eb6] ~@9, a4@3 ~@2 g5@3 ~@8, ~@3 db6 ~@4", L: "~@11 bb5 ~@4", M: "gb5 ~@15",
  N: "~@9 f5@7", O: "~@8 eb5 ~@7", P: "~@8 g4 ~@7", Q: "~@11 a5 ~@4", R: "~@14 bb4 ~", S: "~@12 bb4 ~@3", T: "~@7 f4",
  U: "~@13 eb4 ~@2", V: "~@3 [f4,g4] ~@12", W: "b4 ~@15", X: "[~@6 g4@2 ~@3 ab4@11 ~@10]/2", Y: "~@11 f4 ~@4",
  Z: "~@5 g4 ~@10",
})).s("gm_piano").gain(0.2)

// chords · piano
const piano_2 = note(`<
  A@2 B C D E F G H I J K L M N O P Q R S T U V W X Q Y Z AA AB N G H AC AD K AA AB AE AF AG U V AH X Q AI S AJ AK ~@4
  AL AG U AM W X AN AO S AG ~@4 AL AG U V W X Q AO S AP AQ AR G AS I AD Z AA AB N G H ~@4 AT AU AV AW AX AY AZ BA BB BC
  BD BE AT AY BF BG BH BI BJ BE BK ~@4 BL AU BM BE AT BN BO ~@6 AT BP BQ BR BS
>`.pickRestart({
  A: "[~@13 [ab3,bb4] ~@2 [e4,bb4] ~@2 [ab3,d4,bb4] ~ [d4,bb4] ~@2 [ab3,d4,bb4] ~@2 [d4,bb4] ~ [ab3,d4,bb4] ~@2, ~@13 d5@8 ~@11]/2", // Absus2 Edim Bb7 Gm Bb7 Gm Bb7
  B: "[ab3,e4] ~ bb4 [ab3,e4,bb4] ~@2 [e4,bb4]@2 [ab3,d4,bb4] ~@2 [ab3,eb4,bb4] ~ [ab3,d4,bb4] ~@2, ~@5 d5@3 ~@8", // Dbm Bbm7b5 Edim Bb7 Absus2 Bb7
  C: "[ab3,d4,bb4] d4 ~ [ab3,d4,bb4] ~ [ab3,d4] ~ [d4,bb4] [ab3,bb4] ~@2 [bb4,d5]@2 [ab3,d4,bb4] ~@2, ~@11 e4 ~@4", // Bb7 Abdim Gm Absus2 Bb Bb7
  D: "[d4,bb4] ~@2 [ab3,d4,bb4] ~ [d4,bb4] ~@2 [ab3,d4,bb4] ~@3 bb4 [ab3,e4,bb4] ~@2, ~@11 [ab3,e4]@2 ~@3", // Gm Bb7 Gm Bb7 Bbm7b5 Dbm
  E: "~@2 d4@2 ~ eb4 ~@2 [ab3,bb4] ab3 [ab3,d4,eb4,bb4] ~ ab3 [ab3,d4,bb4] ~@2, ~@2 ab3 ~@5 [d4,e4]@2 ~@6", // Absus2 Bb7 Dsus2
  F: "[ab3,d4,eb4] ~@2 [ab3,eb4,bb4,d5] ~ eb4 ~@2 [ab3,d4,bb4,db5]@2 ~ [d4,db5] ~@2 [ab3,eb4,bb4,d5]@2", // Ab Absus2 Bb7 Dmaj7 Absus2
  G: "d4 ~@2 [ab3,eb4,bb4,db5] ~ [ab3,eb4,db5] ~@2 [ab3,eb4,bb4,d5] ~@2 eb4 ~ [ab3,d4,bb4,db5] ~@2", // Absus4 Absus2 Bb7
  H: "[d4,db5] ~@2 [ab3,eb4,bb4,d5] ~ d4 ~@2 [ab3,e4,bb4,db5] ~@2 [ab3,e4,db5] ~ [ab3,eb4,bb4,d5] ~@2", // Dmaj7 Absus2 Bbm7b5 Dbm Absus2
  I: "eb4 ~@2 [ab3,d4,bb4,db5] ~ [d4,db5] ~@2 [ab3,eb4,bb4,d5] ~@2 d4 ~ [ab3,eb4,bb4,db5] ~@2", // Bb7 Dmaj7 Absus2 Absus4
  J: "[ab3,eb4,db5] ~@2 [ab3,eb4,bb4,d5]@2 ~ eb4@2 [ab3,d4,bb4,db5]@2 ~ [d4,db5] ~ [ab3,eb4,bb4,d5] ~@2", // Absus4 Absus2 Bb7 Dmaj7 Absus2
  K: "d4 ~@2 [ab3,e4,bb4,db5] ~ [ab3,e4,db5] ~@2 [ab3,eb4,bb4,d5] ~@2 eb4 ~ [ab3,d4,bb4,db5] ~@2", // Bbm7b5 Dbm Absus2 Bb7
  L: "[d4,db5]@2 ~ [ab3,eb4,bb4,d5] ~ d4 ~@2 [ab3,eb4,bb4,db5] ~@2 [ab3,eb4,db5] ~ [ab3,eb4,bb4,d5] ~@2", // Dmaj7 Absus2 Absus4 Absus2
  M: "eb4 ~@2 [ab3,d4,bb4,db5]@2 ~ [d4,db5] ~ [ab3,eb4,bb4,d5]@2 ~ d4 ~ [ab3,e4,bb4,db5] ~@2", // Bb7 Dmaj7 Absus2 Bbm7b5
  N: "[ab3,e4,db5] ~@2 [ab3,eb4,bb4,d5] ~ eb4 ~@2 [ab3,d4,bb4,db5] ~@2 [d4,db5] ~ [ab3,eb4,bb4,d5] ~@2", // Dbm Absus2 Bb7 Dmaj7 Absus2
  O: "d4 ~@2 [ab3,eb4,bb4,db5] ~ [ab3,eb4,db5] ~@2 [ab3,eb4] ~@2 [eb4,f4] f4 [ab3,d4,f4] ~@2", // Absus4 Ab5 Ebsus2 Ddim
  P: "d4 ~@2 [ab3,eb4] ~ [d4,gb4] ~@2 [ab3,e4,gb4] ~@2 e4 ~ [ab3,eb4] ~@2", // Ab5 D Dbm Ab5
  Q: "eb4 ~@2 [ab3,d4] ~ d4 ~@2 [ab3,eb4] ~@2 d4 ~ [ab3,eb4] ~@2", // Abdim Ab5
  R: "eb4 ~@2 [ab3,eb4] ~@2 eb4@2 [ab3,d4] ~@2 d4 ~ [ab3,eb4] ~@2", // Ab5 Abdim Ab5
  S: "d4 ~@2 [ab3,e4] ~ e4 ~@2 [ab3,eb4] ~@2 eb4 ~ [ab3,d4] ~@2", // Dbm Ab5 Abdim
  T: "d4@2 ~ [ab3,eb4] ~ d4 ~@2 [ab3,eb4] ~@2 eb4 ~ [ab3,eb4] ~@2", // Ab5
  U: "eb4 ~@2 [ab3,d4] ~ d4 ~@2 [ab3,eb4] ~@2 d4 ~ [ab3,e4] ~@2", // Abdim Ab5 Dbm
  V: "e4 ~@2 [ab3,eb4] ~ eb4 ~@2 [ab3,d4] ~@2 d4@2 [ab3,eb4] ~@2", // Ab5 Abdim Ab5
  W: "d4 ~@2 [ab3,eb4] ~ eb4 ~@2 [ab3,eb4] ~@2 eb4 ~ [ab3,d4] ~@2", // Ab5 Abdim
  X: "d4 ~@2 [ab3,eb4] ~ d4 ~@2 [ab3,e4] ~@2 e4 ~ [ab3,eb4] ~@2", // Ab5 Dbm Ab5
  Y: "eb4 ~@2 [ab3,eb4] ~@2 [eb4,f4] f4 [ab3,d4,f4,bb4,db5] ~@2 [d4,db5] ~ [ab3,eb4,bb4,d5] ~@2", // Ab5 Ebsus2 Bb7 Dmaj7 Absus2
  Z: "[d4,gb4] ~@2 [ab3,e4,gb4,bb4,db5] ~ [e4,db5] ~@2 [ab3,eb4,bb4,d5] ~@2 eb4 ~ [ab3,d4,bb4,db5] ~@2", // D Gb7 Dbm Absus2 Bb7
  AA: "[d4,db5] ~@2 [ab3,eb4,bb4,d5] ~ d4 ~@2 [ab3,eb4,bb4,db5] ~@2 [ab3,eb4,db5] ~ [ab3,eb4,bb4,d5] ~@2", // Dmaj7 Absus2 Absus4 Absus2
  AB: "eb4 ~@2 [ab3,d4,bb4,db5] ~ [d4,db5] ~@2 [ab3,eb4,bb4,d5] ~@2 d4 ~ [ab3,e4,bb4,db5] ~@2", // Bb7 Dmaj7 Absus2 Bbm7b5
  AC: "eb4@2 ~ [ab3,d4,bb4,db5] ~ [d4,db5] ~@2 [ab3,eb4,bb4,d5] ~@2 d4 ~ [ab3,eb4,bb4,db5] ~@2", // Bb7 Dmaj7 Absus2 Absus4
  AD: "[ab3,eb4,db5] ~@2 [ab3,eb4,bb4,d5] ~ eb4 ~@2 [ab3,d4,bb4,db5] ~@2 [d4,db5] ~ [ab3,eb4,bb4,d5] ~@2", // Absus4 Absus2 Bb7 Dmaj7 Absus2
  AE: "[ab3,e4,db5] ~@2 [ab3,eb4,bb4,d5] ~ [eb4,f4] f4!2 [ab3,d4,f4] ~@2 d4 ~ [ab3,eb4] ~@2", // Dbm Absus2 Ebsus2 Ddim Ab5
  AF: "[d4,gb4] ~@2 [ab3,e4,gb4] ~ e4 ~@2 [ab3,eb4] ~@2 eb4 ~ [ab3,d4] ~@2", // D Dbm Ab5 Abdim
  AG: "d4 ~@2 [ab3,eb4] ~ d4 ~@2 [ab3,eb4] ~@2 eb4 ~ [ab3,eb4] ~@2", // Ab5
  AH: "d4 ~@2 [ab3,eb4]@2 ~ eb4@2 [ab3,eb4]@2 ~ eb4 ~ [ab3,d4] ~@2", // Ab5 Abdim
  AI: "eb4 ~@2 [ab3,eb4] ~ eb4 ~@2 [ab3,d4]@2 ~ d4 ~@2 [ab3,eb4]@2", // Ab5 Abdim Ab5
  AJ: "d4 ~@2 [ab3,eb4] ~ d4 ~@2 [ab3,eb4] ~@2 eb4 ~@2 [ab3,eb4]@2", AK: "eb4 ~@7",
  AL: "~@8 [ab3,eb4] ~@2 eb4 ~ [ab3,d4] ~@2", AM: "e4 ~@2 [ab3,eb4] ~ eb4 ~@2 [ab3,d4] ~@2 d4 ~ [ab3,eb4] ~@2",
  AN: "eb4 ~@2 [ab3,d4] ~@2 d4@2 [ab3,eb4] ~@2 d4 ~ [ab3,eb4] ~@2", // Abdim Ab5
  AO: "eb4 ~@2 [ab3,eb4] ~ eb4 ~@2 [ab3,d4] ~@2 d4 ~ [ab3,eb4] ~@2", // Ab5 Abdim Ab5
  AP: "d4 ~@2 [ab3,eb4] ~ d4 ~@2 [ab3,eb4] ~@2 eb4 ~ [ab3,eb4,bb4,d5] ~@2", // Ab5 Absus2
  AQ: "[eb4,f4] f4!2 [ab3,d4,f4,bb4,db5] ~ [d4,db5] ~@2 [ab3,eb4,bb4,d5] ~@2 [d4,gb4] ~ [ab3,e4,gb4,bb4,db5] ~@2", // Ebsus2 Bb7 Dmaj7 Absus2 D Gb7
  AR: "[e4,db5] ~@2 [ab3,eb4,bb4,d5] ~ eb4 ~@2 [ab3,d4,bb4,db5] ~@2 [d4,db5] ~ [ab3,eb4,bb4,d5] ~@2", // Dbm Absus2 Bb7 Dmaj7 Absus2
  AS: "[d4,db5] ~@2 [ab3,eb4,bb4,d5] ~@2 d4@2 [ab3,e4,bb4,db5] ~@2 [ab3,e4,db5] ~ [ab3,eb4,bb4,d5] ~@2", // Dmaj7 Absus2 Bbm7b5 Dbm Absus2
  AT: "[ab3,eb4,bb4,d5] ~@2 eb4 ~ [ab3,d4,bb4,db5] ~@2 [d4,db5] ~@2 [ab3,eb4,bb4,d5] ~ d4 ~@2", // Absus2 Bb7 Dmaj7 Absus2
  AU: "[ab3,eb4,bb4,db5] ~@2 [ab3,eb4,db5] ~ [ab3,eb4,bb4,d5] ~@2 eb4 ~@2 [ab3,d4,bb4,db5] ~ [d4,db5] ~@2", // Absus4 Absus2 Bb7 Dmaj7
  AV: "[ab3,eb4,bb4,d5] ~@2 d4 ~ [ab3,e4,bb4,db5] ~@2 [ab3,e4,db5] ~@2 [ab3,eb4,bb4,d5]@2 eb4 ~@2", // Absus2 Bbm7b5 Dbm Absus2
  AW: "[ab3,d4,bb4,db5] ~@2 [d4,db5] ~@2 [ab3,eb4,bb4,d5]@2 d4@2 ~ [ab3,eb4,bb4,db5] ~ [ab3,eb4,db5] ~@2", // Bb7 Dmaj7 Absus2 Absus4
  AX: "[ab3,eb4,bb4,d5] ~@2 eb4 ~@2 [ab3,d4,bb4,db5]@2 [d4,db5]@2 ~ [ab3,eb4,bb4,d5]@2 d4 ~@2", // Absus2 Bb7 Dmaj7 Absus2
  AY: "[ab3,e4,bb4,db5] ~@2 [ab3,e4,db5] ~ [ab3,eb4,bb4,d5] ~@2 eb4 ~@2 [ab3,d4,bb4,db5] ~ [d4,db5] ~@2", // Bbm7b5 Dbm Absus2 Bb7 Dmaj7
  AZ: "[ab3,eb4,bb4,d5] ~@2 d4 ~ [ab3,eb4,bb4,db5] ~@2 [ab3,eb4,db5] ~@2 [ab3,eb4,bb4,d5] ~ eb4 ~@2", // Absus2 Absus4 Absus2
  BA: "[ab3,d4,bb4,db5] ~@2 [d4,db5] ~ [ab3,eb4,bb4,d5] ~@2 d4@2 ~ [ab3,e4,bb4,db5]@2 ~ [ab3,e4,db5] ~", // Bb7 Dmaj7 Absus2 Bbm7b5 Dbm
  BB: "[ab3,eb4,bb4,d5] ~@2 eb4@2 [ab3,d4,bb4,db5] ~@2 [d4,db5] ~@2 [ab3,eb4,bb4,d5] ~ d4 ~@2", // Absus2 Bb7 Dmaj7 Absus2
  BC: "[ab3,eb4,bb4,db5] ~@2 [ab3,eb4,db5] ~ [ab3,eb4,bb4,d5] ~@2 [eb4,f4] f4!2 [ab3,d4,f4,bb4,db5] ~ [d4,db5] ~@2", // Absus4 Absus2 Ebsus2 Bb7 Dmaj7
  BD: "[ab3,eb4,bb4,d5] ~@2 [d4,gb4] ~ [ab3,e4,gb4,bb4,db5] ~@2 [e4,db5] ~@2 [ab3,eb4,bb4,d5] ~ eb4 ~@2", // Absus2 D Gb7 Dbm Absus2
  BE: "[ab3,d4,bb4,db5] ~@2 [d4,db5] ~ [ab3,eb4,bb4,d5] ~@2 d4 ~@2 [ab3,eb4,bb4,db5] ~ [ab3,eb4,db5] ~@2", // Bb7 Dmaj7 Absus2 Absus4
  BF: "[ab3,eb4,bb4,d5] ~@2 d4 ~ [ab3,eb4,bb4,db5] ~@2 [ab3,eb4,db5] ~@2 [ab3,eb4,bb4,d5] ~@2 eb4@2", // Absus2 Absus4 Absus2
  BG: "[ab3,d4,bb4,db5]@2 ~ [d4,db5]@2 [ab3,eb4,bb4,d5] ~@2 d4 ~@2 [ab3,e4,bb4,db5] ~@2 [ab3,e4,db5]@2", // Bb7 Dmaj7 Absus2 Bbm7b5 Dbm
  BH: "[ab3,eb4,bb4,d5]@2 ~ eb4@2 ~ [ab3,d4,bb4,db5]@2 [d4,db5]@2 ~ [ab3,eb4,bb4,d5] ~ d4 ~@2", // Absus2 Bb7 Dmaj7 Absus2
  BI: "[ab3,eb4,bb4,db5]@2 ~ [ab3,eb4,db5]@2 ~ [ab3,eb4,bb4,d5]@2 eb4 ~@2 [ab3,d4,bb4,db5] ~@2 [d4,db5]@2", // Absus4 Absus2 Bb7 Dmaj7
  BJ: "[ab3,eb4,bb4,d5] ~@2 d4 ~ [ab3,e4,bb4,db5] ~@2 [ab3,e4,db5] ~@2 [ab3,eb4,bb4,d5]@2 ~ eb4@2", // Absus2 Bbm7b5 Dbm Absus2
  BK: "[ab3,eb4,bb4,d5] ~@7", // Absus2
  BL: "[ab3,eb4,bb4,d5] ~@2 eb4@2 ~ [ab3,d4,bb4,db5] ~ [d4,db5]@2 ~ [ab3,eb4,bb4,d5] ~ d4 ~@2", // Absus2 Bb7 Dmaj7 Absus2
  BM: "[ab3,eb4,bb4,d5] ~@2 d4 ~ [ab3,e4,bb4,db5] ~@2 [ab3,e4,db5] ~@2 [ab3,eb4,bb4,d5] ~ eb4 ~@2", // Absus2 Bbm7b5 Dbm Absus2
  BN: "[ab3,e4,bb4,db5] ~@2 [ab3,e4,db5]@2 ~ [ab3,eb4,bb4,d5]@2 eb4@2 ~ [ab3,d4,bb4,db5]@2 [d4,db5] ~@2", // Bbm7b5 Dbm Absus2 Bb7 Dmaj7
  BO: "[ab3,eb4,bb4,d5] ~@2 d4 ~ [ab3,eb4,bb4,db5] ~@2 [ab3,eb4,db5] ~@2 [ab3,eb4,bb4,d5]@3 ~@2", // Absus2 Absus4 Absus2
  BP: "[ab3,eb4,bb4,db5] ~@2 [ab3,eb4,db5] ~@2 [ab3,eb4,bb4,d5] ~ eb4@2 ~ [ab3,d4,bb4,db5] ~ [d4,db5] ~@2", // Absus4 Absus2 Bb7 Dmaj7
  BQ: "[ab3,eb4,bb4,d5] ~@2 d4 ~ [ab3,e4,bb4,db5] ~@2 [ab3,e4,db5]@2 ~ [ab3,d4]@2 ~ d4@2, ~@10 [db5,bb5]@5 ~, ~@11 d5@5", // Absus2 Bbm7b5 Dbm Abdim Gb
  BR: "[ab3,c4,d4,db5,bb5] ~@2 [c4,d4,db5]@2 ~ [ab3,d4,db5,bb5] ~ d4 ~@2 [ab3,db4,e4,db5,bb5] ~@2 [e4,db5] ~, ~@7 d5@4 ~@5", // Bb7 Bbm7b5 Dbm
  BS: "[db5,bb5] ~ d5@3 [ab3,d4,f4,db5,bb5] ~@2 [d4,f4,db5,bb5] ~@2 [ab3,d4,f4,db5,bb5]@3 ~@2, [ab3,d4]@5 ~@11", // Gb Bb7 Bb Bb7 Abdim
})).s("gm_piano").gain(0.2)

// chords · piano · soft notes
const piano_soft_2 = note(`<
  ~ A B C D E F@4 G F H I F J ~@10 K F@6 H F@4 L ~@39 F@3 G F@8 ~@4 M@3 N@2 M@2 O P M@5 Q R S R Q M ~@5 S M@4 S T ~@6 M
  N U V W
>`.pickRestart({
  A: "~ bb4!2 ~@13", B: "bb4!2 ~@13 d4", C: "~@4 d4 bb4!2 ~@9", D: "~@6 bb4!2 ~@3 bb4 ~@4", E: "~@13 eb4 ~@2",
  F: "bb4 ~@4 bb4 ~@5 bb4 ~@4", G: "bb4 ~@5 bb4@2 ~@3 bb4 ~@4", H: "bb4@2 ~@3 bb4 ~@5 bb4 ~@4",
  I: "bb4 ~@5 bb4 ~@4 bb4 ~@4", J: "bb4 ~@4 bb4 ~@10", K: "~@6 bb4@2 ~@3 bb4 ~@4", L: "bb4 ~@15",
  M: "~@3 bb4 ~@4 bb4 ~@4 bb4 ~@2", N: "~@3 bb4 ~@4 bb4@2 ~@3 bb4 ~@2", O: "~@3 bb4 ~@4 bb4@2 ~@4 bb4 ~",
  P: "~@3 bb4@2 ~@3 bb4 ~@4 bb4 ~@2", Q: "~@3 bb4 ~@4 bb4 ~@5 bb4@2", R: "~@3 bb4@2 ~@3 bb4 ~@5 bb4@2",
  S: "~@3 bb4@2 ~@3 bb4@2 ~@3 bb4 ~@2", T: "~@3 bb4 ~@4 bb4 ~@7", U: "~@3 bb4 ~@4 bb4@2 ~@6",
  V: "~@3 bb5@2 ~@3 [ab3,db4,bb5] ~@5 bb5 ~", W: "~@8 ab3 ~@7",
})).s("gm_piano").gain(0.05)

// bass · electric bass finger · "Electric Bass"
const bass = note(`<
  A@2 B@2 C D@3 E@2 F@2 G@2 H@2 I@2 J@2 K@2 L@2 M@2 N O P@2 Q@2 R@2 S@2 T@2 U V W@2 X@2 Y@2 Z@2 AA AB ~@4 AC AD@2 AE@2
  AF@2 Z@2 AA ~@4 AC AG@2 AH@2 AI@2 AJ@2 AK@2 AL@2 AM@2 AN@2 P@2 AO@2 AP ~@4 AQ AR AS AT AU AV AW AX AU AY AZ AX AU BA
  BB BC BD BE BF AX BG ~@4 AQ BH AS AT AU BI BJ ~@6 BK BL BM BN BO
>`.pickRestart({
  A: "[~@11 eb2@10 c2@11]/2", B: "[c2@3 ~@2 f1@3 ~@3 bb1@10 bb1@3 ~@3 eb2@3 ~@2]/2", C: "c2@11 f1 ~ bb1@3",
  D: "[bb1@18 ~ c2 ~ f1@3 ~@3 f1@2 c2@8 c2@3 bb1@8, ~@40 f1 ~@7]/3",
  E: "[bb1@3 ~@2 f1@3 ~@3 f1@2 bb1 eb2@7 eb2@3 bb1@4 ~@4]/2",
  F: "[bb1@3 eb2@4 ~@4 eb2@2 bb1@5 ~ eb2 ~ bb1@3 f1@4 ~@4, ~@24 f2 ~@7]/2",
  G: "[f1@3 c2@5 ~ bb1 ~ bb1@10 bb1@3 f1@4 ~@4, ~@2 c2 ~@5]/2", H: "[f1@2 g2 eb2@4 ~@4 eb2@2 bb1@8 bb1@3 eb2@4 ~@4]/2",
  I: "[bb1@5 eb2@3 bb1 ~@2 g1 ~ eb2 f1@7 f1 ~@2 c2@5 c2 ~@2]/2",
  J: "[c2 ~@2 bb1@4 ~@4 bb1 ~ f1@5 ~ f1 ~ f1@3 ~@3 eb2@3 ~@2, ~@3 f1 ~@28]/2",
  K: "[eb2 ~@2 bb1@5 bb1 ~@2 bb1 ~ eb2@8 eb2 ~@2 bb1@5 bb1 ~@2]/2",
  L: "[bb1 ~@2 f1@4 ~@4 f1 ~ c2@5 ~ c2 ~ c2 ~@2 bb1@4 ~@4, ~@3 eb2 ~@28]/2",
  M: "[bb1 ~@2 f1@5 f1 ~@2 f1 ~ eb2@8 eb2 ~@2 bb1@5 bb1 ~@2]/2", N: "bb1 ~@2 eb2@3 ~@2 eb2 ~@2 bb1@3 ~@2",
  O: "bb1@3 eb2@2 bb1@3 bb1@4 ~@4", P: "[bb1@3 f1@4 ~@4 f1@2 eb2@8 eb2@3 ~@3 bb1@3 ~@2]/2",
// … 439 more lines