Strudelify

It's All Right (La promessa)

Zucchero

KeyA majorTempo85 bpm
0:00/0:00
// It's All Right (La promessa) — Zucchero
// 85 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 12 distortion guitar (copy of ch 9 string ensemble 1)
// note: Full arrangement: all 111 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(85/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 · acoustic guitar steel · "ITSALLRI    IT'S ALL RIGHT"
const acoustic_guitar_steel = note(`<
  A 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 AD AF@2 AG AH AI AJ AK AL AM AN@2 AO AP AQ AR AS AM
  AN@2 AO AP AQ AT@2 AU AV AW AX AY AZ BA@2 AM AN@2 AO AP AQ AR AS AM AN@2 AO AP AQ BB@2 AP BC BD@2 AU AV AW AX AY AZ
  BA@2 AU AV AW AX AY AZ BA@2 AU AV AW AX AY AZ BE@4 ~
>`.pickRestart({
  A: "[a3,d4] ~ g#3@2 ~@2 e4@7 e4@2 e4", // D5
  B: "d4@2 d4@2 [b3,b4] ~ [e3,e4]@2 g#3@2 ~ b3 ~@2 e3@2, ~ g#4, ~@5 e3 ~@2, ~@11 e4@5", // B E
  C: "~@8 e2@5 ~@3, d4, d3@3 ~@5, ~@3 e4@13", D: "[g3,c#4,g4]@3 ~@3 [e3,g#3]@7 b3 [b3,e4] ~, ~@6 [b3,e4]@4 ~@3 g#3@3",
  E: "[e3,g#3,b3,g#4]@3 e3 [e3,g#3,b3]@2 [e3,g#3,b3,e4]@4 [e3,g#3,b3] [e3,f#3,g#3,b3]@2 ~ e2 g#2, ~@13 [e2,e3,g#3,b3]@2 ~", // E
  F: "[a2,a3,c#4,e4]@3 e3 [e3,a3]@2 [a3,c#4,e4]@3 ~@2 e3 b3 ~ a2@2, ~@9 [a3,b3,e4]@4 [e3,b3]@2 ~, ~@5 a2 ~@2", // A A5 A Asus2 E5
  G: "[e2,d3,b3,d4]@3 ~@2 d3 [e2,b3,d4]@2 ~@3 e2 d4 ~@2 b3, ~@4 [d4,e4]@2 ~@3 [d4,e4]@3 ~ d4@3, ~@5 d3 [d3,b3] d3", // E7 Dsus2 G
  H: "[e2,e3,a3,c#4]@3 [a3,c#4,e4] ~@2 [e2,e3,a3,c#4]@3 [a3,c#4,e4] ~ [a3,c#4,e4] [e2,a3,c#4,e4] ~ e3!2, ~@13 [a3,b3,e4]@3", // A Asus2
  I: "~ g#3@2 ~@3 [g#3,b3,e4]@3 g#3!2 ~@2 [f#3,b3,e4] b3 [g#3,b3], [e3,f#3,b3,e4]@2 ~@7 [b3,e4]@3 ~@4", // E Esus2 G#m Esus2 E5
  J: "[e3,a3,c#4,e4]@3 [a3,b3,e4] ~ b3 [a3,c#4]@2 ~ [b3,e4]@3 [a3,b3] e4 ~ a3, ~@4 a3@2 ~@2 e3@3 ~@3 e3@2, ~@9 a3 ~@3 [a3,b3]@3", // A Asus2 A E5 Asus2
  K: "[e3,b3,d4]@3 [e3,d4]@3 b3@2 ~@2 b3 ~ e3@2 e3@2, ~@3 e3@3 ~@2, ~@8 b3@2 ~ b3@2 ~@3, ~@9 [d4,e4]@3 ~@4", // E7 Dsus2
  L: "[e3,a3,c#4,e4]@3 c#4@2 a3 [e3,a3,c#4]@3 a3 ~ b3 [e3,a3,b3] [a3,b3,e4] [a3,b3]@2, ~@9 [b3,e4]@3 ~@4, ~@5 a3 ~@2", // A Esus4 Asus2 E5
  M: "[e3,g#3,b3,e4]@2 [g#3,b3] [g#3,b3]@3 [e3,g#3,b3] [e3,g#3,b3]@2 ~ [e3,g#3] ~@2 [e3,g#3] ~ g#3, ~@10 b3@3 ~ [e3,g#3,b3]@2", // E G#m E
  N: "[a3,b3,e4]@2 a3 b3@3 [a3,b3,e4]@2 [g#3,b3,e4]@2 g#3 [g#3,b3]@2 g#3 [g#3,b3,e4]@2, d3 ~", // Asus2 E G#m E
  O: "[e3,g#3,b3,e4]@3 [e3,g#3,b3]@2 e3 [e3,g#3,b3]@2 b3 [e3,g#3,b3,e4]@2 ~@3 e3@2, ~@11 g#3@2 [g#3,e4]@3, ~@3 b3", // E C#m
  P: "[d3,a3,b3,e4]@3 ~@3 [g#3,e4]@3 ~@4 [b3,e4]@2 g#3, ~@3 [g#3,b3,e4]@2 b3@3 ~@2 d3@6, ~@4 g#3@2 ~@3 [g#3,b3,e4]@3 g#3@3 ~", // Dsus2 C#m E5 E
  Q: "[a2,e3]@2 ~ e3@2 e3 a3@2 e3@2 ~ [c#4,e4,c#5]@2 [a3,c#4,e4]@2 c#4, ~@2 e4@5 ~@3 e3@2 ~@4, ~ a3 ~@2 [a2,a3,c#4]@2 ~@2", // A5 C#m A
  R: "[a2,a3,e4,b4] [a3,c#5] [a3,d5] [a3,d#5,e5] [a2,a3,c#5]@2 [a2,a3,b4]@2", // Asus2 A D5 A Asus2
  S: "[e3,a3,b3]@2 ~ [a3,b3] ~ [e3,a3,b3]@2 e3 [e3,g#3,b3]@2 ~ [g#3,b3]@2 g#3 ~ e3, ~@2 e3@3 ~@5 e3@3 [e3,b3]@3, ~@3 e4@4 ~@4 e4@3 g#3@2", // Esus4 Asus2 Esus4 E G#m E5
  T: "[e2,c#3,e3,c#4]@3 ~ e2@2 [e2,e3,b3]@9 ~, ~@3 [e2,c#3,e3,c#4]@2 ~@11", // C#m E5 C#m
  U: "[e3,b3,e4]@3 [e3,g#3] [e3,g#3]@2 [e3,g#3]@3 [b3,e4] [e3,g#3]@2 [e3,g#3] [g#3,b3,c4] [a3,c#4]@2", // E5 E E5 E G# A
  V: "[a3,c#5]@2 [c#4,e4]@2 [e3,c#4,e5]@2 [e3,a3,c#4,c#5]@3 [c#4,e4] [e3,c#4]@2 [e3,c#4]@3 [a3,a#3,b3]", // A C#m A C#m
  W: "[e3,b3,d4]@3 d4 d4@2 [b3,d4]@3 d4 d4@2 [b3,d4] b4@3, g#3 ~@2 b4@6 ~@7", // E7 Bm
  X: "[a3,c#4,e4]@3 ~ e4 [a3,c#4] [e4,c#5]@3 [a3,c#4] [a3,c#4]@3 [a3,c#4] [a3,c#4]@2, ~@3 [e4,a4]@2 ~@4 e4@4 e4@3", // A C#m A A5
  Y: "[e3,g#3,b3]@3 e4 e4@2 [e3,g#3,b3]@3 ~@2 [g#3,b3]@2 g#3 [g#3,b3]@2, ~@3 b4@6 [g#3,b3]@2 ~@5, ~@10 e3@3 ~@3", // E G#m
  Z: "[a3,c#4,e4]@3 a3 a3@2 [a3,c#4]@3 c#4@2 ~@2 [c#4,e4]@3, ~@3 c#4@3 ~@3 e4@3 a3@2 ~@2, ~@11 c#4@2 ~@3", // A C#m
  AA: "[e3,b3,d4]@3 d4 d4@2 b3@3 d4 d4@2 b3 [d4,b4]@3, ~@3 b4@6 b4@4 ~@3", // E7 G
  AB: "[e3,a3,c#4]@3 [a3,c#4] [a3,c#4]@2 [c#4,e4]@4 [e3,a3]@2 a3@2 [a3,c#4]@2, ~@5 c#4@2 ~", // A C#m A5 A
  AC: "[e3,g#3,b3]@3 [g#3,b3] [g#3,b3]@2 [e3,g#3]@2 ~@2 b3@2 g#3!2 [g#3,b3]@2, ~@8 e4@4 ~ e3@3", // E G#m E G#m
  AD: "[d3,b3]@3 [b3,e4]@2 b3 [b3,e4]@2 ~ [g#3,b3]@2 [g#3,b3]@2 [g#3,b3] [g#3,b3,e4]@2, a3@5 a3@3 d3@3 ~@5, ~@9 e4@5 ~@2", // G E5 G#m E
  AE: "[e3,g#3,b3]@3 [e3,g#3,b3,e4]@3 g#3@2 [g#3,b3] [b3,e4]@2 ~ b3 [b3,e4]@3, ~@11 [e3,g#3]@2 ~@3", // E G#m E5 E
  AF: "[[a2,e3,a3]@3 ~ a2@2 [a3,c#4]@2 ~@3 e3 a2 c#4@3 [a2,e3,a3,b3]@2 [e3,a3,c#4]@2 [e3,a3,d4]@2 [e3,a3,e4]@2 [a3,c#4]@2 e3@2 [e3,a3,b3]@4, ~@3 e4@6 ~ e4@8 ~@14, ~@3 d4@2 ~@3 a2@4 ~@20, ~@10 c#4@3 ~@19]/2", // A5 A Asus2 A Dsus2 A5 A Esus4
  AG: "[e3,a3,b3]@3 [b3,e4]@3 ~@2 [g#3,b3]@3 [g#3,b3]@2 ~ [g#3,b3]@2, ~@6 e3@7 e3@3", // Esus4 E5 G#m
  AH: "[e3,c#4,f#4]@3 ~@5 [g#3,e4]@2 e3 ~ e4@2 e3@2, ~@3 c#4@3 b3@4 ~ g#3@4 ~, ~ e3 ~ b3", // F#7 C#m
  AI: "[e3,a3,d5]@3 ~ a3@2 a3@2 c#5@3 [e3,a3]@2 ~ a3@2, ~@3 e4@6 ~@4 c#4@2 ~, ~ e3 ~@2", // Dsus2 A5
  AJ: "[a3,c#4,a4] [c#4,a4]!2 [a3,c#4,a4] [c#4,a4] a3 [a3,c#4,b4]@2", // A F#m A F#m A
  AK: "[e3,b3,e4]@3 b3@3 ~@2 [g#3,b3]@2 g#3 [g#3,b3] ~@2 [g#3,b3]@2, a3@5 ~ e3@5 e4@5, ~@13 e3@2 ~", // E5 G#m
  AL: "e3 [b3,e4]@2 [e3,g#3,b3]@3 [e3,g#3]@2 b3 ~ g#4 ~ g#4 f#4@3, ~@9 [e4,a4]@2 [e3,g#3]@5", // E5 E A5 E
  AM: "f#3@2 a3 ~@3 [f#3,a3]@2 ~@2 b2 ~ [f#3,d4]@2 [f#3,a3]@2, d4@3 ~@5, b2@3 [f#3,a3]@2 ~@4 [f#3,a3]@3 ~@4, ~@2 b2@2 b2 ~@3", // F#m D F#m
  AN: "[[d3,f#3,a3,d4]@2 [a3,d4] a3 [a3,d4]@2 d3 [f#3,a3,d4]@2 ~ d3@2 [f#3,d4] f#3 ~@2 [a2,e3]@2 [e3,a3]!2 [a2,e3,a3,c#4]@2 a2@2 e3!2 a2@2 [e3,a3,b3] [e3,a3]@2 e3, ~@2 f#4@4 ~@3 [f#3,a3]@2 ~ a3@2 d3@2 c#4@4 ~@12, ~@15 a3@3 ~@6 [a3,b3]@4 ~@4]/2", // D D5 D A5 A Esus4 A5 F#m …
  AO: "a2@2 e3!2 [a2,e3,c#4]@2 e3@2 [a3,c#4] [e3,a3] a2@2 [e3,a3]@2 e3@2, [a3,c#4] ~@3, e3 ~@2 a3@5 ~@8", // A A5 A
  AP: "[e3,a3,b3]@2 [a3,b3] a3 e3@2 e3@2 [e3,g#3,b3,e4]@2 e3 [g#3,b3]@2 ~ e3@2, e4@4 [a3,b3]@4 ~@3 e4@5, ~@13 g#3@3", // Esus4 Asus2 E G#m Asus2
  AQ: "[e3,g#3,b3]@2 [e3,g#3] [g#3,e4]@2 [g#3,e4]@2 e3 [d3,a3]@2 [d3,a3]@2 ~@2 d3@2, ~@2 [d4,f#4] [a3,d4]", // E C#m D5 D D5
  AR: "[a3,d4]@2 a3!2 a2@2 a2@2 c#4@2 [a2,a3,c#4,e4] a3 [a2,e3,a3,c#4] e3 [a2,a3,c#4,e4]@2, [a2,e4] c#4 ~@2, ~@3 [a3,e4]@2 ~@3", // D5 A A5
  AS: "~ a3 [c#4,d4] e4 a4 ~ a3 b4 a3 ~@4 b4 ~ c#4, a2@4 ~ c#4@4 c#4@2 c#4@4 ~, ~@3 a2@3 [a2,a3]@2, ~@3 e4@2 e4 ~@2", // Dmaj7 A
  AT: "[[a2,a3,c#4]@2 a2 [b3,c#4,e4]@2 ~ e3@2 [a2,a3,c#4,e4]@3 [b3,c#4,e4]@2 ~ a2@18, ~@5 b3@6 ~@2 [b3,c#4,e4]@19, ~@5 [c#4,e4]@3 ~@24]/2", // A C#m7 A C#m7 C#m
  AU: "[e3,a3,b3]@3 ~@3 [e3,b3]@2 [g#3,b3]@3 [g#3,e4] ~@2 [e3,b3]@2, ~@3 e4@8 ~@5, ~@3 a3@2 a3@2 ~@6 g#3@2 ~, ~@2 e3 ~@3 e3 ~", // Esus4 E5 G#m C#m E5
  AV: "[e3,g#3,b3]@3 g#3 ~@2 [e3,b3]@2 [e3,g#3]@2 e3 g#3 ~@2 b3@2, ~@3 e4@5 ~@3 e4@5, ~@2 e3 ~@3 e3@2, ~@5 g#3@2 ~@6 g#3@3", // E E5 E
  AW: "[a2,a3]@3 ~@3 a2@2 [a3,c#4]@2 a2 [c#4,e4] [c#4,e4]@2 a2@2, ~@3 [d4,e4]@5 ~@8, ~@2 a2 ~@5, ~@5 a3@3 ~@8", // A C#m Dsus2
  AX: "e4@2 a2 [c#4,e4]@2 a3 e3@2 [a3,c#4,e4]@2 e3 a3 ~@2 e3@2, a3@5 ~@6 e4@5, ~@6 a3 ~, ~@13 c#4@2 ~", // C#m A
  AY: "[e3,b3]@2 e3 ~@3 e3@2 ~@4 e3 b3 [e3,g#3]@2, a3@5 a3@3 [g#3,b3]@4 ~@4, ~@3 e4@7 ~ e4@5, ~@3 b3@5 ~@2 e3@2 ~@4", // E5 E G#m
  AZ: "[g#3,b3]@2 ~@2 [g#3,e4]@2 e3 g#3@2 e3 ~@4 e3@2, ~@2 e3@4 ~ [b3,e4]@5 [b3,e4]@4, ~@5 g#3@2 ~", // G#m C#m E5
  BA: "[[a2,a3]@2 ~@2 a2 a3 e3@2 [a3,c#4,e4]@2 ~ [a3,c#4,e4] a2 a3 [a3,c#4]@2 ~@2 [a3,a4]@2 [c#4,e4,b4]@2 ~ [c#4,e4] [c#4,e4]@2 [a3,c#4,e4,c#5]@2 ~ c#5 a3@2, ~@2 [a2,e3]@2 ~@6 [a2,e3]@2 ~@2 a2@5 ~@13, ~@3 [d4,e4]@5 ~@8 [c#4,e4]@4 ~@2 a3@2 ~@4 a3@2 ~@2, ~@3 a3@2 ~@7 e3@4 ~@7 b4@3 ~@3 [c#4,e4]@3]/2", // A C#m7 C#m A A5 Dsus2 C#m
  BB: "[[a2,a3,c#4]@2 ~ [b3,c#4,e4]@2 ~ e3@2 [a2,a3,c#4,e4]@3 [b3,c#4,e4]@2 ~@2 e4 [a2,a3,e4]@2 ~ [b3,c#4,e4]@2 ~ e3@2 [a2,a3,c#4,e4]@3 [b3,c#4,e4]@2 ~ a2@2, ~@2 a2@2 ~ b3@6 ~@2 [b3,c#4,e4]@2 c#4@4 ~@2 b3@6 ~@2 [b3,c#4,e4]@3, ~@5 [c#4,e4]@3 ~@6 a2@2 ~@2 a2@2 ~ [c#4,e4]@3 ~@8]/2", // A C#m7 A C#m7 A5 C#m7 A C#m7 …
  BC: "[e3,g#3,b3]@2 [e3,g#3] [g#3,e4]@2 [g#3,e4]@2 e3@2 [g#3,b3,e4]@2 ~@3 e3@2, ~@11 [g#3,b3,e4]@2 g#3@3, ~@3 e4", // E C#m E
  BD: "[[a2,a3,c#4]@2 ~ [b3,c#4,e4]@2 ~ e3@2 [a2,a3,c#4,e4]@2 ~@2 [c#4,e4]@3 ~ [b3,c#4,e4]@16, ~@2 a2@3 [b3,c#4,e4]@3 ~@2 [b3,c#4,e4]@2 ~@3 [a2,e3]@16 ~, ~@11 b3@4 ~@17]/2", // A C#m7 A C#m C#m7 A5
  BE: "[[a2,a3]@2 ~@2 a2 a3 e3@2 [a3,c#4,e4]@2 ~ [a3,c#4,e4] a2 a3 [a3,c#4]@2 ~@2 [a3,a4]@2 [c#4,e4,b4]@2 ~ [c#4,e4] [c#4,e4]@2 [a3,c#4,e4,c#5]@2 ~@2 a3 ~ [c#4,e4,a4]@32, ~@2 [a2,e3]@2 ~@6 [a2,e3]@2 ~@2 a2@5 ~@45, ~@3 [d4,e4]@5 ~@8 [c#4,e4]@4 ~@2 a3@2 ~@4 a3@2 ~ a3@32 ~, ~@3 a3@2 ~@7 e3@4 ~@7 b4@3 ~@3 [c#4,e4,c#5]@2 ~@33]/4", // A C#m7 C#m A A5 Dsus2 C#m
})).s("gm_acoustic_guitar_steel").gain(0.28).pan(0.4)

// chords · acoustic guitar steel · "ITSALLRI    IT'S ALL RIGHT" · soft notes
const acoustic_guitar_steel_2 = note(`<
  A B C D E F G H I J K L M N O ~ P Q R S T U V ~@2 W ~@21 X ~@11 Y ~@11 X ~@9 Z ~@5 Y ~@7 Y ~@7 Y ~@7
>`.pickRestart({
  A: "~ [g#3,b3,e4] [b3,e4]@2 [g#3,b3,e4]@2 b3@4 b3 b3@2 ~@3, ~@6 g#3@9 ~", B: "~@5 [g3,a3,g4,a4] ~@6 b3 e3 ~@2",
  C: "~@6 d3@2 ~@5 e2 e2@2, b3@11 b3@5, ~@5 g3@11",
  D: "e3@3 [e3,a3,e4] e3 [e3,a3] ~@4 [b3,e4]@2 [b3,e4]@2 ~ [f4,f#4,g4]", E: "~@3 [g#3,b3] ~@12",
  F: "~@3 [a3,c#4] c#4@2 ~@9 b3", G: "f#4@3 [d4,e4] ~@9 e4@3", H: "~@4 [a3,c#4] [a3,c#4,e4] ~@4 [a3,c#4] ~@5",
  I: "~@2 b3 ~ e3 [g#3,b3] ~@5 [g#3,b3] g#3 ~@3, ~@3 [g#3,b3]@2 ~@11", J: "~@11 b3 ~@4, ~@5 a3 ~@2",
  K: "~@2 b3!4 d4@3 ~@4 [b3,d4,e4]@2 b3", L: "~@4 a3 c#4 ~@10, ~@3 a3@2 ~@11",
  M: "~@2 e3!2 ~ g#3 f#4 e4@2 [e3,g#3] ~ [e3,g#3]@2 ~@3, ~@2 e3 ~@5", N: "~@3 a3 ~ a3 ~@4 b3 ~@5",
  O: "~@5 [g#3,b3] ~@10", P: "~@2 d4 ~@4 e3 ~@4 e3 ~ a3@2",
  Q: "~@2 [a2,e4]@2 [a2,e4]@2 [a2,e4]@2 e4@4 ~@2 [a4,a#4] [f4,f#4,g4,g#4], ~@3 e4", R: "~@4 a3 ~@11",
  S: "[b3,c4] ~@4 c4 ~@9 [f3,f#3,g3,c4,c#4,d4]", T: "g#3 ~@7, d#4 ~@15", U: "~@15 [a#4,b4,c5]", V: "a4 ~@8 b4@4 ~@3",
  W: "c#5@3 ~@13", X: "~@8 a4 ~@5 a4 ~", Y: "~@11 c#4 ~@4", Z: "~@10 e3 ~@5",
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.4)

// other · electric guitar clean
const electric_guitar_clean = note(`<
  A B ~@27 C ~ D E F G H I ~ J K L M N O ~ P Q ~ L M R S T@2 U@2 ~@8 L M V@2 W@2 X Y L M Z@2 T@2 AA AB AC@2 AD AE ~@27
>`.pickRestart({
  A: "[d3,a3] [e3,b3] [e3,b3]@14", B: "d4@2 d4@2 b3 [g3,a3] e3@8 ~@2", C: "~@4 c#4 d4 f#4@10",
  D: "~@4 c#4 d4 f#4@8 ~@2", E: "~@14 b3 [b3,c#4]", F: "b3 c#4 d4 e4 c#4@2 b3@2", G: "a3@2 e4@2 b3@2 b3 e4",
  H: "c#4@2 f#4@2 g#4@2 e4@2 g#4@7 ~", I: "d4 e4 c#4@2", J: "~@2 e4!2 e4@2 a4 g#4@2 e4@5 e4@2", K: "e4@15 ~",
  L: "~@2 b3@2 ~@6 d4@5 ~, f#4@3 e4@2 ~@3, ~ b3!2 ~", M: "~@2 d4@2 ~@6 d4@5 ~, f#4@3 e4@2 ~@3, ~ a3!2 ~",
  N: "e4@2 ~@2 a3@2 ~@2 e3@2 a3@2 b3 c#4 b3 a3, ~@2 a3@2 ~@2 b3@5 ~@5, ~@3 c#4@3 ~@10", O: "b3 c#4 e4@2 c#4@2 a3@8 ~@2",
  P: "~@4 a3@2 a3!2", Q: "b3 a3 e4 c#4@5", R: "e4 ~ a3 ~ e3 a3 b3!2, ~ a3 ~ b3@2 ~@3, ~@3 c#4@3 ~@10",
  S: "b3 c#4@7 d4@2 c#4 ~ b3@2 a3 ~", T: "[a3@3 ~ e4@4 b3@13 ~@11]/2", U: "[b3@2 e4 b3@12 ~]/2",
  V: "[e4@2 ~@2 a3@2 ~@2 e3@2 a3@2 b3 c#4@15 ~@4, ~@2 a3@2 ~@2 b3@5 ~@21, ~@3 c#4@3 ~@26]/2",
  W: "[~@14 e4@5 b3@4 ~ a3@4 a3@4]/2", X: "~@2 a3 ~@3 e4 c#4, ~ a3 ~@2 c#4@3 ~, ~@3 e4@9 ~@4",
  Y: "a3@2 e4@2 c#4@2 ~ e4 e4@2 ~ a4 a4@2 e4@2, ~@3 a3 ~ c#4 ~@2",
  Z: "[e4@2 ~@2 a3@2 ~@2 e3@2 b3@2 b3 ~@5 e4@2 ~@2 c#4@2 d4@2 c#4 ~ b3@2 a3 ~, ~ a3 ~ b3@2 ~@3 a4@2 a4@2 ~@4, ~@3 c#4@3 ~@7 c#4@9 ~@10]/2",
  AA: "~@15 e4", AB: "e4 e4@2 ~ a4@8 a4@4", AC: "[b3@10 ~@3 b3@5 ~@3 e4@5 ~@6, ~@11 e4@5 ~@3 b3@5 ~@8]/2",
  AD: "b3@3 ~@2 b3@5 ~@6, ~@3 e4@5 ~@8", AE: "[a3,b3,e4]",
})).s("gm_electric_guitar_clean").gain(0.3).pan(0.8)

// other · sitar
const sitar = note(`<
  ~@2 A@3 B@2 C@2 D E F G H I ~@8 J K L M N@2 ~@3 O@2 P@2 Q@2 R S ~@5 T U ~@6 V U ~@14 T W X ~@2 Y@2 ~ V Z AA ~@31
>`.pickRestart({
  A: "[~@6 e5@3 b4@5 ~@2 f4@6 e4@6 f#4@13 ~@7, ~@7 a4@4 ~@13]/3", B: "[~@13 a3@16 ~@3]/2",
  C: "[~@9 a3@3 ~@4 d4@14 ~@2, ~@12 f#4@7 ~@13]/2", D: "~@3 g2", E: "e2@15 ~", F: "~@4 a2 d3 d3@2", G: "d3@11 ~@5",
  H: "~@4 a3 d4 f#4@2", I: "e4@7 ~", J: "~@9 a4@3 e5 b4@3", K: "b4@3 ~", L: "~@5 a4@4 a4@3 f#4@4", M: "e4@5 ~@3",
  N: "[~@9 e4@3 a3@16 ~@4]/2", O: "[~ a4@2 e4@8 ~@5]/2", P: "[~ a3@3 e4@8 ~ f#4@10 ~@9]/2",
  Q: "[~@13 f#3@9 a3@8 ~@2]/2", R: "~@9 d4@2 d4!2 ~ d4@2", S: "f#3 f3 e3@3 b3 b3@9 ~", T: "~ [a3,d4,f#4]",
  U: "a3@9 ~@7", V: "~@8 f#4@7 ~, ~@7 [a3,d4]@8 ~", W: "a3@9 b3@3 g4@4", X: "~ b4@3 a4@4 [b4,d5] [a4,c#5] [a4,c#5]@6",
  Y: "[~@6 c#4@6 b3 c#4 c#4@7 ~@11]/2", Z: "a3@9 ~@6 e4", AA: "e4 a4@2 ~",
})).s("gm_sitar").gain(0.4).pan(0.7)

// other · soprano sax
const soprano_sax = note("<~@8 e4!2 ~@101>").s("gm_soprano_sax").gain(0.15).pan(0)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@10 A ~@2 B C D ~@24 E F@2 ~@4 G H I J K ~@4 L M N O P Q R S T U V ~@5 E I J ~@8 W L M N O X Q R S Y@2 Z@2 Y@2 AA@2
  AB AC AD AE AF@2 AG@2 AH@2 ~
>`.pickRestart({
  A: "d4", B: "a4 g#4 f#4 a4@5 g#4@4 f#4@4, ~@3 g#4 ~@12", C: "f#4", D: "d4@2 c#4 b3 c#4 d4 e4@9 ~",
  E: "d5@3 e5@3 f#5@2", F: "[f#5@3 a4@3 b4 c#5@9]/2", G: "~@8 c#5 d5 e5@2 a5@4", H: "f#5@3 e5@3 f#5@2",
  I: "f#5@3 g#5@3 a5@2", J: "a5", K: "f#5 a5@2 ~@13", L: "a4 g#4", M: "f#4@2 g#4@2 a4@4 g#4@4 f#4@3 [c5,c#5]",
  N: "d5 c#5", O: "b4 c#5 d5 e5 c#5@2 b4@2", P: "a4@6 g#4 a4 g#4@8, ~@8 f#4 ~@7", Q: "f#4@2 g#4@2 a4@4 g#4@4 f#4@3 c5",
  R: "d5 c#5, c#5 ~@15", S: "b4 c#5 d5 e5 e5@4", T: "e5", U: "f#5@3 e5@2 d5@3", V: "c#5", W: "a4",
  X: "a4@6 [g#4,a4] [f#4,g#4] g#4@7 [g#4,a4]", Y: "[b4@7 d5 e5@20 ~@4, ~@8 d#5 ~@23]/2",
  Z: "[e4@2 e4!2 a4@4 a4@22 g#4 a4]/2", AA: "[e4@2 e4!2 a4@4 a4@20 g#4 a4 g#4 a4]/2",
  AB: "g#4@2 g#4@2 f#4 g#4@2 a4 g#4@2 a4 [f#4,g#4] g#4@2 a4@2", // F#sus2
  AC: "[a#4,b4]@2 a4 g#4@2 f#4@2 g#4 a4 b4 c#5@2 d5@4, ~@12 c#5 ~@3", // Bmaj7
  AD: "[c#5,d5] [b4,c#5] c#5@5 e5@5 e5@4, ~@12 f#5 ~@3", // Dmaj7 Bsus2
  AE: "~@2 e5@3 ~ e5@3 [e5,f#5] d5@2 c#5 d5 c#5 b4, ~@2 f#5 ~@3 f#5 ~@9", AF: "[a4@2 b4 b4@2 b4@2 b4@2 b4@7]/2",
  AG: "[a4@4 e4 a4 a4@26]/2", AH: "a4/2",
})).s("gm_overdriven_guitar").gain(0.3).pan(0.9)

// other · string ensemble 1
const string_ensemble_1 = note("<~@12 A B A C ~@12 D B A C ~@79>".pickRestart({
  A: "e3", B: "d3 f#3 e3@2", C: "d3", D: "b3 e3 b3 e3@5",
})).s("gm_string_ensemble_1").gain(0.35).pan(0)

// bass · electric bass finger
const bass = note(`<
  ~@20 A@2 B C D@2 B E F G H I J K F L J M N O P Q R@2 H S T@2 U Q R@2 H S V@2 W@2 X Y W@2 X Z P AA AB@2 H S AC@2 U AD
  R@2 H S AE@2 H L AF@2 W@2 X AG W@2 X AH W@2 X AI W@2 X M W@2 X AJ W@2 X AK AL@2 ~
>`.pickRestart({
  A: "[e1@7 a1@9]/2", B: "e1", C: "a1@5 ~ a1 b1 d2@4 e2@4", D: "[e1@13 ~ a1@18]/2", E: "a1@3 b1 d2@2 e2@2",
  F: "e1@5 ~ e1@2 e1@7 ~", G: "e1@15 ~", H: "e1@5 ~ e1 ~ e1@7 ~", I: "e1@5 ~ d2@2 d2@4 b1@4", J: "a1@5 ~ a1@2 a1@7 ~",
  K: "a1@2 a1 b1", L: "e1@3 b1", M: "a1@3 b1", N: "e1@5 ~ e1 ~ e1@6 ~@2", O: "e1@11 ~ a1@2 a#1@2",
  P: "b1@5 ~ b1@2 b1@7 ~", Q: "d2", R: "[a1@5 ~ a1 ~ a1@4 e2@2 a1@7 ~ a1 ~ a1@4 b1@4]/2", S: "e1 d2",
  T: "[a1@5 ~ a1 ~ a1@4 e2@2 a1@7 ~ a1 ~ a1@8]/2", U: "b1@5 ~ b1 ~ b1@7 ~", V: "[a1@5 ~ a1 ~ a1@4 e1@2 a1@18]/2",
  W: "[e1@5 ~ e1 ~ e1@5 ~ e1@14 b1@4]/2", X: "a1@5 ~ a1 ~ a1@7 ~", Y: "a1@4 e2!2 c#2@2", Z: "a1@8 e3@2 a3 ~ e3@2 e3@2",
  AA: "d2@3 d2", AB: "[a1@5 ~ a1 ~ a1@4 d2@2 a1@7 ~ a1 ~ a1@4 b1@4]/2",
  AC: "[a1@5 ~ a1 ~ a1@6 a1@7 ~ a1 ~ a1@4 b1@4]/2", AD: "d2@3 d2@3 d2@2",
  AE: "[a1@5 ~ a1 ~ a1@6 a1@8 a1 ~ a1@4 b1@4]/2", AF: "[a1@5 ~ a1 ~ a1@6 a1@18]/2", AG: "a1@3 e2",
  AH: "a1@8 e2@2 e2 ~ b1@2 b1 ~", AI: "a1@8 ~@2 a1 c#2 d2 e2@3", AJ: "a1@4 c#2@2 e2 ~ e2@2 e2@2 b1@4",
  AK: "a1@8 e2@2 a2 ~ e2@2 e2@2", AL: "a1/2",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@20 A@2 B C D@2 B C E F E G H@2 I@2 J@2 K@2 L M N O P Q R S L M N O P T U@2 V@2 W@2 V@2 X@2 L M N O P Q R S L M N O P
  T Y@2 Z@2 AA@2 V@2 W@2 V@2 X@2 AB@2 AC@2 AB@2 AC@2 AB@2 AC@2 AB@2 AC@2 AD@2 ~
>`.pickRestart({
  A: "[[e3,g#3,b3]@7 [e3,a3,c#4]@9, e4]/2", B: "[e3,b3,d4,f#4]", C: "[e3,a3,c#4,e4]",
  D: "[[e3,g#3,b3,e4]@7 [e3,a3,c#4,e4]@9]/2", E: "[g#3,b3,e4,b4]", F: "d4 f#4 [e4,g#4]@2, [d3,b3], a4 ~",
  G: "a4 g#4, [d3,b3,d4]", H: "[d5 c#5@3 a4@3 b4, a3, [e4,a4] [c#4,e4]]/2",
  I: "[a4 g#4 [c#4,f#4] [b3,e4,g#4], b3@3 ~, [e3,e4] e3]/2", J: "[d5@2 c#5@2 a4@3 b4, a3, [e4,a4] [c#4,e4]]/2",
  K: "[a4 g#4 f#4 g#4, [e3,b3,e4]]/2", L: "[b2,d4,f#4,a4]", M: "[d3,d4,f#4,a4]", N: "c#5@3 b4@5, [e3,e4,a4]",
  O: "[e3,c#4,e4,a4]", P: "a4@3 g#4@5, [e3,b3,e4]", Q: "[e3,b3,e4,g#4] [d3,a3,d4,f#4]", R: "d4 c#4@3, [e3,e4,a4]",
  S: "[a3,c#4,e4,a4]", T: "[e3,e4,g#4,b4] [d3,a3,f#4,d5]", U: "[[e3,b3,e4,c#5]@3 ~]/2",
  V: "[a3@4 g#3@4 f#3 g#3 a3 b3 g#3@2 f#3@2, [e3,e4,b4]]/2", W: "[d4@4 c#4@4 b3 c#4 d4 e4 c#4@2 b3@2, [a3,a4,e5]]/2",
  X: "[d4@4 c#4@4 b3 c#4 d4 e4 e4@4, [a3,a4,e5]]/2", Y: "[c#5@3 c#4, [e3,a3,e4]]/2", Z: "[a4@3 g#4@13, [e3,b3,e4]]/2",
  AA: "[e3,b3,e4,c#5]/2", AB: "[a3 g#3@3, [e3,e4,b4]]/2", AC: "[d4 c#4@3, [a3,a4,e5]]/2", AD: "[a3,c#4,a4,e5]/2",
})).s("gm_synth_strings_1").gain(0.26).pan(0)

// other · acoustic guitar steel
const acoustic_guitar_steel_3 = note("<~@37 A ~ B ~@4 C D E F ~@19 G H D ~@41>".pickRestart({
  A: "b4@2 c#5@2 d5@2 e5@2 a5@7 ~", B: "~@2 g#4 b4 e5@4", C: "a4@2 a4@3 b4 g#4@4 e4@2 g#4@2 b4@2", D: "e5@7 ~@9",
  E: "~@6 a3 e4", F: "a4 e5 a5@4 ~@2", G: "a3 e4 a4 e5 a5@4", H: "a4@2 e4@3 b4 g#4@4 e4@2 g#4@2 b4@2",
})).s("gm_acoustic_guitar_steel").gain(0.35).pan(0.3)

// other · overdriven guitar
const overdriven_guitar_2 = note("<~@59 A B C D@2 ~@23 A B C D@2 ~@19>".pickRestart({
  A: "~@15 g5", B: "a5@7 b5 g#5@8, g#5 ~@15", C: "f#5 g#5 a5@2 g#5@2 f#5@2", D: "a5/2",
})).s("gm_overdriven_guitar").gain(0.25).pan(0.3)

// other · rock organ
const rock_organ = note("<~@91 A B@2 C D E@2 F@2 G@2 C H G@6 ~>".pickRestart({
  A: "~@15 [c6,c#6,d6,d#6]", B: "e6/2", C: "e5@13 f#5 g#5 a5", D: "e5@7 e6 e6@8",
// … 34 more lines

More by Zucchero