Strudelify

Quando Sarai Lontana

Jovanotti

KeyA minorTempo76 bpm
0:00/0:00
// Quando Sarai Lontana — Jovanotti
// 76 bpm, 4/4, key A minor. 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 80 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(76/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 · fretless bass
const bass = note(`<
  A B A C D E F@2 G@4 H@2 I J K L M N O P Q R S T U V W X@3 Y Z@2 AA AB@2 AC AD AE@4 AF AG AH AI AJ AK AL AM AN AO AP AQ
  AR AS@2 AT AU AV AW AX AY AZ BA@3 AV AY BB BC BD@2 BE BF BG BH ~
>`.pickRestart({
  A: "f1@47 b1", B: "c2", C: "c2@41 ~@5 f1 ~", D: "~ f1@44 c2 ~@2", E: "c2@20 ~ c2 ~@2 c2 ~@5 c2@17 ~",
  F: "[f1@45 c2 ~ c2@36 ~ d#2@12]/2", G: "[f1@12 ~@5 f1@30 a#1@13 ~@6 a#1@29 g1@15 ~@3 g1@30 c2@46 ~ f1@2]/4",
  H: "[f1@13 ~@4 f1 f1@24 ~@5 a#1@16 ~@3 a#1@30, ~@47 a1 ~@48]/2", I: "g1@17 f#2 g2@29 ~", J: "c2@11 ~@7 c2@27 ~@3",
  K: "f1@15 ~@3 f1@29 ~", L: "a#1@14 ~@4 a#1@23 a1@6 ~", M: "g1@8 ~ g1@15", N: "c2@12 c2 ~@2 c2@2 ~ c3@15 c3@13 ~@2",
  O: "f1@16 ~@2 f1@21 f1@8 ~", P: "a#1@15 ~@3 a#1@29 ~", Q: "g1@13 ~@5 g1@27 ~@3",
  R: "c2@12 c2 ~@2 c2 ~@2 c2 ~@2 g2@6 a2 ~@2 d3 ~@5 c3@3 a2@9", S: "a1@11 ~ a2@9 a1@2 ~@4 a1 ~@2 a1@6 a2@9 a1 ~@2",
  T: "a1@12 a2@8 a1@4 ~@3 a1@2 ~ a1@2 ~ a1@3 a2@12", U: "a1@11 ~ a2@8 ~ a1@2 a1 ~@3 a1@2 ~ a1@6 a2@9 a1@2 ~",
  V: "a1@14 ~ a1 ~@2 b2@2 ~ c3@2 ~ c#3@11 ~ a1@12, ~@36 a2 ~@11",
  W: "f1@12 ~@2 f1@2 ~ f1 ~@3 f1 ~@8 f1@7 ~@2 f1 ~@2 f1@2 ~ g1@2 ~",
  X: "[c2@12 ~@3 c2 ~@2 c2 ~@2 e2@6 g2@2 ~ e2 ~ d2 ~@3 c2@9 ~@2 f1@13 ~@3 f1 ~ f1@2 ~@2 f1@8 f1@8 ~@2 f1 ~ f1@3 g1@3 c2@13 ~@3 c2 ~ c2@2 ~@2 e2@6 g2@3 e2@2 ~ d2@3 c2@9 ~@3]/3",
  Y: "~@23 f2@24 ~, ~ f1@47, ~@6 c2@3 ~@7", Z: "[a#1@14 ~@4 a#1@29 g1@16 ~@2 g1@30 ~]/2", AA: "c2@25 ~@23",
  AB: "[f1@12 ~@6 f1@29 a#1@13 ~@5 a#1@31]/2", AC: "g1@14 ~@4 g1@27 ~@3", AD: "c2@17 ~ c2@17 ~ d2@10 ~@2",
  AE: "[f1@14 ~@4 f1@29 a#1@12 ~@7 a#1@28 ~ g1@14 ~@5 g1@29 c2@14 ~@2 d2@6 e2@3 d3@2 ~ g2 ~@2 d3@6 c3@12]/4",
  AF: "a1@11 ~ a2@7 ~ a1@3 a1 ~@3 a1@2 a1@6 a2@8 ~@2 a1 ~@2",
  AG: "a1@8 ~ a1 ~@2 a2@8 ~ a1@3 a1 ~@2 a1@2 ~ a1 ~@2 a1@2 a2@11 ~@2",
  AH: "a1@8 a1 ~@2 a2@8 ~@2 a1@3 ~@3 a1@2 ~ a1@6 a2@12", AI: "a#1@12 a#2@7 c#3@5 c#3@7 e3@4 ~ e3@6 a2@6",
  AJ: "f1 ~@2 f1@2 ~@7 f1 ~@2 f1 ~@2 f1 ~@2 f1@22 ~@2 f1 ~@2",
  AK: "c2@2 ~ c2 ~@11 c2 ~@2 c2 ~@2 e2@6 g2 ~@2 e2 ~@2 d2 ~@2 c2@8 f1 ~@3",
  AL: "f1@12 f1 ~@5 f1 ~@2 f1@5 ~ f1 ~@2 f1@11 ~ g1 ~@2 a1@2 ~",
  AM: "c2@15 e2@5 ~ g2@3 a2@3 g2@2 ~ e2@5 ~ d2@3 e2@2 c2@6 ~", AN: "e1@15 ~@3 e1@27 e1 ~@2",
  AO: "a1@11 ~@4 a1 ~@2 b1@2 ~ c2@2 ~ c#2@12 a1@9 f1 ~@2", AP: "f1@19 ~@2 f1@2 ~ g#1@17 ~ a#1 ~@2 b1 ~@2",
  AQ: "c2@12 ~@2 c2 ~@2 g1@3 f1@3 c1@13 c2@12", AR: "[e1,e2]@19 ~@2 [e1,e2] ~@8 [e1,e2]@15 e1@2 ~",
  AS: "[a1@15 a1@2 ~ b1@2 ~ c2 ~@2 c#2@11 ~ a1@11 f1@24 ~ g#1@24]/2", AT: "c2@13 ~@3",
  AU: "e2 ~@2 e2@2 ~@4 e2 ~@2 e2@2 ~@4 e2@2 ~ e2 ~@5 e2@2 ~ e2@2 ~@4 e2@12",
  AV: "a1@12 a2@9 a1@2 ~@4 a1 ~@2 a1@5 ~ a2@12", AW: "a1@12 a2@8 ~ a2@6 a2 ~@2 c#2@3 f#2 ~@2 e2@5 ~ f#2@3 e2 ~@2",
  AX: "a1@10 ~@2 a2@9 a1@3 ~@3 a1 ~@2 a1@5 ~ a2@12", AY: "a#1@12 a#2@6 c#3@5 ~ c#3@7 e3@5 e3 ~@5 a2@6",
  AZ: "f1@12 ~@3 f1 ~@2 f1 ~@2 f1 ~@5 f1 ~@2 f1@18",
  BA: "[e1@12 f#2@6 a2@2 ~ e3@8 d3@3 a2@2 ~ c#3@6 a2@2 ~ e2@2 ~ a1@13 a2@8 ~ a1@2 ~@4 a1 ~@2 a1@6 a2@10 ~ a1@12 ~ a2@8 ~ a1@9 a2 ~@2 a2@2 ~ c#2@3 f#2@3 e2@5 ~]/3",
  BB: "f1@12 ~@3 f1@2 f1 ~@2 f1@3 ~@4 f1 ~@2 f1@7 ~@2 a1@7 ~@2",
  BC: "c2@12 c2 ~@2 e2@6 g2@6 a2 ~ c3@3 a2 ~@3 d3@5 c3@3 ~ a2@2 ~",
  BD: "[c3@12 c3 ~@2 a2 ~@2 a2 ~@2 g2@6 a2@6 e2@5 ~ d2@2 ~ c2@2 ~ a1@2 c2@9 ~@3 c2 ~@3 c2@2 a1@2 ~ c2@4 ~@3 e2@5 ~ g2 ~@2 e2 ~@2 d2@2 ~ c2@5 ~]/2",
  BE: "f1@9 a1@6 c2@3 d2 ~@2 f2@8 d2 ~@3 g2@4 ~ g2@3 f2@2 ~ d2@2 ~@2",
  BF: "c2@7 ~@2 c2@2 ~ e2 ~@2 e2 ~@5 a2@4 ~@2 a2@3 g2@2 ~ g2@3 e2@6 c2@6",
  BG: "f1@7 ~ f1@2 ~ a1@2 ~ c2@2 ~ d2@2 ~ f2@4 ~@3 f2@2 ~ g2 ~ g#2@2 ~ a2@2 ~ c3@2 ~ a2@2 ~ g2@2 ~@2",
  BH: "c3@5 ~@3 c3@3 ~ a2@2 ~ g2@2 ~@3 e2@6 g2@2 ~ e2@2 ~ d2@2 ~@2 c2@6 d2@3 c2 ~@2",
})).s("gm_fretless_bass").gain(0.38)

// chords · epiano2
const epiano2 = note(`<
  A@3 B@2 C D E F@4 G H I J K@4 L@6 M@2 N O P Q R@5 S@4 T@3 U@4 V@2 W@2 X@2 Y Z AA@2 AB AC AD AE@2 AF@2 AG@2 AH@3 AI
  AJ@2 AK AL@4 AM ~
>`.pickRestart({
  A: "[~ [f2,c3,a3,c4,e4,g4]@46 ~ [c3,d4,f4]@45 ~@4 g4@41 ~@6, ~@47 a#3@45 ~ f2@48 ~@3, ~@47 c3@23 ~@2, ~@95 [a3,c4]@45 ~@4, ~@16 e4@7 ~]/3", // Fmaj7 Dm7 Am
  B: "[[c3,a#3,d4,f4] ~@8 [c3,a#3,d4,f4]@36 ~@3 [e4,g4]@48, ~@23 [f2,c3,a3]@25, ~@47 c4@49]/2", // A# Em F
  C: "~@5 a#3@11, a4@47 ~, ~ c3@47, ~@4 f4@43 ~, ~@3 d4@13", D: "[f2,c3,e4,g4]@13 ~ c4@2, [a3,c4]@35 ~@4 a3@8 ~",
  E: "[c3,a#3,d4,f4]@47 ~", // A#
  F: "[[f3,a3,c4,e4]@44 ~@3 [a#3,d4]@45 ~@4 f4@41 c4@2 ~ d4@3 ~@19 f4@11 ~ [g3,e4]@16 ~@2, ~@95 [g3,a#3,d4]@43 ~@5 c4@47 ~@2, ~@153 a#3@38 ~]/4", // Fmaj7 A# C Gm
  G: "[f3,a3,c4,e4]@18 f2@2 ~ [f3,a3,c4,e4,g4] ~@8 [f3,a3,c4,e4,g4]@18", H: "[a#3,d4,f4,a4]",
  I: "[g4,a#4], [d4,f4] ~@47", J: "[f4,g4,a#4] ~@34 [c4,f4,g4,a#4]@11 ~@2, c4@17 ~@7",
  K: "[[c4,e4,f4,a4]@36 [c4,e4,f4,a4] ~@10 [f3,a#3,d4]@37 ~@2 [c4,e4]@8 ~ [g3,a#3,d4]@36 ~ [g3,a#3,d4,f4]@10 ~ [g3,a#3,c4,f4]@36 ~ [g3,a#3,c4,e4]@12]/4", // Fmaj7 A# C Gm Gm7 C7
  L: "[[f3,a3]@47 ~@43 d4@5 ~@43 d4@5 ~ c4@23 ~ e4@24 ~@15 a4@29 [c#4,e4]@3 d4@4 ~@5 b3@7 ~ b3@2 g4@17 ~@7 g4@6, [c4,e4] ~@46 a#3@48 [a#3,d4]@40 a#3@8 ~@25 c4@71 b3@3 ~ b3@5 b4@39 ~, ~@47 [d4,f4]@40 f4@9 f4@47 ~@96 g4@19 ~@18 g4@6 ~@6, ~@80 f3@15 g3@48 [g3,a#3,f4]@24 [g3,a#3]@71 ~@43 b3@6 ~, ~@83 a4@12 ~@37 a3@12 ~@48 [a3,c#4,e4]@44 ~@9 d4@33 ~ d4@9]/6", // F C#m C A# Dm Gm7 Gm A
  M: "[[a3,c#4,e4]@7 a3@2 [c#4,e4]@38 [a#3,c#4,e4,g4]@43 ~@6, a4@47 ~@49, ~@9 a3@20 ~@67]/2", // A C#m A#dim
  N: "d#4 ~@2 c4@6 d#4@2 ~@7 d#4 ~@8 [d#4,e4] ~@2 c4@3 ~@3 d#4 ~@5 a3 ~@2 [g3,b3,d4] ~@2, e4@9 e4@7 a3@8 a3@9 a3@9 ~@6, ~@13 c4@5 e4@8 ~@10 e4@9 ~@3, ~@7 c4@2 ~@4 c4@2 ~", // Emaj7 G
  O: "~@3 [g3,b3,d4] ~@8 [g3,b3,d4]@12 ~@2 [g3,b3,d4] ~@9 [g3,b3,d4]@10 ~ d#4", // G
  P: "~@3 c4@5 d#4 ~@2 c4@6 d#4 e4@3 g4@2 d#4 ~@15 [a3,c4]@6 ~@3, e4@8 ~ e4@8 ~@7 e4@23 ~", // Am
  Q: "[g3,b3,d4]@28 ~@2 [g3,b3,d4]@7 ~@2 [g3,b3,d4]@7 ~ [c4,d#4]", // G Cm
  R: "[[e4,a4]@3 [d#4,g#4] e4@14 [f3,a3,c4]@26 ~@3 [f3,a#3,d4]@45 ~@3 [a#3,d4,f4]@45 ~@45 f4@6 [a3,c4,e4]@41 ~@6 f#4 g4, g#4 ~@2 [c4,a4]@15 ~@122 g3@49 ~@51, ~@142 a#3@32 ~@2 a#3@5 ~ a4@9 ~@45 f4@4, ~@144 e4@35 c4@11 ~@50]/5", // A5 G#5 F A# Am F
  S: "[~@16 f4@30 ~@2 [f4,g4,a#4]@38 ~@9 [c4,e4,g4,a#4]@47 ~ [c4,e4,f4,a4]@48 ~, ~@3 d5@8 ~ c5@35 ~@145, ~@8 g4@8 ~@31 d4@38 ~@107]/4", // Gm7 C7 Fmaj7
  T: "[~@39 [c4,e4]@8 ~ g2@32 ~@12 f4@3 ~ [c3,c4]@35 a#3@6 [a#3,d4]@6 ~, [f3,f4]@48 [d3,g3]@35 d3@7 a#3@5 ~@49, ~@9 d4@39 d4@47 e4@36 ~@13, ~@18 a#3@29 a#3@39 g3@9 ~@49, ~@80 g2@15 ~@36 [c3,g3,c4,e4]@10 ~@3]/3", // C A# F G5 C
  U: "[~@39 e4@8 ~@26 b3@3 ~@8 d3@3 ~@3 d3@3 ~@2 a3@5 ~@16 c#4@16 ~@3 [a3,e4]@5 ~@3 [g3,a#3,c#4,e4]@44 ~@5, e4@33 c#4@12 ~@2 b3@3 ~@3 b3@13 b4@21 b3@5 ~@3 c#4@18 a3@19 ~@60, [a3,c#4]@29 a3@14 ~@4 [d3,d4]@9 g4@25 ~@6 g4@9 ~@6 a3@3 a4@32 ~@55, ~@8 a4@49 ~@3 d3@2 d4@16 ~@3 d4@10 ~@4 e4@37 ~@2 c#4@5 ~@53, ~@48 g2@43 ~@4 a2@47 ~@50]/4", // A5 Gdim A D
  V: "[d#4 ~@2 c4@6 ~@30 c4@8 [c3,e3,g3,b3,d4]@2 ~ [c3,e3,g3,b3,d4] ~@8 g3@15 ~@19 g3@2 ~, [c3,f3]@46 ~@13 [c3,e3]@36 ~, e4@9 e4@6 a3@6 c4@6 e4@9 e4@11 ~@31 b3@9 d4@8 ~, ~@11 c4@7 e4@6 a3@9 a3@14 ~@28 g3@15 b3@5 ~, ~@29 c4@9 ~@21 [b3,d4]@21 ~ d4@3 g4@11 ~]/2", // Cmaj7 F5 C Bm
  W: "[e4@3 ~@6 e4@3 c4@3 ~@3 d#4 ~@2 c4@3 ~@2 d#4 e4@3 c4@3 ~@3 d#4 ~@2 c4@3 a3@2 ~@3 [g3,b3,d4]@2 ~ [e3,g3,b3,d4] ~@9 [c3,e3]@34 ~@2, [c3,f3]@49 ~@47, ~@9 d#4 ~@5 a3@7 ~@2 a3@6 ~@3 a3@5 ~@21 [g3,b3,d4]@34 ~@3, ~@18 e4@5 ~@13 e4@11 ~@49]/2", // G Em7 C F5 G
  X: "[[d4,g4]@11 ~@7 b3@21 [b3,d4]@8 ~ e3@24 ~@5 a3@9 [a3,e4]@8 ~@2, g3 ~, e3@25 ~@22 a3@30 ~@19, b3@9 ~@2 g4@36 ~@49, ~@14 d4@25 ~@9 c#4@38 ~@10]/2", // G5 Bm A5
  Y: "[f3,a3,c4,e4]@22 ~@2 [g#2,c4]@21 ~@3", Z: "g3@26 ~@12 e4@9 ~, [c3,c4], e4@19 ~@5, d4@32 d4@15 ~, ~@26 g3@21 ~",
  AA: "[[g3,b3,d4]@19 ~@2 [e3,g3,b3,d4] ~@8 [e3,g3,b3,d4]@17 ~@37 [a3,c#4,e4]@12, ~@47 a2@49, ~@47 c#4@37 ~@12, ~@47 e3@31 [g2,e3]@18, ~@48 a3@35 ~@13]/2", // G Em7 A C
  AB: "[a3,c4,e4]@23 [g#2,c4,d#4]@24 ~", // Am G#
  AC: "~@7 g3, [c3,e3]@23 ~, ~@3 d4@3 g3@4 g3@4 ~@2, ~@15 e4@12 e4@12 e4@7 ~@2, ~@21 d4@12 d4@13 ~@2", // C
  AD: "[b3,d4,e4,a4] ~@2 [d4,e4,a4] ~@5 [e3,b3,d4,e4,a4] ~@2 [d4,e4,a4] ~@5 [b3,d4,e4,a4] ~@2 [d4,e4,a4] ~@5 [e3,b3,d4,e4,a4] ~@2 [b3,d4,e4,a4] ~@5 [e3,b3,d4,e4,a4]@11 ~, e3@2 ~ [e3,b3]@2 ~@7 [e3,b3]@2 ~@4 e3@2 ~ [e3,b3]@2 ~@7 e3@2 ~@16", // Bm7 Dsus2 Esus4 Dsus2 Bm7 Dsus2 Esus4 Bm7 …
  AE: "[[e3,c#4,e4,a4]@15 ~@24 [b3,e4,a4]@8 [e3,b3]@12 ~@7 d4@3 [b3,d4]@12 ~@6 [b3,d4,g4]@7 ~@2, a2@47 [a2,d4,g4]@22 a2@26 ~, ~@15 e4@20 c#4@11 ~@38 e3@10 ~@2, ~@15 c#4@17 b3@7 ~@24 b3@6 ~@12 [b3,d4]@6 ~@9, ~@15 a4@2 e3@29 ~@13 e3@9 ~ [e3,g4]@18 ~@9]/2", // A Esus4 E5 Bm G Dsus4 Bm Em
  AF: "[e3@12 e3@8 ~@3 e3@7 ~@6 e3@11 ~ [e4,g4]@46 ~@2, a2@47 [a#2,a#3,c#4]@47 ~@2, [e4,a4]@5 e3 ~@10, c#4@20 c#4@13 [c#4,e4,a4]@14 ~@49]/2", // Em A#m A5 A
  AG: "[~@36 g4@11 ~ b3@32 ~@3 [a3,b3,d4,e4]@11 ~@2, [f3,a3,c4,e4]@47 [e3,e4,a4]@34 ~@15, c3@33 ~ c3@13 ~@33 e3@5 ~@11, ~ f2@47 ~@48]/2", // Asus4 Fmaj7 A5
  AH: "[e3@12 e3@6 e3@12 ~@12 e3@5 e3@10 ~@3 e3@6 ~@6 e3@15 ~@3 e3@3 ~@15 e3@9 [c#4,e4,a4]@26 ~, [a2,a3]@47 a2@47 ~@2 a2@47 ~, [c#4,e4]@18 [c#4,e4,a4]@18 [c#4,e4,a4]@11 ~@22 [d4,g4]@18 ~@9 [c#4,e4,a4]@21 ~@27, ~@30 b3@16 ~ [b3,d4,g4]@22 b3@9 ~@9 [b3,d4]@7 ~@50, ~@10 e3@4 ~@17 e3@5 ~@12]/3", // A C#m A G5 A G Bm
  AI: "[e4,g4]@13 ~ e4@2, [a#2,a#3,c#4], ~@39 g4@8 ~", // Em A#m
  AJ: "[[c3,f3,a3,e4]@9 ~@3 c3@6 a3@3 a3@11 a3@4 c4@2 ~ e4@8 ~ [c3,g3,d4]@11 c3 [g3,b3,d4] ~@2 [c3,g3,b3,d4]@18 ~@3 [g3,b3,d4] ~@2 [g3,b3,d4]@6 ~@3, f2@47 ~@34 c3@11 ~@4, ~@9 [f3,e4]@12 [f3,e4]@17 [f3,a3,c4]@9 b3@11 ~@38]/2", // Fmaj7 Csus2 G Fmaj7 F
  AK: "~@3 c4@6 ~@2 f3@10 ~@21 c4@6, [f2,c3,e4]@47 ~, f3@9 c4@9 ~@3 a4@26 ~, ~@24 f3@9 c4@6 a3@8 ~, ~@27 c4@3 a3@6 f3@11 ~", // Fmaj7
  AL: "[~@3 c4@5 ~@10 c4@6 [c3,g3,b3,d4]@23 f3@6 ~@13 c3@6 ~@6 a3@3 ~@6 [f3,e4]@8 ~ g3@8 ~@30 d4@5 ~@5 c4@9 ~@32 c4@6 ~, c3@24 ~@23 [f2,a3]@25 [f2,e4]@15 ~@44 b3@10 ~@3 e4@32 c4@3 c3@3 g4@10, [g3,g4]@12 g3@12 ~@23 [c3,c4]@10 c4@24 c4@14 ~ [b3,d4]@15 [b3,d4]@23 ~@10 a3@23 c3@3 c4@3 a3@19, ~@8 c4@7 g4@10 ~@22 e4@16 e4@9 ~@3 c3@20 c3@12 c3@7 ~@7 c3@13 c3@4 ~ c3@14 c4@3 c3@6 c4@3 a4@27, ~@54 f3@9 ~@9 a3@6 ~@26 g3@6 ~ g3@18 g3@6 ~@8 f2@49]/4", // G Fmaj7 F Fmaj7 G C Bm
  AM: "c4 [b3,d4]@14 [g3,b3,d4]@29 ~@4, [c3,g3]@5 ~@11", // Bm G C5
})).s("gm_epiano2").gain(0.36)

// chords · epiano2 · soft notes
const epiano2_soft = note(`<
  ~@4 A@2 ~@2 B@2 ~@2 C ~@5 D ~@5 E F G ~ H ~ I ~@3 J@3 ~@4 K L@2 ~ M N ~ H ~ O ~ P Q R S ~@2 T U ~ V ~@6 W X ~ Y ~ Z ~
  AA AB AC AD ~
>`.pickRestart({
  A: "[~@15 a#3@6 ~@11]/2", B: "[~@47 f3@44 ~@5]/2", C: "~@9 c3 ~@14", D: "~@32 [g2,d3]@15 ~", E: "~@44 a3@3 ~",
  F: "~@19 b3@14 b3@2 ~ b3@5 ~@7", G: "~@29 a3@18 ~", H: "~@2 a3@3 ~@11", I: "~@3 a3@4 a3@11 ~@6",
  J: "[~@47 c4@34 ~@14 f3@39 ~@10]/3", K: "a#2", L: "[~@48 g3@35 ~@13, ~@47 a#3@35 ~@14]/2", M: "~@21 d3@10 b3@6 ~@11",
  N: "~@13 e3@9 ~ e3@23 ~@2", O: "~@2 c4@3 ~ a3@7 ~@35", P: "~@9 b3@9 ~@7 e3@22 ~", Q: "~@19 c#4@4 ~, ~@24 e3@23 ~",
  R: "~ c3@9 ~@14 [d#3,g#3,a#3,d#4]@21 ~@3", S: "e3@23 e3@24 ~", T: "~ f3@22 ~ [g#3,a#3]@24, ~@23 d#3@24 ~",
  U: "~ g3@2 ~@5", V: "~@11 a4@8 ~@5", W: "~@18 e3@6 ~@6 b3@9 g4@7 ~@2, ~@27 g3@19 ~@2",
  X: "~@18 c#4@3 ~@3 e3@12 ~@3 a3@8 ~, ~@36 e3@11 ~", Y: "~@9 a3@7 ~@2 c3@6 c3@23 ~, ~@6 c4@9 ~ c4@20 ~@12",
  Z: "~@2 a3@3 ~ c4@3 ~@7, ~@5 a3@5 ~@6", AA: "~@11 c3@4 f3@9 f3@9 [f3,a3]@4 ~ a3@8 ~@2, ~@37 f2@10 ~",
  AB: "~@18 c3@7 ~@14 g3@7 ~@2", AC: "f3 ~@47", AD: "~@13 c3@31 ~@4",
})).s("gm_epiano2").gain(0.18)

// other · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@3 A@2 ~ B C ~@20 D E F G ~@4 H@2 I ~@2 J ~@6 K L M N@2 O ~ P@2 ~@2 Q R S@2 ~@2 T U@2 V W ~ X Y@2 Z@2 AA@2 AB ~
>`.pickRestart({
  A: "[f4@41 e4 f4 ~@3 e4@15 ~@4 d4@7 ~@24]/2", B: "~@16 g4 g#4 a4@5 ~@25", C: "f4 ~ g4@2 f4@35 ~@9",
  D: "~@5 e4@14 ~@23 a3@2 ~ c4@2 ~", E: "d4@16 ~ g4@3 ~ e4 ~@4 g#4 a4@2 g4@9 ~@10",
  F: "~@5 c5@3 ~@7 a4@2 ~ d5@2 ~ c5@3 d5@9 c5@2 d5@3 ~ c5@3 ~@3 b4 c5 ~",
  G: "b4@6 g4@3 ~ e4 ~ g4@3 a4@2 ~ g4@12 ~@12 f4 ~ g4 f4@2 ~", H: "[~@39 [g#4,a4]@2 ~@4 a4@15 ~@36]/2",
  I: "~@6 [a#4,c5] ~@41", J: "~@39 c5@8 ~, ~@30 d4@17 ~", K: "~@6 g3 ~ g#3@2 a3@2 ~ c4@3 ~ d4@3 c4@3 ~@2 d4@19 ~@4",
  L: "~@6 b3@3 ~@9 e3@2 ~ d3@3 g3@21 ~@3", M: "~@4 g4@4 g4@2 ~@2 g4@3 f4 ~ g4 f4@3 ~ e4@12 ~@14",
  N: "[~@3 c5 ~@11 c5 ~@20 c5@26 ~@34]/2", O: "~@35 g4 ~ a4 ~@10",
  P: "[~@12 a3@3 c4@3 d4@3 c4@2 ~ e4@3 d4@3 e4@3 g4@3 e4@3 g4@3 a4@28 ~@26, ~@18 c#4 ~@5 d#4 ~@71]/2",
  Q: "~@15 g3 ~ a3 a#3 b3 c4 d4 e4 f#4", R: "a4@11 ~ b4@10 ~@2", S: "[c#5@17 ~@25 b4@21 ~@33]/2",
  T: "~@11 e4@5 ~@2 e4@5 ~@25", U: "[e4@8 ~@4 a4@9 ~@11]/2", V: "~@2 d4@5 ~", W: "~@27 a4 b4@2 a4@9 ~@9",
  X: "~@21 a3 ~ a#3 b3 c4 b3 a#3 ~ a3@5 ~@2 a3 ~@3 d#4 d4 c4@2 a3 ~ a3 ~, ~@39 d4@2 ~@7",
  Y: "[~@2 e4@4 ~ g4@9 ~ g4@4 ~@2 g4@12 ~@4 f4@2 g4 ~ f4@2 e4@9 c4@9 ~@5 g3 ~@2 g3@12 ~ d4@3 ~@3 d4@5 ~]/2",
  Z: "[c4@2 ~ b3@4 ~ g3@3 ~@2 g3@10 ~@21 c4 ~@2 c5@14 ~ c5@18 ~@10 b4@2 c5 b4@2 ~]/2",
  AA: "[~ g4@13 e4 ~@2 g4@15 ~@9 f4 g4 ~@2 e4 ~ f4@6 ~ e4@2 ~@13 g3 ~@3 a3@5 c4@2 ~@4 d4@6 e4@2 ~ c4 ~@2, ~@22 f4 ~@25]/2",
  AB: "e4@3 ~@5",
})).s("gm_electric_guitar_jazz").gain(0.39).pan(0.8)

// other · electric guitar jazz · soft notes
const electric_guitar_jazz_2 = note(`<
  ~@6 A ~@21 B ~ C ~@2 D E F G ~@2 H I J ~@7 K L ~@2 M ~@5 N ~@5 O ~@11 P ~@2
>`.pickRestart({
  A: "~@25 g4@11 ~@12", B: "~@17 a3@17 ~@14", C: "~@9 e4@2 ~ g4@2 ~@34", D: "~ d4@2 ~", E: "~@18 d4@17 ~@13",
  F: "~@30 [f3,f4]@17 ~", G: "e4@7 ~@7 d4 ~", H: "~@10 d4@12 ~@2 a3@4 ~ a3@3 g3@2 ~ a3@2 ~@2 c4@2 d4@6 ~",
  I: "a3@7 ~@17", J: "~@33 f4@3 g4@11 ~", K: "~@8 c4@3 ~ b3@3 g3@2 ~@31", L: "~@35 c4@10 ~@3", M: "~@20 g4@3 ~",
  N: "~@14 e3 ~ g#3 ~@7", O: "~@3 d4@2 ~", P: "~@3 c4@4 ~@9",
})).s("gm_electric_guitar_jazz").gain(0.19).pan(0.8)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@24 A@4 B C D E ~@12 F@2 G@2 H I J K ~@9 L M N@2 O P Q R S T U V W V W V W X ~
>`.pickRestart({
  A: "[[a4,c#5,e5]@36 [a4,c#5,e5] ~@10 [g3,b3,d4,g4,b4,d5]@48 ~ [a3,c#4,e4]@53 ~@43, [a3,c#4,e4]@48 ~@47 [a4,c#5,e5]@53 ~@44]/4", // A G A
  B: "[a3,c4,e4,f4,a4,c5]", C: "[b4,c5,e5,g5], [c4,e4] ~@47", D: "[a3,f4,a4], [c4,e4,c5] ~@47",
  E: "[e4,b4,c5,e5,g5], c4 ~@47", F: "[~ [a4,c#5,e5]@46 [b4,d5]@49, ~@47 g4@45 ~@4]/2",
  G: "[[a4,c#5,e5]@45 ~@2 [g4,a#4,c#5,e5]@38 ~@11]/2", H: "[e4,f4,a4,c5]", I: "[b4,c5,e5,g5]", J: "[e4,f4,a4], c5 ~@47",
  K: "[b4,e5,g5], c5 ~@47", L: "[c#4,e4,a4,c#5,e5]", M: "[g3,a3,b3,d4,g4,b4,d5]",
  N: "[[a3,c#4,e4,a4,c#5] [a#3,e4,a#4,c#5,g5], e5]/2", O: "[f3,a3,c4,f4,a4,c5,e5], e4 ~@47", P: "[b3,e4,a4,b4,e5,a5]",
  Q: "[a3,c#4,e4,c#5,e5,g#5], a4 ~@47", R: "[d4,e4,g4,b4,d5,e5]", S: "[a3,c#4,e4,a4,c#5,e5]",
  T: "[a#3,e4,g4,a#4,c#5,e5,g5]", U: "[e3,f3,c4,e4,f4,a4,c5]", V: "[b3,c4,e4,g4,b4,c5,e5,g5]",
  W: "[f3,a3,c4,e4,f4,a4,c5]", X: "[b3,e4,g4,b4,c5,e5,g5], c4 ~@47",
})).s("gm_synth_strings_1").gain(0.08)

// chords · synth strings 1 · soft notes · Fmaj7
const synth_strings_1_soft = note("<~@64 c#4 ~@5 c#4 a3 ~@7 [[e3,f3,a3,c4,e4,f4,a4,c5]@3 ~]>")
  .s("gm_synth_strings_1").gain(0.05)

// other · pad metallic
const pad_metallic = note("<~@5 A@3 ~@51 A@3 ~@8 A@3 ~@7>".pickRestart({
  A: "[~@34 c5@37 ~, ~@11 e5@7 ~@18]/3",
})).s("gm_pad_metallic").gain(0.03)

// chords · pad sweep
const pad_sweep = note("<~@6 A@2 ~@36 B@2 C@2 ~@12 A@2 ~@9 A@2 ~@7>".pickRestart({
  A: "[g5@23 ~]/2", B: "[~ [a5,c#6,e6,a6]@19 ~@12]/2", C: "[[a5,c#6,e6,a6]@9 ~@7]/2",
})).s("gm_pad_sweep").gain(0.01)

// drums · kick
const kick = s("bd").struct(`<
  A@8 B@3 C D B E C D@3 F G@3 H I J I@2 K@2 I L M G@2 L N O B L P B G L K Q J G I@9 G ~ I A I G A G@2 I G@2 I G A G@3 K
  I Q R ~
>`.pickRestart({
  A: "x!2", B: "~@7 x!2 ~@7", C: "~@7 x!2 ~ x ~@2 x ~@2", D: "~@7 x ~@8", E: "~@6 x!3 ~@7",
  F: "x ~@4 x!4 ~ x ~@2 x ~ x", G: "x ~@6 x!2 ~@7", H: "x ~@4 x ~ x!2 ~ x ~@2 x ~@2", I: "x ~@6 x!2 ~@6 x",
  J: "x ~@6 x!2 ~ x ~@4 x", K: "x ~@6 x!2 ~ x ~@5", L: "x ~@6 x!2 ~ x ~@2 x ~@2", M: "x ~@6 x ~@8", N: "x ~@5 x!2 ~@8",
  O: "x ~@20 x ~@2 x ~@22 x", P: "x ~@20 x ~@25 x", Q: "x ~@7 x ~ x ~@4 x", R: "x ~@7 x ~@6 x",
})).gain(0.4)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@16 A B ~@6 C ~@5 C D B ~@2 E ~@15 F ~@7 G ~@4 C ~@5 E H ~@8>".pickRestart({
  A: "x!2", B: "~ x", C: "~@7 x", D: "~@3 x ~@4", E: "~@15 x", F: "~ x ~@14", G: "~@3 x ~@3 x", H: "~@7 x ~@7 x",
})).gain(0.2)

// drums · rim
const rim = s("rim").struct(`<
  A@8 B@2 C B@3 C B@3 C B@3 C B ~@4 A@4 B@2 C B@3 C B@3 C B A@14 ~ A@2 ~@4 A@2 ~@4 A@2 D E@4 F ~
>`.pickRestart({
  A: "~@5 x ~@2", B: "~@12 x!3 ~", C: "~@12 x!2 ~@2", D: "~@2 x ~@2 x!2 ~", E: "~@11 x ~@18 x ~@4 x ~@12",
  F: "~@11 x ~@18 x ~@5 x ~@11",
})).gain(0.2)

// drums · rim · soft notes
const rim_soft = s("rim").struct("<A@8 B C D C@3 D C@3 D C@3 D C E ~@7 B C D C@3 D C@3 D C E ~@35>".pickRestart({
  A: "~@11 x ~@4", B: "~@15 x", C: "x ~@14 x", D: "x ~@13 x!2", E: "x",
})).gain(0.05)

// … 54 more lines

More by Jovanotti