Strudelify

Amica donna mia

Ramazzotti

KeyG minorTempo125 bpm
0:00/0:00
// Amica donna mia — Ramazzotti
// 125 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 126 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 29.
setcpm(125/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 · piano
const piano = note(`<
  A@8 B@2 C@2 D@2 E F G@2 H I E J K L H M N O H ~ H P E Q K R H M S T U V W X@2 Y Z@2 AA AB AC AD AE AF AG@2 AH AI@2 AJ
  AK@5 ~ AL@2 AM@2 AN AO AP@2 AQ AR AN AS AT AU AQ AV AW AX AY AZ BA BB@2 BC BD@2 BE BF BG BH BI BJ BK@2 BL BM@2 BN BI
  BC BD@2 BE BF BG BH BI BJ BK@2 BL BM@2 BN BO@5 ~
>`.pickRestart({
  A: "[~@10 d4@2 e4@2 d4@4 a3@2 d4@2 e4@4 d4@4 a3@4 e3@2 ~@10 g3@3 ~ g3@2 ~@2 g3@3 ~ [g3,d4]@4 a3@4 ~@4 db4@4 d4@2 e4 ~ [a3,d4]@4 ~@2 d4@2 e4@4 [b3,d4]@4 a3@4 e3@2 a3@2 ~@8 b3@5 ~ a3@2 b3@3 ~ [b3,d4]@6, ~@14 [b2,gb4]@8 [g2,g3,b3]@8 [a2,db4]@8 d4@15 ~@9 d4@8 ~@16 d4 ~@15 d4@15 ~@11, ~@14 a3@3 ~@19 a3@5 ~ a3@7 ~@3 a3@9 ~@5 e3@4 ~@58, ~@38 [gb2,gb3]@8 g2@8 [e2,e3,b3]@8 a2@16 [b2,gb4]@8 [g2,g3]@8 [a2,db4]@8 [gb2,gb3]@7 ~ [g2,g3]@8 [e2,e3,g3]@10, ~@46 b3@6 ~@16 a3@10 ~@4 a3@4 b3@3 ~@17 a3@6 ~@16]/8", // G5 D5 Bm B5 G A Gb E5 …
  B: "[[a2,d4]@8 [a2,e3,db4]@7 ~, a3@29 ~@3]/2", C: "[b2,gb3,b3,d4]/2", D: "[[a2,gb3,a3,b3,d4]@31 ~]/2",
  E: "[g2,g3,a3,b3,d4]", F: "d4@10 ~@3 d4@2 ~, [gb2,gb3,a3]", G: "[[e3,a3,d4]@8 [a1,e3,a3,db4]@7 ~, a2@29 ~@3]/2",
  H: "[b2,gb3,b3,d4]", I: "[a2,gb3,a3,b3,d4]", J: "[gb2,gb3,a3,d4]@15 ~", K: "[e2,g3,b3,d4]", L: "[a2,a3,d4]",
  M: "[a2,gb3,a3,b3,d4]@7 ~", N: "[g2,g3,a3,b3,d4]@11 ~ [gb2,gb3,a3,d4]@3 ~", O: "[e2,g3,b3,d4] [a2,a3,db4]",
  P: "[a2,gb3,a3,b3,d4]@15 ~", Q: "[gb2,a3,d4]@15 ~", R: "[a2,a3,db4]", S: "~@3 e3@5, [e2,g3,b3,e4]",
  T: "[a2,a3,db4,e4] [gb2,gb3,bb3,db4]", U: "b2@9 ~@3 [gb3,b3,d4]@4, [gb3,b3,d4]@3 ~, bb3 ~@9 b2@6",
  V: "[gb3,a3,d4]@5 ~ [gb3,a3,b3,d4]@2, a2@9 ~ a2@6", W: "g2@11 ~ g2@3 ~, [g3,a3,b3,d4]@15 ~",
  X: "[[gb2,gb3,b3]@8 [gb2,gb3,bb3] ~@7, db4@9 ~@7]/2", // B5 Gb
  Y: "d3@3 ~@9 [a3,d4]@3 ~, [a3,d4,gb4]@6 gb4@9 ~, ~@4 d3@5 ~ d3@6, ~@3 [a3,d4]@3 ~@2", // D5 D D5
  Z: "[[g3,b3,d4]@6 ~@6 [g3,b3]@3 ~ [a3,gb4]@4 ~@2 [a3,gb4]@6 [a3,gb4]@2 d3@2, g2@9 ~ g2@6 d3@3 ~ d3@10 ~@2, ~@6 [g3,b3,d4]@6 d4@9 ~ d4@9 ~]/2", // G D G
  AA: "g2@4 ~@2 g3@3 ~ g2@2 g3@2 g2@2, [g3,b3,d4]@6 [b3,d4]@9 ~, ~@4 g2@5 ~@7", // G Bm
  AB: "b2@3 ~@9 [b3,d4,gb4]@3 ~, [b3,d4,gb4]@3 [b3,d4,gb4]@3 ~@2, ~@4 b2@6 b2@5 ~", // Bm
  AC: "[a3,db4,gb4]@4 ~@2 [a3,db4]@4 ~@2 [a3,db4]@2 a2 ~, a2@3 ~ a2@5 ~ a2@4 ~@2, ~@6 gb4@9 ~", // Gbm A
  AD: "[a3,b3,d4]@6 g3@3 ~ g3@2 g2@2 g3 ~, g2@11 ~@5, ~@6 [a3,b3,d4]@9 ~", // Bm7
  AE: "[a2,g3]@3 ~ a2@2 g3@2 a2@2 g3@2 a2@2 ~@2, [a3,d4]@6 [a3,d4]@7 ~@3, ~@4 g3 ~@11", // A7 D5
  AF: "[a3,d4,gb4]@2 ~ [a3,d4,gb4]@2 d3 ~ d3, d3@3 ~ d3@5 ~@3 [a3,d4,gb4]@4", // D
  AG: "[g2@3 ~@7 g2@2 b3 ~ g2@2 [a3,gb4]@4 ~@2 [a3,d4,gb4]@4 d3@2 [a3,d4,gb4]@2 d3@2, [g3,b3,d4]@6 [g3,b3,d4]@6 d4@9 ~@7 b3 ~@3, ~@4 g2@6 ~@2 a3@4 d3@3 ~ d3@5 ~@7]/2", // D G
  AH: "[a3,b3,d4]@2 ~ [a3,b3,d4]@2 g2 [a3,b3,d4] g2, g2@3 ~ g2@4 ~@8", // Bm7
  AI: "[~@13 d4 gb4@2, [b2,b3]@6 [bb2,bb3]@7 ~ [a2,a3]@8 [ab2,ab3]@10, ~@2 d4@5 ~@3 d4@5 ~@3 d4@5 ~@9, ~@2 gb4@3 ~ gb4@3 ~ gb4@3 ~@3]/2", // B Bb A Ab
  AJ: "[g2,a3,b3,d4]@6 g2@4 ~@2 g2@2 a3 ~, ~@6 [b3,d4]@9 ~, ~@6 a3@3 ~ a3@4 ~@2", // G Bm
  AK: "[[b3,db4,gb4]@4 ~@2 [db4,gb4]@4 d4@2 e4@2 [b3,d4]@4 b3@2 d4@2 e4@3 ~ d4@4 a3@4 e3@2 ~@10 b3@4 g3@2 a3@2 b3@4 d4@3 ~ a3@4 e3@2 a3@2 e3@2 a3@2 e3@2 a3 ~ [a2,e3,a3,db4] ~, gb2@3 ~ gb2@9 ~ b2@8 [g2,b3]@8 [a2,db4]@8 d4@14 ~@28, ~@6 bb3@2 ~@6 gb4@6 ~@16 a3@4 ~@2 a3@7 ~@31, ~@38 [gb2,gb3]@8 g2@8 [e2,e3,g3]@8 [a2,d4]@15 ~@3, ~@46 g3@3 ~@31]/5", // Bsus2 Gb5 Bm A G A Gb Em …
  AL: "[c3,g3,c4,eb4]/2", AM: "[[bb2,g3,bb3,c4,eb4]@31 ~]/2", AN: "[ab2,ab3,bb3,c4,eb4]",
  AO: "eb4@10 ~@3 eb4@2 ~, [g2,g3,bb3]", AP: "[[f3,bb3,eb4]@8 [bb1,f3,bb3,d4]@7 ~, bb2@29 ~@3]/2", AQ: "[c3,g3,c4,eb4]",
  AR: "[bb2,g3,bb3,c4,eb4]", AS: "[g2,g3,bb3,eb4]@15 ~", AT: "[f2,ab3,c4,eb4]", AU: "[bb2,bb3,eb4]",
  AV: "[bb2,g3,bb3,c4,eb4]@7 ~", AW: "~@3 f3@5, [f2,ab3,c4,f4]", AX: "[bb2,bb3,d4,f4] [g2,g3,b3,d4]",
  AY: "c3@9 ~@3 [g3,c4,eb4]@4, [g3,c4,eb4]@3 ~, b3 ~@9 c3@6", AZ: "[g3,bb3,eb4]@5 ~ [g3,bb3,c4,eb4]@2, bb2@9 ~ bb2@6",
  BA: "ab2@11 ~ ab2@3 ~, [ab3,bb3,c4,eb4]@15 ~", BB: "[[g2,g3,c4]@8 [g2,g3,b3] ~@7, d4@9 ~@7]/2",
  BC: "eb3@3 ~@9 [bb3,eb4]@3 ~, [bb3,eb4,g4]@6 g4@9 ~, ~@4 eb3@5 ~ eb3@6, ~@3 [bb3,eb4]@3 ~@2", // Eb5 Eb Eb5
  BD: "[[ab3,c4,eb4]@6 ~@6 [ab3,c4]@3 ~ [bb3,g4]@4 ~@2 [bb3,g4]@6 [bb3,g4]@2 eb3@2, ab2@9 ~ ab2@6 eb3@3 ~ eb3@10 ~@2, ~@6 [ab3,c4,eb4]@6 eb4@9 ~ eb4@9 ~]/2", // Ab Eb Ab
  BE: "ab2@4 ~@2 ab3@3 ~ ab2@2 ab3@2 ab2@2, [ab3,c4,eb4]@6 [c4,eb4]@9 ~, ~@4 ab2@5 ~@7", // Ab Cm
  BF: "c3@3 ~@9 [c4,eb4,g4]@3 ~, [c4,eb4,g4]@3 [c4,eb4,g4]@3 ~@2, ~@4 c3@6 c3@5 ~", // Cm
  BG: "[bb3,d4,g4]@4 ~@2 [bb3,d4]@4 ~@2 [bb3,d4]@2 bb2 ~, bb2@3 ~ bb2@5 ~ bb2@4 ~@2, ~@6 g4@9 ~", // Gm Bb
  BH: "[bb3,c4,eb4]@6 ab3@3 ~ ab3@2 ab2@2 ab3 ~, ab2@11 ~@5, ~@6 [bb3,c4,eb4]@9 ~", // Cm7
  BI: "[bb2,ab3]@3 ~ bb2@2 ab3@2 bb2@2 ab3@2 bb2@2 ~@2, [bb3,eb4]@6 [bb3,eb4]@7 ~@3, ~@4 ab3 ~@11", // Bb7 Eb5
  BJ: "[bb3,eb4,g4]@2 ~ [bb3,eb4,g4]@2 eb3 ~ eb3, eb3@3 ~ eb3@5 ~@3 [bb3,eb4,g4]@4", // Eb
  BK: "[ab2@3 ~@7 ab2@2 c4 ~ ab2@2 [bb3,g4]@4 ~@2 [bb3,eb4,g4]@4 eb3@2 [bb3,eb4,g4]@2 eb3@2, [ab3,c4,eb4]@6 [ab3,c4,eb4]@6 eb4@9 ~@7 c4 ~@3, ~@4 ab2@6 ~@2 bb3@4 eb3@3 ~ eb3@5 ~@7]/2", // Eb Ab
  BL: "[bb3,c4,eb4]@2 ~ [bb3,c4,eb4]@2 ab2 [bb3,c4,eb4] ab2, ab2@3 ~ ab2@4 ~@8", // Cm7
  BM: "[~@13 eb4 g4@2, [c3,c4]@6 [b2,b3]@7 ~ [bb2,bb3]@8 [a2,a3]@10, ~@2 eb4@5 ~@3 eb4@5 ~@3 eb4@5 ~@9, ~@2 g4@3 ~ g4@3 ~ g4@3 ~@3]/2", // C B Bb A
  BN: "[ab2,bb3,c4,eb4]@6 ab2@4 ~@2 ab2@2 bb3 ~, ~@6 [c4,eb4]@9 ~, ~@6 bb3@3 ~ bb3@4 ~@2", // Ab Cm
  BO: "[[c4,d4,g4]@4 ~@2 [d4,g4]@4 eb4@2 f4@2 [c4,eb4]@4 c4@2 eb4@2 f4@4 eb4@3 ~ bb3@4 f3 ~ bb3 ~ [eb2,bb2,eb3]@30 ~@12, g2@3 ~ g2@9 ~ c3@8 [ab2,c4]@7 ~ [bb2,d4]@7 ~ g3@25 ~@17, ~@3 b3 ~@3 g4@3 ~@9 [bb3,eb4]@14 ~@7]/5", // Csus2 G5 Cm Eb5 Ab Bb Eb5
})).s("gm_piano").gain(0.44)

// bass · acoustic bass
const bass = note(`<
  ~@4 A@4 B C D E F G H I J K L M N O P Q R S T U V W R X N Y Z AA AB S P AC AD AE AF AG AH AI AJ AI AK R AE AL K AI AK
  AI AM AN@2 AO AP@5 ~ AQ AR AS AT AU H AV AW AX AY AZ BA BB BC BD BE BB BF BG BH BI BJ BK BL BM BL BN BD BH BO AW BL BN
  BL BP BQ@2 BR AW BL BM BL BN BD BH BO AW BL BN BL BP BQ@2 BR BS@5 ~
>`.pickRestart({
  A: "[~@5 d3 e3 b2@4 g2@4 a2@4 gb2@4 g2@4 e2@5]/4", B: "a2", C: "a1@7 ~, b1@3 ~@13", D: "b1", E: "b1@3 b2",
  F: "a1@15 ~", G: "a1", H: "g1@5 ~ g1@10", I: "gb1@5 ~ gb1@10", J: "a1@5 ~ a1@9 ~", K: "a1@5 ~ a1@4 e2@2 a2@2 a1@2",
  L: "b1@5 ~ b1@4 gb2@2 b2@2 b1@2", M: "a1@5 ~ a1@6 e2@2 a1@2", N: "g1@5 ~ g1@8 d2@2", O: "gb1@5 ~ gb1@8 d2@2",
  P: "e1@5 ~ e1@6 b1@2 e1@2", Q: "a1@5 ~ a1@5 ~ a1@2 gb1@2", R: "b1@5 ~ b1@4 gb1@2 b1@4", S: "a1@5 ~ a1@5 ~ a1@3 ~",
  T: "g2@5 ~ g1@5 ~ gb1@3 ~", U: "e1@6 e1@2 a1@7 ~", V: "b1@5 ~ b1@8 gb1@2", W: "b1 ~@7", X: "a1@5 ~ a1@6 a1@3 ~",
  Y: "gb1@5 ~ gb1@6 d2@2 gb1@2", Z: "e1@5 ~ e1@8 b1@2", AA: "a1@5 ~ a1@6 gb1@2 a1@2", AB: "b1@3 b1@3 gb1 b1",
  AC: "a1@3 a1 gb1@3 bb1", AD: "b1@3 b1@2 gb1 b1@2", AE: "a1@5 ~ a1@4 gb1@2 a1@4", AF: "g1@5 ~ g1@3 ~ g1 ~ g1@3 ~",
  AG: "gb1@5 ~ gb1@6 gb2@2 db2@2", AH: "gb1@3 ~@13", AI: "d2@5 ~ d2@5 ~ d2@2 a1@2", AJ: "g1@5 ~ g1@6 g1@2 a1@2",
  AK: "g1@5 ~ g1@5 ~ g1@2 a1@2", AL: "g1@5 ~ g1@5 ~ g1@2 d2@2", AM: "g1@5 ~ g1@5 ~ g1@2 a1 ~",
  AN: "[b1@5 ~ bb1@7 ~ a1@7 ~ ab1@9 ~]/2", AO: "g1@5 ~ g1@6 g1@3 ~",
  AP: "[gb1@5 ~ gb1@7 ~ b1@8 g1@8 a1@8 gb1@8 g1@8 e1@8 a1@15 ~ a1@2]/5", AQ: "c2", AR: "c2@3 c3", AS: "bb1@15 ~",
  AT: "bb1", AU: "ab1@5 ~ ab1@10", AV: "bb1@5 ~ bb1@9 ~", AW: "bb1@5 ~ bb1@4 f2@2 bb2@2 bb1@2",
  AX: "c2@5 ~ c2@4 g2@2 c3@2 c2@2", AY: "bb1@5 ~ bb1@6 f2@2 bb1@2", AZ: "ab1@5 ~ ab1@8 eb2@2", BA: "g1@5 ~ g1@8 eb2@2",
  BB: "f1@5 ~ f1@6 c2@2 f1@2", BC: "bb1@5 ~ bb1@5 ~ bb1@2 g1@2", BD: "c2@5 ~ c2@4 g1@2 c2@4",
  BE: "bb1@5 ~ bb1@5 ~ bb1@3 ~", BF: "bb1@3 bb1 g1@3 b1", BG: "c2@3 c2@2 g1 c2@2", BH: "bb1@5 ~ bb1@4 g1@2 bb1@4",
  BI: "ab1@5 ~ ab1@3 ~ ab1 ~ ab1@3 ~", BJ: "g1@5 ~ g1@6 g2@2 d2@2", BK: "g1@3 ~@13", BL: "eb2@5 ~ eb2@5 ~ eb2@2 bb1@2",
  BM: "ab1@5 ~ ab1@6 ab1@2 bb1@2", BN: "ab1@5 ~ ab1@5 ~ ab1@2 bb1@2", BO: "ab1@5 ~ ab1@5 ~ ab1@2 eb2@2",
  BP: "ab1@5 ~ ab1@5 ~ ab1@2 bb1 ~", BQ: "[c2@5 ~ b1@7 ~ bb1@7 ~ a1@9 ~]/2", BR: "ab1@5 ~ ab1@6 ab1@3 ~",
  BS: "[g1@5 ~ g1@7 ~ c2@8 ab1@8 bb1@8 eb2@42]/5",
})).s("gm_acoustic_bass").gain(0.44)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@4 A@6 ~@20 B@8 C@5 D@2 E F@2 G H@2 I J K@2 L M N@2 O P@5 ~@17 Q@5 R@2 S T@2 U V@2 W X Y@2 Z AA AB@2 AC X S T@2 U V@2
  W X Y@2 Z AA AB@2 AC AD@4 ~@2
>`.pickRestart({
  A: "[~@10 d4@2 ~@6 b3@2 d4@2 e4@4 d4@4 a3@4 e3@2 ~@6 a3@3 [g2,g3,b3]@7 a3@2 b3@4 ~@6 a4@11 b4 db5 d5 [e5,gb5] g5 a5@13 ~@3, ~@12 e4@2 [b3,d4]@5 ~@17 a3@4 ~@24 a3@24 ~@8, ~@13 gb4@9 ~@16 d4@15 ~@5 d4@22 ~@16, ~@8 b2@3 [g2,g3,b3]@4 [a2,db4]@4 [gb2,gb3]@4 ~@4 e2@5 a2@14 ~@2]/6", // G Esus2 Bm G A Gb
  B: "[b3@15 a3@16 ~@16 gb3@16 e3@16 [a3,a4]@16 b3@16 a3@14 ~@3, d5 ~, gb4@31 ~@97, ~@15 a4@49 ~@64]/8", // A
  C: "[[e4,b4,e5]@15 [a3,a4]@8 [bb3,bb4]@8 ~ b3@15 [a3,a4]@16 g3@16 ~, ~@15 db5@16 d5@49, ~@31 gb4@16 ~@33]/5", // E5 A Bb A
  D: "[~@15 bb4@2 ~@15, [gb3,gb4,db5]@9 ~@7]/2", E: "[d5,d6] ~@3 [d5,d6] ~@3 [d5,d6] ~@3 [d5,e5,d6] ~@3",
  F: "[d5,d6] ~@3 [d5,d6] ~@3 [d5,d6] ~@3 [d5,d6] ~@3", G: "[d5,d6] ~@3 [d5,d6] ~@3 [d5,d6] ~@3 d6@2 ~@2, ~@12 d5 ~@3",
  H: "[~@8 d5@7 [a4,db5]@16 ~, gb5@31 ~, b4 ~]/2", I: "b4 a4 [g4,a4] b4 a4 g4 a4 b4 a4 g4 a4 b4 a4 b4 db5 ~",
  J: "db5 b4 db5 d5 db5 b4 db5 d5 db5 b4 db5 d5 db5@2 d5 e5", K: "[d5,d6] ~ [d5,d6] ~ [d5,d6] ~ [d5,d6] ~",
  L: "[d5,d6]@2 ~@2 [d5,d6]@2 ~@2 [d5,d6] ~@3 [d5,d6]@2 ~@2", // D
  M: "[d5,d6]@2 ~@2 [d5,d6]@2 ~@2 [d5,d6]@2 ~@2 [d5,d6]@3 ~", // D
  N: "[[b4,b5]@6 [bb4,bb5]@8 [a4,a5]@7 [ab4,ab5]@11, a4 ~@31]/2", O: "[b4,g5]",
  P: "[gb5@10 d5@2 e5@2 [b3,gb5]@8 g3@8 ~ a3@6 ~@5 a4@3 ~@4 d4@3 ~@2 b4@4 ~@5 a3@14 [a3,a4,a5]@3, gb4@14 ~@8 e5@3 ~@5 a4@8 [gb3,d5]@7 b4@6 ~ a4@2 e4@20 ~@6, bb4@8 ~@6 b4@17 ~@6 gb4@5 ~@3 g4@13 d5@19 ~@3, ~@46 g3@7 e3@9 ~@18]/5", // B5 A D
  Q: "[[f4,c5,f5]@15 [bb3,bb4]@8 [b3,b4]@8 ~ c4@15 [bb3,bb4]@16 ab3@16 ~, ~@15 d5@16 eb5@49, ~@31 g4@16 ~@33]/5", // F5 Bb B Bb
  R: "[~@15 b4@2 ~@15, [g3,g4,d5]@9 ~@7]/2", S: "[eb5,eb6] ~@3 [eb5,eb6] ~@3 [eb5,eb6] ~@3 [eb5,f5,eb6] ~@3",
  T: "[eb5,eb6] ~@3 [eb5,eb6] ~@3 [eb5,eb6] ~@3 [eb5,eb6] ~@3", // Eb
  U: "[eb5,eb6] ~@3 [eb5,eb6] ~@3 [eb5,eb6] ~@3 eb6@2 ~@2, ~@12 eb5 ~@3", // Eb
  V: "[~@8 eb5@7 [bb4,d5]@16 ~, g5@31 ~, c5 ~]/2", W: "c5 bb4 [ab4,bb4] c5 bb4 ab4 bb4 c5 bb4 ab4 bb4 c5 bb4 c5 d5 ~",
  X: "d5 c5 d5 eb5 d5 c5 d5 eb5 d5 c5 d5 eb5 d5@2 eb5 f5", Y: "[eb5,eb6] ~ [eb5,eb6] ~ [eb5,eb6] ~ [eb5,eb6] ~",
  Z: "[eb5,eb6]@2 ~@2 [eb5,eb6]@2 ~@2 [eb5,eb6] ~@3 [eb5,eb6]@2 ~@2", // Eb
  AA: "[eb5,eb6]@2 ~@2 [eb5,eb6]@2 ~@2 [eb5,eb6]@2 ~@2 [eb5,eb6]@3 ~", // Eb
  AB: "[[c5,c6]@6 [b4,b5]@8 [bb4,bb5]@7 [a4,a5]@11, bb4 ~@31]/2", AC: "[c5,ab5]",
  AD: "[g5@10 eb5@2 f5@2 [c4,c5,g5]@8 ~@8 [bb2,d4]@7 ~ bb3@15 ~@11, g4@14 ~@8 [ab3,eb4,c5]@9 ~@6 eb2@22 ~@5, b4@8 ~@21 bb4@8 ~@27]/4", // C5 Bb Ab
})).s("gm_string_ensemble_1").gain(0.3)

// other · string ensemble 1 · soft notes
const string_ensemble_1_soft = note(`<
  ~@7 A B@2 ~@22 C D@5 E ~@2 F@3 ~@7 G ~@7 E ~ H@2 I@2 ~@17 J ~@2 K@3 ~@7 L ~@7 J ~@7 L ~@7 J ~@2 M@2 ~@2
>`.pickRestart({
  A: "~@3 g3@5", B: "[~@15 a1@14 ~@3, ~@15 e3@9 ~@8]/2", C: "[g3,g4,b4]",
  D: "[~@15 g4@16 ~ db5@14 ~@14 b4@3 a4@14 ~@3, ~@15 e5@32 [gb4,d5]@30 ~@3]/5", E: "g4",
  F: "[~ b4@2, ~@15 g4@17 ~@16]/3", G: "~@15 d5", H: "[~@9 d5@5 db5@7 ~@11]/2", I: "[~@15 a4@14 ~@3]/2", J: "ab4",
  K: "[~ c5@2, ~@15 ab4@17 ~@16]/3", L: "~@15 eb5", M: "[~@6 g4@17 ~@9, ~@5 eb3@20 ~@7]/2",
})).s("gm_string_ensemble_1").gain(0.18)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@10 A B C D E F G H A I J K L M A N O P Q R A 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@2 AT AU@5 ~ AV AW AX AY AZ BA BB BC AV BD BE BF BG BH AV BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ CA
  CB CC@2 CD BX BQ BR BS BT BU BV BW BX BY BZ CA CB CC@2 CD CE@5 ~
>`.pickRestart({
  A: "[gb3,b3,d4]@4 ~@2 [gb3,b3,d4]@4 b2@2 [gb3,b3,d4]@2 b2 ~, b2@3 ~ b2@5 ~@7", // Bm
  B: "[gb3,b3,d4]@2 b2 gb3 ~ gb3 ~ b2, b2@3 ~@3 [b3,d4]@6 [gb3,b3,d4]@4, ~@8 b2@5 ~@3", // Bm
  C: "[a3,d4]@4 a2@2 gb3@3 gb3 ~@4 b2 ~, a2@3 ~@3 [a3,d4]@4 b2@4 ~@2, ~@3 [gb3,a3,b3,d4]", // D5 Bm7
  D: "[gb3,a3,b3,d4]@4 ~@2 [gb3,a3,b3,d4]@4 b2@2 [gb3,a3,b3,d4]@2 b2 ~, b2@3 ~ b2@5 ~@7", // Bm7
  E: "[g3,b3,d4]@4 ~@2 [g3,b3,d4]@4 ~@2 [g3,b3,d4]@3 ~, g2@3 ~ g2@5 ~ g2@5 ~", // G
  F: "[a3,d4]@4 ~@2 [a3,d4]@4 ~@2 [a3,d4]@3 ~, gb2@3 ~ gb2@5 ~ gb2@6", // D5
  G: "a2@3 ~@3 [e3,a3,d4]@4 a2@2 [e3,a3,d4]@2 a2 ~, [a3,d4]@6 f3 ~@9, ~@4 a2@5 ~@7", // Dsus2 D5
  H: "[e3,a3,db4]@4 ~@2 [e3,a3,db4]@4 ~@2 [e3,a3,db4]@3 ~, a2@3 ~ a2@5 ~ a2@5 ~", // A
  I: "a2@3 ~@3 [gb3,a3,b3,d4]@4 a2@2 ~ a2 ~@2, [gb3,a3,b3,d4]@6 ~@6 [gb3,a3,b3,d4]@3 ~, ~@4 a2@5 ~@7", // Bm7
  J: "g2@3 ~@3 [g3,a3,b3,d4]@4 g2@2 [g3,a3,b3,d4]@2 g2 ~, [g3,a3,b3,d4]@3 ~@5, ~@4 g2@5 ~@7", // G
  K: "[gb3,a3,d4]@4 ~@2 [gb3,a3,d4]@4 gb2@2 [gb3,a3,d4]@2 gb2 ~, gb2@3 ~ gb2@5 ~@7", // D
  L: "[g3,b3,d4]@2 ~ [g3,b3,d4]@2 ~ [g3,b3,d4] e2, e2@13 ~@3, e3@3 ~ e3@4 ~@2 e3@4 ~@2", // G
  M: "[g3,a3,d4]@4 ~@2 d4 ~@3 a2@2 e3@2 a2@2, a2@3 ~ a2@5 ~@7, ~@3 [a3,db4]@3 [a3,db4]@2", // Gsus2 A
  N: "[a3,d4]@2 ~ [a3,d4]@2 ~ [a3,d4] ~, a2@3 ~ a2@5 ~ a2@4 ~@2", // D5
  O: "[g3,a3,b3,d4]@4 ~@2 [g3,a3,b3,d4]@4 g2@2 ~@2 g2 ~, g2@3 ~ g2@5 ~@3 [g3,a3,b3,d4]@4", // G
  P: "[g3,b3,d4]@2 ~ [g3,b3,d4] a2@2 e3 a2, e2 ~, ~@4 e3@4 [a3,db4]@7 ~", // G A
  Q: "[gb3,b3,d4]@4 ~@2 [gb3,b3,d4]@4 b2@2 [gb3,b3,d4]@2 b2 ~, ~@4 b2@5 ~@7", R: "[b2,gb3,b3,d4] ~@15",
  S: "[gb3,a3,d4]@2 ~ [gb3,a3,d4]@2 a2 [gb3,a3,d4] a2, a2@2 ~@2 a2@5 ~@7", // D
  T: "[g3,a3,b3,d4]@4 ~@2 [g3,a3,b3,d4]@4 g2@2 ~ g2 ~@2, g2@3 ~ g2@4 ~@4 [g3,a3,b3,d4]@3 ~", // G
  U: "[gb3,a3,d4]@2 ~ [gb3,a3,d4]@2 gb2 [gb3,a3,d4] gb2, gb2@3 ~ gb2@5 ~@7", // D
  V: "[g3,b3,d4]@2 ~ [g3,b3,d4]@2 e3 [g3,b3,d4] e3, e3@3 ~ e3@5 ~@7", // G
  W: "[a3,d4]@4 ~@2 [a3,db4]@4 a2@2 e3@2 a2 ~, a2@3 ~ a2@5 ~@7, ~@6 e3 ~@5 [a3,db4]@4", // D5 A
  X: "[gb3,b3,d4]@2 ~ [gb3,b3,d4]@2 b2 [gb3,b3,d4] b2, b2@3 ~ b2@4 ~@8, db4 ~@15", // Bm
  Y: "[gb3,a3,d4]@4 ~@2 [gb3,a3,b3,d4]@4 a2@2 [gb3,a3,b3,d4]@2 a2 ~, a2@3 ~ a2@5 ~@7", // D Bm7
  Z: "[g3,b3,e4]@2 ~ [g3,b3,e4]@2 ~ [g3,b3,e4] e2, e2@3 ~, e3@2 ~@2 e3@5 ~ e3@4 ~@2", // Em
  AA: "[a3,db4,e4]@4 a2@2 [a3,db4,e4]@2 gb2@3 ~@3 [bb3,db4,gb4]@2, a2@3 ~@5 [bb3,db4,gb4]@6 ~@2, ~@3 gb2", // A Gb
  AB: "[b3,d4,gb4]@2 ~ [gb3,b3,d4,gb4]@2 b2 [gb3,b3,d4] b2, b2@3 ~ b2@5 ~@7", // Bm
  AC: "[gb3,a3,d4]@2 ~ [gb3,a3,d4]@2 a2 [gb3,a3,d4] a2, a2@3 ~ a2@5 ~@7", // D
  AD: "[g3,a3,b3,d4]@4 ~@2 [g3,a3,b3,d4]@4 g2@2 [g3,a3,b3,d4]@2 g2 ~, g2@3 ~ g2@5 ~@7", // G
  AE: "[gb3,b3,db4]@4 ~@2 [gb3,b3,db4]@4 gb2@2 [gb3,b3,db4]@2 gb2 ~, gb2@3 ~ gb2@4 ~@8", AF: "[gb2,gb3,bb3,db4] ~@7",
  AG: "d3@2 a3@2 d3@2 [a3,d4,gb4]@2 ~@2 [d4,gb4] ~ [d4,gb4]@2 d3@2, [d4,gb4]@5 ~@5 a3@5 ~, a3 ~@7 d3@5 ~@3", // D
  AH: "b3@2 b3@2 d3@2 [g3,a3,b3,d4]@2 [g2,d3]@2 g3@2 [g2,d3]@2 g3 ~, g2@8 ~@2 [b3,d4]@5 ~, [d4,g4]@6 g4@9 ~, ~@12 a2 ~@3", // G G5 Bm G5
  AI: "[d3,a3]@2 a3@2 d3@2 [a3,d4,gb4]@2 d3@2 a3@2 ~@2 a3 ~, [d4,gb4]@3 ~@2 [d4,gb4]@3, ~@3 d3", // D5 D
  AJ: "[g2,g3] g3 g2 [g3,b3,d4] g2 g3 ~ g3, [b3,d4]@6 ~@4 [b3,d4]@5 ~, ~@3 g2", // G Bm
  AK: "[b3,d4,gb4]@2 b2 b3 ~ b3 [b3,d4,gb4] b2, b2@3 ~@3 [d4,gb4]@5 ~@5, ~@8 b2@5 ~@3", // Bm D
  AL: "[a3,db4,gb4]@4 a2@2 a3@2 ~@2 a3@2 [a2,a3,db4,gb4]@2 a3 ~, a2@2 ~@4 [db4,gb4]@5 ~@5, ~@2 a2 ~", // Gbm Gb5
  AM: "a3@3 ~@3 [g3,a3,b3,d4]@4 d3@2 [g3,a3,b3,d4]@2 g2@2, g2@13 ~@3, [b3,d4] d3 ~@2, ~@3 a3@2 ~@11", // G Bm
  AN: "[a3,d4,e4]@4 a2@2 a3@2 ~@2 [a3,db4]@2 [a3,db4,e4]@2 a2 ~, a2@3 ~@5 a2@5 ~@3, f4 ~@5 [d4,e4]@6 ~@4", // Asus4 A Dsus2
  AO: "d3@2 a3@2 d3@2 [a3,d4,gb4]@2 d3@2 a3@2 d3@2 a3 ~, [d4,gb4]@5 ~@5 [d4,gb4]@5 ~, a3 ~@15", // D
  AP: "[b3,d4,g4]@2 ~ [d4,g4]@2 d3 [b3,d4,g4] g2, g2@13 ~@3, [d3,g3]@3 ~ [d3,g3]@6 ~@6, ~@6 b3@3 ~@7", // G G5 G G5
  AQ: "[d3,a3]@3 ~@3 [a3,d4,gb4]@4 d3@2 [a3,d4,gb4]@2 d3@2, [d4,gb4]@4 d3@5 ~@7, ~@3 a3@2 ~@11", // D5 D
  AR: "[d3,g3,b3]@3 ~ b3 ~ [b3,d4,g4]@4 ~@2 [b3,d4,g4]@2 g2 ~, g2@13 ~@3, [d4,g4]@4 [d3,g3]@5 ~ [d3,g3]@4 ~@2", // G G5
  AS: "[[b2,b3,d4,gb4]@5 ~ [bb2,bb3,d4,gb4]@6 gb4 ~ [a2,a3,d4,gb4]@7 ~ [ab2,ab3,d4,gb4]@8 ~@2]/2", // Bm Bbaug D Abm7b5
  AT: "[a3,b3,d4]@4 ~@6 g2@2 a3@2 [g2,b3] ~, g2@9 ~@7, g3@3 ~ g3@5 ~@7, ~@6 d4@9 ~, ~@6 [a3,b3]@6 b3 ~@3", // Bm7 G Asus2
  AU: "[[b3,db4,gb4]@4 gb2@2 ~ gb2@3 ~@2 gb2 ~ [b2,b3,d4]@7 ~ [g2,a3,b3,d4]@7 ~ [a2,a3,db4]@8 [gb2,a3,d4]@7 ~ [g2,g3,b3,d4]@7 ~ [e2,g3,b3,d4]@7 ~ a2@6 a2@2 e3@2 a2@2 e3@2 a2 ~ [a2,e3,a3] ~, gb2@3 ~@3 [bb3,db4,gb4]@7 ~@49 d4@15 ~@3, ~@62 a3@13 ~@5]/5", // Bsus2 Bm G A D G Em7 A5 …
  AV: "[g3,c4,eb4]@4 ~@2 [g3,c4,eb4]@4 c3@2 [g3,c4,eb4]@2 c3 ~, c3@3 ~ c3@5 ~@7", // Cm
  AW: "[g3,c4,eb4]@2 c3 g3 ~ g3 ~ c3, c3@3 ~@3 [c4,eb4]@6 [g3,c4,eb4]@4, ~@8 c3@5 ~@3", // Cm
  AX: "[bb3,eb4]@4 bb2@2 g3@3 g3 ~@4 c3 ~, bb2@3 ~@3 [bb3,eb4]@4 c3@4 ~@2, ~@3 [g3,bb3,c4,eb4]", // Eb5 Cm7
  AY: "[g3,bb3,c4,eb4]@4 ~@2 [g3,bb3,c4,eb4]@4 c3@2 [g3,bb3,c4,eb4]@2 c3 ~, c3@3 ~ c3@5 ~@7", // Cm7
  AZ: "[ab3,c4,eb4]@4 ~@2 [ab3,c4,eb4]@4 ~@2 [ab3,c4,eb4]@3 ~, ab2@3 ~ ab2@5 ~ ab2@5 ~", // Ab
  BA: "[bb3,eb4]@4 ~@2 [bb3,eb4]@4 ~@2 [bb3,eb4]@3 ~, g2@3 ~ g2@5 ~ g2@6", // Eb5
  BB: "bb2@3 ~@3 [f3,bb3,eb4]@4 bb2@2 [f3,bb3,eb4]@2 bb2 ~, [bb3,eb4]@6 gb3 ~@9, ~@4 bb2@5 ~@7", // Ebsus2 Eb5
  BC: "[f3,bb3,d4]@4 ~@2 [f3,bb3,d4]@4 ~@2 [f3,bb3,d4]@3 ~, bb2@3 ~ bb2@5 ~ bb2@5 ~", // Bb
  BD: "bb2@3 ~@3 [g3,bb3,c4,eb4]@4 bb2@2 ~ bb2 ~@2, [g3,bb3,c4,eb4]@6 ~@6 [g3,bb3,c4,eb4]@3 ~, ~@4 bb2@5 ~@7", // Cm7
  BE: "ab2@3 ~@3 [ab3,bb3,c4,eb4]@4 ab2@2 [ab3,bb3,c4,eb4]@2 ab2 ~, [ab3,bb3,c4,eb4]@3 ~@5, ~@4 ab2@5 ~@7", // Ab
  BF: "[g3,bb3,eb4]@4 ~@2 [g3,bb3,eb4]@4 g2@2 [g3,bb3,eb4]@2 g2 ~, g2@3 ~ g2@5 ~@7", // Eb
  BG: "[ab3,c4,eb4]@2 ~ [ab3,c4,eb4]@2 ~ [ab3,c4,eb4] f2, f2@13 ~@3, f3@3 ~ f3@4 ~@2 f3@4 ~@2", // Ab
  BH: "[ab3,bb3,eb4]@4 ~@2 eb4 ~@3 bb2@2 f3@2 bb2@2, bb2@3 ~ bb2@5 ~@7, ~@3 [bb3,d4]@3 [bb3,d4]@2", // Absus2 Bb
  BI: "[bb3,eb4]@2 ~ [bb3,eb4]@2 ~ [bb3,eb4] ~, bb2@3 ~ bb2@5 ~ bb2@4 ~@2", // Eb5
  BJ: "[ab3,c4,f4]@2 ~ [ab3,c4,f4]@2 ~ [ab3,c4,f4] f2, f2@3 ~, f3@2 ~@2 f3@5 ~ f3@4 ~@2", // Fm
  BK: "[bb3,d4,f4]@4 bb2@2 [bb3,d4,f4]@2 g2@3 ~@3 [b3,d4,g4]@2, bb2@3 ~@5 [b3,d4,g4]@6 ~@2, ~@3 g2", // Bb G
  BL: "[c4,eb4,g4]@2 ~ [g3,c4,eb4,g4]@2 c3 [g3,c4,eb4] c3, c3@3 ~ c3@5 ~@7", // Cm
  BM: "[g3,bb3,eb4]@2 ~ [g3,bb3,eb4]@2 bb2 [g3,bb3,eb4] bb2, bb2@3 ~ bb2@5 ~@7", // Eb
  BN: "[ab3,bb3,c4,eb4]@4 ~@2 [ab3,bb3,c4,eb4]@4 ab2@2 [ab3,bb3,c4,eb4]@2 ab2 ~, ab2@3 ~ ab2@5 ~@7", // Ab
  BO: "[g3,c4,d4]@4 ~@2 [g3,c4,d4]@4 g2@2 [g3,c4,d4]@2 g2 ~, g2@3 ~ g2@4 ~@8", BP: "[g2,g3,b3,d4] ~@7",
  BQ: "eb3@2 bb3@2 eb3@2 [bb3,eb4,g4]@2 ~@2 [eb4,g4] ~ [eb4,g4]@2 eb3@2, [eb4,g4]@5 ~@5 bb3@5 ~, bb3 ~@7 eb3@5 ~@3", // Eb
  BR: "c4@2 c4@2 eb3@2 [ab3,bb3,c4,eb4]@2 [ab2,eb3]@2 ab3@2 [ab2,eb3]@2 ab3 ~, ab2@8 ~@2 [c4,eb4]@5 ~, [eb4,ab4]@6 ab4@9 ~, ~@12 bb2 ~@3", // Ab Ab5 Cm Ab5
  BS: "[eb3,bb3]@2 bb3@2 eb3@2 [bb3,eb4,g4]@2 eb3@2 bb3@2 ~@2 bb3 ~, [eb4,g4]@3 ~@2 [eb4,g4]@3, ~@3 eb3", // Eb5 Eb
  BT: "[ab2,ab3] ab3 ab2 [ab3,c4,eb4] ab2 ab3 ~ ab3, [c4,eb4]@6 ~@4 [c4,eb4]@5 ~, ~@3 ab2", // Ab Cm
// … 143 more lines

More by Ramazzotti