Strudelify

Notti d'estate

Dirotta su Cuba

KeyA majorTempo125 bpm
0:00/0:00
// Notti d'estate — Dirotta su Cuba
// 125 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 136 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(125/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(`<
  A@2 B@2 C@2 B@2 D E F G@2 H I J F G@2 K L J F G@2 M N E F O@2 P Q R@2 S T U@2 V@2 W@2 X Y Z@2 AA AB AC@2 AD@2 C@2 B@2
  D E F G@2 H I E F G@2 M N E F O@2 P Q AE@2 S T U@2 AF@2 AG@2 X Y AH@3 E AI G@2 H I E F G@2 H AJ AK AL AM AN AO@3 AP AQ
  AR P Q AS@2 S T U@2 AF@2 AG@2 AT@4 AU@2 AV@5
>`.pickRestart({
  A: "[~@8 g1@2 g#1@2 a1@2 d2@4 c2@2 d2@3 d2 ~ c2 d2@4 c2@2]/2",
  B: "[d2@4 d2@4 g1@2 a1@4 d2@4 c2@2 d2@3 d2 ~ c2 d2@4 c2@2]/2",
  C: "[d2@4 d2@3 d2 g1@2 g#1@2 a1@2 d2@4 c2@2 d2@3 d2 ~ c2 d2@4 c2@2]/2", D: "d2@4 d2@3 d2 g1@2 g#1@2 a1@2 d1@2",
  E: "d1@2 ~@5 d1!2 ~@5 c1 ~", F: "d1@2 ~@5 d1 g1@2 g#1@2 a1@2 d1@2",
  G: "[d1@2 ~@5 d1!2 ~@3 f1@2 g1@9 f1 ~ g1 g1@2 d2@2 g1@2]/2", H: "a1@6 ~ a1!2 ~@5 g1 ~",
  I: "a1@2 ~@5 a1 d2@2 d#2@2 e2@2 d1@2", J: "d1@2 ~@4 d1!3 ~@5 c1 ~", K: "a1@2 ~@5 a1!2 ~@5 g1 ~",
  L: "a1 ~@2 e2 d2 c2 e1 d1", M: "c2@7 c2!2 ~@5 b1 ~", N: "c2@2 ~@5 a1 d2@2 d#2@2 e2@2 d1@2",
  O: "[d1@2 ~@5 d1 d2@2 a1@2 f1@2 g1@18]/2", P: "a1@4 a1@3 a1 ~ a1 a1@4 e1@2", Q: "f#1@4 f#1@3 f#1 ~ f#1 f#1@4 c#2@2",
  R: "[d2@4 d1@3 d1 ~ d1 d1@4 e1@4 e2@2 e1@3 e1 ~@2 e1@2 e2@2 e1@2]/2", S: "a1@4 a1@3 a1 ~ a1 a1@4 g#1@2",
  T: "f#1@4 f#1@3 f#1 ~ f#1 f#1@4 f1@2", U: "[e1@4 e2@3 d#2 e2@2 c#2@2 d2@2 d#2@4 c#3 d3 d#3@5 ~ a#2@2 g2@2 d#2@2]/2",
  V: "[d2@4 d2@3 d3 d2@2 b1@2 c2@2 c#2@6 c#3@2 c#1@4 c#3@2 g2@2 f2@2]/2",
  W: "[f#2@4 f#1@3 f2 f#2@2 c#2@2 c2@2 b1@4 b0 d#1 f#1@2 b1@6 f#1@2 f1@2]/2", X: "e1@2 e2 e1!2 e2@2 e1",
  Y: "e1 e2 e1@2 e1!2 e2 e1", Z: "[d2@2 d2@2 d2@2 c#2@2 ~@2 b1@2 ~@2 a1@15 ~ g1 ~]/2", AA: "a1 ~@2 a1 ~@10 e1 ~",
  AB: "g1 a1 ~ a1 ~@10 e1 g1", AC: "[~ a1 ~ a1 ~@3 e1 g1@2 a1@4 d2@4 c2@2 d2@3 d2 ~ c2 d2@4 c2@2]/2",
  AD: "[d2@4 d2@4 g1@2 a1@2 ~@2 d2@4 c2@2 d2@3 d2 ~ c2 d2@4 c2@2]/2",
  AE: "[d2@4 d1@3 d2 ~ d1 d1@4 e1@4 e2@2 e1@3 e1 ~@2 e1@2 e2@2 e1@2]/2",
  AF: "[d2@4 d2@3 c#2 d2@2 b1@2 c2@2 c#2@4 c#2@2 c#1@6 c#3@2 g2@2 f2@2]/2",
  AG: "[f#2@4 f#1@3 f2 f#2@2 c#2@2 c2@2 b1@4 b0 d#1 f#1@2 b1@6 b1@2 f#1 f1]/2",
  AH: "[d2@2 d2@2 d2@2 c#2@2 ~@2 b1@2 ~@2 a1@31 ~@3]/3", AI: "d1@2 ~@5 d1 g1@4 a1@2 d1@2", AJ: "a1@2 ~@5 a1 a1@4 a1@4",
  AK: "d1 d1@2 d2", AL: "c#2@3 c#2", AM: "b1@3 g#2", AN: "a2@2 a1 a1@5",
  AO: "[g#1@6 c#2@8 f#1@4 f#2@4 e2@4 f#1 f1 e1@2 d1@8 d1@2 d2@6 d1@2]/3", AP: "~ d1 d2@3 d1 d2 d1",
  AQ: "g1@3 g1 g2@3 g1", AR: "~ g1 g2@3 g1 g2 g1",
  AS: "[d2@4 d1@3 d2 ~ d1 d1@4 e1@4 e2@2 e1@3 e1 ~@2 e1!2 e2@2 e1@2]/2",
  AT: "[e1@4 e2@2 e1@2 e2@2 e1@4 e1@4 e1 ~ d2 d#2 e2@4 a1@2 b1@2 d2@6 d1@3 d2 d2@2 f2@2 f#2@2 g2@4 g1!2 g1@5 g2 g1@2 g2@2 g1@2]/4",
  AU: "[b1@4 b2@3 b1 b2@2 f#1@2 f1@2 e1@6 e2@2 e1@4 e1@2 e2@4]/2",
  AV: "[d2@2 d2@2 d2@2 c#2@2 ~@2 b1@2 ~@2 a1@53 ~@13]/5",
})).s("gm_electric_bass_finger").gain(0.47)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  A ~ B ~ A ~ B ~ C ~@10 D E F@2 G@3 H@2 I J@2 K@2 L@2 M@2 N@2 O@2 P@2 Q R S@5 ~ B ~ A ~ B ~ C ~@10 T U@2 I J@2 K@2 L@2
  M@2 N@2 O@2 P@2 Q R V@3 ~@12 W X Y Z AA@4 AB@2 K@2 L@2 M@2 N@2 O@2 P@2 AC@4 Q R AD@5
>`.pickRestart({
  A: "~@8 [d5,d6]@2 [d5,d6] ~@3 [e5,e6]@2", B: "~@8 [d5,d6]@2 [g5,g6] ~@3 [e5,e6]@2",
  C: "~@8 [d4,d5]@2 [d4,d5] ~@3 [c4,c5]@2", D: "b3@3 c#4@3 e4@2", E: "g#4 a4 b4 c5", F: "[e5@5 a4 d5 g5]/2",
  G: "[e5@5 d5 c5 g4@7 d4@5 e4@3 g4@2]/3", H: "[b4@4 ~@4 [d5,d6]@2 [c5,c6] ~@3 [e5,e6]@3 ~@15, ~@2 b4 a4@5]/2",
  I: "~ a4 d5 g5",
  J: "[e5@10 a4@2 f4@2 g4@4 ~@2 [g2,g3] [a2,a3] [c3,c4] [d3,d4] [c3,c4] [d3,d4] [g3,g4] [c4,c5] [d4,d5] [g4,g5] [c5,c6] [d5,d6]]/2", // G A C D C D G C …
  K: "[[e5,e6]@3 [a4,a5]]/2", L: "[[c5,c6]@7 [d5,d6]@7 [e4,e5]@2]/2", M: "[e5,e6]/2",
  N: "[[d5,d6]@14 [d#5,d#6]@10 [f#5,f#6] [d#5,d#6] [b4,b5] [g4,g5] [b4,b5] [g4,g5] [d#4,d#5] [b3,b4]]/2", // D D# F# D# B G B G …
  O: "[[e4,e5]@7 [f#4,f#5]@4 ~ [f#4,f#5]@3 ~]/2", P: "[[e4,e5]@14 [f#4,f#5]@11 ~@7]/2", Q: "[a4,a5]@3 [g#4,g#5]",
  R: "[f4,f5]@2 [d4,d5]@2 [a3,a4]@3 ~ [f#4,f#5]@2 [d4,d5]@2 [a3,a4]@3 ~", // F D A F# D A
  S: "[[c4,g4,e5]@4 ~@2 [b3,f#4,d#5]@2 ~@2 [a3,e4,c#5]@2 ~@2 [g3,d4,b4]@54 ~@4 [d5,d6]@2 [d5,d6] ~@3 [e5,e6]@2]/5", // C B A G D E
  T: "~ d4 e4 g4", U: "[b4@4 c5@4 [d5,d6]@2 [c5,c6] ~@3 [e5,e6]@3 ~@15, ~@2 b4 a4@5]/2",
  V: "[[c4,g4,e5]@2 ~ [b3,f#4,d#5] ~ [a3,e4,c#5] ~ [g3,d4,b4]@16 ~]/3", W: "a4", X: "b4@3 e4", Y: "c#5@2 a4 e4",
  Z: "b3@3 c#4@5", AA: "[d4@3 e4@2 a4@2 c#4@2 c#5@2 b4@2 e5@2 a4@17]/4",
  AB: "[a5@18 ~@2 [g2,g3] [a2,a3] [c3,c4] [d3,d4] [c3,c4] [d3,d4] [g3,g4] [c4,c5] [d4,d5] [g4,g5] [c5,c6] [d5,d6]]/2", // G A C D C D G C …
  AC: "[[a4,a5]@14 ~ [c5,c6]@6 [b4,b5]@2 [d5,d6]@2 [c5,c6]@5 ~@2]/4", // A C B D C
  AD: "[[d3,c4,g4,e5]@4 ~@2 [c#3,b3,f#4,d#5]@2 ~@2 [b2,a3,e4,c#5]@2 ~@2 [a2,g3,d4,b4]@53 ~@13]/5", // C B A G
})).s("gm_string_ensemble_1").gain(0.22)

// other · pad halo
const pad_halo = note("<~ A@2 B@2 A@2 C@2 ~@41 A@2 B@2 A@2 C@2 ~@78>".pickRestart({
  A: "[~@2 a4 ~ c5 ~ a4 ~ c5 ~ a4 ~ c5 ~ d5 e5@2 ~ e5 ~@13]/2",
  B: "[~@2 e5 f5 e5 c5 a4 ~ e5 f5 e5 c5 a4 ~ c5 a4@3 g4 ~@13]/2",
  C: "[~@2 e5 f5 e5 c5 a4 ~ e5 f5 e5 c5 a4 ~ a5 e5@3 d5 ~@13]/2",
})).s("gm_pad_halo").gain(0.28)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@9 A B A C D E F B F C G H I B I C D E F B J@2 ~@16 K L M ~@8 I B I C D N I B I C D E I B J@2 ~@15 O P Q R S@2 T U@2
  V W X Y Z AA AB AC@2 AD@8 ~@17 AE AF AG ~
>`.pickRestart({
  A: "~@3 g3 [a3,c4] ~ [g3,b3] ~ [a3,c4]!2 ~@5 g3", B: "[a3,c4] ~ [g3,b3] ~ [a3,c4] ~@7 [c4,e4]!2 [c4,e4]@2",
  C: "[a3,c4] ~ [g3,b3] ~ [a3,c4] ~@5 [c4,e4]!2 [c4,e4]@2 ~@2", D: "~@4 [c4,e4] ~ [b3,d4] ~ [c4,e4]!2 ~@6",
  E: "[c4,e4] ~ [b3,d4] ~ [c4,e4] ~@7 [e4,a4]!3 ~", F: "~@4 [a3,c4] ~ [g3,b3] ~ [a3,c4]!2 ~@6",
  G: "~@4 [a3,c#4] ~ [g#3,b3] ~ [a3,c#4]!2 ~@6", H: "[a3,c#4] ~ [g#3,b3] ~ [a3,c#4] ~@7 [c4,e4]!3 ~",
  I: "~@4 [a3,c4] ~ [g3,b3] ~ [a3,c4] ~@7", J: "[~@4 [a3,c4] ~ [g3,b3] ~ [a3,d4] ~@5 [a3,c4]@16 ~@2]/2",
  K: "~@7 [d4,a4]@4 c4 a3@3 e3", L: "c4 ~ c4 ~ a3 e3 g3 e3 a3@3 d3@2 c3 a2 g2", M: "c3 a2 a3@8 ~@6",
  N: "[c4,e4] ~ [b3,d4] ~ [c4,e4] ~@7 [c4,e4]!3 ~", O: "~@4 c#4 f#3 g3 d4 d#4 g3 b3 e4 d#4 g3 d4 g3",
  P: "c#4 f#3 c4 f3 b3 d4 c4 [c4,d4] b3 a3 g#3 b3 a3 b3 c4 d4", Q: "e4 ~ e4 d4 ~ d4 c4@3 ~ a3@2 ~@4",
  R: "c4 ~ c4@2 a3 e3 g3 ~ a3 e3 c3@2 d3 c3 a2 g2",
  S: "[c3@3 d3 ~@11 d5@3 ~ [c5,c#5] b4 a4 g4 f4 e4 d4 c#4 c4 b3 a3 c4 a3]/2", // C#maj7
  T: "b3 d4 c4 [c4,d4] b3 a3 g#3 b3 a3 e3@3 e3@3 ~", // Csus2
  U: "[g3 ~ a3 ~@5 [a3,a4]@2 [c4,c5]@2 [d4,d5]@2 [c4,c5] [e4,e5]@3 e4@8 e5 ~ d5 c5 a4 ~, ~@18 e5 ~@13]/2", // A C D C E
  V: "c5@3 a4 ~@7 [c4,c5]@2 [c4,c5]@2 [d4,d5]", W: "[e4,e5]@3 e4@4 g5@4 f#5 e5@3 d5, ~@3 e5 ~@8 f5 ~@3",
  X: "c5!2 b4 g#4 g4 e4 d4 c4 g3 ~ d5 ~ e5 c5 a4 g4", Y: "c#5@4 a4 e4 ~ d4 c#4@2 a4@2 ~ f#4 ~ e4",
  Z: "b3@2 a3 f#3 a3@2 b3 a3@3 e3 f#3 e3@2 c#3 ~", AA: "a2 ~", AB: "~@8 a3@3 [b3,b4]@2 c#4@3, ~@8 a4 ~@4 c#5 ~@2",
  AC: "[e4@26 a3@3 b4@3, e5@15 ~@11 a4 ~@2 b3 ~@2]/2", AD: "[c#4, c#5@15 ~@113]/8",
  AE: "~@4 c5 a4 g4 e4 a4 g4 e4 ~ [c4,d4] a3 c4 d4", AF: "e4 c4 a3 g3 [d#3,e3] d3 c3 a2 c3 [d3,e3] d3 c3 d3 c3 a2 g2",
  AG: "a2@3 ~ a3@12",
})).s("gm_electric_guitar_jazz").gain(0.32).pan(0.2)

// chords · lead 1 square
const lead_1_square = note("<A@8 B ~@5 C@5 ~ C@5 ~ C@5 ~@18 A@8 B ~@5 C@5 ~ C@5 ~@16 C@5 ~ C@5 ~@35>".pickRestart({
  A: "[~@8 [b3,d4]@2 [g3,b3,d4] ~@3 [a3,c4,e4]@24 ~@2 [b3,d4]@2 [g3,b3,d4] ~@3 [a3,c4,e4]@24 ~@2 [b3,d4]@2 [g3,b3,d4] ~@3 [a3,c4,e4]@24 ~@2 [b3,d4]@2 [g3,b3,d4] ~@3 [a3,c4,e4]@18, ~@8 g3 ~@31 g3 ~@31 g3 ~@31 g3 ~@23]/8", // Bm G Am Bm G Am Bm G …
  B: "~@8 [b3,d4]@2 [g3,b3,d4] ~@3 [f3,a3,c4]@2, ~@8 g3 ~@7", C: "[~@4 [b3,d4] ~@2 [a3,c4,e4]@28 ~@5, ~@8 g3 ~@71]/5",
})).s("gm_lead_1_square").gain(0.27)

// chords · piano
const piano = note(`<
  A@8 B ~ C D@2 E@6 F@6 G@6 H I J@2 K L M@2 N@2 O P Q R S@2 T U V@8 B ~ C D@2 W@6 G@6 H I J@2 K L M@2 N@2 O P Q R X@2 ~
  Y@4 Z@6 AA@2 ~@9 AB H I J@2 K L M@2 N@2 O P AC@4 AD AE AF@5
>`.pickRestart({
  A: "[~@8 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@24 ~@2 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@24 ~@2 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@24 ~@2 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@18, ~@8 d3 ~@31 d3 ~@31 d3 ~@31 d3 ~@23]/8", // G F G F G F G F
  B: "~@8 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@2, ~@8 d3 ~@7", // G F
  C: "~@7 d2 g2@2 g#2@2 a2@2 [d2,f3,a3,c4]@2, ~@4 [g3,b3,d4]@3 ~", // Dm7 G
  D: "[~@6 f2 ~@3 [f3,a3,c4]@3 g2 [f3,a3,c4] g2, ~@7 g2@5 ~@4]/2", // F
  E: "[[g3,b3,d4]@5 ~ [g3,c4,e4]@6 ~@4 a1@6 ~ a2 d3@2 d#3@2 e3@2 [d2,f3,a3,c4]@24 ~ d2 g2@2 g#2@2 a2@2 [d2,f3,a3,c4]@13 ~ f2@2 ~@6 [f3,a3,c4]@6 g2@2 [f3,a3,c4]@2 g2@2, a2@11 ~ a2@4 ~@62 g2@10 ~@8, ~@14 [g3,b3,d4]@8 ~@2 [g3,b3,d4]@5 ~@27 [g3,b3,d4]@6 ~@34]/6", // G C Dm7 F G
  F: "[[e3,g#3,b3]@5 ~ [e3,a3,c#4]@6 ~@4 a1@6 e3@2 d3@2 c3@2 e2@2 [d2,f3,a3,c4]@24 ~ d2 [g2,g3,b3,d4]@2 g#2@2 [g3,c4,e4] ~ [d2,f3,a3,c4]@13 ~ f2@2 ~@6 [f3,a3,c4]@6 g2@2 [f3,a3,c4]@2 g2@2, a2@11 ~ a2@4 ~@44 a2@2 ~@16 g2@10 ~@8, ~@7 [e3,g#3,b3]@4 ~ [g3,b3,d4]@3 ~@33]/6", // E A Dm7 G C Dm7 F E …
  G: "[[g3,b3,d4]@5 ~ [g3,c4,e4]@6 ~@4 c2@6 ~ g2 d3@2 d#3@2 e3@2 [d2,f3,a3,c4]@24 ~ d2 g2@2 g#2@2 a2@2 [d2,f3,a3,c4]@8 ~ d2 d3@2 a2@2 f2@2 [g2,f3,a3,c4]@6 g1@2 [g2,f3,a3,c4]@4 g1@2 [g2,f3,a3,c4]@3 ~, c3@11 ~ c3@4 ~@80, ~@14 [g3,b3,d4]@8 ~@2 [g3,b3,d4]@5 ~@27 [g3,b3,d4]@5 ~@35]/6", // G C Dm7 F G
  H: "[a3,c#4,e4]@6 [a3,c#4,e4]@4 a1@2 [a2,a3,c#4,e4]@3 ~, a2@5 ~@3", // A
  I: "[a3,c#4,e4]@6 [a3,c#4,e4]@4 f#1@2 [f#2,a3,c#4,e4]@3 ~, f#2@5 ~@3", // A F#m7
  J: "[[d2,c4,e4,g4]@4 [c4,e4,g4]@5 ~ [d2,c4,e4,g4]@4 [e2,d4,f#4,a4]@4 e3@2 e2@2 ~@4 e3 e2 e3@2 [e2,d4]@2, ~@4 d3@3 ~@11 d4@4 e3@4 [f#4,a4]@4 ~@2, ~@5 [f#4,a4] d4 ~]/2", // C D E7 F#m
  K: "[c#4,e4,b4]@6 [c#4,e4,a4]@4 a1@2 [a2,c#4,e4,a4]@3 ~, a2@5 ~@3", // C#m7 A
  L: "[c#4,e4,b4]@6 [c#4,e4,a4]@4 f#1@2 [f#2,c#4,e4,a4]@3 ~, f#2@5 ~@3", // C#m7 A F#m7
  M: "[e2@4 e2@2 e3@4 [e2,b3,d4,f#4]@2 ~@2 [d#2,a3,c#4,d#4,f#4]@11 ~ [d#2,a3,c#4,d#4,g4]@5 ~, [b3,d4,f#4] ~@3]/2", // Bm D#m7b5 D#7 Bm
  N: "[[d2,a3,c#4,e4,f#4]@9 ~ [d2,a3,c#4,e4]@3 ~ [c#2,b3,d#4,f#4]@11 ~ [c#2,b3,d#4,f#4]@5 ~]/2", // Dmaj7 A B
  O: "[f#2,c#4,e4,g#4]@9 ~ [f#2,c#4,e4,g#4]@3 ~ [b1,a3,c#4,d#4,f#4]@2", P: "~@2 [b1,c#4,d#4,f#4,a4]@13 ~",
  Q: "[e2,b3,d4,e4,a4]@4 ~@2 [b3,d4,e4,a4] ~ [b3,d4,e4,a4]@2 [b3,d4,e4,g#4]@2 ~@2 [a3,b3,d4,e4]@2, ~ e3 e2 e3", // Esus4 Bm7 E7 Asus4
  R: "~ [d4,e4,a4,b4] ~ [b3,d4,e4,a4] ~ [b3,d4,e4,g#4] e3@2, e2 e3 e2 ~", // Dsus2 Bm7 E7
  S: "[[g4,c5,e5]@4 ~@2 [f#4,b4,d#5]@2 ~@2 [e4,a4,c#5]@2 ~@2 [d4,g4,b4]@13 ~@3 [g2,g3] ~]/2", // C B A G
  T: "[a2,a3] ~@2 [a2,a3] ~@10 [e2,e3] ~", U: "[g2,g3] [a2,a3] ~ [a2,a3] ~@10 [e2,e3] [g2,g3]",
  V: "[~ [a2,a3] ~ [a2,a3] ~@4 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@24 ~@2 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@24 ~@2 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@24 ~@2 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@18, ~@8 d3 ~@31 d3 ~@31 d3 ~@31 d3 ~@23]/8", // A G F G F G F G …
  W: "[[g3,b3,d4]@5 ~ [g3,c4,e4]@6 ~@4 a1@6 ~ a2 d3@2 d#3@2 e3@2 [d2,f3,a3,c4]@24 ~ d2 [g2,g3,b3,d4]@2 g#2@2 [g3,c4,e4] ~ [d2,f3,a3,c4]@13 ~ f2@2 ~@6 [f3,a3,c4]@6 g2@2 [f3,a3,c4]@2 g2@2, a2@11 ~ a2@4 ~@44 a2@2 ~@16 g2@10 ~@8, ~@14 [g3,b3,d4]@8 ~@2 [g3,b3,d4]@5 ~@67]/6", // G C Dm7 G C Dm7 F G
  X: "[[c4,g4,c5]@4 ~@2 [b3,f#4,b4]@2 ~@2 [a3,e4,a4]@2 ~@2 [g3,d4,g4]@13 ~@5]/2", // C5 B5 A5 G5
  Y: "[[d2,a3,c4,e4]@22 ~@2 [g2,g3,b3,d4]@4 ~@2 [d2,f3,a3,c4]@6 ~@8 f2@2 ~@6 [f3,a3,c4]@7 ~ [g2,f3,a3,c4]@4, ~@46 g2@13 ~@5]/4", // Am G Dm7 F
  Z: "[[g3,b3,d4]@5 ~ [g3,c4,e4]@6 ~@4 a1@6 ~ a2 d3@2 d#3@2 e3@2 [d2,f3,a3,c4]@24 ~ d2 g2@2 g#2@2 a2@2 [d2,f3,a3,c4]@13 ~ f2@2 ~@6 [f3,a3,c4]@6 ~@2 [f3,a3,c4]@4, a2@11 ~ a2@4 ~@62 g2@10 ~@2 g2@6, ~@14 [g3,b3,d4]@8 ~@2 [g3,b3,d4]@5 ~@27 [g3,b3,d4]@6 ~@34]/6", // G C Dm7 F G
  AA: "[[a2,e3,g#3,c#4]@12 [a2,e3,g#3,c#4]@19 ~]/2", AB: "~@12 [f6,g6,a6] [a5,b5,c6,d6,e6] [b4,c5,d5,e5,f5,g5] [g4,a4]",
  AC: "[e2@4 e3@4 ~@2 [b3,d4,e4,f#4] ~@5 e2@4 e3@4 ~@2 [b3,d4,e4,f#4] ~@3 d2@4 ~@2 d3@4 ~@2 [c4,d4,f4,a4] ~@3 g2@4 ~@2 g3@4 g2@4 g3@4, [b3,d4,e4,f#4]@8 e2@4 e3@4 ~@8 e2@4 ~@2 [c4,d4,f4,a4]@11 ~@3 d3@4 ~@16, ~@14 [b3,d4,e4,f#4]@11 ~@3 e3@4 ~@8 d2@4 ~@2 [c4,d4,f4,a4]@11 ~@7]/4", // Bm Dm7 Bm Dm7 Bm Dm7
  AD: "b1@4 b2@4 ~@2 [a3,b3,d4,f#4] ~ b2@4, [a3,b3,d4,f#4]@2 b1 ~", // Bm7
  AE: "~@4 e3@4 ~@2 [a3,b3,d4,f#4] ~ e3@4, [a3,b3,d4,f#4]@5 ~@3, e2@3 ~ e2@2 ~@2", // Bm7
  AF: "[[g4,c5,e5]@4 ~@2 [f#4,b4,d#5]@2 ~@2 [e4,a4,c#5]@2 ~@2 [d4,g4,b4]@53 ~@13]/5", // C B A G
})).s("gm_piano").gain(0.24).pan(0.6)

// chords · piano
const piano_2 = note("<~@39 A@2 B@4 C@2 ~@35 A@2 B@4 C@2 ~@31 A@2 D@4 ~ E@3 ~@5>".pickRestart({
  A: "[[c#4,e4,a4]@7 [d#4,f#4,b4]@8 ~]/2", B: "[[e4,a4,c#5]@7 [d#4,f#4,b4]@5 ~ [e4,a4] [d#4,g#4] [d4,e4,a4]@17]/4",
  C: "[[g4,c5,e5]@6 [f#4,b4,d#5]@4 [e4,a4,c#5]@4 [d4,g4,b4]@13 ~@5]/2", // C B A G
  D: "[[e4,a4,c#5]@14 [d#4,f#4,b4]@10 ~@2 [e4,a4]@2 [d#4,g#4]@2 [d4,e4,a4]@27 ~@7]/4", // A B A5 G#5 Dsus2
  E: "[~@5 [e4,a4] [d#4,g#4] [d4,e4,a4]@17]/3", // A5 G#5 Dsus2
})).s("gm_piano").gain(0.05)

// chords · epiano1
const epiano1 = note("<~@90 A@5 B@6 C@2 D E F G H@4 I@2 ~@23>".pickRestart({
  A: "[~@8 [g3,b3,d4]@6 [a3,c4,e4]@7 ~ [c4,e4,a4] ~@7 [c4,e4,a4]@9 ~ [b3,d4,g4]@5 ~ [c4,e4,a4]@5 ~ [c4,e4,a4] ~@5 [c4,e4,a4] ~@3 [c4,e4,a4]@13 ~ [c4,e4,a4]@4]/5", // G Am G Am
  B: "[[b3,d4]@6 [c4,e4]@8 [g3,b3,d4]@9 ~ [g3,b3,d4]@4 [g3,c4,e4]@2 [f3,a3,c4]@6 [c4,e4,a4] ~@5 [c4,e4,a4] ~@3 [c4,e4,a4]@9 ~ [b3,d4,g4]@6 [c4,e4,a4]@6 [c4,e4,a4] ~@5 [c4,e4,a4] ~@3 [c4,e4,a4]@17 ~, g3@7 ~@41]/6", // Bm C G C F Am G Am
  C: "[~@14 e5@17 ~, [c#4,e4,g#4]@31 ~, ~@12 c#5@19 ~]/2", D: "[a3,c#4,f#4]", E: "e4@11 ~ e4@4, [g#3,b3]",
  F: "~@3 e4, [a3,d4,f#4], ~@3 a4@5", G: "b3@3 c#4@5, [e4,g#4]",
  H: "[[g#3,b3,d4]@6 [g#3,b3,e4]@8 [a3,c#4,e4]@8 [g#3,b3,e4]@8 ~@24 a5@9 ~, ~@15 [a3,c#4,f#4]@17, ~@46 e5@17 ~, ~@50 c#6@13 ~]/4", // G#dim E A E F#m
  I: "[~@6 [a4,c5]@25 ~, [a3,c4,f4]@31 ~]/2", // Am F
})).s("gm_epiano1").gain(0.21).pan(0.1)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@31 A B@2 C@5 D@8 ~@27 A B@2 C@5 D@8 ~ E F@6 G@8 ~@7 A B@2 C@5 H@8 I J@6
>`.pickRestart({
  A: "[c#4,e4,g#4]@4 [c#4,e4,g#4] ~ [c#4,e4,g#4]!2 ~ [c#4,e4,g#4] [c#4,e4,g#4]@2 [c#4,e4,g#4] ~ [c#4,e4]@2", // C#m
  B: "[[c#4,e4,g#4]@4 [c#4,e4,g#4] ~ [c#4,e4,g#4]!2 ~ [c#4,e4,g#4] [c#4,e4,g#4]@2 [c#4,e4,g#4] ~ e4@2 [c4,e4,g4]@3 [c4,e4,g4]!2 ~ [c4,e4]@2 [c4,e4]@2 [c4,e4,g4]@2 ~@2 [d4,f#4,a4]@2, ~@7 c#4@9]/2", // C#m C D
  C: "[~@4 [d4,f#4,a4]!4 ~ [d4,f#4,a4]!2 [d4,f#4] [d4,f#4,a4]!2 [d4,f#4] ~ [c#4,e4,g#4]@4 [c#4,e4,g#4] ~ [c#4,e4,g#4]!2 ~ [c#4,e4,g#4] [c#4,e4,g#4]@2 [c#4,e4,g#4] ~ [c#4,e4]@2 [c#4,e4,g#4]@4 [c#4,e4,g#4] ~ [c#4,e4,g#4]!2 ~ [c#4,e4,g#4] [c#4,e4,g#4]@2 [c#4,e4,g#4] ~@3 [b3,d4,f#4]!4 ~ [b3,d4,f#4] [b3,d4] [b3,d4,f#4] ~ [b3,d4] [b3,d4,f#4] ~@3 [c#4,d#4,f#4]@2 ~@2 [c#4,d#4,f#4]!3 [f#4,a4,c#5] ~ [f#4,a4,c#5] ~@2 [d#4,f#4,a4]@2 ~@4, ~@15 [d4,f#4]@33 ~@32, ~@23 e4@17, ~@23 c#4@8 ~@9]/5", // D C#m Bm D#m7 F#m D#dim D
  D: "[[f#4,a4,c#5]@4 [f#4,a4,c#5] ~ [f#4,a4,c#5]!2 ~ [f#4,a4,c#5] [f#4,a4,c#5]@2 f#4@2 [d#4,f#4,b4]@6 ~@3 [b3,d#4,f#4] ~@2 [b3,d#4,f#4]@4 ~@2 [c#4,e4,g#4]!2 ~@2 [e4,g#4,c#5]@3 [e4,g#4,c#5] ~@2 [e4,g#4,c#5] ~@3 [d#4,f#4,b4]@5 ~ [f#4,a4,c#5]!4 ~ [f#4,a4,c#5] [f#4,a4,c#5]@2 [f#4,a4,c#5] ~ [f#4,a4]@2 [f#4,a4,c#5]@4 [f#4,a4,c#5] [f#4,a4]!3 [f#4,a4,c#5] ~ [f#4,a4,c#5]@2 ~@2 [f#4,a4]@2 [f#4,a4,c#5]!2 [f#4,a4]!2 [f#4,a4,c#5] ~ [f#4,a4]!2 [f#4,a4,c#5] [f#4,a4]!3 [f#4,a4,c#5] ~@3 [e4,g4,c5]@4 ~@2 [d#4,f#4,b4] ~@3 [c#4,e4,a4] ~@3 [b3,d4,g4]@17 ~, ~@6 a4@20 ~@21 a4@6 ~@11, ~@15 b3@40 ~@9, ~@15 d#4@8 ~@24 f#4@4 ~@13]/8", // F#m B C#m B F#m C B A …
  E: "[c4,e4,a4]@4 [c4,e4,a4] ~ [c4,e4] [c4,e4,a4] [c4,e4] [c4,e4,a4] [c4,e4]!2 [c4,e4,a4] ~ [c4,e4,a4] [c4,e4]", // Am C Am C Am C Am C
  F: "[[c4,e4,a4]@4 [c4,e4,a4] ~ [c4,e4] [c4,e4,a4] ~ [b3,d4,g4] [b3,d4] [b3,d4,g4] [b3,d4]!3 ~ [c4,e4,a4]@4 [c4,e4,a4] ~ [c4,e4] [c4,e4,a4] [c4,e4] [c4,e4,a4] [c4,e4]!2 [c4,e4,a4] ~ [c4,e4,a4] c4 [c4,f4,a4]@4 [c4,f4,a4] [c4,f4]!2 [c4,f4,a4] [c4,f4] [c4,f4,a4] [c4,f4]!2 [c4,f4,a4] [c4,f4] [c4,f4,a4] c4 [c4,e4,g4]@4 [c4,e4,g4] [c4,e4]!2 [c4,e4,a4] [c4,e4] [c4,e4,a4] [c4,e4]!2 [c4,e4,a4] [c4,e4] [c4,e4,a4] [c4,e4] [c4,e4,g4]@4 [c4,e4,g4] [c4,e4]!2 [c4,e4,a4] [c4,e4] [c4,e4,a4] [c4,e4]!2 [c4,e4,a4] ~ [c4,e4,a4] [c4,e4] [c4,e4,a4]@4 [c4,e4,a4] ~ [c4,e4] [c4,e4,a4] [c4,e4] [c4,e4,a4] [c4,e4]!2 [c4,e4,a4] ~ [c4,e4,a4] [c4,e4], ~@8 [c4,e4]@7 [b3,d4]@81, ~@31 e4@16 f4@49]/6", // Am C Am G Bm G Bm Am …
  G: "[[c4,e4,a4]@4 [c4,e4,a4] ~ [c4,e4] [c4,e4,a4] ~ [b3,d4,g4] [b3,d4] [b3,d4,g4] [b3,d4]!3 ~ [c4,e4,a4]@4 [c4,e4,a4] ~ [c4,e4] [c4,e4,a4] [c4,e4] [c4,e4,a4] [c4,e4]!2 [c4,e4,a4] ~ [c4,e4,a4] c4 [c4,f4,a4]@4 [c4,f4,a4] [c4,f4]!2 [c4,f4,a4] [c4,f4] [c4,f4,a4] [c4,f4]!2 [c4,f4,a4] [c4,f4] [c4,f4,a4] ~ [e4,g#4,c#5]@4 [e4,g#4,c#5] [e4,g#4]!2 [e4,g#4,c#5] [e4,g#4] [e4,g#4,c#5] [e4,g#4]!2 [e4,g#4,c#5] [e4,g#4] [e4,g#4,c#5] [e4,g#4] [e4,g#4,c#5]@3 [e4,g#4,c#5]!2 [e4,g#4] [e4,g#4,c#5]!2 [e4,g#4]!4 [e4,g#4,c#5]@3 ~@49, ~@8 [c4,e4]@7 [b3,d4]@113, ~@31 e4@16 [c4,f4]@81]/8", // Am C Am G Bm G Bm Am …
  H: "[[f#4,a4,c#5]@4 [f#4,a4,c#5] ~ [f#4,a4,c#5]!2 ~ [f#4,a4,c#5] [f#4,a4,c#5]@2 f#4@2 [d#4,f#4,b4]@6 ~@3 [b3,d#4,f#4] ~@2 [b3,d#4,f#4]@4 ~@2 [c#4,e4,g#4]!2 ~@2 [e4,g#4,c#5]@3 [e4,g#4,c#5] ~@2 [e4,g#4,c#5] ~@3 [d#4,f#4,b4]@5 ~ [f#4,a4,c#5]!4 ~ [f#4,a4,c#5] [f#4,a4,c#5]@2 [f#4,a4,c#5] ~ [f#4,a4]@2 [f#4,a4,c#5]@4 [f#4,a4,c#5]@3 [f#4,a4] [f#4,a4,c#5] ~ [f#4,a4,b4]@2 ~@2 [f#4,a4,b4]@6 [f#4,a4,b4] [f#4,a4]!2 [f#4,a4,b4] [f#4,a4]!2 [f#4,a4,b4]@2 ~@2 [d4,f#4,a4]@6 [d4,f4,a4]@3 [d4,f4] [d4,f4,a4] ~ [d4,f4,a4]@2 ~@2 [d4,f4,a4]@6 [d4,f4,a4] [d4,f4]!2 [d4,f4,a4] [d4,f4]!2 [d4,f4,a4]@2 ~@2 [d4,f4,a4]@2, ~@3 a4@10 ~@19, ~@15 b3@49, ~@15 d#4@8 ~@41]/8", // F#m B C#m B F#m B7 F#m B7 …
  I: "[f#4,a4,c#5]@4 [f#4,a4,c#5] [f#4,a4]!3 [f#4,a4,c#5] ~ [f#4,a4,c#5]@2 ~@2 [f#4,a4]@2", // F#m
  J: "[[f#4,a4,c#5]!2 [f#4,a4]!2 [f#4,a4,c#5] ~ [f#4,a4]!2 [f#4,a4,c#5] [f#4,a4]!3 [f#4,a4,c#5] ~@3 [e4,g4,c5]@4 ~@2 [d#4,f#4,b4] ~@3 [c#4,e4,a4] ~@3 [b3,d4,g4]@53 ~@13, ~@7 a4@6 ~@35, ~@7 f#4@4 ~@37]/6", // F#m C B A G
})).s("gm_electric_guitar_clean").gain(0.27).pan(0.8)

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

// drums · snare
const snare = s("sd").struct(`<
  A B@7 C B@5 D B@11 D B@2 E F B@3 D B@3 C B@3 D B C B ~@3 A B@7 G B@5 C B@5 D B@2 E H B@3 D B@3 C B@3 D B C B ~ I B@5 D
  B@5 C ~@6 J@3 K B@3 D B@3 L B@3 D B@3 M B C B ~@4
>`.pickRestart({
  A: "~@4 x!2 ~ x", B: "~ x ~ x", C: "~@4 x ~@7 x!2 ~@2", D: "~@4 x ~@7 x ~@2 x", E: "~@2 x ~@2 x!2 ~",
  F: "~@2 x ~@8 x!3 ~@2", G: "~@4 x ~@5 x!4 ~@2", H: "~@2 x ~@7 x!5 ~", I: "~@2 x ~@5 x ~@6 x", J: "~ x",
  K: "~@8 x ~@3 x!2 ~@2", L: "~@4 x!2 ~ x!2 ~@3 x!2 ~@2", M: "~@4 x ~@2 x ~@4 x!2 ~@2",
})).gain(0.64)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B A B C B D E F B A B G A F B H B A E F B A B H A F B@2 I J K@3 J K@3 J K@3 J K L F M A N A B A@5 B F A O B H P F
  B A Q H A F B@2 I J K@3 J K@3 J K@3 J K R F S J K@5 J K@3 J K F T A U V W X Y Z I J K@3 J K@2 L J K@3 J K J K J K R
// … 82 more lines

More by Dirotta su Cuba