Strudelify

Innamorata, incavolata a vita

Celentano

KeyC minorTempo199 bpm
0:00/0:00
// Innamorata, incavolata a vita — Celentano
// 199 bpm, 6/4, key C 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 121 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(199/6)

// 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(`<
  A B C D E F C D G F C H I F C H J K L M N O P Q R F C H I F C H S T L M N U V W R X Y Z AA AB AC AD AE X AF AG AH AI R
  F C H I F C H J T L M N O P Q R B C H I F C H S T L M N U V W R X Y Z AA AB AC AD AE X AF AG AH AJ@2 X AK X Y Z AA AB
  AC AD AE X Y AG AH AB AC AD AE AL@2
>`.pickRestart({
  A: "~@11 g1", B: "c2@3 ~ c2@2 ~@4 c2@2 ~@10 g1@2", C: "c2@3 ~ c2@2 ~@10 g1 ~ c2@4 g1@2",
  D: "bb1@3 ~ bb1@2 ~@4 bb1@2 ~@10 g1@2", E: "bb1@3 ~ bb1@2 ~@10 g1@2 eb2@2 a1@2 bb1@2",
  F: "c2@3 ~ c2@2 ~@4 c2@2 ~@10 g1 ~", G: "bb1@3 ~ bb1@2 ~@4 g1@2 g3 ~ g2@2 a1@2 bb1@4 bb2 ~",
  H: "bb1@3 ~ bb1@2 ~@4 bb1@2 ~@4 g1@2 bb1@3 ~ g1@2", I: "bb1@3 ~ bb1@2 ~@10 g1@2 bb1@4 g1@2",
  J: "bb1@3 ~ bb1@2 ~@14 bb1@2 f1@2", K: "g1@3 ~ g1@2 ~@4 g1@2 ~@8 d1@2 f1 ~", L: "g1@3 ~ g1@2 ~@16 g1 ~",
  M: "c2@3 ~ c2@2 ~@4 c2@2 ~@4 g1@2 bb1@4 g1@2", N: "c2@3 ~ c2@2 ~@4 bb1@2 c2@4 c1@2 d2@4 d1@2",
  O: "eb2@8 ~@2 eb2@2 bb2@4 eb3@2 bb2 ~ eb2@2 eb1@2", P: "ab1@3 ~ ab1@2 ~@4 ab1@5 ~ bb1@2 ab1@4 f1@2",
  Q: "g1@3 ~ g1@2 ~@4 g1@2 ~@4 g1@2 ~@2 g2 ~ f1@2", R: "g1 ~@7", S: "bb1@3 ~ bb1@2 ~@16 f1@2",
  T: "g1@3 ~ g1 ~@5 g1@2 ~@8 d1 ~ f1 ~", U: "~ eb2@8 ~ eb2@5 ~ eb2@2 bb1@4 eb1@2", V: "ab1@4 ~ ab1@4 eb2@2 f1",
  W: "~ g1@7 ~@2 g1@6 gb2@2 g2@4 f1@2", X: "c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 g1 ~",
  Y: "c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~ c2 ~ a1 ~ g1@2 c2 ~ a1 ~ g1@2",
  Z: "f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@3 ~ c2@2",
  AA: "f2@2 ~@2 f2 ~ f2@2 d2@2 c2 ~ f1@3 ~ f2 ~@5 gb2@2, ~@3 gb1",
  AB: "g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~ g1@2 d2@2 e2@2", AC: "g2@2 ~@2 g2 ~ g2@2 e2@2 d2 ~ g1@2 ~@2 g1@2 d2@6",
  AD: "c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 c2@2 d2@2 g1@2 a1@2", AE: "c2@2 ~@2 c2 ~ c2@2 a1@2 g1 ~ f1@5 ~ g1@5 ~",
  AF: "c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~ c2 ~ e1@2 g1@2 a1@3 ~ a1@2",
  AG: "d2@2 ~@2 d2 ~ d2@2 ~@2 d2 ~ d2@2 ~@2 d2 ~ d2@2 a1@2 c2@2",
  AH: "d2@2 ~@2 d2 ~ d2@2 ~@2 d2 ~ e2@2 f2@2 e2@2 d2@2 c2@2 a1@2",
  AI: "g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~ d2@3 ~ e2@2",
  AJ: "g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~", AK: "c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~ f1@5 ~ g1@5 ~",
  AL: "c2/2",
})).s("gm_electric_bass_finger").gain(0.72)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A B C D A B C D A B C D A B C D E@2 A B F G H I A B C D A B C D E@2 A B F G H I J K L M N O P Q R S T U V W A B C D
  A B C D E@2 A B F G H I A B C D A B C D E@2 A B F G H I J K L M N O P Q R S T U N O P Q J K L M N X Y Q J K T U N X Y
  Q Z@2
>`.pickRestart({
  A: "~ [eb3,g3]@5 [c3,eb3,g3,eb4,g4]@4 [c3,eb3,g3,eb4,g4]@8 ~ [eb3,g3,eb4,g4]@5, ~@3 c3", // Eb Cm Eb
  B: "~ [g3,eb4,g4]@5 ~ [eb3,g3,eb4,g4]@3 ~ [c3,eb3]@5 ~ g3@2 [c3,eb3,g3,eb4,g4]@5, [c3,eb3]@3 c3@2 [g3,eb4,g4]@3 eb4 ~@3", // Cm Eb Cm
  C: "~ g4@5 ~ [g3,eb4,g4]@3 ~ eb3@5 eb4@2 ~ [bb2,eb3,g3,eb4,g4]@5, [g3,eb4]@3 [bb2,eb3]@2 [g3,eb4,g4]@3 ~@4, ~@11 bb2@8 ~@5", // Cm Eb Cm Eb5 Cm
  D: "~ [g3,g4]@5 ~ [eb4,g4]@3 ~@7 g3@2 [bb2,eb3,g3,eb4,g4]@5, eb3@6 [bb2,eb3,g3]@4 [eb3,g3,eb4,g4]@6 eb4@3 ~@5, ~@11 bb2@8 ~@5", // G Eb
  E: "[[g2,b2,d3,g3,b3,g4]@6 [b2,d3,g3,b3]@4 [g2,b2,d3,g3,b3,g4]@8 [g2,b2,d3,g3,b3,g4]@11 ~ [b2,d3,g3,b3,g4]@4 [g2,b2,d3,g3,b3]@6 ~ [g2,b2] ~ [b3,g4]@5, ~@34 g4@9 ~@5, ~@40 [d3,g3,b3]@2 [g2,b2,d3,g3]@5 ~]/2", // G Em G
  F: "~ [eb4,g4]@5 ~ g4@3 ~ bb2@7 [bb2,eb3,g3,eb4,g4]@6, [eb3,g3]@3 [bb2,eb3,g3,eb4]@2 [eb3,g3,eb4,g4]@4 ~@3", // Eb
  G: "[ab2,c3,eb3,ab3,c4,ab4]@6 ~ [eb3,ab3,c4,ab4]@3 ~ [ab2,c3]@5 ~ [ab2,c3] ~ [ab3,c4,ab4]@5, ~@6 [ab2,c3]@4 [eb3,ab3,c4,ab4]@6 [eb3,ab3,c4]@2 [ab2,c3,eb3]@5 ~", // Ab
  H: "~ [g3,c4,g4]@5 ~ [c4,g4]@3 ~ g2@5 ~ g2 [g2,d3,g3,c4,g4]@6, [g2,d3]@6 [g2,d3,g3]@4 [d3,g3,c4,g4]@5 ~ [d3,g3,c4,g4]@2 ~@6", // C5 Gsus4 G5 Csus2
  I: "[g2,b2,d3,g3,b3,g4] ~@5", J: "[e3,g3,c4,e4]@6 ~ [e3,g3,c4,e4]@3 [e3,c4,e4]@5 ~ [e3,g3,c4,e4]@2 ~ [g3,c4,e4]@5",
  K: "~ [e3,g3,c4,e4]@5 ~ [c4,e4]@3 ~ e3@5 [e3,g3,c4,e4]@2 ~ [g3,c4,e4]@5, ~@6 [e3,g3]@4 [g3,c4,e4]@5 ~@3 e3@5 ~", // C Em C
  L: "~ [c4,f4]@5 ~ f4@3 [f3,a3,c4,f4]@6 [f3,a3,c4,f4]@2 ~ [a3,c4,f4]@5, [f3,a3]@2 [f3,a3,c4] ~@3 f3@2", // F5 F
  M: "~ [a3,c4,f4]@5 ~ [a3,c4,f4]@3 [f3,a3,c4,f4]@5 ~ [f3,a3,c4,f4]@2 ~ f4@5, f3@6 f3@4 ~@8 [f3,a3,c4]@5 ~", // F
  N: "[d3,g3,b3,g4]@5 ~ [d3,g3,b3]@4 [d3,g3,b3]@6 [d3,g3,b3,g4]@2 ~ g4@5, ~@2 g4@3 ~ [d3,g3,b3]@2", // G
  O: "~ [d3,g3,b3,g4]@5 ~ g4@3 [d3,g3,b3,g4]@5 ~ [d3,g3,b3,g4]@2 ~ [b3,g4]@5, ~@2 [d3,g3,b3] ~@3 [d3,g3]@2", // G Em G G5
  P: "~ [e3,g3,c4,e4]@5 ~ c4@3 [e3,g3,c4]@6 [e3,g3,c4,e4]@2 ~ [c4,e4]@5, ~@2 [e3,g3] ~@3 [e3,g3]@2, ~@7 e4@9 ~@8", // C Em
  Q: "~ [g3,c4,e4]@5 ~ e4@5 ~ [c4,f4]@5 [d3,g3,b3,g4]@5 ~, e3@5 ~ [e3,g3,c4]@6 [f3,a3]@6 ~@6", // C F5 G C F
  R: "[e3,g3,c4,e4]@5 ~@2 [c4,e4]@3 ~ e3@5 ~ e3@2 [e3,g3,c4,e4]@5, ~@3 [e3,g3]@2 [g3,c4,e4]@3 [g3,c4,e4] ~@3", // C Em C
  S: "~ [g3,c4,e4]@5 ~ e4@3 [g3,c4,e4]@5 ~ [e3,g3,c4]@2 ~ [c4,e4]@5, e3@2 [e3,g3,c4] ~@3 [e3,g3]@2", // C Em
  T: "~ f4@5 ~ f4@3 [d3,a3,d4,f4]@6 [d3,a3,d4,f4]@2 ~ [a3,d4,f4]@5, [d3,a3,d4]@2 [d3,a3,d4] ~@3 d3@2", // Dm D5
  U: "~ [d4,f4]@6 [a3,d4,f4]@3 [d3,a3,d4,f4]@5 ~ [d3,a3,d4,f4]@2 ~ [a3,d4,f4]@5, [d3,a3]@6 ~@12 d3@5 ~", // Dm D5
  V: "[d3,g3,b3,g4]@5 ~@2 [b3,g4]@3 ~ [d3,g3]@5 [d3,g3,b3,g4]@2 ~ [b3,g4]@5, ~@6 [d3,g3]@4 [b3,g4]@5 ~@3 [d3,g3]@6", // G Em G5 G Em G5 Em G5
  W: "[d3,g3,b3,g4] ~@5", // G
  X: "~ [d3,g3,b3,g4]@5 ~ g4@3 [d3,g3,b3,g4]@5 ~ [d3,g3,b3,g4]@2 g3 [b3,g4]@5, ~@2 [d3,g3,b3] ~@3 d3@2", // G Em G
  Y: "[e3,g3,c4,e4]@5 ~@2 c4@3 [e3,g3,c4]@6 [e3,g3,c4,e4]@2 ~ [c4,e4]@5, ~@2 [e3,g3] ~@3 [e3,g3]@2, ~@7 e4@9 ~@8", // C Em
  Z: "[[c4,e4], [e3,g3]@23 ~]/2", // C Em
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0.4)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~ A B C D A B C D A B C D A B C D E F A B ~ G ~@2 A B C D A B C D E F A B ~ G ~@2 H ~@8 I ~ J ~@2 A B C D A B C D E F
  A B ~ G ~@2 A B C D A B C D E F A B ~ G ~@2 H ~@8 I ~ J ~@4 H ~@7 H ~@2 J ~@6
>`.pickRestart({
  A: "~ [eb4,g4]@5 ~@18, c3@5 ~@19", B: "~@17 [c3,eb3]@2 ~@5, ~@8 g4 ~@3",
  C: "[bb2,eb3]@6 ~@11 eb3@2 ~@5, ~@8 [g3,g4] ~@3", D: "~ eb4@6 ~@10 eb3@2 ~@5, bb2@6 ~@10 g4@3 ~@5",
  E: "~@3 [g2,g4]@2 ~@7", F: "~@3 g2@2 ~@7", G: "~@8 ab4 ~@3", H: "~@11 g3@5 ~@2 e3@6", I: "~@10 e3@5 ~ e4@3 ~@5",
  J: "~@3 d3@2 ~@7",
})).s("gm_acoustic_guitar_steel").gain(0.11).pan(0.4)

// chords · lead 2 sawtooth
const lead_2_sawtooth = note(`<
  ~@33 A ~ B ~@7 C D ~@2 E F ~@2 G H ~@26 I ~ J ~@7 C D ~@2 E F ~@2 G H ~@2 E F ~@2 C D ~@2 E F ~@2 G H ~@2 E F ~@2
>`.pickRestart({
  A: "~@16 [f4,g4] ~ [f4,g4] ~ [f4,g4] ~ [f4,g4,b4,f5] ~", B: "~@16 [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [g4,c5,d5,g5] ~",
  C: "~@4 [c4,f4,a4]@3 ~", D: "[c4,f4,a4]@8 ~@2 [f3,a3,c4] ~@13", E: "~@4 [c5,e5,g5]@3 ~", F: "[c4,e4,ab4] ~@2",
  G: "~@4 [d4,f4,a4]@3 ~", H: "[a3,d4,f4]@8 ~@2 [d3,f3,a3] ~@13", I: "~@18 [f4,g4] ~ [f4,g4] ~ [f4,g4,b4,f5] ~",
  J: "~@18 [d4,g4] ~ [d4,g4] ~ [g4,c5,d5,g5] ~", // G5 Gsus4
})).s("gm_lead_2_sawtooth").gain(0.35)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~ A@2 B@6 ~@16 C@4 D@2 E@2 F G@2 H I@3 ~@15 J K@2 L M@2 N@2 ~@8 O@4 P Q R@2 ~@42
>`.pickRestart({
  A: "[[c3,c4]@7 [d3,d4]]/2", // C D
  B: "[[eb3,eb4]@36 [d3,d4]@11 ~ c3@36 [d3,d4]@11 ~ bb2@41 ~@7, ~@47 c4@37 ~@11 bb3@42 ~@7]/6", // Eb D
  C: "[c5@47 bb4@36 eb5@7 d5@6]/4", D: "c5/2", E: "[bb4@3 g4@5]/2", F: "g5", G: "[f5@23 eb5@18 d5@7]/2", H: "c5",
  I: "[eb5@36 f5@11 g5@25]/3", J: "[c5,c6]", K: "[~@12 [g4,g5]@6 [c5,c6]@5 [bb4,bb5]@20 ~@5]/2",
  L: "~ [bb4,bb5] [eb5,eb6] [d5,d6]", M: "[~@41 [g4,g5]@4 [c5,c6]@3, [c5,c6]@43 ~@5]/2",
  N: "[[bb4,bb5]@16 [g4,g5]@2 [f4,f5]@4 [g4,g5]@25 ~]/2", // Bb G F G
  O: "[[g3,g4]@30 [c4,c5]@4 [d4,d5]@2 [eb4,eb5]@3 ~ d4@2 [c4,c5]@3 [bb3,bb4]@17 ~@2 [g3,g4]@2 [f3,f4]@4 [g3,g4]@15 ~@2 [g3,g4]@2 ~@2 [eb4,eb5]@2 [f4,f5]@3, ~@39 d5@2 ~@48 c4@2 ~@5, ~@45 c5 ~@2]/4", // G C D Eb C Bb G F …
  P: "[g4,g5]@4 [f4,f5] [eb4,eb5] [f4,f5]@4 [eb4,eb5] [d4,d5]", // G F Eb F Eb D
  Q: "~ [d4,d5]@2 [c4,c5]@2 [d4,d5]@2 [bb3,bb4]@2 [c4,c5]@10 ~@3 [c4,c5]@2, [eb4,eb5]@2 ~@17 g4@2 [bb3,bb4]@2 ~, ~@10 g3 ~", // D C D Bb C Eb Bb
  R: "[[bb3,bb4]@16 [g3,g4]@2 [f3,f4]@3 ~ g4@19 ~@7, ~@7 g3@6 ~@3]/2", // Bb G F
})).s("gm_string_ensemble_1").gain(0.34).pan(0.3)

// chords · string ensemble 2
const string_ensemble_2 = note("<~ A@8 ~@8 B@8 C@7 D@8 ~@15 C@7 D@8 ~ C@7 D@8 ~@35>".pickRestart({
  A: "[c3@47 bb2@48 c3@48 ~ bb2@46 ~@2, [eb3,g3]@95 ~]/8", // Eb
  B: "[[g2,f3,b3,d4]@47 [c3,c4]@48 [eb2,bb3]@24 ~ [ab2,ab3]@23 ~@23 b3@4 ~@22, ~@47 eb4@96 [g2,g3,d4]@27 ~@22, ~@47 g3@71 ~ c4@47 ~@26]/8", // G7 C Eb5 Ab G5
  C: "[c4@2 bb3@2 c4@2 bb3, [g3,eb4]]/7", // Cm
  D: "[~@23 [b3,d4]@48 ~ c4@48 bb3@24 ab3@23 [g3,d4]@24 b3, ~@71 eb4@96 ~@25, ~@3 c4]/8", // Bm G5
})).s("gm_string_ensemble_2").gain(0.12).pan(0.6)

// other · synth brass 1
const synth_brass_1 = note("<~@41 A ~@3 B ~@7 B ~@33 A ~@3 B ~@7 B ~@3 A ~@3 B ~@3 A ~@3 B ~@5>".pickRestart({
  A: "~@12 [e2,e3]@3 ~@3 [g2,g3]@3 ~ [c3,c4]@2", B: "~@12 [b1,b2]@6 [d2,d3]@3 ~ [g2,g3]@2",
})).s("gm_synth_brass_1").gain(0.45).pan(0.9)

// chords · electric guitar muted
const electric_guitar_muted = note(`<
  A B C D E B C F G B C D H B C D I J K L M ~@3 A B C F H B C D I J K L N ~@4 O P Q@2 R@2 S T P U V W X Y B C F H B C D
  I J K L N ~@4 B C D E B C F I J K L N ~@4 O P Q@2 R@2 S T P U V W R@2 S Z O P Q@2 R@2 AA Z O P V W R@2 S T AB@2
>`.pickRestart({
  A: "~@22 [g2,g3] ~", B: "[c3,c4]@3 ~ [c3,c4] ~@5 [c3,c4] ~@11 [g2,g3] ~",
  C: "[c3,c4]@3 ~ [c3,c4]@2 ~@10 [g2,g3] ~ [c3,c4]@3 ~ [g2,g3] ~", // C G C G
  D: "[bb2,bb3]@3 ~ [bb2,bb3] ~@5 [bb2,bb3]@2 ~@10 [g2,g3] ~", // Bb G
  E: "[bb2,bb3]@2 ~@2 [bb2,bb3]@2 ~@10 [g2,g3] ~ [bb2,bb3]@2 ~@2 [b2,b3]@2", // Bb G Bb B
  F: "[bb2,bb3]@3 ~ [bb2,bb3]@2 ~@4 [bb2,bb3]@2 ~@10 [g2,g3] ~", // Bb G
  G: "[bb2,bb3]@2 ~@2 [bb2,bb3] ~@7 g2@3 ~ g3@2 bb2@3 ~ bb3 ~", // Bb
  H: "[bb2,bb3]@2 ~@2 [bb2,bb3] ~@11 [g2,g3] ~ [bb2,bb3]@2 ~@2 [b2,b3]@2", // Bb G Bb B
  I: "[bb2,bb3]@2 ~@2 [bb2,bb3] ~@17 [f2,f3] ~", J: "[g2,g3]@2 ~@2 [g2,g3] ~@5 [g2,g3] ~@11 [f2,f3] ~",
  K: "[g2,g3]@2 ~@2 [g2,g3] ~@17 [g2,g3] ~", L: "[c3,c4]@2 ~@2 [c3,c4] ~@5 [c3,c4] ~@5 [g2,g3]@2 [bb2,bb3]@4 [g2,g3] ~",
  M: "[c3,c4]@2 ~@2 [c3,c4] ~@7 c2@4 c3@2 d2@3 ~ d3 ~", N: "[c3,c4]@2 ~@2 [c3,c4] ~@7 [c2,c4]@4 c3@2 [d2,d4]@3 ~ d3 ~",
  O: "[c3,g3] ~@3 [c3,g3] ~ [c3,g3] ~@3 [c3,g3] ~ g3 ~@3 [c3,g3] ~ [c3,g3] ~@3 [c3,g3] ~", // C5
  P: "[c3,g3] ~@3 [c3,g3] ~ [c3,g3] ~@3 [c3,g3] ~ [c3,g3] ~@3 [c3,g3] ~ [c3,g3] ~@3 [c3,g3] ~", // C5
  Q: "[c3,f3] ~@3 [c3,f3] ~ [c3,f3] ~@3 [c3,f3] ~ [c3,f3] ~@3 [c3,f3] ~ [c3,f3] ~@3 [c3,f3] ~", // F5
  R: "[d3,g3] ~@3 [d3,g3] ~ [d3,g3] ~@3 [d3,g3] ~ [d3,g3] ~@3 [d3,g3] ~ [d3,g3] ~@3 [d3,g3] ~", // G5
  S: "[c3,g3] ~@3 g3 ~ [c3,g3] ~@3 [c3,g3] ~ [c3,g3] ~@3 [c3,g3] ~ [c3,g3] ~@3 [c3,g3] ~", // C5
  T: "[c3,g3]@2 ~@2 [c3,g3] ~ [c3,g3] ~@3 [c3,g3] ~ [c3,f3] ~@3 [c3,f3] ~ [d3,g3]@2 ~@2 [d3,g3] ~", // C5 F5 G5
  U: "[c3,g3]@2 ~@2 [c3,g3] ~ [c3,g3] ~@3 [c3,g3] ~ [c3,g3] ~@3 [c3,g3] ~ [c3,g3] ~@3 [c3,g3] ~", // C5
  V: "[d3,a3] ~@3 [d3,a3] ~ [d3,a3] ~@3 [d3,a3] ~ [d3,a3] ~@3 [d3,a3] ~ [d3,a3] ~@3 [d3,a3] ~", // D5
  W: "[d3,a3] ~@3 d3 ~ [d3,a3] ~@3 [d3,a3] ~ [d3,a3] ~@3 [d3,a3] ~ [d3,a3] ~@3 [d3,a3] ~", // D5
  X: "[d3,g3] ~@3 [d3,g3] ~ g3 ~@3 [d3,g3] ~ d3 ~@3 [d3,g3] ~ [d3,g3] ~@3 [d3,g3] ~", Y: "[d3,g3] ~@21 [g2,g3] ~",
  Z: "[c3,g3]@2 ~@2 [c3,g3] ~ [c3,g3] ~@3 [c3,g3] ~ [c3,f3] ~@3 [c3,f3] ~ [d3,g3] ~@3 [d3,g3] ~", // C5 F5 G5
  AA: "[c3,g3] ~@3 g3 ~ [c3,g3] ~@3 [c3,g3] ~ [c3,g3]@2 ~@2 [c3,g3] ~ [c3,g3] ~@3 [c3,g3] ~", AB: "[c3,g3]/2",
})).s("gm_electric_guitar_muted").gain(0.28)

// other · synth strings 1
const synth_strings_1 = note(`<
  ~@9 A B@2 C ~@2 D C ~@8 E F@2 C ~@2 G H ~@22 A I@2 C ~@2 D C ~@8 A I@2 C ~@2 G H ~@42
>`.pickRestart({
  A: "~@11 g3", B: "[c4@13 ~@10 g3]/2", C: "bb3@11 ~", D: "~@22 g3 ~", E: "~@11 [g3,bb3]",
  F: "[[c4,eb4]@26 ~@20 g3 ~]/2", G: "~@22 bb3 ~", H: "eb4@11 ~", I: "[c4@26 ~@20 g3 ~]/2",
})).s("gm_synth_strings_1").gain(0.54)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@21 A B C D ~@12 A B C E F G H@2 I J K L M N O P Q R ~@12 A B C E ~@12 A B C E F G H@2 I J K L M N O P I J K L F G
  H@2 I J K L F G O P I J K L S@2
>`.pickRestart({
  A: "~@6 [bb3,g4] [c4,ab4]@2 ~ [bb3,g4]@14", B: "[ab3,c4,eb4] ~@6 f4@3 [ab3,eb4]@14, ~@6 c4@17 ~, ~@2 [ab3,eb4] ~@5",
  C: "[g3,c4]@4 [g3,c4]@3 ~ [g3,c4]@4 ~ [g3,c4]@4 [g3,c4]@3 ~ g3@3, ~@20 c4@3 ~", // C5
  D: "[g3,b3]@3 ~@12 [e3,f3] [b2,c3,d3] [g2,a2] [eb2,e2,f2] [bb1,b1,db2] [gb1,ab1] e1 ~@2", E: "[g3,b3] ~@7",
  F: "[c4,e4] ~@5 [c4,f4]@3 ~ [c4,e4] ~@5 e4 ~@5 e4 ~", // C F5 C
  G: "~@4 [c4,e4] ~ [c4,f4]@3 ~ [c4,e4]@2 ~@4 [c4,e4] ~@5 [c4,e4] ~", // C F5 C
  H: "[[c4,f4]@5 ~ [c4,g4]@4 [c4,g4]@4 [c4,g4]@4 [c4,g4]@4 [c4,g4]@4 [c4,g4]@4 [c4,g4]@4 [c4,g4]@4 ~@10]/2", // F5 C5
  I: "[g3,b3]@3 ~@3 [g3,c4]@4 ~@2 [g3,b3]@3 ~@3 b3@3 ~ [g3,b3] ~", // G C5 G
  J: "~@4 [g3,b3] ~ [g3,c4]@3 ~ [g3,c4]@2 ~@4 g3 ~ [g3,b3]@2 ~@2 g3 ~", // G C5 G
  K: "[g3,c4,e4]@3 ~@3 [a3,c4,f4]@3 ~@3 [g3,c4,e4]@3 ~@3 [g3,c4,e4]@2 ~@2 [g3,c4] ~", // C F C C5
  L: "~@3 [g3,c4,e4] ~@2 [f3,a3,c4]@2 ~ [g3,b3,d4]@2 ~", // C F G
  M: "[g3,c4,e4]@2 ~@2 [g3,c4,e4] ~ [g3,c4,f4]@3 ~ [c4,e4]@2 ~@4 [g3,c4,e4] ~ [g3,c4,e4]@2 ~@2 [g3,c4,e4] ~", // C Csus4 C
  N: "[g3,c4,e4] ~@3 [g3,c4,e4] ~ [g3,c4,f4]@2 ~@2 [g3,c4,e4]@2 ~@4 [g3,c4,e4] ~ [g3,c4,e4]@2 ~@2 g3 ~", // C Csus4 C
  O: "~@4 [a3,d4,f4] ~ [a3,d4,f4]@2 ~@2 [a3,d4,f4] ~@5 d4 ~ [a3,d4,f4]@3 ~ [a3,d4,f4] ~", // Dm
  P: "[a3,d4,f4]@2 ~@2 [a3,d4,f4] ~ [a3,d4,f4]@2 ~@2 [a3,d4,f4] ~@13", // Dm
  Q: "g3@3 ~ [g3,d4] ~ [g3,b3,d4]@3 ~ [g3,b3,d4]@4 ~@2 [g3,b3] ~ [g3,b3]@3 ~ [g3,b3,d4] ~, ~@16 d4@5 ~@3", // G5 G
  R: "[g3,d4] ~@11", S: "[e3,g3,c4]/2",
})).s("gm_overdriven_guitar").gain(0.27).pan(0.7)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@25 A@2 B@2 ~@2 B@2 ~@7 C D E F G H I J K L M N O P Q R@2 S@2 ~@2 S@2 ~@8 T@2 ~@14 D E F G H I J K L M U@2 H I J K D
  E F G H I J K D E U@2 H I J K V@2
>`.pickRestart({
  A: "[~@18 [bb3,eb4,g4]@23 ~@7]/2", B: "[~@18 [bb3,eb4,g4]@17 ~@13]/2", C: "~@8 a3@3 ~",
  D: "[c4,e4]@2 ~@2 [c4,e4] ~ [c4,f4]@3 ~ [c4,e4] ~ [c4,e4] ~@3 [c4,e4] ~ [c4,f4]@3 ~ [c4,e4] ~", // C F5 C F5 C
  E: "[c4,e4] ~@3 [c4,e4] ~ [c4,f4]@3 ~ [c4,e4] ~ [c4,e4] ~@3 [c4,e4] ~ [c4,f4]@3 ~ [c4,e4] ~", // C F5 C F5 C
  F: "~ g4@2 c5 ~ c5 ~ c5 g4 c5 g4 c5, ~@8 g4@7 ~@9", G: "g4 c5 g4 c5 g4 ~ g4 ~@5, ~@5 c5@2 ~@5",
  H: "[g3,d4]@3 ~ [g3,d4] ~ [g3,d4]@3 ~ [g3,d4]@2 ~@4 [g3,d4] ~ [g3,d4]@3 ~@3", // G5
  I: "[g3,d4] ~@3 [g3,d4] ~ g3@3 ~ [g3,d4]@2 ~@4 g3 ~ [g3,d4]@3 ~ [g3,d4] ~", // G5
  J: "[g3,c4]@3 ~ [g3,c4] ~ [g3,c4]@3 ~ [g3,c4] ~@5 [g3,c4] ~ c4@3 ~ [g3,c4] ~", // C5
  K: "c4 ~@3 c4 ~ [g3,c4]@3 ~ [g3,c4] ~ [f3,c4]@4 ~@2 [g3,d4]@5 ~", // C5 F5 G5
  L: "[g3,c4]@3 ~ [g3,c4] ~ [g3,c4]@3 ~ [g3,c4]@4 ~@2 [g3,c4] ~ [g3,c4]@2 ~@2 c4 ~", // C5
  M: "[g3,c4] ~@3 [g3,c4] ~ [g3,c4]@3 ~ [g3,c4] ~ g3 ~@3 [g3,c4] ~ [g3,c4]@2 ~@2 c4 ~", // C5
  N: "[a3,d4]@2 ~@2 d4 ~ [a3,d4]@2 ~@2 d4 ~@5 d4 ~ [a3,d4]@2 ~@2 [a3,d4] ~", // D5
  O: "[a3,d4]@2 ~@2 [a3,d4] ~ d4@2 ~@2 [a3,d4]@2 ~@12", // D5
// … 85 more lines

More by Celentano