Strudelify
I Promised Myself cover art

1992 · Move Until We Fly

I Promised Myself

Nick Kamen

KeyE♭ majorTempo120 bpm
0:00/0:00
// I Promised Myself — Nick Kamen
// 120 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 135 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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.

// bass · synth bass 2 · "SYNTH BASS"
const bass = note(`<
  ~@31 A@2 B@2 C@2 B@2 A@2 B@2 C@2 D@2 E@2 F@2 C@2 D@2 E@2 F@2 C@2 B@2 G ~@3 A@2 B@2 C@2 B@2 E@2 F@2 C@2 D@2 E@2 F@2 C@2
  B@2 A@2 B@2 C@2 B@2 A@2 B@2 C@2 B@2 A@2 B@2 C@2 B@2 A@2 B@2 C@2 B@2 A@4 G ~@7
>`.pickRestart({
  A: "ab1!16", B: "eb1!16", C: "bb1!16", D: "eb2!16", E: "c2!16", F: "f1!16", G: "ab1 ~@15",
})).s("gm_synth_bass_2").gain(0.36)

// bass · piano · "FLUTE"
const bass_2 = note("<db-1 ~@134>").s("gm_piano").gain(0.05)

// chords · flute
const flute = note(`<
  ~@3 A B C D E F G H I J G K L B M N O P Q R S T U V 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 W BC BD BE BF BG BH BI BJ@2 BK@2 BL@2 BM@2 S@2 U BN W BO BD BP S@2 U BN W BQ BD BP BR BS BT
  BU BV BW BT BX BY BS BZ BX CA BW CB CC BY BI CD BX CE CF BT CG BH BI BT CG CH CI CJ CK BY BI BY BI CL ~@7
>`.pickRestart({
  A: "[eb5,c6] ~ [eb5,ab5,c6] ~ [eb5,ab5,bb5] ~ [eb5,ab5,bb5] ~, ab5 ~@15", // Cm Ab Ebsus4
  B: "[eb5,ab5,db6] ~ [eb5,ab5,db6] ~ [eb5,ab5,c6] ~ [eb5,ab5,c6] ~", // Dbsus2 Ab
  C: "[eb5,ab5,c6]@2 ~@2 [eb5,ab5,c6]@3 ~ [eb5,ab5,bb5]@2 ~@2 [eb5,ab5,bb5]@2 ~@2", // Ab Ebsus4
  D: "[eb5,ab5,db6]@2 ~@2 [eb5,ab5,db6]@3 ~ [eb5,ab5,c6]@2 ~@2 [eb5,ab5,c6]@2 ~@2", // Dbsus2 Ab
  E: "[eb5,ab5,c6] ~ [eb5,ab5,c6] ~ [eb5,ab5,bb5] ~ [eb5,ab5,bb5] ~", // Ab Ebsus4
  F: "[eb5,ab5,db6]@2 ~@2 [eb5,ab5,db6]@2 ~@2 [eb5,ab5,c6]@2 ~@2 [ab5,c6] ~@3, ~@6 eb5 ~", // Dbsus2 Ab
  G: "[bb4,eb5,ab5] ~ [bb4,eb5,ab5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~", // Ebsus4 Eb
  H: "[bb4,eb5,f5]@3 ~ [bb4,eb5,f5]@2 ~@2 [bb4,eb5,g5]@2 ~@2 [bb4,eb5] ~@3, ~@6 g5 ~", // Bbsus4 Eb Eb5
  I: "[f5,db6]@2 ~@2 [f5,bb5,db6]@2 ~@2 [f5,bb5,c6]@2 ~@2 [f5,bb5,c6]@3 ~, bb5 ~@15", // Db Bbm Fsus4
  J: "[f5,bb5,eb6]@3 ~ [f5,bb5,eb6]@3 ~ [f5,bb5,db6]@2 ~@2 [f5,bb5,db6]@2 ~@2", // Ebsus2 Bbm
  K: "[bb4,eb5,f5]@2 ~@2 [bb4,eb5,f5]@2 ~@2 [bb4,eb5,g5]@3 ~ [bb4,eb5,g5]@2 ~@2", // Bbsus4 Eb
  L: "[eb5,ab5] ~@3 [eb5,ab5,c6]@3 ~ [eb5,ab5,bb5]@2 ~@2 [eb5,ab5,bb5]@2 ~@2, c6 ~@7", // Ab5 Ab Ebsus4
  M: "[bb4,eb5,ab5]@3 ~ [bb4,eb5,ab5]@3 ~ [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5]@3 ~", // Ebsus4 Eb
  N: "[eb5,f5]@2 ~@2 [bb4,eb5,f5]@2 ~@2 [bb4,g5]@2 ~@2 [bb4,eb5] ~@3, ~@8 eb5 ~@3 g5@2 ~@2", // Ebsus2 Bbsus4 Eb Eb5
  O: "[f5,bb5,db6]@2 ~@2 [bb5,db6]@2 f5 ~ [f5,bb5,c6]@2 ~@2 [bb5,c6]@2 f5 ~, ~@12 f5 ~@3", // Bbm Fsus4 Bbsus2
  P: "[f5,bb5,eb6]@2 ~@2 [bb5,eb6]@3 ~ [f5,bb5,db6]@2 ~@2 [bb5,db6] ~@3, ~@4 f5 ~@7 f5@2 ~@2", // Ebsus2 Eb5 Bbm
  Q: "[bb4,eb5,ab5] ~@3 [bb4,eb5,ab5]@2 ~@2 [bb4,eb5,g5]@2 ~@2 [eb5,g5]@2 bb4 ~", // Ebsus4 Eb
  R: "[bb4,eb5,f5]@2 ~@2 [bb4,eb5,f5]@2 ~@2 [bb4,eb5,g5]@2 ~@2 [eb5,g5]@2 bb4 ~", // Bbsus4 Eb
  S: "[c5,eb5,g5] ~ [c5,eb5,g5] ~ [c5,eb5,g5] ~ [c5,eb5,g5] ~", // Cm
  T: "[c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@2 ~@2 [c5,eb5,g5] ~@3", // Cm
  U: "[c5,f5,bb5] ~ [c5,f5,bb5] ~ [c5,f5,bb5] ~ [c5,f5,a5] ~", // Fsus4 F
  V: "[c5,f5,a5]@3 ~ [c5,f5,a5]@2 ~@2 [c5,f5,a5]@2 ~@2 [c5,f5,a5]@2 ~@2", // F
  W: "[db5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~", // Bbm
  X: "[db5,f5,bb5]@2 ~@2 [db5,f5,bb5]@2 ~@2 [db5,f5,bb5]@2 ~@2 [db5,f5,bb5]@3 ~", // Bbm
  Y: "[eb5,ab5,bb5]@2 ~@2 [eb5,ab5,bb5]@2 ~@2 [eb5,ab5,bb5]@2 ~@2 [eb5,ab5] ~@3, ~@6 bb5 ~", // Ebsus4 Ab5
  Z: "[eb5,g5,bb5]@2 ~@2 [eb5,g5,bb5]@2 ~@2 [eb5,g5,bb5]@2 eb5 ~ [g5,bb5]@2 eb5 ~", // Eb Gm
  AA: "[ab5,c6]@2 ~@2 [ab5,c6]@2 eb5 ~ [eb5,ab5,bb5]@2 ~@2 [eb5,ab5,bb5]@3 ~", // Ab Ebsus4
  AB: "[ab5,db6]@2 eb5 ~ [ab5,db6]@2 eb5 ~ [eb5,ab5,c6]@2 ~@2 [eb5,ab5,c6]@2 ~@2", // Db5 Ab
  AC: "[bb4,eb5,ab5]@2 ~@2 [eb5,ab5]@2 bb4 ~ [eb5,g5]@2 ~@2 [eb5,g5]@2 ~@2", // Ebsus4 Ab5 Eb
  AD: "[eb5,f5]@2 ~@2 [eb5,f5]@2 bb4@2 [eb5,g5]@2 ~@2 [bb4,g5] ~@3, ~@6 eb5 ~", // Ebsus2 Eb
  AE: "[f5,bb5,db6]@2 ~@2 [f5,bb5,db6]@3 ~ [bb5,c6]@2 f5 ~ [bb5,c6]@2 f5 ~", // Bbm Bbsus2
  AF: "[f5,bb5,eb6]@2 ~@2 [bb5,eb6]@3 ~ [f5,bb5,db6]@3 ~ [bb5,db6] ~@3, ~@4 f5 ~@7 f5@2 ~@2", // Ebsus2 Eb5 Bbm
  AG: "[bb4,eb5,ab5]@2 ~@2 [eb5,ab5]@2 bb4 ~ [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5]@2 bb4 ~", // Ebsus4 Ab5 Eb
  AH: "[bb4,eb5,f5]@2 ~@2 [eb5,f5]@2 bb4 ~ [bb4,eb5,g5]@2 ~@2 [eb5,g5]@2 ~@2, ~@12 bb4 ~@3", // Bbsus4 Ebsus2 Eb
  AI: "[eb5,ab5,c6]@2 ~@2 [ab5,c6]@2 eb5 ~ [ab5,bb5]@2 ~@2 [eb5,ab5,bb5]@2 ~@2", // Ab Absus2 Ebsus4
  AJ: "[eb5,ab5,db6]@3 ~ [eb5,ab5,db6]@2 ~@2 [eb5,ab5,c6]@2 ~@2 [ab5,c6] ~@3, ~@6 eb5 ~", // Dbsus2 Ab
  AK: "[bb4,eb5,ab5]@2 ~@2 [eb5,ab5]@2 bb4 ~ [bb4,eb5,g5]@2 ~@2 [eb5,g5]@2 bb4 ~", // Ebsus4 Ab5 Eb
  AL: "[eb5,f5]@2 ~@2 [bb4,eb5,f5]@3 ~ [bb4,eb5,g5]@2 ~@2 [eb5,g5]@2 ~@2, ~@12 bb4 ~@3", // Ebsus2 Bbsus4 Eb
  AM: "[f5,db6]@3 ~ [bb5,db6]@2 f5 ~ [f5,bb5,c6]@2 ~@2 [f5,bb5,c6]@3 ~, bb5 ~@15", // Db Bbm Fsus4
  AN: "[f5,bb5,eb6]@3 ~ [f5,bb5,eb6]@3 ~ [f5,bb5,db6]@3 ~ [f5,bb5,db6]@2 ~@2", // Ebsus2 Bbm
  AO: "[bb4,eb5,ab5]@3 ~ [eb5,ab5]@2 bb4 ~ [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5]@3 ~", // Ebsus4 Ab5 Eb
  AP: "[bb4,eb5,f5]@3 ~ [bb4,eb5,f5]@3 ~ [bb4,eb5,g5]@3 ~ [bb4,eb5,g5]@2 ~@2", // Bbsus4 Eb
  AQ: "[c5,eb5,g5]@2 ~@2 [eb5,g5]@2 c5 ~ [c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@2 ~@2", // Cm Eb Cm
  AR: "[c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@3 ~ [c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@2 ~@2", // Cm
  AS: "[c5,f5,bb5]@3 ~ [c5,f5,bb5]@3 ~ [c5,f5,bb5]@2 ~@2 [c5,f5,a5]@2 ~@2", // Fsus4 F
  AT: "[f5,a5]@2 c5 ~ [c5,f5,a5]@2 ~@2 [c5,f5,a5]@2 ~@2 [c5,f5,a5]@2 ~@2", // F
  AU: "[db5,f5,bb5]@3 ~ [db5,f5,bb5]@2 ~@2 [db5,f5,bb5]@3 ~ [f5,bb5]@2 db5@2", // Bbm Bb5
  AV: "[db5,f5,bb5]@2 ~@2 [db5,f5,bb5]@2 ~@2 [f5,bb5]@2 db5 ~ [db5,f5]@2 ~@2, ~@12 bb5 ~@3", // Bbm Bb5 Db
  AW: "[bb4,eb5,ab5]@2 ~@2 [bb4,eb5,ab5]@2 ~@2 [bb4,eb5,ab5]@3 ~ [bb4,eb5,g5]@3 ~", // Ebsus4 Eb
  AX: "[bb4,eb5,g5]@3 ~ [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5]@2 ~@2", // Eb
  AY: "[c5,eb5,g5]@3 ~ [c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@3 ~", // Cm
  AZ: "[c5,eb5,g5]@3 ~ [c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@3 ~ [c5,eb5,g5]@2 ~@2", // Cm
  BA: "[c5,f5,bb5]@3 ~ [c5,f5,bb5]@2 ~@2 [c5,f5,bb5]@2 ~@2 [c5,f5,a5]@3 ~", // Fsus4 F
  BB: "[f5,a5]@2 c5 ~ [c5,f5,a5]@3 ~ [c5,f5,a5]@2 ~@2 [f5,a5]@2 c5 ~", // F
  BC: "[db5,f5,bb5]@2 ~@2 [db5,f5,bb5]@3 ~ [f5,bb5]@2 db5 ~ [db5,bb5]@2 ~@2, ~@12 f5 ~@3", // Bbm Bb5 Gb
  BD: "[bb4,eb5,ab5]@3 ~ [bb4,eb5,ab5]@2 ~@2 [bb4,eb5,ab5]@2 ~@2 [bb4,eb5,g5]@2 ~@2", // Ebsus4 Eb
  BE: "[bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5] ~@3", // Eb
  BF: "[c5,eb5,ab5]@2 ~@2 [c5,eb5,ab5]@2 ~@2 [bb4,eb5,ab5]@2 ~@2 [bb4,eb5,ab5]@3 ~", // Ab Ebsus4
  BG: "[db5,eb5,ab5]@3 ~ [db5,eb5,ab5]@2 ~@2 [c5,eb5,ab5]@2 ~@2 [c5,eb5,ab5]@2 ~@2", // Dbsus2 Ab
  BH: "[c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [bb4,eb5,ab5] ~ [bb4,eb5,ab5] ~", // Ab Ebsus4
  BI: "[db5,eb5,ab5] ~ [db5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~", BJ: "ab5/2",
  BK: "[eb5@21 ~ eb5@2 eb6@2 db6@2 ~@2 c6@2]/2", BL: "[db6@21 ~ eb5@2 eb6@2 db6@3 ~ c6@2]/2", BM: "[bb5@15 ~]/2",
  BN: "[c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~", // F
  BO: "[db5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,f5] ~, ~@12 bb5 ~@3", // Bbm Db
  BP: "[bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~", // Eb
  BQ: "[db5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,bb5] ~, ~@12 f5 ~@3", // Bbm Gb
  BR: "[c5,eb5,ab5]@2 ~@2 [c5,eb5,ab5]@3 ~ [bb4,eb5,ab5]@3 ~ [bb4,eb5,ab5]@3 ~", // Ab Ebsus4
  BS: "[db5,eb5,ab5] ~ [db5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5] ~, ~@12 ab5 ~@3", // Dbsus2 Ab Cm
  BT: "[ab4,bb4,eb5] ~ [ab4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~", // Absus2 Eb
  BU: "[f4,bb4,eb5]@2 ~@2 [f4,bb4,eb5]@2 ~@2 [g4,bb4,eb5]@2 ~@2 [g4,bb4,eb5] ~@3", // Ebsus2 Eb
  BV: "[db5,bb5] ~ [db5,f5,bb5] ~ [c5,f5,bb5] ~ [c5,f5,bb5] ~, f5 ~@15", // Gb Bbm Fsus4
  BW: "[eb5,f5,bb5] ~ [eb5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,bb5] ~, ~@12 f5 ~@3", // Ebsus2 Bbm Gb
  BX: "[f4,bb4,eb5]@2 ~@2 [f4,bb4,eb5]@2 ~@2 [g4,bb4,eb5]@2 ~@2 [g4,bb4] ~@3, ~@6 eb5 ~", // Ebsus2 Eb Gm
  BY: "[c5,eb5,ab5]@2 ~@2 [c5,eb5,ab5]@2 ~@2 [bb4,eb5,ab5]@3 ~ [bb4,eb5,ab5]@2 ~@2", // Ab Ebsus4
  BZ: "[ab4,bb4,eb5]@2 ~@2 [ab4,bb4,eb5]@2 ~@2 [g4,eb5]@3 ~ [g4,bb4,eb5]@2 ~@2, ~@8 bb4 ~@7", // Absus2 Cm Eb
  CA: "[db5,bb5]@2 ~@2 [db5,f5,bb5]@2 ~@2 [c5,f5,bb5]@3 ~ [c5,f5,bb5]@2 ~@2, f5 ~@15", // Gb Bbm Fsus4
  CB: "[ab4,bb4,eb5]@2 ~@2 [ab4,bb4,eb5]@2 ~@2 [g4,bb4,eb5]@3 ~ [g4,bb4,eb5]@2 ~@2", // Absus2 Eb
  CC: "[f4,bb4,eb5]@2 ~@2 [f4,bb4,eb5]@2 ~@2 [g4,bb4,eb5]@3 ~ [bb4,eb5]@2 ~@2, ~@12 g4 ~@3", // Ebsus2 Eb Eb5
  CD: "[ab4,bb4,eb5]@3 ~ [ab4,bb4,eb5]@2 ~@2 [g4,bb4,eb5]@2 ~@2 [g4,bb4,eb5]@2 ~@2", // Absus2 Eb
  CE: "[db5,f5,bb5] ~ [db5,f5,bb5] ~ [c5,f5,bb5] ~ [c5,f5,bb5] ~", // Bbm Fsus4
  CF: "[eb5,f5,bb5] ~ [eb5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~", // Ebsus2 Bbm
  CG: "[f4,bb4,eb5] ~ [f4,bb4,eb5] ~ [g4,bb4,eb5] ~ [bb4,eb5] ~, ~@12 g4 ~@3", // Ebsus2 Eb Eb5
  CH: "[db5,f5,bb5]@2 ~@2 [db5,f5,bb5]@2 ~@2 [c5,f5,bb5]@2 ~@2 [c5,f5,bb5]@3 ~", // Bbm Fsus4
  CI: "[eb5,f5,bb5]@2 ~@2 [eb5,f5,bb5]@2 ~@2 [db5,f5,bb5]@3 ~ [f5,bb5] ~@3, ~@6 db5 ~", // Ebsus2 Bbm Bb5
  CJ: "[ab4,bb4,eb5]@2 ~@2 [ab4,bb4,eb5]@3 ~ [g4,bb4,eb5]@3 ~ [g4,bb4,eb5]@2 ~@2", // Absus2 Eb
  CK: "[f4,bb4,eb5]@3 ~ [f4,bb4,eb5]@3 ~ [g4,bb4,eb5]@3 ~ [g4,bb4] ~ ab5 ~, ~@6 eb5 ~", CL: "[c5,eb5,ab5] ~@7",
})).s("gm_flute").gain(0.25).pan(0.2)

// chords · synth strings 2 · "SYN STRING"
const synth_strings_2 = note(`<
  ~@3 A@6 B@2 C@2 D@4 E@2 F@2 G@2 H@2 I@4 J@6 C@2 K@6 C@2 L@6 M@2 N@2 O@2 P@4 Q@2 R@8 C@2 S@8 T@2 O@2 U@2 M@2 V@2 W@2
  X@2 Y@2 Z@6 AA@2 AB@4 AC@2 C@2 AD@6 AE@2 AF@7 ~@7
>`.pickRestart({
  A: "[c5@8 bb4@7 db5@9 c5@16 bb4@7 db5@9 c5@16 bb4@8 db5@8 c5@8, [eb4,ab4]@95 ~]/6", // Ab5
  B: "[ab4@7 g4@7 ~@2 f4@8 g4@6 ~@2, bb3, eb4@15 ~]/2", C: "[db5 c5 eb5 db5, [f4,bb4]@15 ~]/2",
  D: "[ab4@7 g4@8 f4@8 g4@6 ~@3 c5@8 bb4@8 db5@8 c5@8, bb3@33 ~@31, eb4@31 ~ [eb4,ab4]@31 ~]/4", // Ab5
  E: "[ab4@4 g4@3 ~ f4@4 g4@4, [bb3,eb4]]/2", F: "[db5@8 c5@8 eb5@7 db5@9, [f4,bb4]@15 ~]/2",
  G: "[ab4@8 g4@8 f4@8 g4@7 ~, [bb3,eb4]]/2", H: "[[c4,g4], eb4@15 ~]/2",
  I: "[bb4@13 a4@18 ~ [f4,bb4]@32, [c4,f4]@31 db4@31 ~@2]/4", // Bb5 F5
  J: "[ab4@14 g4@16 ~ c5@9 bb4@8 db5@8 c5@8 ~@8 g4@7 f4@8 ~ g4@7 ~, eb4@95 ~, bb3@31 ab4@40 ~@25, ~@2 bb3]/6",
  K: "[ab4@8 g4@8 f4@8 g4@6 ~ c5@8 ~ bb4@8 db5@8 c5@8 ~@8 g4@8 f4@8 g4@8, eb4@95 ~, bb3@33 ~@31 bb3@32, ~@31 ab4@41 ~@24]/6",
  L: "[ab4@8 g4@8 f4@8 ~@40 bb4@13 a4@18 ~, eb4@63 ~ f4@31 ~, bb3@16 c4@31 ~, ~@3 g4@5 ~@4]/6", M: "[db4,f4,bb4]/2",
  N: "[ab4@14 g4@17 ~, bb3, eb4@15 ~]/2", O: "[[c4,eb4,g4]@31 ~]/2",
  P: "[bb4@14 a4@17 ~ f4@31 ~, [c4,f4]@31 [db4,bb4]@31 ~@2]/4", Q: "[ab4@7 g4@8 ~, [bb3,eb4]]/2",
  R: "[c5@8 bb4@8 db5@7 ~ c5@16 bb4@8 db5@8 c5@16 bb4@8 db5@8 c5@8 ~@8 g4@8 f4@8 g4@8, ab4@13 ~@3, eb4@3 [bb3,eb4]]/8", // Eb5
  S: "[ab4@8 g4@8 f4@7 g4@7 ~@2 eb4@30 ~ bb4@14 ~ a4@17 ~ f4@31 ~, bb3@32 c4@62 ~ db4@31 ~@2, eb4@30 ~ g4@32 f4@31 ~ bb4@33]/8",
  T: "[ab4@14 g4@17 ~, [bb3,eb4]]/2", U: "[bb4@13 a4@18 ~, [c4,f4]@31 ~]/2", V: "[ab4@14 g4@15 ~@3, bb3, eb4@15 ~]/2",
  W: "[c5 bb4 db5 c5, [eb4,ab4]@31 ~]/2", X: "[ab4@8 g4@7 f4@8 g4@6 ~@3, [bb3,eb4]]/2",
  Y: "[db5 c5 eb5 db5, bb4, f4@15 ~]/2",
  Z: "[ab4@8 g4@8 f4@8 g4@6 ~@2 c5@8 bb4@8 db5@8 c5@8 ~@8 g4@8 f4@8 g4@7 ~, eb4@63 ~ bb3@32, bb3@4 ab4@5 ~@3, ~@32 eb4@15 ~]/6",
  AA: "[db5 c5 eb5 db5, [f4,bb4]@31 ~]/2", // Bb5
  AB: "[ab4@8 g4@8 f4@8 g4@5 ~@3 c5@8 bb4@8 db5@8 c5@8, eb4@63 ~, bb3@32 ab4@31 ~]/4",
  AC: "[ab4@7 g4@8 f4@8 g4@6 ~@3, bb3, eb4@15 ~]/2",
  AD: "[ab4@8 g4@8 f4@8 g4@5 ~@3 c5@8 bb4@8 db5@8 c5@8 ab4@8 g4@7 f4@8 ~ g4@7 ~, eb4@47 ~, bb3@31 ab4@31 ~@2 bb3@32]/6",
  AE: "[db5@8 c5@7 ~ eb5@8 db5@8, f4@15 ~, bb4@15 bb4@14 ~@3]/2",
  AF: "[ab4@7 g4@8 ~ f4@8 g4@6 ~@2 c5@8 bb4@8 db5@8 c5@16 bb4@8 db5@8 c5@16 ~@8, eb4@101 ~@11, bb3@16 ab4@35 ~@5]/7",
})).s("gm_synth_strings_2").gain(0.28).pan(0.7)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@23 A@2 B@2 C@2 D@3 ~@15 E F B@2 G H I@2 E F B@2 G H I@2 ~@4 J@2 K@2 L M N O P@2 Q@6 R@4 S@4 ~@8 T U V W U X V W T U
  V W U X V W Y L Z AA L M Z AA Y AB@2 AC@2 ~@7
>`.pickRestart({
  A: "[c3,c4]/2", B: "[f3,f4]/2", C: "[bb2,bb3]/2", D: "[[eb3,eb4]@11 ~@5]/3", E: "[c3,c4]",
  F: "[eb3,eb4] [c3,c4] [eb3,eb4] [c3,c4]", G: "[bb2,bb3]", H: "[db3,db4] [bb2,bb3] [db3,db4] [bb2,bb3]",
  I: "[eb3,eb4]/2", J: "[ab4,ab5]/2", K: "[bb4,bb5]/2", L: "[db5,db6] [c5,c6]", M: "[eb5,eb6] [db5,db6]",
  N: "[bb4,bb5]", O: "[db5,db6]", P: "[c5,c6]/2", Q: "[[bb4,bb5]@14 ~ a4@17 [bb4,bb5]@64, ~@14 a5@19 ~@63]/6",
  R: "[c5,c6]/4", S: "[bb4,bb5]/4", T: "c5 bb4", U: "db5 c5", V: "ab4 g4", W: "f4 g4", X: "eb5 db5",
  Y: "[c5,c6] [bb4,bb5]", Z: "[ab4,ab5] [g4,g5]", AA: "[f4,f5] [g4,g5]", AB: "[[db5,db6] [c5,c6]@2 [bb4,bb5]]/2",
  AC: "[[db5,db6]@4 c5@4 ab4@3 ~@5, ~@8 c6@13 ~@11]/2", // Db
})).s("gm_string_ensemble_1").gain(0.16).pan(0.8)

// other · string ensemble 2 · "STRINGS"
const string_ensemble_2 = note(`<
  ~@22 A B@2 C@2 D@2 E@2 ~@16 F G H@2 I J K@2 L M H@2 I J E@2 N ~@11 F G C@2 I J K@2 F O H@2 I J K@2 ~@44
>`.pickRestart({
  A: "~@7 eb4", B: "c4/2", C: "f4/2", D: "bb4/2", E: "eb4/2", F: "c4", G: "eb4@4 c4@4 eb4@4 c4@3 ~", H: "[f4@31 ~]/2",
  I: "bb3", J: "db4 bb3 db4 bb3", K: "[eb4@31 ~]/2", L: "c4@15 ~", M: "eb4@4 c4@3 ~ eb4@4 c4@3 ~", N: "ab3 ~",
  O: "eb4 c4 eb4 c4",
})).s("gm_string_ensemble_2").gain(0.4)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@3 A B A B A C D E F G D E A B H E F G D E I@2 J K L@2 D E A C D M F G D E A C D E N O P E Q R S T U V W X Y Z AA T
  AB AC AD AE AF C AG C A C AH E F G D E AI Z AJ AK AL AM AN AO Y AI AP AQ AL AR AS AT AU AV AW AX AY AZ BA E BB C BC BD
  N BE D BF BG C P BH BI G D BJ BK BL BM E BN BO BM E BP C BQ BR@2 ~@7
>`.pickRestart({
  A: "[eb4,ab4,c5] ~ [eb4,ab4,c5]!2 ~ [eb4,ab4,c5]!2 ~ [eb4,ab4,bb4] ~ [eb4,ab4,bb4]!2 ~ [eb4,ab4,bb4]!2 ~", // Ab Ebsus4
  B: "[eb4,ab4,db5] ~ [eb4,ab4,db5]!2 ~ [eb4,ab4,db5]!2 ~ [eb4,ab4,c5] ~ [eb4,ab4,c5]!2 ~ [eb4,ab4,c5]!3", // Dbsus2 Ab
  C: "[eb4,ab4,db5] ~ [eb4,ab4,db5]!2 ~ [eb4,ab4,db5]!2 ~ [eb4,ab4,c5] ~ [eb4,ab4,c5]!2 ~ [eb4,ab4,c5]!2 ~", // Dbsus2 Ab
  D: "[bb3,eb4,ab4] ~ [bb3,eb4,ab4]!2 ~ [bb3,eb4,ab4]!2 ~ [bb3,eb4,g4] ~ [bb3,eb4,g4]!2 ~ [bb3,eb4,g4]!2 ~", // Ebsus4 Eb
  E: "[bb3,eb4,f4] ~ [bb3,eb4,f4]!2 ~ [bb3,eb4,f4]!2 ~ [bb3,eb4,g4] ~ [bb3,eb4,g4]!2 ~ [bb3,eb4,g4]!2 ~", // Bbsus4 Eb
  F: "[f4,bb4,db5] ~ [f4,bb4,db5]!2 ~ [f4,bb4,db5]!2 ~ [f4,bb4,c5] ~ [f4,bb4,c5]!2 ~ [f4,bb4,c5]!2 ~", // Bbm Fsus4
  G: "[f4,bb4,eb5] ~ [f4,bb4,eb5]!2 ~ [f4,bb4,eb5]!2 ~ [f4,bb4,db5] ~ [f4,bb4,db5]!2 ~ [f4,bb4,db5]!2 ~", // Ebsus2 Bbm
  H: "[bb3,eb4,g4] ~ [bb3,eb4,ab4]!2 ~ [bb3,eb4,ab4]!2 ~ [bb3,eb4,g4] ~ [bb3,eb4,g4]!2 ~ [bb3,eb4,g4]!2 ~", // Eb Ebsus4 Eb
  I: "[c4,eb4,g4] ~ [c4,eb4,g4]!2 ~ [c4,eb4,g4]!2 ~ [c4,eb4,g4] ~ [c4,eb4,g4]!2 ~ [c4,eb4,g4]!2 ~", // Cm
  J: "[c4,f4,bb4] ~ [c4,f4,bb4]!2 ~ [c4,f4,bb4]!2 ~ [c4,f4,bb4] ~ [c4,f4,a4]!2 ~ [c4,f4,a4]!2 ~", // Fsus4 F
  K: "[c4,f4,a4] ~ [c4,f4,a4]!2 ~ [c4,f4,a4]!2 ~ [c4,f4,a4] ~ [c4,f4,a4]!2 ~ [c4,f4,a4]!2 ~", // F
  L: "[db4,f4,bb4] ~ [db4,f4,bb4]!2 ~ [db4,f4,bb4]!2 ~ [db4,f4,bb4] ~ [db4,f4,bb4]!2 ~ [db4,f4,bb4]!2 ~", // Bbm
  M: "[bb3,eb4,f4] ~ [bb3,eb4,f4]!2 ~ [bb3,eb4,f4]!2 ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] eb5 ~ [bb3,eb4,g4]!2 ~", // Bbsus4 Eb
  N: "[f4,bb4,db5] ~ [f4,bb4,db5]!2 ~ [f4,bb4,db5]!3 [f4,bb4,c5] ~ [f4,bb4,c5]!2 ~ [f4,bb4,c5]!2 ~", // Bbm Fsus4
  O: "[f4,bb4,eb5] ~ [f4,bb4,eb5]!2 ~ [f4,bb4,eb5]!3 [f4,bb4,db5] ~ [f4,bb4,db5]!2 ~ [f4,bb4,db5]!2 ~", // Ebsus2 Bbm
  P: "[bb3,eb4,ab4] ~ [bb3,eb4,ab4]!2 ~ [bb3,eb4,ab4]!3 [bb3,eb4,g4] ~ [bb3,eb4,g4]!2 ~ [bb3,eb4,g4]!2 ~", // Ebsus4 Eb
  Q: "[c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~ [c4,eb4,g4] ~ [c4,eb4,g4]!2 ~ [c4,eb4,g4]!2 ~", // Cm
  R: "[c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~ [c4,eb4,g4] ~ [c4,eb4,g4]!2 ~ [eb4,g4] [c4,eb4,g4] ~", // Cm Eb Cm
  S: "[c4,f4,bb4] ~ [c4,f4,bb4]!2 ~ [c4,f4,bb4]!2 ~ [c4,f4,bb4] ~@2 [c4,f4,bb4] ~@2 [c4,f4,bb4] ~", // Fsus4
  T: "[c4,f4,a4] ~ [c4,f4,a4]!2 ~ [c4,f4,a4]!2 ~ [c4,f4,a4] ~@2 [c4,f4,a4] ~@2 [c4,f4,a4] ~", // F
  U: "~@2 f4 [db4,f4,bb4] ~ [db4,f4,bb4]!2 ~ [db4,f4,bb4] ~@2 [db4,f4,bb4] ~@2 [db4,f4,bb4] ~", // Bbm
  V: "[db4,f4,bb4] ~ [db4,f4,bb4]!2 ~ [db4,f4,bb4]!2 ~ [db4,f4,bb4] ~@2 [db4,f4,bb4] ~@2 [db4,f4,bb4] ~", // Bbm
  W: "[bb3,eb4,ab4] ~ [bb3,eb4,ab4]!2 ~ [bb3,eb4,ab4]!2 ~ [bb3,eb4,ab4] ~ [bb3,eb4,ab4] ~ [bb3,eb4,ab4] ~ [bb3,eb4,g4] ~", // Ebsus4 Eb
  X: "[bb3,eb4,g4] ~ [bb3,eb4,g4]!2 ~ [bb3,eb4,g4]!2 ~ [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~", // Eb
  Y: "~@2 [c4,eb4,g4]!2 ~ [c4,eb4,g4]!2 ~ [c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~", // Cm
  Z: "[c4,eb4,g4] ~ [c4,eb4,g4]!2 ~ [c4,eb4,g4]!2 ~ [c4,eb4,g4] ~@2 [c4,eb4,g4]!2 ~ [c4,eb4,g4] ~", // Cm
  AA: "[c4,f4,bb4] ~ [c4,f4,bb4]!2 ~ [c4,f4,bb4]!2 ~ [c4,f4,bb4] ~@2 [c4,f4,a4] ~@2 [c4,f4,a4] ~", // Fsus4 F
// … 111 more lines