Strudelify

E il mattino

Rossi Vasco

KeyE♭ majorTempo109 bpm
0:00/0:00
// E il mattino — Rossi Vasco
// 109 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 5 choir aahs (copy of ch 16 piano)
// note: Full arrangement: all 90 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(109/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 finger
const bass = note(`<
  ~@17 A B A B A B A C A B A B A B D E D E@2 A B A B A B A F A B A B A B A C A B A B A B D E D E@2 A B A B A B A F A B A
  B A B A C G@4 ~@7
>`.pickRestart({
  A: "eb1 ~@2 c2@3 bb1 ~ eb1 ~@2 bb1@3 c2 ~", B: "eb1 ~@2 c2@3 bb1 ~ eb2!2 c2@2 bb1@2 c2 ~",
  C: "eb1 ~@2 c2@3 bb1@2 f2!2 eb2@2 c2@2 bb1 ~", D: "eb1@2 ~ bb1@3 c2 ~ bb1@2 ~ bb1@3 c2 ~",
  E: "ab1@2 ~ ab1 ~@2 c2@2 f2!2 eb2@2 c2@2 bb1 ~", F: "eb1 ~@2 c2@3 bb1 ~ f2 eb2 c3@2 bb2@4", G: "[eb1@63 ~]/4",
})).s("gm_electric_bass_finger").gain(0.45)

// chords · distortion guitar
const distortion_guitar = note("<~@32 A B C@2 D@8 ~@15 A B C@2 E@8 F G F G F G F G H@4 ~@7>".pickRestart({
  A: "[ab2,eb3,ab3]", B: "[eb2,bb2,eb3]@6 ~ bb2 [bb2,f3]@7 ~", C: "[ab2,eb3,ab3]/2", D: "[[bb2,eb3]@31 bb2]/2",
  E: "[[bb2,eb3]@31 ~]/2", F: "[bb2,eb3]@2 bb2 [bb2,eb3]@11 ~ [bb2,eb3]", G: "[bb2,eb3]@2 bb2 [bb2,eb3]@13",
  H: "[bb2,eb3]/4", // Eb5
})).s("gm_distortion_guitar").gain(0.34).pan(0.3)

// other · distortion guitar
const distortion_guitar_2 = note("<~@31 A B A C D ~@6 E F ~@14 A B A C D ~@6 E F ~@3 G ~@3 H I@4 ~@7>".pickRestart({
  A: "~@14 [db3,eb3] [gb3,ab3,bb3,db4,eb4,gb4]", B: "[ab3,eb4,ab4]@15 ~, bb4 ~@15",
  C: "[ab3,eb4,ab4]@15 [ab3,eb4], bb4 ~@15", D: "[ab3,eb4,ab4]", E: "eb3!16", F: "eb3!8 f3 eb3 f3 eb3 bb3@2 bb3@2",
  G: "~@4 bb3 [ab3,bb3]!2 ab3 [ab3,bb3]!7 bb3", H: "~@10 bb3 [bb3,eb4]!4 bb3, ~@9 [bb3,eb4]@2 ~@5", I: "[bb3,eb4]/4",
})).s("gm_distortion_guitar").gain(0.23).pan(0.7)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@9 A B A C A B A C D E F G H I J K L 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 U AT AU AV AW AX AY AZ A BA BB BC BD BE BF BG BH BI BJ BK ~@11
>`.pickRestart({
  A: "[bb3,d4,g4]@3 [bb3,d4,g4]@2 [bb3,d4,g4]@2 ~ [c4,eb4,ab4]@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Gm Ab
  B: "[d4,g4,bb4]@3 [d4,g4,bb4]@2 [d4,g4,bb4]@2 ~ [eb4,ab4,c5]@3 [eb4,ab4,d5]@2 [eb4,ab4,eb5]@2 ~", // Gm Ab Ab5
  C: "[d4,g4,bb4]@3 [d4,g4,bb4]@2 [d4,g4,bb4]@2 ~ [c4,eb4,ab4]@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Gm Ab
  D: "[bb3,d4,g4]@3 [bb3,d4,g4]@2 [bb3,d4,g4]@2 ~ [eb4,ab4]@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Gm Ab5 Ab
  E: "[d4,g4,bb4]@3 bb4@2 [d4,g4,bb4]@2 ~ [eb4,ab4,c5]@3 [eb4,ab4,d5]@2 [eb4,ab4,eb5]@2 ~", // Gm Ab Ab5
  F: "[bb3,d4]@3 [bb3,d4]@2 [bb3,d4,g4]@2 ~ [c4,ab4]@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Bb Gm Fm Ab
  G: "[d4,g4]@3 [d4,g4,bb4]@2 [d4,g4,bb4]@2 ~ [c4,eb4,ab4]@3 [c4,eb4]@2 [c4,eb4,ab4]@2 ~", // G5 Gm Ab Cm Ab
  H: "[bb3,d4,g4]@3 [d4,g4]@2 [bb3,d4,g4]@2 ~ ab4@3 [c4,eb4]@2 [c4,eb4,ab4]@2 ~", // Gm G5 Gm Cm Ab
  I: "[d4,g4,bb4]@3 [d4,bb4]@2 [d4,g4,bb4]@2 ~ [eb4,ab4,c5]@3 [eb4,ab4,d5]@2 [eb4,ab4,eb5]@2 ~", // Gm Ab Ab5
  J: "[bb3,d4]@3 [d4,g4]@2 [bb3,d4,g4]@2 ~ [eb4,ab4]@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Bb G5 Gm Ab5 Ab
  K: "[d4,g4,bb4]@3 [g4,bb4]@2 [d4,g4,bb4]@2 ~ ab4@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Gm Ab
  L: "[bb3,d4]@3 [bb3,d4]@2 [bb3,d4,g4]@2 ~ [eb4,ab4]@3 [c4,ab4]@2 [c4,eb4,ab4]@2 ~", // Bb Gm Ab5 Fm Ab
  M: "[g4,bb4]@3 [d4,g4]@2 [d4,g4,bb4]@2 ~ [eb4,ab4,c5]@3 [eb4,ab4,d5]@2 [eb4,ab4,eb5]@2 ~", // Gm G5 Gm Ab Ab5
  N: "[bb3,d4,g4]@3 [d4,g4]@2 [bb3,d4,g4]@2 ~ ab4@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Gm G5 Gm Ab
  O: "[d4,g4,bb4]@3 bb4@2 [d4,g4,bb4]@2 ~ ab4@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Gm Ab
  P: "bb3@3 [d4,g4]@2 [bb3,d4,g4]@2 ~ c4@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // G5 Gm Ab
  Q: "[g4,bb4]@3 [d4,g4,bb4]@2 [d4,g4,bb4]@2 ~ ab4@3 [eb4,ab4]@2 [eb4,ab4,eb5]@2 ~", // Gm Ab5
  R: "[bb3,d4,g4]@3 [bb3,d4,g4]@2 [bb3,d4,g4]@3 [bb3,c4,f4]@3 [c4,f4]@2 [bb3,c4,f4]@3", // Gm Bbsus2 F5 Bbsus2
  S: "[ab3,eb4]@3 [ab3,eb4]@2 [ab3,bb3,eb4]@3 [ab3,bb3]@3 [ab3,bb3]@2 [ab3,bb3,eb4]@3", // Ab5 Absus2
  T: "[bb3,eb4,g4]@3 [bb3,eb4,g4]@2 [bb3,eb4,g4]@3 c4@3 [c4,f4]@2 [bb3,c4,f4]@3", // Eb F5 Bbsus2
  U: "[ab3,bb3,eb4]@3 [ab3,bb3]@2 [ab3,bb3,eb4]@3 [bb3,eb4]@3 [ab3,bb3,eb4]@2 [ab3,bb3,eb4]@3", // Absus2 Eb5 Absus2
  V: "bb3@3 eb4@2 [ab3,bb3,eb4]@3 [bb3,eb4]@3 [ab3,bb3,eb4]@2 [ab3,bb3,eb4]@3", // Absus2 Eb5 Absus2
  W: "[bb3,g4]@3 [bb3,g4]@2 [bb3,d4,g4]@2 ~ [c4,eb4]@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Eb Gm Cm Ab
  X: "[d4,g4]@3 [d4,g4,bb4]@2 [d4,g4,bb4]@2 ~ c5@3 [eb4,ab4,d5]@2 [eb4,ab4,eb5]@2 ~", // G5 Gm Ab Ab5
  Y: "[bb3,g4]@3 bb3@2 [bb3,d4,g4]@2 ~ ab4@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Eb Gm Ab
  Z: "[d4,g4]@3 d4@2 [d4,g4,bb4]@2 ~ [c4,eb4]@3 [c4,ab4]@2 [c4,eb4,ab4]@2 ~", // G5 Gm Cm Fm Ab
  AA: "[bb3,d4]@3 [bb3,d4,g4]@2 [bb3,d4,g4]@2 ~ ab4@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Bb Gm Ab
  AB: "d4@3 [d4,bb4]@2 [d4,g4,bb4]@2 ~ eb4@3 [eb4,ab4,d5]@2 [eb4,ab4,eb5]@2 ~", // Gm Ab Ab5
  AC: "[d4,g4]@3 [bb3,g4]@2 [bb3,d4,g4]@2 ~ [eb4,ab4]@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // G5 Eb Gm Ab5 Ab
  AD: "[g4,bb4]@3 [d4,bb4]@2 [d4,g4,bb4]@2 ~ c4@3 [c4,eb4]@2 [c4,eb4,ab4]@2 ~", // Gm Cm Ab
  AE: "[bb3,d4,g4]@3 bb3@2 [bb3,d4,g4]@2 ~ [eb4,ab4]@3 [c4,eb4]@2 [c4,eb4,ab4]@2 ~", // Gm Ab5 Cm Ab
  AF: "[d4,g4]@3 [d4,g4,bb4]@2 [d4,g4,bb4]@2 ~ eb4@3 [eb4,ab4,d5]@2 [eb4,ab4,eb5]@2 ~", // G5 Gm Ab Ab5
  AG: "[bb3,g4]@3 [bb3,d4,g4]@2 [bb3,d4,g4]@2 ~ ab4@3 [c4,ab4]@2 [c4,eb4,ab4]@2 ~", // Eb Gm Fm Ab
  AH: "[g4,bb4]@3 [g4,bb4]@2 [d4,g4,bb4]@2 ~ eb4@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Gm Ab
  AI: "[d4,g4]@3 [bb3,d4,g4]@2 [bb3,d4,g4]@2 ~ [c4,eb4,ab4]@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // G5 Gm Ab
  AJ: "[d4,g4,bb4]@3 bb4@2 [d4,g4,bb4]@2 ~ [ab4,c5]@3 d5@2 [eb4,ab4,eb5]@2 ~", // Gm Ab Ab5
  AK: "[bb3,d4]@3 [bb3,d4,g4]@2 [bb3,d4,g4]@2 ~ [c4,eb4,ab4]@3 [c4,ab4]@2 [c4,eb4,ab4]@2 ~", // Bb Gm Ab Fm Ab
  AL: "[d4,g4,bb4]@3 [d4,g4]@2 [d4,g4,bb4]@2 ~ c4@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Gm G5 Gm Ab
  AM: "bb3@3 [bb3,g4]@2 [bb3,d4,g4]@2 ~ [c4,ab4]@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Eb Gm Fm Ab
  AN: "bb4@3 [d4,g4,bb4]@2 [d4,g4,bb4]@2 ~ [eb4,ab4]@3 [eb4,ab4,d5]@2 [eb4,ab4,eb5]@2 ~", // Gm Ab5 Ab Ab5
  AO: "[bb3,g4]@3 [bb3,g4]@2 [bb3,d4,g4]@2 ~ c4@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Eb Gm Ab
  AP: "[d4,g4]@3 [d4,bb4]@2 [d4,g4,bb4]@2 ~ [c4,ab4]@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // G5 Gm Fm Ab
  AQ: "[bb3,d4,g4]@3 [bb3,d4]@2 [bb3,d4,g4]@2 ~ [c4,eb4,ab4]@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Gm Bb Gm Ab
  AR: "[d4,g4,bb4]@3 [d4,g4,bb4]@2 [d4,g4,bb4]@2 ~@4 [ab4,d5]@2 [eb4,ab4,eb5]@2 ~", // Gm Abdim Ab5
  AS: "[bb3,d4,g4]@3 bb3@2 [bb3,d4,g4]@3 [bb3,c4,f4]@3 [bb3,c4,f4]@2 [bb3,c4,f4]@3", // Gm Bbsus2
  AT: "g4@3 [bb3,eb4,g4]@2 [bb3,eb4,g4]@3 [bb3,c4]@3 [bb3,c4,f4]@2 [bb3,c4,f4]@3", // Eb Bbsus2
  AU: "eb4@3 ab3@2 [ab3,bb3,eb4]@3 [bb3,eb4]@3 [ab3,eb4]@2 [ab3,bb3,eb4]@3", // Absus2 Eb5 Ab5 Absus2
  AV: "[ab3,bb3,eb4]@3 [bb3,eb4]@2 [ab3,bb3,eb4]@3 eb4@3 [ab3,eb4]@2 [ab3,bb3,eb4]@3", // Absus2 Eb5 Absus2 Ab5 Absus2
  AW: "bb3@3 d4@2 [bb3,d4,g4]@2 ~ eb4@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Gm Ab
  AX: "[g4,bb4]@3 [d4,g4,bb4]@2 [d4,g4,bb4]@2 ~ eb4@3 [eb4,ab4,d5]@2 [eb4,ab4,eb5]@2 ~", // Gm Ab Ab5
  AY: "[d4,g4]@3 [bb3,d4,g4]@2 [bb3,d4,g4]@2 ~@4 [c4,eb4]@2 [c4,eb4,ab4]@2 ~", // G5 Gm Cm Ab
  AZ: "[d4,bb4]@3 [d4,g4,bb4]@2 [d4,g4,bb4]@2 ~ [eb4,ab4]@3 [c4,ab4]@2 [c4,eb4,ab4]@2 ~", // Gm Ab5 Fm Ab
  BA: "[d4,g4,bb4]@3 [d4,g4,bb4]@2 [d4,g4,bb4]@2 ~ [eb4,ab4]@3 [eb4,d5]@2 [eb4,ab4,eb5]@2 ~", // Gm Ab5 Ebmaj7 Ab5
  BB: "[bb3,d4,g4]@3 [bb3,d4,g4]@2 [bb3,d4,g4]@2 ~ [eb4,ab4]@3 [c4,eb4]@2 [c4,eb4,ab4]@2 ~", // Gm Ab5 Cm Ab
  BC: "g4@3 [d4,g4,bb4]@2 [d4,g4,bb4]@2 ~ [eb4,ab4]@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Gm Ab5 Ab
  BD: "d4@3 [bb3,d4,g4]@2 [bb3,d4,g4]@2 ~ [c4,ab4]@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Gm Fm Ab
  BE: "[d4,g4,bb4]@3 [d4,g4]@2 [d4,g4,bb4]@2 ~ [eb4,ab4]@3 [eb4,ab4,d5]@2 [eb4,ab4,eb5]@2 ~", // Gm G5 Gm Ab5 Ab Ab5
  BF: "[bb3,d4]@3 [d4,g4]@2 [bb3,d4,g4]@2 ~ [c4,eb4,ab4]@3 [c4,ab4]@2 [c4,eb4,ab4]@2 ~", // Bb G5 Gm Ab Fm Ab
  BG: "[d4,g4,bb4]@3 [d4,g4]@2 [d4,g4,bb4]@2 ~ [eb4,ab4]@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Gm G5 Gm Ab5 Ab
  BH: "[bb3,d4]@3 [bb3,d4,g4]@2 [bb3,d4,g4]@2 ~ [c4,eb4]@3 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Bb Gm Cm Ab
  BI: "[d4,g4]@3 [d4,g4,bb4]@2 [d4,g4,bb4]@2 ~ [eb4,ab4]@3 [eb4,ab4,d5]@2 [eb4,ab4,eb5]@2 ~", // G5 Gm Ab5 Ab Ab5
  BJ: "[bb3,g4]@3 [bb3,d4]@2 [bb3,d4,g4]@2 ~ [c4,eb4]@3 [eb4,ab4]@2 [c4,eb4,ab4]@2 ~", // Eb Bb Gm Cm Ab5 Ab
  BK: "[d4,g4,bb4]@3 [g4,bb4]@2 [d4,g4,bb4]@2 ~ eb4@3 [c4,ab4]@2 [c4,eb4,ab4]@2 ~", // Gm Fm Ab
})).s("gm_acoustic_guitar_steel").gain(0.19)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~@9 A@8 B C D E F G H I J K L 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 AF AN AO AP AQ AR AS
  AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ ~@11
>`.pickRestart({
  A: "[bb2,eb3,g3]@3 [bb2,eb3,g3]@2 [bb2,eb3,g3] ~@2 [bb2,eb3,ab3]@3 [bb2,eb3,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb Ebsus4
  B: "[bb2,g3]@3 [bb2,eb3,g3]@2 [bb2,eb3,g3] ~@2 [bb2,eb3,ab3]@3 [bb2,eb3,ab3]@2 [eb3,ab3] ~@2", // Eb Ebsus4 Ab5
  C: "bb2@3 [bb2,eb3,g3]@2 [bb2,g3] ~@2 [bb2,eb3,ab3]@3 [bb2,eb3,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb Ebsus4
  D: "[bb2,eb3,g3]@3 g3@2 eb3 ~@2 [bb2,eb3,ab3]@3 [bb2,eb3]@2 [bb2,eb3,ab3] ~@2", // Eb Ebsus4 Eb5 Ebsus4
  E: "[bb2,g3]@3 [bb2,eb3]@2 [bb2,eb3] ~@2 ab3@3 [bb2,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb Eb5 Bb7 Ebsus4
  F: "g3@3 [bb2,eb3,g3]@2 [bb2,eb3] ~@2 [bb2,ab3]@3 [bb2,eb3,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb Eb5 Bb7 Ebsus4
  G: "[bb2,eb3]@3 [bb2,eb3]@2 [bb2,eb3,g3] ~@2 ab3@3 [bb2,eb3]@2 [bb2,eb3,ab3] ~@2", // Eb5 Eb Eb5 Ebsus4
  H: "[bb2,eb3]@3 [bb2,eb3]@2 [bb2,eb3,g3] ~@2 [bb2,eb3]@3 [bb2,eb3,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb5 Eb Eb5 Ebsus4
  I: "g3@3 [bb2,eb3,g3]@2 [bb2,g3] ~@2 eb3@3 eb3@2 [eb3,ab3] ~@2", // Eb Ab5
  J: "[eb3,g3]@3 [bb2,eb3,g3]@2 [bb2,g3] ~@2 [bb2,eb3,ab3]@3 [bb2,eb3,ab3]@2 ab3 ~@2", // Eb Ebsus4
  K: "[eb3,g3]@3 [bb2,eb3,g3]@2 g3 ~@2 [bb2,ab3]@3 [bb2,eb3,ab3]@2 [bb2,eb3] ~@2", // Eb Bb7 Ebsus4 Eb5
  L: "g3@3 [bb2,eb3,g3]@2 [bb2,eb3] ~@2 [eb3,ab3]@3 [bb2,eb3]@2 [bb2,eb3] ~@2", // Eb Eb5 Ab5 Eb5
  M: "[bb2,eb3]@3 [bb2,eb3]@2 [bb2,eb3,g3] ~@2 eb3@3 [bb2,eb3,ab3]@2 [bb2,ab3] ~@2", // Eb5 Eb Ebsus4 Bb7
  N: "[bb2,g3]@3 [bb2,eb3,g3]@2 ~@6 [bb2,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb Bb7 Ebsus4
  O: "[bb2,eb3,g3]@3 [bb2,eb3,g3]@2 eb3 ~@2 [bb2,ab3]@3 [eb3,ab3]@2 ab3 ~@2", // Eb Bb7 Ab5
  P: "[bb2,eb3]@3 [bb2,g3]@2 [eb3,g3] ~@2 [bb2,d3,f3]@3 [bb2,d3,f3]@2 [bb2,f3] ~@2", // Eb5 Eb Bb Bb5
  Q: "eb3@3 [ab2,c3,eb3]@2 [ab2,c3,eb3] ~@2 c3@3 [ab2,eb3]@2 [ab2,c3]@3, ~@13 eb3 ~@2", // Ab Ab5 Ab
  R: "[bb2,eb3]@3 [eb3,g3]@2 g3 ~@2 [d3,f3]@3 [bb2,d3]@2 [bb2,d3] ~@2", // Eb5 Eb Dm Bb
  S: "[c3,eb3]@3 [ab2,c3,eb3]@2 ab2 ~@2 ab2@3 [ab2,eb3]@2 ~@3", // Cm Ab Ab5
  T: "[ab2,eb3]@3 eb3@2 [ab2,eb3] ~@2 [c3,eb3]@3 [c3,eb3]@2 [ab2,c3]@3", // Ab5 Cm Ab
  U: "eb3@3 [bb2,eb3,g3]@2 [bb2,eb3,g3] ~@2 [bb2,eb3,ab3]@3 [bb2,eb3,ab3]@2 ab3 ~@2", // Eb Ebsus4
  V: "[bb2,eb3]@3 [bb2,eb3,g3]@2 [eb3,g3] ~@2 [bb2,eb3,ab3]@3 [bb2,eb3,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb5 Eb Ebsus4
  W: "[bb2,eb3,g3]@3 [bb2,eb3,g3]@2 [bb2,eb3] ~@2 [bb2,eb3,ab3]@3 [bb2,eb3,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb Eb5 Ebsus4
  X: "[bb2,eb3,g3]@3 [eb3,g3]@2 [eb3,g3] ~@2 [bb2,ab3]@3 [bb2,eb3,ab3]@2 [bb2,ab3] ~@2", // Eb Bb7 Ebsus4 Bb7
  Y: "g3@3 [bb2,eb3,g3]@2 [bb2,g3] ~@2 ab3@3 [bb2,eb3,ab3]@2 [eb3,ab3] ~@2", // Eb Ebsus4 Ab5
  Z: "[bb2,eb3,g3]@3 [bb2,g3]@2 [bb2,eb3] ~@2 [bb2,eb3,ab3]@3 [eb3,ab3]@2 [bb2,ab3] ~@2", // Eb Eb5 Ebsus4 Ab5 Bb7
  AA: "[bb2,g3]@3 [bb2,eb3,g3]@2 [bb2,eb3] ~@2 [bb2,eb3]@3 [bb2,eb3,ab3]@2 bb2 ~@2", // Eb Eb5 Ebsus4
  AB: "[bb2,eb3,g3]@3 [bb2,eb3,g3]@2 bb2 ~@2 bb2@3 [bb2,eb3,ab3]@2 [eb3,ab3] ~@2", // Eb Ebsus4 Ab5
  AC: "eb3@3 [bb2,eb3,g3]@2 [bb2,g3] ~@2 [eb3,ab3]@3 [bb2,eb3,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb Ab5 Ebsus4
  AD: "g3@3 [bb2,eb3,g3]@2 [bb2,eb3] ~@2 [bb2,eb3,ab3]@3 [bb2,eb3,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb Eb5 Ebsus4
  AE: "[eb3,g3]@3 [bb2,eb3,g3]@2 [bb2,eb3,g3] ~@2 [bb2,eb3,ab3]@3 [bb2,eb3,ab3]@2 [bb2,ab3] ~@2", // Eb Ebsus4 Bb7
  AF: "[bb2,eb3,g3]@3 [bb2,eb3,g3]@2 [bb2,g3] ~@2 [eb3,ab3]@3 [bb2,eb3,ab3]@2 [bb2,eb3] ~@2", // Eb Ab5 Ebsus4 Eb5
  AG: "[bb2,g3]@3 [bb2,eb3,g3]@2 g3 ~@2 [bb2,ab3]@3 [bb2,eb3,ab3]@2 [bb2,eb3] ~@2", // Eb Bb7 Ebsus4 Eb5
  AH: "[bb2,eb3,g3]@3 [eb3,g3]@2 bb2 ~@2 [bb2,ab3]@3 [bb2,eb3]@2 [eb3,ab3] ~@2", // Eb Bb7 Eb5 Ab5
  AI: "[bb2,eb3]@3 [bb2,eb3,g3]@2 [bb2,eb3] ~@5 [bb2,eb3,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb5 Eb Eb5 Ebsus4
  AJ: "[bb2,eb3,g3]@3 [bb2,eb3]@2 g3 ~@2 bb2@3 [bb2,eb3,ab3]@2 [bb2,ab3] ~@2", // Eb Eb5 Ebsus4 Bb7
  AK: "[eb3,g3]@3 [eb3,g3]@2 g3 ~@2 [eb3,ab3]@3 [bb2,eb3,ab3]@2 [bb2,eb3] ~@2", // Eb Ab5 Ebsus4 Eb5
  AL: "[bb2,eb3,g3]@3 [bb2,eb3,g3]@2 g3 ~@2 [eb3,ab3]@3 [bb2,eb3,ab3]@2 [bb2,ab3] ~@2", // Eb Ab5 Ebsus4 Bb7
  AM: "bb2@3 [eb3,g3]@2 [bb2,eb3,g3] ~@2 [bb2,eb3,ab3]@3 [bb2,eb3,ab3]@2 [eb3,ab3] ~@2", // Eb Ebsus4 Ab5
  AN: "[bb2,eb3,g3]@3 [bb2,eb3,g3]@2 [bb2,eb3,g3] ~@2 [bb2,eb3]@3 [bb2,eb3,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb Eb5 Ebsus4
  AO: "[bb2,eb3]@3 [bb2,eb3,g3]@2 g3 ~@2 [bb2,ab3]@3 [bb2,eb3,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb5 Eb Bb7 Ebsus4
  AP: "[bb2,g3]@3 [eb3,g3]@2 [eb3,g3] ~@2 [bb2,d3,f3]@3 [bb2,d3,f3]@2 [d3,f3] ~@2", // Eb Bb Dm
  AQ: "[ab2,c3,eb3]@3 [ab2,c3,eb3]@2 [ab2,c3,eb3] ~@2 eb3@3 [ab2,c3,eb3]@2 [ab2,c3]@3, ~@13 eb3 ~@2", // Ab
  AR: "g3@3 [bb2,g3]@2 eb3 ~@2 [bb2,d3,f3]@3 [bb2,f3]@2 [bb2,f3] ~@2", // Eb Bb Bb5
  AS: "ab2@3 [ab2,c3,eb3]@2 eb3 ~@2 [ab2,c3]@3 [ab2,c3]@2 [ab2,c3]@3, ~@13 eb3 ~@2", // Ab
  AT: "[ab2,eb3]@3 [ab2,eb3]@2 eb3 ~@2 c3@3 [ab2,c3,eb3]@2 ab2@3, ~@13 eb3 ~@2", // Ab5 Ab
  AU: "[eb3,g3]@3 [bb2,eb3,g3]@2 [bb2,g3] ~@2 [bb2,eb3,ab3]@3 [bb2,eb3,ab3]@2 [eb3,ab3] ~@2", // Eb Ebsus4 Ab5
  AV: "[bb2,eb3]@3 [bb2,eb3,g3]@2 [bb2,eb3,g3] ~@2 [eb3,ab3]@3 [bb2,eb3,ab3]@2 eb3 ~@2", // Eb5 Eb Ab5 Ebsus4
  AW: "eb3@3 [bb2,eb3,g3]@2 [bb2,eb3,g3] ~@2 [bb2,eb3,ab3]@3 [bb2,eb3,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb Ebsus4
  AX: "[bb2,eb3,g3]@3 [bb2,eb3,g3]@2 [bb2,g3] ~@2 [eb3,ab3]@3 [bb2,ab3]@2 ab3 ~@2", // Eb Ab5 Bb7
  AY: "[bb2,eb3]@3 [bb2,eb3,g3]@2 [eb3,g3] ~@2 [bb2,ab3]@3 [bb2,eb3,ab3]@2 [bb2,ab3] ~@2", // Eb5 Eb Bb7 Ebsus4 Bb7
  AZ: "[bb2,g3]@3 [bb2,eb3,g3]@2 [eb3,g3] ~@2 [eb3,ab3]@3 [bb2,eb3,ab3]@2 ab3 ~@2", // Eb Ab5 Ebsus4
  BA: "[bb2,eb3,g3]@3 [bb2,eb3,g3]@2 [bb2,g3] ~@2 [bb2,eb3,ab3]@3 ab3@2 [bb2,ab3] ~@2", // Eb Ebsus4 Bb7
  BB: "[bb2,g3]@3 [bb2,eb3,g3]@2 [bb2,eb3,g3] ~@2 eb3@3 [bb2,ab3]@2 [eb3,ab3] ~@2", // Eb Bb7 Ab5
  BC: "[bb2,eb3,g3]@3 [bb2,eb3,g3]@2 [eb3,g3] ~@2 [bb2,eb3,ab3]@3 [bb2,eb3,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb Ebsus4
  BD: "[eb3,g3]@3 [bb2,eb3]@2 [bb2,g3] ~@2 [bb2,eb3,ab3]@3 [bb2,eb3,ab3]@2 [bb2,ab3] ~@2", // Eb Eb5 Eb Ebsus4 Bb7
  BE: "~@3 [bb2,eb3,g3]@2 [bb2,eb3,g3] ~@2 eb3@3 [bb2,eb3,ab3]@2 [eb3,ab3] ~@2", // Eb Ebsus4 Ab5
  BF: "[eb3,g3]@3 [bb2,eb3,g3]@2 [bb2,eb3,g3] ~@2 [bb2,eb3,ab3]@3 [bb2,eb3,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb Ebsus4
  BG: "[eb3,g3]@3 [bb2,eb3,g3]@2 [bb2,eb3,g3] ~@2 [bb2,eb3,ab3]@3 [bb2,eb3]@2 [bb2,eb3] ~@2", // Eb Ebsus4 Eb5
  BH: "[bb2,eb3,g3]@3 [bb2,eb3,g3]@2 [bb2,eb3,g3] ~@2 eb3@3 [bb2,eb3,ab3]@2 eb3 ~@2", // Eb Ebsus4
  BI: "[bb2,g3]@3 [bb2,eb3,g3]@2 [bb2,g3] ~@2 [bb2,eb3]@3 [bb2,eb3,ab3]@2 [eb3,ab3] ~@2", // Eb Eb5 Ebsus4 Ab5
  BJ: "[bb2,eb3,g3]@3 [bb2,g3]@2 ~@3 [bb2,eb3,ab3]@3 [bb2,eb3,ab3]@2 [bb2,eb3,ab3] ~@2", // Eb Ebsus4
})).s("gm_acoustic_guitar_nylon").gain(0.1)

// bass · synth bass 2
const bass_2 = note("<~ A B A B A B A B A B A B A B A B ~@62 C B A B A B A B A B D>".pickRestart({
  A: "g1!2 ~ f1 g1 ~ g1!2 ~ g1!2 ~ g1 ~ g1!2", B: "f1 g1 ~ f1 g1 ~ g1!2 ~ g1!2 ~ g1!2 ~ g1",
  C: "~ g1 ~ f1 g1 ~ g1!2 ~ g1!2 ~ g1 ~ g1!2", D: "g1!2 ~ f1 g1 ~ g1!2 ~ g1!2 ~@5",
})).s("gm_synth_bass_2").gain(0.07)

// chords · piano
const piano = note(`<
  ~@3 A B A B A B A B A B A B A B A B A B A B A B A B A B A B C ~ C ~@2 D E@2 ~ F G@2 ~ A B A B A B A B A B A B A B C ~
  C ~@2 D E@2 ~ F G@2 ~ A B A B A B A H I@4 J@2 ~@5
>`.pickRestart({
  A: "[bb3,eb4,g4] [c4,eb4,ab4]", B: "[d4,g4,bb4] [c4,eb4,ab4]", C: "eb4@8 d4@7 ~, bb3@15 ~",
  D: "[eb4,g4] [f4,ab4] [d4,f4] [eb4,g4] [c4,eb4] [d4,f4] [bb3,d4] [c4,eb4]", // Eb Fm Dm Eb Cm Dm Bb Cm
  E: "[[ab3,c4] [bb3,d4] [g3,bb3] [ab3,c4] [f3,ab3] [g3,bb3] eb3 eb3@9, ~@3 g3@5]/2", // Ab Bb Gm Ab Fm Gm
  F: "[eb4,g4] [f4,ab4] [d4,f4] [eb4,g4] c4 [d4,f4] [bb3,d4] [c4,eb4], ~@8 eb4 ~@7", // Eb Fm Dm Eb Dm Bb Cm
  G: "[[ab3,c4] [bb3,d4] [g3,bb3] [ab3,c4] [f3,ab3] [g3,bb3] [eb3,g3] [g3,eb4]@9]/2", // Ab Bb Gm Ab Fm Gm Eb Cm
  H: "[d4,g4,bb4]@2 ~ [g2,bb2], ~ [c4,eb4,ab4]", I: "[[eb2,eb3,g3]@6 ~ [g2,bb2]]/2", J: "[[eb2,eb3,g3]@25 ~@7]/2",
})).s("gm_piano").gain(0.05)

// other · synth drum
const synth_drum = note("<~ A B A B A B A B A B A B A B A B C@62 A B A B A B A B A B D>".pickRestart({
  A: "[db2,d3,db4] [db2,db4] ab4 [a1,a3] [db2,db4,d8] ~ [db2,db4] ~ d3 [db2,db4] ~ d3 [db2,db4] ~ [db2,db4]!2, ~@7 [db2,db4]@2 ~ [db2,db4]@2 ~@4", // Dmaj7 Db A Dmaj7 Db
  B: "[a1,d3,a3] ~ ab4 [a1,a3] [db2,db4,d8] ~ [db2,db4] ~ d3 [db2,db4] ~ d3 [db2,db4] [db2,db4]@2 [db2,db4], ~ [db2,db4]@2 ~@4 [db2,db4]@2 ~ [db2,db4]@2 ~@4", // D5 A Dmaj7 Db
  C: "d3 ~ ab4 ~ d8 ~@3 d3 ~@2 d3 ~@4",
  D: "[db2,d3,db4] [db2,db4] ab4 [a1,a3] [db2,db4,d8] ~ [db2,db4] ~ d3 [db2,db4] ~ d3 ~@4, ~@7 [db2,db4]@2 ~ [db2,db4]@2 ~@4", // Dmaj7 Db A Dmaj7 Db
})).s("gm_synth_drum").gain(0.09)
// … 229 more lines

More by Rossi Vasco