Strudelify

Una lunga storia d'amore

Gino Paoli

KeyE majorTempo122 bpm
0:00/0:00
// Una lunga storia d'amore — Gino Paoli
// 122 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 92 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/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 · electric bass pick · "PICK BASS"
const bass = note(`<
  ~@3 A B@2 C@2 D E F G D H I J D H E K L M E N O P Q H R H I S L T U K V W X Y Z AA AB AC AD@2 AE AF AG@2 AH AI AJ AK
  AL AM AN AO AP AQ AR@2 AS AT AU@2 AV AW AX AY AZ BA@2 BB BC BD@2 M BE@2 BF@2 BG@2 BH@2 BI ~@5
>`.pickRestart({
  A: "~@3 b1", B: "[e1@7 e2@8 b1]/2", C: "[e1@9 f#2 e2 c#2 b1@2 c#2@2, ~@18 e2 ~@13]/2", D: "a1@13 ~ a1@2", E: "g#1",
  F: "f#1", G: "b1@13 ~ b1 ~", H: "b1", I: "e1 f#1", J: "g#1 b1", K: "e1@3 f#1@3 g#1@2", L: "a1@13 ~ a1 ~", M: "a1",
  N: "c#2", O: "a1 g#1", P: "f#1@13 ~ e1@2", Q: "d2 c#2", R: "a1@12 ~@2 a1 ~", S: "g#1@4 b1@3 a#1", T: "b1@7 a1",
  U: "g#1@13 ~ g#1 f#1", V: "a1@13 ~@3", W: "a1@5 ~ a2 ~@3 a2@2 a1@3 ~", X: "g#1@11 ~ g#1@2 b1@2",
  Y: "c#2@5 g#1 c#1 g#1", Z: "a1@3 g#1", AA: "f#1@3 e1", AB: "d1@8 d2@3 ~ d2@2 c#2@2",
  AC: "b1@4 g#2 f#2@2 f#1, ~@8 f#2 ~@7", AD: "[e1@9 ~ e1@2 f#1@2 g#1@11 ~ g#2@2 g#1@4]/2", AE: "a1@4 a2@2 a1 ~ a1@8",
  AF: "b1@3 b2@2 f#2@3", AG: "[e2@2 e1 ~ e1@8 f#1@2 g#1@8 g#2@6 g#1@4]/2", AH: "a1@6 e2@2 a2@5 e2 ~ a1",
  AI: "g#1@3 g#2 c2@4", AJ: "c#2@10 c#3@2 g#2@2 c#2 ~", AK: "c#2@6 c#1@5 ~ c#2@3 ~", AL: "g#1@6 g#2 ~ g#2@4 g#1@4",
  AM: "a1@5 a2 a1 g#1", AN: "f#1@7 ~ f#2@4 f#1@4", AO: "e1@3 e2", AP: "d1@10 d2@2 d1@3 ~",
  AQ: "b1@5 b1@4 ~ g#2@2 f#2@4, ~@10 f#2 ~@5", AR: "[e2 b1 e1@4 f#1 g#1@5 g#2@2 g#1@2]/2", AS: "a1@3 a2@3 e2 a1",
  AT: "b1@5 ~ b1@6 b0@4", AU: "[e1@9 ~ e1@2 f#1@2 g#1@10 g#2@4 g#1@2 b1@2]/2", AV: "a1@10 e2@2 a2@2 a1 ~",
  AW: "g#1@6 d#2@2 c2@7 ~", AX: "c#2@10 g#2@3 ~ c#3@2", AY: "c#2 ~ c#2@8 g#2@2 c#2@4", AZ: "g#1@2 e2 g#2@3 g#1@2",
  BA: "[a1@13 g#1@3]/2", BB: "f#1@5 f#2 f#1@2", BC: "b1@15 ~", BD: "[e1@25 ~ e1@2 b1@2 e2@2]/2", BE: "b1/2",
  BF: "[e1@22 b1@2 c#2@2 e2 ~ e2@4]/2", BG: "[e1@18 f#2@2 e2@2 c#2@2 b1@3 ~ c#2@4, ~@18 e2 ~@13]/2", BH: "[e1@9 ~@7]/2",
  BI: "e1",
})).s("gm_electric_bass_pick").gain(0.38)

// bass · electric bass pick · "PICK BASS" · soft notes
const bass_soft = note("<~@36 A ~@48 B C@3 D@2 ~>".pickRestart({
  A: "~@14 a1 ~", B: "~@2 b2@2 e3@2 a3@2 g#3@2 a3!2 b3@3 ~",
  C: "[b3@18 ~ b3@3 a3@3 g#3@3 f#3@3 e3@4 ~ d#3@5 b2@6 ~, ~@19 a3 ~@28]/3", D: "e1/2",
})).s("gm_electric_bass_pick").gain(0.19)

// chords · acoustic guitar nylon · "A.GUITAR"
const acoustic_guitar_nylon = note(`<
  A@2 B@4 C@2 D E@2 F G H I@2 J K L M@2 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@3 AM@2 AN AO AP@2
  AQ AR AS AT AU@3 AV@2 AW@3 AX AY AZ@3 BA@2 BB@2 BC@5 BD@2 BE@4 BF@5 ~
>`.pickRestart({
  A: "[~ b3 ~ b3 ~ g#3 b3 ~@3 b3 ~ b3 ~ b3 e4, g#3@6 ~@2 e3@4 ~@2 f#3@17 ~, ~@2 e4@8 ~ e4@3 ~@2, ~@13 a3@2 ~]/2",
  B: "[~@2 b3 a3 e4 g#3 ~@4 b3 ~ b3 ~ b3 ~@2 b3 ~ b3 ~ g#3 b3 ~@3 b3 ~ b3 ~ b3 e4, g#3@5 ~@9 f#3@17 ~@9 e3@4 ~@2 f#3@17 ~, ~@2 e4@5 ~@5 e4@9 ~ e4@7 ~ e4@5 ~ e4@16 ~@2 e4@6 ~@4, ~@9 a3@2 ~@2 a3@2 ~ g#3@3 ~@6 a3@2 ~@2 a3@2 ~]/4",
  C: "[~@2 b3 ~ e4 g#3 ~@4 b3 e4@2 ~ b3 e4, g#3@5 ~ a3@4 ~@4 f#3@18, ~@2 e4@5 ~@5 e4@9 ~@11, ~@18 a3@4 ~@4 a3@5 ~]/2",
  D: "~@12 a3@3 ~, e3@5 ~@3, ~ a3@5 ~@2, ~@4 c#4@11 ~, ~@3 b3@4 ~",
  E: "[~@11 e4@5, e3@15 ~ f#3@16, ~ g#3@4 ~@4 a3@5 ~@2, ~@2 b3@4 b3@4 b3@3 ~@3, ~@3 e4@5 ~@8]/2",
  F: "~@5 [a4,b4] b3 a4, ~ d#4 c#4 ~, ~@3 [a4,b4]@2 ~@3", G: "~@5 a3@2 ~, b3@3 b3@3 ~@2, ~@2 a3@3 ~@3",
  H: "d#4@6 d#4@9 ~", I: "[~@6 b3@4 ~@2 d#4@6 e4@7 ~@3 d#4@2 ~@2, ~@2 e4@8 e4@8 ~@8 e4@5 ~, ~@2 d#4@3 ~@11]/2",
  J: "~@2 a3 b3@2 a3 b3@2, e4@3 ~@5", K: "d#4@5 ~ f#4@5 ~ d#4@3 ~", L: "f#4@6 e4@6 d#4@3 ~",
  M: "[~ g#3@2 a3@2 e4 b3 ~ a3 ~@2 b3@2 a3 b3@2, e4@7 ~@7 e4@16 ~@2]/2", N: "d#4@2 b3 ~@2 f#3 ~@2, ~@3 d#4@4 ~",
  O: "f#4@3 e4@3 d#4@2", P: "~@6 c#4@2 ~@4 c#4@3 ~, e4@13 ~@3, ~@8 e3@5 ~@3, ~@5 g#3@3",
  Q: "c#4@5 ~@7 a3@4, ~@6 e4@9 ~", R: "c#4@4 a3@2 ~@4 a3@2 c#4@3 a3, ~@6 e4@5 ~@5, ~@8 f#3@5 ~@3",
  S: "d4@5 ~@7 f#3@4, ~@6 d4@7 ~@3, ~@5 a3@3", T: "~@6 e4@2 ~@4 a3@2 b3 ~, e4@2 a3@2 d#4@3 ~, ~@2 f#3@7 ~ f#3@5 ~",
  U: "b3@2 a3 ~@2 a3 ~ e3, ~@3 c#4@3 b3@2, ~@2 e3 ~", V: "d#4@2 b3 ~@2 b3 ~ b3, ~@6 f#4@5 ~ d#4@4, ~@4 f#3@3 ~",
  W: "~ e4 d#4 b3 ~ e4 d#4 b3, e3@7 ~ f#3@7 ~", X: "~@2 e4@2 d#4@2 b3 ~ b3@2 e4@2 d#4@2 b3@2, g#3@7 ~@9",
  Y: "~@2 a3 b3@2 a3 ~ e3, c#4@5 ~@7 c#4@4, ~ e3@2 ~@5", Z: "d#4@2 b3 c#4@2 b3 d#4 f#3",
  AA: "~@4 g#3@2 ~@4 g#3@2 b3@2 e3 ~, b3@2 ~ b3@2 ~@3, ~@2 f#3@5 ~ f#3@4 ~@4",
  AB: "[e3,g#3,e4]@5 ~ [f#3,a3,e4]@5 ~ [g#3,b3,e4]@4", // E F#m7 E
  AC: "~@2 a3 ~@2 a3 c#4 e3, c#4@5 ~ b3@4 ~@6, ~@2 e3@5 ~ e3@4 ~@4",
  AD: "~@4 b3@2 ~@4 b3@2 d#4@2 f#3 ~, d#4@4 ~@2 f#4@5 ~@5, ~@2 f#3@4 ~@2 f#3@5 ~@3",
  AE: "d#4@4 g#3@2 b3@4 g#3@2 ~@2 f#3 ~, ~@3 b3", AF: "g#3@2 ~@2 g#3 e4 c#4 g#3, ~@4 c#4@5 ~@7, ~@3 e3@5",
  AG: "b3@2 a3 ~@2 a3 ~ e3, ~@6 c#4@5 ~ b3@4, ~@2 e3 ~", AH: "c#4@2 a3 ~@2 a3 c#4 e3, ~@6 e4@5 ~@5, ~@2 e3 ~",
  AI: "d4@2 a3 ~ f#3 ~@2 d4, ~@3 d4@3 f#3@2, ~@5 a3@2 ~",
  AJ: "~@2 f#3@2 ~@2 f#3@2 ~@4 b3@2 f#4 ~, e4@4 b3@4 d#4@5 ~@3, ~@10 f#3@5 ~",
  AK: "~@12 b3@3 ~, b3@3 ~, ~@3 e4@4 ~, ~@5 g#3@2 ~",
  AL: "[~@14 g#3@2 ~@12 g#3@2 ~@12 e4@5 ~, b3@5 b3@2 ~ c#4@3 c#4@4 e4@6 ~@3, ~@2 g#3@2 g#3@3 ~@3 g#3@4 ~@4 c#4@5 ~, ~@3 f#3@4 ~@13 a3@3 ~, ~@6 e3@3 ~@7 e3@3 ~@5]/3",
  AM: "[~@10 e3@2 ~@16 b3@2 e4 ~, b3@11 ~@3 g#3@8 ~@2 f#4@6 ~@2, ~@4 g#3@7 ~ f#3@18 ~@2, ~@6 e4@6 ~@6 b3@8 g#3@5 ~, ~@10 e4@5 ~]/2",
  AN: "~@12 c#4@3 ~, e4@7 ~, ~@2 a3@3 a3@2 ~, ~@3 c#4@3 ~@2",
  AO: "~@2 g#3 ~@3 d#4 g#3, c#4@6 c#4@9 ~, ~@8 c4@7 ~, ~@10 d#3@5 ~",
  AP: "[~@12 c#4@2 ~@14 g#3@3 ~, c#4@6 ~@2 g#3@3 g#3@3 ~@2, ~@2 g#3@3 g#3@2 e3@3 ~@2 b3@3 ~, ~@3 e4@4 ~@2 c#4@6 ~]/2",
  AQ: "~@10 b3@5 ~, f#4@15 ~, ~ g#3@3 ~@4, ~@6 e4@9 ~",
  AR: "~@12 c#4@3 ~, c#4@3 ~, ~@2 a3@3 a3@2 ~, ~@3 b3@4 ~, ~@4 e3@3 ~",
  AS: "~@12 c#4@3 ~, c#4@3 ~, ~@2 a3@3 ~@3, ~@6 e4@9 ~", AT: "~@12 a3@2 c#4 ~, c#4@7 ~, ~ a3@2 ~, ~@3 e4@4 ~",
  AU: "[d4@3 ~@3 f#4 ~@3 b3 ~@10 b3@2 ~, ~@6 d4@8 ~@2 e4@6 e4@9 ~ e4@6 f#4@8 ~@2, ~@5 a3@2 f#3@2 ~@3 d#4@3 ~@2 g#3@5 ~@2, ~@13 b3@2 f#3@8 ~, ~@28 f#4@8 b3@4 e4@7 ~]/3",
  AV: "[~@10 b3@4 ~@14 a3@2 b3 ~, e4@4 e4@11 ~, ~ g#3@5 ~@3 e3@3 b3@3 ~, ~@2 b3@3 ~@3 c#4@3 c#4@4 ~, ~@6 f#4@8 ~@6 a3@6 e3@5 ~]/2",
  AW: "[~@44 b3@3 ~, b3@3 b3@3 b3@5 b3@4 ~@2 b3@4 g#3@2 ~, ~@4 a3@6 a3@4 ~@2 g#3@4 g#3@6 g#3@5 ~ g#3@6 g#3@2 f#3@6 ~@2, ~@9 f#3@6 ~@3 e3@5 ~, ~@14 e4@9 ~]/3",
  AX: "~@12 c#4@3 ~, c#4@3 c#4@3 ~@2, ~ e3@3 ~ a3@2 ~, ~@2 b3@5 ~",
  AY: "~@2 g#3 ~@3 d#4 f#3, c#4@6 c#4@9 ~, ~@2 d#3@8 d#3@5 ~, ~@8 c4@7 ~",
  AZ: "[~@28 c#4@2 ~@14 f#3@3 ~, c#4@6 c#4@8 ~@7 e3@3, ~@2 g#3@3 g#3@2 e3@2 ~ g#3@3 g#3@2 e3@3 ~ f#3@3 ~@2, ~@3 e4@4 ~ b3@7 ~ b3@7 ~, ~@11 e4@4 ~@9]/3",
  BA: "[b4@3 a4@3 g#4@3 f#4@3 e4@4, ~@18 e4 ~@13]/2",
  BB: "[e3@4 ~@22 c#4@5 ~, ~@6 e4@12 e4@13 ~, ~@10 a3@6 ~@8 a3@7 ~, ~@6 c#4@7 ~@3]/2",
  BC: "[~@2 g#3@2 ~@6 g#3@2 ~@6 a3@2 ~@2 a3@2 ~@2 b3@3 ~@3 [c#4,e4]@15 e3@29 ~@4, e3@6 ~@2 e3@6 ~@2 f#3@6 ~@2 g#3@5 ~ e3@17 ~@33, ~@4 e4@7 ~ e4@6 ~@2 e4@7 ~@4 a3@16 ~@33]/5", // C#m
  BD: "[~ b3 ~ b3 ~ g#3 b3 ~@3 b3 ~ b3 ~ b3 e4, g#3@6 ~@2 e3@4 ~@2 f#3@17 ~, ~@2 e4@7 a3@2 e4@3 ~@2, ~@13 a3@2 ~]/2",
  BE: "[~@2 b3 a3 e4 g#3 ~@4 b3 ~ b3 ~ b3 ~@2 b3 ~ b3 ~ g#3 b3 ~@2 a3 b3 ~ b3 ~ b3 e4, g#3@4 ~@10 f#3@17 ~@9 e3@4 ~@2 f#3@16 ~@2, ~@2 e4@5 ~@5 e4@8 ~@2 e4@6 ~@2 e4@4 ~@2 e4@16 ~@2 e4@6 ~@4, ~@9 a3@2 ~@2 a3@2 ~ g#3@3 ~@10 a3@2 ~]/4",
  BF: "[~@4 b3@2 a3@2 e4@2 g#3@2 ~@6 a3@2 b3@3 ~@3 b3@4 a3@5 b3@5 e4@7 ~@2 e4@31, g#3@5 ~@9 f#3@28 ~@5 e3@33, ~@2 e4@4 ~@6 e4@10 ~ e4@16 ~@9 [g#3,b3]@32]/5", // G#m
})).s("gm_acoustic_guitar_nylon").gain(0.27)

// chords · acoustic guitar nylon · "A.GUITAR" · soft notes
const acoustic_guitar_nylon_2 = note(`<
  ~ A ~@6 B@2 C D E F@3 G H I ~ J K L M N O P ~ Q R ~@2 S T ~@4 U V Q W R ~ X Y Z AA@2 AB AC AD AE AF AG AH@2 AI@2 AJ
  AK@3 AL AM@4 AN@2 AO ~@2 AP@2 AQ AR ~ AS@2 ~@12
>`.pickRestart({
  A: "~@2 a3@3 ~@11", B: "[~@10 e3@4 b3@6 ~@6 g#3@5 ~]/2", C: "~@3 a3, ~@5 b3@3", D: "~ [a4,b4] ~@5 b4, e4 ~@3",
  E: "~@3 b3, ~@4 e3@3 ~",
  F: "[~@14 f#3@4 ~@12 b3@4 ~@2 d#4@2 b3@5 ~@3 b3@2, a3@7 ~@17, ~ f#3@4 f#3@2 ~@17, ~@2 b3@4 b3@3 ~@15]/3",
  G: "~@2 e3@5 ~ e3@5 ~@3", H: "~@4 b3@2 ~@4 b3@3 ~ f#3@2, ~@2 f#3@5 ~ f#3@4 ~@4",
  I: "~@4 b3@3 ~@3 g#3@3 ~@3, ~@2 g#3@5 ~@9", J: "~@4 a3@2 ~@2 e3@4 ~@2 a3 ~, ~ e3@2 ~@5", K: "~ f#3@3 ~@3 f#3, ~@3 b3",
  L: "~@4 b3@3 ~@3 g#3@2 ~@2 g#3@2", M: "~ g#3@2 ~@4 e3", N: "~@2 a3 ~@2 e3 ~ e3, ~ e3@2 ~@5", O: "~@2 f#3@5 ~@7 f#3@2",
  P: "~@2 a3 ~ f#3 ~@3, ~@2 f#3@5 ~@9", Q: "~@2 e3@5 ~@9", R: "~ f#3@2 ~@5", S: "~@8 e3@5 ~@3",
  T: "~ f#3@2 ~ f#3@2 ~@2", U: "~@2 f#3@5 ~ f#3@5 ~@3", V: "~@2 e3@3 ~@11", W: "~ e3@2 ~@5",
  X: "~@4 e3@3 e3, ~ e3@3 ~@4, ~@2 g#3@3 ~@3", Y: "g#3 ~ e3@10 ~@4", Z: "~ e3@4 e3@2 ~",
  AA: "[~@3 e3@3 ~@3 e3@3 e3 ~@3, ~ a3@3 ~@2 e3@3 ~@7, ~@14 a3@13 ~@5]/2", AB: "~@3 g#3@2 ~@3", AC: "~@4 e3@3 e3",
  AD: "a3 ~ d#3@8 ~@6", AE: "~@4 e3@3 ~", AF: "~@4 e3@6 e3@4 b3 ~", AG: "~ g#3, ~@2 b3@3 ~@3",
  AH: "[~ e3@3 ~@3 e3@2 e3@3 ~ a3@2 e3, ~@12 e3@3 ~]/2",
  AI: "[~@2 e3@6 e3@2 ~@14 f#3@6 a3 ~, ~@5 e3@10 ~, ~@8 a3@2 a3@3 ~@3, ~@9 f#3@3 ~@4]/2", AJ: "~ f#3@6 ~",
  AK: "[~@6 g#3 b3@3 ~@4 g#3@9 ~]/3", AL: "~@2 e3@6 e3@6 e3 ~", AM: "[~@4 e3@3 e3@3 ~@5 e3@2 ~@3 e3@3 e3@4 ~@5]/4",
  AN: "~ e3@3 e3@3 ~", AO: "~@2 e3@3 ~@2 b3", AP: "[~@4 e3@10 ~@8 e3@9 ~, ~ a3@4 ~@2 e3@4 ~@5, ~@2 a3 ~]/2",
  AQ: "~@3 g#3 ~@3 g#3", AR: "~@6 e4 ~", AS: "[~ b3@27 ~@4, f#3@7 ~]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.07)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@7 A@2 B@3 ~@14 C D E F@4 G@4 H@2 I@5 J@7 K@8 L M@6 N@7 O@2 P@5 Q@2 R@2 S T U V@2 ~@3
>`.pickRestart({
  A: "[~@8 g#4@3 a4@2 ~@13 d#5@3 e5@3, ~@13 b4@11 a4@7 ~, ~@16 c#5@11 ~@5]/2",
  B: "[f#5@2 g#5 ~@13 b4@8, ~@3 e5@13 ~@8, ~@16 a4@31 ~]/3", C: "[a3,d4,f#4]", D: "e4 d#4, f#3, b3@7 ~",
  E: "[a3,c#4,e4]", F: "[d#4 ~@2 [a3,c#4], b3@3 ~, f#4 e4, ~ g#3@2 ~]/4",
  G: "[d#4@16 ~@15 g#4@6 [c#4,a4]@7 b4@4 [a4,c#5,e5]@16, b3@19 ~@3 g#4 ~@9, f#4@23 e4@35 ~@6, ~ g#3 ~@2]/4", // F#m A
  H: "[[d#5,f#5]@6 e5 d#5, b4]/2", I: "[g#4@15 a3@32 ~ d4@14 ~@9 d#4@8 ~, c#4@47 [f#4,a4]@16 e4@8 ~@9, ~@4 [f#3,b3]]/5",
  J: "[~ e4@15 f#4@7 ~@24 a3@15 ~@2 g#4@15 ~@24 a4@8 ~, ~ g#3@47 ~@31 b4@24 ~@9, ~ b3@30 c#4@33 b3@31 ~ c#4@14 ~@2, ~@23 e4@89]/7",
  K: "[c#5@8 c5@7 ~@17 b4@7 a4@8 f#4@8 ~@8 a4@16 ~@33 d4@15 b3, g#4@41 ~@22 c#4@48 f#4@17, d#4@15 c#5@16 ~@16 b4@16 ~@16 a3@47 ~@2, ~@16 e4@32 ~@7 e4@57 ~@16]/8",
  L: "e4@7 d#4@8 ~, f#3@15 ~",
  M: "[e4@16 f#4@8 ~@8 c#4@31 ~ g#4@15 b4@17, b3@32 ~@31 b3@31 ~@2, g#3@15 ~ a3@15 ~@17, ~ e4@3]/6",
  N: "[~@7 a4@8 ~ c#5@8 c5@7 c#5@16 ~ b4@8 a4@7 f#4@8 ~@9 c#4@32, c#4@14 ~ g#4@40 ~@8 b4@48 ~, ~@15 d#4@15 ~ e4@32 ~@9 e4@38 ~@2]/7",
  O: "[e4@24 d#4@7 ~, [f#3,b3]@31 ~]/2", P: "[~@15 f#4@8 g#4@8 c#4@16 b3@30 ~@3, b3@2 ~@3]/5",
  Q: "[~@21 a5@6 g#5@2 e5@3, b5@11 ~@5, ~ a3]/2", R: "[~ g#3@14 ~@9 e5@4 ~@4, ~@15 a3@17]/2", S: "g#3",
  T: "~@5 a5@6 ~@3 e5@2, a3", U: "~ g#3@15", V: "[~@5 e5@4 f#5@6 ~]/2",
})).s("gm_string_ensemble_1").gain(0.1)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@12 A ~@26 B@3 ~@33 C@5 D@8 E@3 ~>".pickRestart({
  A: "[e4,a4,b4,c#5]", B: "[e4@47 ~]/3", C: "[g#3@29 ~@2 [a3,e4]@46 ~@3, e4@3 ~@13]/5",
  D: "[g#3@15 ~@17 b4@23 ~@5 f#5@4 b5@21 ~@6 g#5@3 ~@17 f#3@17, [b3,e4], ~@97 b4@26 ~@5]/8", // E5
  E: "[~@14 [g#3,b5]@33 ~]/3", // G#m
})).s("gm_string_ensemble_1").gain(0.03)

// chords · piano · "A.PIANO"
const piano = note(`<
  ~@7 A B C D@2 E F G H I J K L M@2 N@2 O P@5 Q R S@2 T U@5 V@3 W X@2 Y Z AA@2 AB AC AD AE AF AG@4 AH AI@2 AJ AK AL@2 AM
  AN AO@2 AP@3 AQ AR AS@3 AT@2 AU@8 AV@3 ~
>`.pickRestart({
  A: "~@8 g#4@3 a4@3 b4@2", B: "~@13 e5@3, [a2,c#5], ~ e3@4 d#5@3, ~@4 a3@11 ~, ~@6 c#4@9 ~",
  C: "~@10 b4@5 ~, [g#2,f#5]@15 ~, ~@2 e3@13 ~, ~@4 g#5@11 ~, ~@6 e5@9 ~", // G#7
  D: "[~@6 e5@9 ~@15 a4@2, [f#2,e4]@15 ~ [b2,e5]@16, ~ a4@8 a4@2 a4@2 a4@2 ~, ~ b4@3 ~ d#5@2 d#5, ~@3 c#5]/2", // F#7 E5
  E: "~@7 e4, [a2,c#5]@7 ~, ~ e4@4 e4@2 ~, ~ a4@2 a4, ~@3 e5@4 ~", // A
  F: "~@12 b4@3 ~, [b2,d#5]@15 ~, ~@2 f#4@4 f#5@9 ~, ~@4 b3@11 ~, ~@2 b4@3 f#4@2 ~", // B
  G: "~@2 d#6 b5 ~@2 d#5 b4, e2@7 ~ [f#2,f#3]@7 ~, ~@2 e6@5 ~@3 e5@5 ~", // F#
  H: "~@4 d#6@2 b5 ~@5 d#5@2 ~@2, [g#2,g#3]@7 ~ [b2,b3]@6 ~@2, ~@2 e6@5 ~@3 e5@4 ~@2", // G# B
  I: "~@12 a4@3 ~, [a2,b4,c#5]@7 ~, e5@5 e5@2 ~, ~@4 a3@11 ~, ~@6 e4@9 ~", // A
  J: "~@12 b4@3 ~, [b2,d#5]@15 ~, ~ b4@2 ~, ~@6 f#5@9 ~, ~@5 f#4@2 ~", // B
  K: "~@12 d#4@3 ~, [g#2,f#4]@15 ~, ~ b3@7, ~@4 g#3@11 ~, ~@6 e4@9 ~", // G#7
  L: "[e2,e3,b3,e4,g#4]@6 [f#2,f#3,c#4,e4,a4]@6 [g#2,g#3,b3,e4,b4]@3 ~", // E F#m7 E
  M: "[~@14 e4@2 ~@12 b4@3 ~, [a2,c#5]@15 ~ [a2,d#5]@15 ~, ~@2 e4@4 e5@8 ~@8 f#5@9 ~, ~@4 a3@16 ~@6 f#4@5 ~, ~ a4@2 a4 ~ b4@2 ~]/2", // A Adim
  N: "[~@22 b5@4 f#5@2 f#5@2 e5 ~, [g#2,g#3]@15 ~ [c#2,c#3,e4]@15 ~, ~@4 b3@16 d#6@11 ~, ~@3 e4@4 ~@2 e6@4 [g#5,b5]@2 ~, ~@12 d#4@19 ~]/2", // G# C#m G#m
  O: "~@3 c#5, [a2,b4,e5]@15 ~, c#5@5 a4@2 ~, ~@2 a3@5 ~, ~@3 e4@4 ~", // Asus2
  P: "[~@18 d5@2 d5@2 ~@4 e5@2 e5@2 ~@4 f#5@2 f#5@2 ~@6 a5@2 a5 ~@13 e4@2 ~@14 b4@2 f#4 ~, e5@22 d5@2 [c#2,c#3]@7 ~ [b1,b2]@14 b5@17 ~@7 f#5@10, f#2@16 d2@14 ~@12 g#5@5 ~@7 a4@8 a4@17 ~, ~@2 e4@8 c#5@20 e5@17 ~ a2@15 ~ [b2,d#5]@15 ~, ~@6 a4@6 e4@18 ~@8 f#5@9 ~@5 e4@6 b4@6 ~@4 b4@6 f#4@4 ~@2]/5", // C# B
  Q: "~@2 d#6 b5 ~@2 d#5 b4, [e2,e3]@7 ~ [f#2,f#3]@7 ~, ~@2 e6@5 ~@3 e5@5 ~", // E F#
  R: "~@4 d#6@2 ~@6 d#5@2 b4 ~, [g#2,g#3]@3 b5@4 ~, ~@2 e6@5 ~ [b2,b3]@6 ~@2, ~@5 e5@2 ~", // G# B
  S: "[~@12 e4@2 ~@14 d#5@3 ~, [a2,b4,e5]@14 ~@2 b2@8 f#4@2 b4@5 ~, c#5@8 a4@6 a4@17 ~, ~@4 a3@10 ~@2 d#5@4 b4@2 f#5@9 ~, ~@6 e4@4 c#5@21 ~]/2", // Asus2
  T: "~@6 e4 f#4, [g#2,g#3]@15 ~, ~@2 b4@13 ~, ~@2 b3@2 f#4@3 ~, ~@6 e4@4 b3@5 ~", // G#
  U: "[[e2,e3,g#4]@4 b3 ~ [f#2,f#3,c#4,a4]@6 [g#3,b3,b4]@4 ~@12 e4@2 ~@30 d#5@3 ~@11 b4@2 b4@2 c#5@2, e4@20 e4@8 ~@6 f#4@4 f#5@8 ~@2 f#5@14 ~@4 g#4@2 c#5@2 g#4@4 [c#5,e5]@5 ~, ~@12 g#2@2 ~@2 a2@14 ~@2 [a2,a3,d#5]@15 ~ g#2@30 ~@2, ~@16 c#5@10 c#5@4 ~@6 b4@8 b4@8 ~@2 e5@8 ~@2 e5@8 c#2@7 ~, ~@22 a4@8 a4@16 ~@4 g#4@12 ~@2 c#3@15 ~]/5", // E F#m G#m C#m Adim
  V: "[~@6 e4 ~@6 c#5@2 ~@7 d5 f#4, [a2,e5]@15 ~ [f#2,e5]@14 ~@2 d2@6 f#5@8 ~@2, a4@4 a4@3 a4@4 a4@4 a4@3 a4@2 [d2,f#4]@3 ~, ~@2 a3@5 ~@11 d3@5 ~, ~@6 e4@4 c#5@5 ~@17 d5@10 a4@5 ~]/3", // A5 F#7 D
  W: "~@3 e5 ~@2 [b2,a4] b4, b2@3 ~, e5@6 ~@2 [b1,d#5]@7 ~, ~@2 f#4@8 f#4@5 ~, ~ a4@2 ~", // B7 B
  X: "[e4@6 e4@2 ~@4 [f#2,f#3]@2 ~@6 b3@4 ~@4 g#4@3 ~, g#4@13 ~ e4@10 e4@7 ~, [e2,e3]@10 [e2,e3]@4 [g#2,g#3,b4]@17 ~, ~@4 [b3,e4,f#4]@3 b3@3 ~@2 b3 f#4@2 ~, ~@9 g#4@5 ~@2]/2", // F# E G#m Bsus4
  Y: "[c#4,e4]@3 [c#4,e4]@3 [c#4,e4,c#5]@2, [a2,g#4]@7 ~, ~@3 a4@4 ~", // C#m Amaj7
  Z: "c#4@4 c#4@2 ~@6 e3@3 ~, [b1,a4]@7 ~, e4@3 [c#4,e4]@4 ~, ~@4 b2@11 ~, ~@5 a3@2 ~", // B7 C#m
  AA: "[b3@6 ~@4 [e2,e3]@2 [f#2,f#3] ~@7 b3@4 ~@4 [b3,e4,b4]@3 ~, g#3@13 ~ e4@10 f#4@6 ~@2, [e2,e3]@10 ~@4 [g#2,g#3]@17 ~, ~@6 [b3,e4,g#4]@7 ~ b4@12 g#4@4 ~@2, ~@7 b3@2 g#4@3 [b3,e4]@2 ~@2]/2", // E F# E5 E G# E E5
  AB: "[c#4,e4]@6 [c#4,e4]@6 [a3,c#4,e4,g#4]@3 ~, [a2,b4]@7 ~, ~@3 a4@4 ~", // C#m Amaj7 Asus2
  AC: "[g#2,c#4,d#4,g#4]@8 d#4@2 ~@2 [d#4,f#4]@3 ~, ~ c3, ~@8 c4 ~ [c#4,e4]@5 ~", // G#sus4 D#m C#m
  AD: "[e4,g#4]@6 ~@6 e4@3 ~, c#3, ~@3 [g#4,c#5]@4 ~, ~@3 e4@3 ~@2, ~@10 c#4@5 ~", // E C#5
  AE: "~@3 b3 [c#3,b3,a4]@4, [c#2,e4,b4]@15 ~", AF: "b4@6 ~@6 e4@3 ~, g#2@7 ~, e4@3 ~, ~@6 [b3,f#4,b4]@9 ~",
  AG: "[~@30 c#4 ~@15 c#4 ~@5 e4 ~@7 a3@2 f#3 ~, a2@15 ~ f#2@16 [e2,c#5]@15 ~ d2@15 ~, e4@12 e4@8 e4@4 f#3@7 ~@3 c#4@6 e3@4 e4@8 f#4@10 ~@2, c#4@10 c#4@4 ~@4 c#4@4 a4@4 c#4@2 e4@8 e4@6 c#4@4 ~@7 e4 d4@4 d4@5 ~, ~@6 a4@9 ~ c#5@14 ~@8 a4@14 a4@4 [d3,e4,a4]@6 ~@2]/4", // C#m Dsus2
  AH: "~ d#4 b3 ~@3 b3@2 b4@2 [b3,b4]@2 [b3,b4]@2 [b3,b4] ~, b1@7 ~, [c#4,f#4] ~ [b2,c#4]@6, ~@2 f#4@5 ~", // B F#5 Bsus2
  AI: "[e4@6 [b3,b4]@4 [e2,e3]@2 [f#2,f#3] ~@9 b3@2 b3@2 b3@2 [b3,e4,b4]@3 ~, g#4@13 ~ [g#2,g#3]@17 ~, [e2,e3]@5 b4@7 e4 a4@2 ~, ~@3 e4@9 g#4@3 ~, ~@5 b3@4 ~ f#4@5 ~]/2", // B E F# E5 G# E
  AJ: "[c#4,e4]@6 ~@6 [c#4,e4,g#4]@3 ~, b4@7 ~, a2@4 a2@3 ~, ~@3 a4@4 ~, ~@3 [c#4,e4]@2 a3@2 ~", // C#m
  AK: "~@6 [e4,a4,c#5]@2 [e4,a4]@2 [c#4,e4,a4]@2 [c#4,e4,a4]@3 ~, b1@7 ~, c#4@5 ~@3, [e4,a4]@3 ~ c#5@3 ~, ~ b2@3", // A A5 A A5
  AL: "[[b3,e4]@6 ~@6 [f#2,f#3]@2 ~@6 b3@2 ~@6 b3@3 ~, g#4@14 e4@10 [e4,b4]@7 ~, [e2,e3]@10 [e2,e3]@4 [g#2,g#3,g#4]@17 ~, ~@3 [b3,e4,f#4]@4 b3@3 ~@2 b3@2 ~@2, ~@18 f#4@8 f#4@5 ~]/2", // E5 F# E5 E G# Bsus4
  AM: "[c#4,e4]@6 ~@6 [e4,c#5]@3 ~, g#4@7 ~, a2@4 a2@3 ~, ~@3 [c#4,a4]@4 ~, ~@3 e4@3 ~@2", // C#m F#m
  AN: "[g#2,g#4,c#5] [c3,d#4,g#4,c5], c#4@3 ~@5", // C#5 G#
  AO: "[~@4 g#4@2 ~@6 e4@3 ~ e4@8 [a3,e4,a4]@8, c#3@31 ~, c#5@10 [c#2,c#5]@5 ~ [c#2,g#4,b4]@15 ~, g#4@2 ~ [g#4,e5]@4 ~@9, ~ e4@2 e4@3 ~@10]/2", // A5 C# C#7 C#m
  AP: "[b4@6 ~@24 b3@11 ~ [g#2,b3,d#4,f#4]@6, g#2@9 ~@2 c#4@6 ~@7, e4@12 e4@6 ~@2 b3@6 e4@15 ~@7, ~@6 [b3,f#4,b4]@12 a3@23 ~@7, ~@16 a2@25 ~@7]/3", // G#m7 B5
  AQ: "~@12 a3@3 ~, [f#2,c#4], a3@3 ~, e4@10 e4@5 ~, ~@3 a4@4 ~", // F#5
  AR: "[c#4,e4,a4]@7 ~@5 a3@3 ~, b2@15 ~, ~@7 c#4@8 ~, ~@7 e4@3 e4@5 ~, ~@8 [b1,a4]@7 ~", // A B7
  AS: "[~@8 [g#4,e5]@6 ~@8 b4@4 ~@2 e5@2 g#5 ~ [a1,a2,e5,a5]@16, [e2,e3]@5 ~@3, [b4,g#5]@7 [a4,f#5]@8 ~@9, ~@11 g#5@4 ~@9, ~@26 b4@5 c#5@16 ~]/3", // C#m A5 E D
  AT: "[~ [e5,a5]@26 ~@5, [b2,a4], [b1,c#5]@13 ~@3]/2", // A5 B7 Bsus2
  AU: "[~@8 e5@6 ~@4 b5@3 b5@3 b5@3 b5@2 b5@2 ~ b5 ~@2 b5@3 b5@12 ~@4 b5@2 ~@2 a5@2 ~@2 g#5@2 ~@15 b4@19 ~@3 f#5@2 ~@12 b6@13, [e2,e3]@111 f#6 e6@16, [b4,g#5]@13 ~ a4@18 c#6@17 ~ g#5@12 ~@2 g#5@32 ~@4 g#5@5 ~@3 e6 g#6@19, ~@8 g#4@24 ~@20 a5@6 ~@2 a5@10 f#5@27 ~@7 f#5@24, ~@56 b5@12 e5@29 ~@6 e5@25]/8", // E
  AV: "[~@17 b5@31, ~@5 [b4,e5]@11, ~ [e1,e2,g#5]@2]/3", // E5 E
})).s("gm_piano").gain(0.41)

// chords · piano · "A.PIANO" · soft notes
const piano_soft = note(`<
  ~@9 A ~@2 B C D ~ E@2 ~@2 F G H ~ I J ~@2 K L ~@3 M@2 N O P Q@2 ~ R S ~ T U ~@6 V ~ W X ~@3 Y W Z ~@3 AA AB AC AD ~ W
  ~ AE ~ AF ~@5 AG@2 ~@2 AH@5 ~@3
>`.pickRestart({
  A: "~@4 b3@11 ~", B: "~@2 a3@5 ~", C: "~@14 f#4 ~", D: "e3@7 ~@9",
  E: "[~@20 b3@10 f#4 ~, ~@14 c#5@17 ~, ~@9 f#4@4 ~@3]/2", F: "~@5 e4@2 ~", G: "~@4 a3@11 ~, ~ f#4@4 ~@3", H: "f#4@7 ~",
  I: "~@14 e4 ~", J: "~@4 f#3@11 ~", K: "~@2 a3@13 ~", L: "~@4 b3@11 ~, ~ f#4@4 ~@3",
// … 81 more lines

More by Gino Paoli