Strudelify

Dentro ad ogni attimo

Dirotta su Cuba

KeyE majorTempo86 bpm
0:00/0:00
// Dentro ad ogni attimo — Dirotta su Cuba
// 86 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 101 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(86/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 B C D A B E D ~@2 F@3 ~@2 G@2 H I J K L M N I J K O P Q R B S T A B E D U V W X U V Y Z AA AB AC AD I J K L M N I
  J K O P Q AE AF AG AH AG AI AJ AK I J K L M N I J K O P Q AL B C AM AN AO AP AQ AL AR C AS AT AU AV AW AX@2
>`.pickRestart({
  A: "a1@15 a1", B: "a1@3 b1", C: "c#2@15 g#1", D: "c#2@3 g#1", E: "c#2@15 b1", F: "[e1@3 ~]/3",
  G: "[~@12 f#1@7 c#2@3 a#2@9 e2, ~@22 g#2 ~@9]/2", H: "f#2@3 c#2@3 f#1@9 ~", I: "e1@3 e1 a1 b1 e2@9 d#2",
  J: "e2@2 ~ b1 ~@2 e1@9 ~", K: "a1@3 a1 d2 e2 a2@9 g#2", L: "a2@2 ~ e2 ~@2 a1@6 e2@2 a1@2", M: "d2@6 d1@9 c#2",
  N: "d2@5 ~ d1@9 ~", O: "a2@2 ~ e2 ~@2 a1@6 e2@4", P: "d1@3 d1 g1 a1 d2@9 c#2", Q: "d2", R: "a2@15 a1, g#2 ~@15",
  S: "c#2@14 ~ g#1", T: "c#2@2 ~ e2 ~ g#2 d#3@6 c#3@2 g#2@2, ~@6 c#3 ~@9", U: "a1@3 a1 ~@2 a1@8 a2 a1",
  V: "a1@3 a1 ~ g#1 a1@6 a2@2 a1@2", W: "e1@3 e1 ~ d#1 e1@8 e2 e1", X: "e1@3 e1 ~ e1 e1@3 b1 e2 f#2 e2 b1 a1 b1",
  Y: "e1@3 e1 ~ d#2 e2@8 c#3 d#3", Z: "e3@2 e3 b2@2 b2 e2@6 b1@4", AA: "f#1@3 c#2@3 a#2@8 ~ e2, ~@6 g#2 ~@9",
  AB: "f#2@3 c#2@3 f#1@5 ~ f#1@4", AC: "a1@3 g#1@3 e2@3 c#2@3 a1@4", AD: "b1@3 ~",
  AE: "f#1@3 f#2 f#1@2 a1@4 a2@2 a1@2 a#1@2", AF: "b1@3 b1 ~@2 b1@3 f#2 a2 a#2 b2 e2 f#2 b1",
  AG: "f#1@3 ~ f#1@2 a1@4 a2@2 a1@2 a#1@2", AH: "b1@3 b1@2 ~ b1@4 a2 a#2 b2@2 g#2 ~",
  AI: "b1@3 b1@2 ~ b1@2 ~ a#2 b2 f2 f#2 a#1 b1 f#1", AJ: "a1@3 a1@2 g#1 a1@3 a2 a1 g#1 a1@3 a#1",
  AK: "b1@3 b1@3 b1@6 b1!2 b1@2", AL: "a1@15 g#1", AM: "c#2@3 c#2", AN: "c2@15 b1", AO: "c2@7 c2", AP: "c#2@14 ~ g#2",
  AQ: "c#3 d#3@2 c#3@4 g#2@3 c#2@2 b1@2 c#2@2", AR: "a1@11 a1 a1@2 b1@2", AS: "c#2@5 g#2 c#2 g#2",
  AT: "c2@3 g2@3 d3@9 g2, ~@6 c3 ~@9", AU: "c2@3 g2@3 d3@6 a2@2 g#2@2, ~@6 c3 ~@9", AV: "c#2@5 ~ c#2@9 b1",
  AW: "c#2@2 ~ c#3 ~@5 c#2@3 b1@4", AX: "[~ c#2@18 ~@13]/2",
})).s("gm_electric_bass_finger").gain(0.52)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  A B C D@2 E F G@2 H ~@7 I@2 J@4 K L J@4 M N O@2 ~@2 E F G@2 H ~@7 I@2 P Q J@4 K L J@4 M N O@2 R@2 S@2 T U J@4 K L J@4
  M N O@2 ~@16
>`.pickRestart({
  A: "~@12 [c#3,d#3] [e3,f#3] [g#3,a3] [b3,c#4]", B: "d#4@3 c#4@5", C: "d#4@3 c#4@3 d#4@2",
  D: "[b3@28 [c#4,d#4] [e4,f#4] [g#4,a4] [b4,c#5]]/2", E: "[d#5,d#6]@3 [c#5,c#6]@3 [e4,e5]@2",
  F: "[d#5,d#6]@3 [c#5,c#6]@3 [g#5,g#6]@2", G: "[[d#6,d#7]@7 [f#5,f#6]]/2", H: "[e5,e6]",
  I: "[~@5 [a#4,a#5] [b4,b5] [e5,e6]@9]/2", J: "[[b5,b6]@14 ~@2 [g#5,g#6]@3 [b4,b5]@13, ~@14 [e5,e6]@5 ~@13]/4",
  K: "[a5,a6]@3 [g#5,g#6]@3 [f#5,f#6]@2", L: "[e5,e6]@6 [d5,d6]@9 ~", M: "[a4,f#5]@3 [g#4,e5]@3 [f#4,d5]@2",
  N: "[e4,c#5]@3 [d4,b4]@3 [c#4,a4]@2", O: "[b3,b4]/2",
  P: "[a4,a5]@3 [e4,e5]@3 [b3,b4]@3 [a3,a4]@3 [b3,b4]@2 [e4,e5]@2", // A E B A B E
  Q: "[b3,b4]@3 [c#4,c#5]@3 [f#4,f#5]@3 [b4,b5]@3 [c#5,c#6]@2 [f#5,f#6]@2", // B C# F# B C# F#
  R: "[[b4,b5]@20 [e4,e5]@4 [d#4,d#5]@4 [e4,e5]@3 ~]/2", S: "[[b4,b5]@30 [a4,a5] [g#4,g#5]]/2",
  T: "[a4,a5] [g#4,g#5] [e4,e5] [c#4,c#5]", U: "[b3,b4]",
})).s("gm_string_ensemble_1").gain(0.25)

// chords · string ensemble 1
const string_ensemble_1_2 = note(`<
  ~ A@2 B@2 C@2 D@2 E ~@9 F@4 G@2 F@4 G@2 A@2 B@2 C@2 D@2 E ~@11 F@4 G@2 F@4 G@2 ~@8 F@4 G@2 F@4 G@2 ~@18
>`.pickRestart({
  A: "[a2@7 [b1,b2]]/2", B: "[[c#2,c#3]@7 [g#1,g#2]]/2", C: "[[a2,e3,a3]@7 [b2,f#3,b3]]/2",
  D: "[[c#1,c#2]@7 g#2, [c#3,g#3,e4]]/2", E: "[a2,e3,c#4]",
  F: "[a3@3 g#3@5 f#3@3 g#3@5 a3@3 g#3@5 f#3@3 g#3@5, e3@31 ~, b2 a2]/4", G: "[[a2,d3,f#3]@31 ~]/2",
})).s("gm_string_ensemble_1").gain(0.25)

// chords · pad warm
const pad_warm = note(`<
  ~@17 A@2 ~@28 B@2 C D ~@12 E F E F E F G F ~@12 H I J@2 K@2 L@2 H I J@2 K@2 L M@3
>`.pickRestart({
  A: "[[f#3,a#3,c#4,e4]@31 ~]/2", B: "[c#4,e4,f#4,a#4]/2", C: "[c#4,e4,a4]", D: "[b3,d#4,f#4,b4]",
  E: "[a3,c#4,f#4]@3 [a3,c#4,e4]@5", F: "[f#3,b3,e4]@3 [f#3,b3,d#4]@5", G: "[a3,c#4,e4]",
  H: "[a3,d#4,f#4,b4]@3 [a3,c#4,e4,a4]@5", I: "[a3,d#4,f#4,b4]@6 [a3,c#4,e4,a4]@5 ~ [b3,d#4,f#4,b4]@3 ~",
  J: "[c#4,e4,g#4,c#5]@3 [c#4,d#4,f#4,b4]@5", K: "[c4,d4,f#4,a4]@3 [c4,e4,g4]@5",
  L: "[c#4,e4,g#4]@3 [b3,c#4,d#4,f#4]@5", // C#m B
  M: "[[c#4,e4,g#4]@6 [b3,c#4]@11 [g#3,b3,c#4,e4]@18 ~@13, ~@6 [d#4,f#4]@29 ~@13]/3", // C#m Bsus2 C#m7 D#m
})).s("gm_pad_warm").gain(0.2)

// chords · electric guitar clean
const electric_guitar_clean = note("<~ A B C D A B C D ~@22 A B C D A B C D ~@24 E F E F E G@2 ~@31>".pickRestart({
  A: "~@3 c#4@5, a2, ~ e3@4 a3@11, ~@2 b3@5 ~@9, ~@3 e4@13", B: "~@3 c#4@5, a2, ~ e3@4 a3@11, ~ b3@2 ~@5, ~@3 e4@13",
  C: "~@3 e4@2 ~ b3@9 ~, c#3, ~ g#3@15, ~@2 b3@3 d#4@11",
  D: "~@3 e4@2 ~ b3@9 ~, c#3@15 ~, ~ g#3@14 ~, ~@2 b3@3 d#4@10 ~", E: "~@5 e4@3, f#2, ~ a3@7, ~ b3@3, ~@3 g#4@5",
  F: "[f#3,b3,e4]@3 [f#3,b3,d#4]@5", G: "[[f#3,b3,e4]@6 [f#3,b3,d#4]@9 ~ [a2,e3,a3,b3]@12 ~@4, ~@15 [c#4,e4]@13 ~@4]/2",
})).s("gm_electric_guitar_clean").gain(0.3)

// other · piano
const piano = note("<~@34 A B C ~@5 D@3 ~@45 A B C ~@8>".pickRestart({
  A: "~@3 d#4", B: "~ c#4@2 b3@2 g#3@7 d#4@4", C: "~ c#4@2 b3@2 g#3@7 ~@4", D: "[~@5 f#4@6 e4@6 ~@7]/3",
})).s("gm_piano").gain(0.05)

// chords · piano
const piano_2 = note("<~@83 A B C D E F G H I@4 J K@5>".pickRestart({
  A: "~@3 g#4@3 [c#4,e4]@10, a2, [f#3,d#4]@3 ~@5", B: "~@3 g#4@3 [e3,a3,c#4,e4]@10, [a2,f#3,b3,d#4,f#4]@3 ~@5",
  C: "g#3@3 [f#3,b3]@5", D: "~@3 b4@3 ~@8 e5 f#5, [g#3,b3]@6 d#5@7 d#5@2 ~, ~ d#4@6 b3@8 ~, ~@2 e4@5 ~@5 c#5@3 ~",
  E: "g5@3 e5@13", F: "~@3 e4, a4@15 ~, ~@3 d5@12 ~, ~@6 g4@9 ~",
  G: "~@3 [c#3,g#3,b3,e4,g#4] ~@2 [c#3,g#3,b3,d#4,f#4]@9 ~", H: "~@7 [d#5,d#6]@9, ~ [c#3,g#3,b3,e4,g#4]@15, ~ b4@3",
  I: "[[e3,f#3,b3,d#4]@6 ~@8 a3@3 ~@5 c#4@6 c#4@2 ~@5 b4@3 [b3,d#4,f#4]@7 ~@17 b4@2, a2@28 g#4@2 c#4@2 [c#3,g#3,b3,e4,g#4]@6 [c#3,g#3]@19 e4 d#5 e4@5, ~@6 e3@32 ~@11 b4@11 c#5@4, ~@6 [a3,c#4]@6 b3 c#4@4 ~@5 a4@16 ~@9 e4@7 d#5 e5@6 ~@3, ~@12 e4@5 [d#4,f#4]@21 ~@8 d#4@15 ~@3]/4", // B C#m7 C#5 A D#m
  J: "[c3,g3,e4,g4,b4,e5]@3 [c3,g3,d4,e4,b4]@3 d4@6 d4@4, ~@3 [c3,g3,a3,f#4,a4]@5", // Cmaj7 F#dim
  K: "[~@2 d5@3 [g3,c4,e4,a4,d5,f#5]@2 f#5@3 f#5@2 ~@4 [c#4,g#4,c#5,e5,g#5]@6 ~@23 e4@2 d#4 ~ [g#3,d#4,f#4,b4]@18 ~@13, ~ a4@4 ~@2 g4@15 f#4@9 b4@2 d#5@2 e5@9 f#4@5 ~@31, ~@7 d5@6 f#5 d5 a4@7 d#5@8 e4@7 d#5@5 g#4@7 ~@31, ~@7 a5@5 a5@9 ~ b4@7 d#4@11 b4@9 ~@31, ~@10 f#4@12 [c#4,f#5]@27 ~@31]/5", // D7 C#m G#m7 F#5
})).s("gm_piano").gain(0.3)

// chords · piano · soft notes
const piano_soft = note("<~@83 A B C D ~@9 E@2 ~ F@2>".pickRestart({
  A: "[b3,f#4]@3 [e3,a3]@5", B: "~@3 a2@5", C: "b3@3 ~@5", D: "~@7 f#3@8 ~", E: "[~@7 [c4,e4]@15 ~@10]/2",
  F: "[b3@19 ~@13]/2",
})).s("gm_piano").gain(0.15)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@9 A B C D E@2 F G@3 H I J K L M H I J K L N ~@8 O P Q R S T U V W X Y Z H I J K L M H I J K L AA@2 AB AC AD AC AE AF
  AG H I J K L M H I J K L M AH AI AJ AK AL AM AN AO AP AI AJ AK AL AM AN AO ~@2
>`.pickRestart({
  A: "[a2,b3,d#4]@3 ~@4 e3, ~@3 [a2,a3,c#4]@5", B: "[a2,f#3,b3,d#4]@3 [a2,a3,c#4]@5",
  C: "[e3,a3,b3]@3 ~@3 [e2,b2,e3,g#3,b3]@10, b2@3 ~@5", // Esus4 E
  D: "[e3,a3,b3]@3 [e3,a3,b3]@3 [e3,g#3,b3]@6 e3@4, [e2,b2]@3 [e2,b2]@5", // Esus4 E E5
  E: "[[a2,b3,d#4]@6 ~@13 e4@3 [a2,a3,c#4]@10, ~@6 [a2,a3,c#4]@9 f#3@7 ~@10, ~@7 e3 [a2,b3,d#4]@3 ~@5]/2", // B7 A B7
  F: "[e3,a3,b3]@3 [e3,b3]@3 [e3,g#3,b3]@3 ~@3 [e3,g#3]@2 ~ g#3, b2@3 [e2,b2]@5, ~@3 b3, ~@7 [g#3,e4]", // Esus4 E5 E E5 C#m
  G: "[[e3,a3,b3]@3 a3@3 [e3,g#3,b3]@3 [e3,g#3]@3 [e3,g#3,b3]@2 ~@2 [c#3,e3,f#3,a#3]@6 [c#3,e3,f#3,a#3]@9 ~ [c#3,f#3,a#3]@6 [c#3,e3,f#3,a#3]@9 ~, b2@6 b2@16 ~@9 e3@6 ~@11]/3", // Esus4 E F#7 F# F#7
  H: "[e2,b2,e3,a3,b3,e4]@3 [e2,b2,e4] e4@2 [e2,b2,e3,g#3,b3,e4]@3 [e2,b2] [e2,b2]@2 [e2,b2,e3,g#3,b3,e4]@2 ~ [e2,b2], ~@3 [e3,a3,b3]@3 ~@3 [e3,g#3,b3,e4]@3 ~@2 [e2,b2,e3,g#3,b3,e4]@2", // Esus4 E5 E E5 E E5 Esus4 E
  I: "[e2,b2,e3,a3,b3,e4]@3 b2 b2@2 [e2,b2,e3,g#3,b3,e4]@3 [e2,b2] b2@2 [e2,b2,e3,g#3,b3,e4]@2 ~ g#3, ~@3 [e2,e3,a3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@2 [e2,b2,g#3,b3,e4]@2", // Esus4 E E5 E Esus4 E
  J: "[a2,e3,a3,b3,e4]@3 a2 a2@2 [a2,e3,g#3,b3,e4]@3 [a2,g#3,b3] [a2,e3,b3]@2 [a2,e3,g#3,b3,e4]@2 [a2,g#3,b3] [a2,g#3], b2 ~@2 [e3,a3,b3,e4]@3 ~@3 e4@3 ~@4", // Asus2 E Asus2 E Amaj7 Esus4
  K: "[a2,e3,a3,b3,e4]@3 a2 a2@2 [a2,e3,g#3,b3,e4]@3 [a2,e3,g#3,b3] a2@2 [a2,e3,g#3,b3,e4]@2 [a2,e3,g#3,b3,e4] [a2,g#3,b3], ~@3 [e3,a3,b3,e4]@3 ~@10", // Asus2 E Esus4
  L: "[a2,d3,f#3,a3,d4]@3 [a2,d3,f#3,a3,d4]@3 [a2,d3,f#3,a3,d4]@3 [a2,d3] ~@2 [a2,d3,f#3,a3,d4]@2 [a2,d3,a3,d4]!2, ~@9 d4@3 ~@4", // D D5 D D5
  M: "[a2,d3,f#3,a3,d4]@3 [a2,a3,d4]@3 [a2,d3,f#3,a3,d4]@3 [d3,d4] [d3,a3,d4]@2 [a2,d3,f#3,a3,d4]!2 [a2,d3,f#3,a3,d4]@2, ~@3 d3 ~@5 a2@3 ~@4", // D D5 D D5 D
  N: "[a2,d3,f#3,a3,d4]@3 [a2,a3,d4]@3 [a2,d3,f#3,a3,d4]@10, ~@3 d3 ~@12", // D D5 D
  O: "[a2,e3,f#3,b3,d#4]@3 [a2,e3,f#3,b3,d#4] ~@2 [a2,e3,a3,c#4]@3 [a2,e3,a3]@3 [a2,e3,a3,c#4]@2 a2@2", // B7 A A5 A
  P: "[a2,e3,f#3,b3,d#4]@3 [a2,e3,f#3,b3,d#4] ~@2 [a2,e3,a3,c#4]@3 [a2,e3,a3]@3 [a2,e3,a3]@2 [a2,e3]@2", // B7 A A5
  Q: "[e2,b2,e3,a3,b3]@3 [e2,b2,e3,a3,b3] ~@2 [e2,b2,e3,g#3,b3]@3 [e2,e3,g#3,b3]@3 [e2,b2,e3,g#3,b3]@2 [e2,e3,b3] ~", // Esus4 E E5
  R: "[e2,b2,e3,a3,b3]@3 [e2,b2,e3,a3,b3] ~@2 [e2,b2,e3,g#3,b3]@3 [e2,b2,e3,g#3,b3]@3 [e2,b2,e3,g#3,b3]@2 ~ b2, ~@7 [b2,e3,g#3,b3]", // Esus4 E
  S: "[a2,e3,f#3,b3,d#4]@3 [a2,e3,f#3,b3,d#4] ~@2 [a2,e3,a3,c#4]@3 [a2,a3]@3 [a2,e3,a3,c#4]@2 ~ a2, ~@7 [a2,e3,a3]", // B7 A A5
  T: "[a2,e3,f#3,b3,d#4]@3 [a2,e3,f#3,b3,d#4] ~@2 [a2,e3,a3,c#4]@3 [a2,e3,a3]@3 [a2,e3,a3,c#4]@2 ~ a2, ~@7 [a2,a3,c#4]", // B7 A A5 A
  U: "[e2,b2,e3,a3,b3]@2 ~ [e2,b2,e3,a3,b3] ~@2 [e2,b2,e3,g#3,b3]@3 ~@3 [e2,b2,e3,g#3,b3]@2 [g#3,b3] b2", // Esus4 E G#m
  V: "[e2,b2,e3,a3,b3]@2 ~ [e2,b2,e3,a3,b3] ~@2 [e2,b2,e3,g#3,b3]@3 [e3,g#3]@3 [e2,b2,e3,g#3,b3]@2 [e2,b2,e3,g#3,b3]!2", // Esus4 E
  W: "[f#2,c#3,e3,f#3,a#3]@3 [f#2,c#3,e3,f#3,a#3]@3 [f#2,c#3,e3,f#3,a#3]@3 [c#3,e3,f#3,a#3]@3 [f#2,c#3,e3,a#3]@2 c#3 ~", // F#7
  X: "[f#2,c#3,e3,f#3,a#3]@3 [f#2,c#3,e3,a#3]@3 [f#2,c#3,e3,f#3,a#3]@3 [c#3,e3,f#3,a#3]@3 [f#2,c#3,e3,f#3,a#3]@2 c#3@2", // F#7
  Y: "[a2,e3,a3,c#4]@3 [a2,e3,a3,c#4]@3 [a2,e3,a3,c#4]@3 [e3,a3,c#4]@3 [a2,e3,a3]@2 [a2,a3]@2, ~@3 c#4", // A A5 A
  Z: "[f#2,b2,d#3,f#3,b3]@3 [f#2,b2,d#3,f#3,b3] [f#2,b2,d#3,f#3] ~@3", // B
  AA: "[[a2,d3,f#3,a3,d4]@3 [a2,a3,d4]@3 [a2,d3,f#3,a3,d4]@3 [d3,d4] [d3,a3,d4]@2 [a2,d3,f#3,a3,d4]!2 ~@2 [f#2,c#3]@4 [f#2,c#3,f#3,a3,c#4]@2 [a2,e3,a3,c#4]@3 [a2,e3,a3,c#4]@3 [a2,e3]@2 e3@2, ~@3 d3 ~@5 a2@3 ~@2 [a2,d3,d4]@8 ~@10, ~@7 [f#3,a3]@3 ~@4 [a3,c#4]@2]/2", // D D5 D D5 D F#5 F#m A …
  AB: "[b2,e3,f#3,b3]@3 ~ b2@2 [b2,d#3,f#3,b3]@3 b2@3 ~ b2@3, ~@3 [e3,f#3,b3]@3 ~@6 [d#3,f#3,b3]@4", // Bsus4 B Esus2 B
  AC: "[f#2,c#3,f#3,a3,c#4]@3 [f#2,c#3,f#3,a3,c#4]@3 [a2,e3,a3,c#4]@3 [a2,e3,a3,c#4]@3 [a2,e3]@2 [a2,e3]@2, ~@3 [a3,c#4]", // F#m A A5 A
  AD: "[b2,e3,f#3,b3]@3 [e3,f#3,b3]@3 [b2,f#3,b3]@3 [b2,d#3,f#3,b3]@3 [b2,d#3,f#3,b3]@2 [b2,d#3,f#3,b3]@2, ~@3 e3@5", // Bsus4 Esus2 B5 B
  AE: "[b2,e3,f#3,b3]@3 [b2,e3,f#3,b3]@3 [b2,d#3,f#3,b3]@3 [b2,d#3,f#3,b3]@3 b2@2 b2@2, ~@3 [d#3,f#3,b3]", // Bsus4 B
  AF: "[a2,e3,a3,c#4,e4]@3 [a2,e3,a3,c#4]@3 [a2,e3,a3,c#4]@3 [a2,e3,a3,c#4]@3 [e3,a3,c#4]@4, ~@3 e4@13, ~@6 a2 ~", // A
  AG: "[b2,f#3,b3,e4]@3 [b2,f#3,b3]@3 [b2,f#3,b3,d#4]@3 [b2,b3,d#4]@3 [b2,f#3,b3,d#4]@2 [b3,d#4]@2, ~@3 e4@13", // Bsus4 B5 B
  AH: "[a2,e3,b3]@2 ~ [e3,f#3,b3] ~@2 [a2,e3,a3,c#4]@7 ~@3", // Asus2 Esus2 A
  AI: "[a2,e3,b3,d#4]@2 ~ [a2,e3,f#3,b3] ~@2 [e3,a3,c#4]@7 ~@3", // Asus2 A
  AJ: "[c#3,c#4,e4]@2 ~ [c#3,g#3,c#4,e4] ~@2 [c#3,b3]@8 ~@2", // C#m C#7
  AK: "[c#3,g#3,c#4,e4]@3 [c#3,g#3,c#4,e4] ~@2 [c#3,f#3,b3,d#4]@7 ~@3", // C#m B
  AL: "[c3,f#3,a3,d4]@2 ~ [c3,f#3,a3,d4] ~@2 [c3,e3,g3,c4]@8 ~@2", AM: "[c3,a3,d4]@2 ~ [c3,a3,d4] ~@2 [c3,g3,d4]@8 ~@2",
  AN: "[c#3,c#4,e4]@3 [c#3,g#3,c#4,e4] ~@2 [c#3,b3,d#4]@8 ~@2", // C#m G#m
  AO: "[c#3,e4]@3 [c#3,g#3,c#4,e4] ~@2 [c#3,b3,d#4]@8 ~@2", AP: "~@3 [e3,f#3,b3] ~@2 [a2,e3,a3,c#4]@7 ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.2)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@9 A B C D A B E F@3 G H I J K L G H I J K M ~@8 N O P Q R S T U V W X Y G H I J K L G H I J K L Z AA ~ AB ~@2 Z AC G
  H I J K L G H I J K L AD AE AF ~@2 AG AH AI AJ AE AF ~@2 AG AH AI ~@2
>`.pickRestart({
  A: "f#3@3 e3@4 ~", B: "~@3 e3@5", C: "~@3 [e3,a3,b3]@3 ~@10, e2@3 ~@5", D: "~@3 [g#3,b3]",
  E: "~@3 a3@3 ~@3 [e3,g#3,b3]@3 ~@2 e3@2, e2@3 ~@5", // E
  F: "[~@3 [e3,b3,e4]@3 ~@3 b3@3 ~@2 e3@2 f#2@6 f#2@9 f#2@6 ~ f#2@9 ~, e2@3 e2@8 ~@13, ~@7 [g#3,b3]@4 ~@13]/3", // E5 G#m
  G: "~@2 [e2,b2] ~@5", H: "~@5 e2 ~ e3", I: "~@9 e3 g#3@2 ~@2 [e3,e4] [e3,b3]",
  J: "~@10 [e3,g#3,b3]@2 ~@3 [e3,e4], ~@9 e4@3 ~@4", K: "~@10 [a2,d3]@2 ~@2 f#3!2, ~@9 [f#3,a3]@3 ~@4",
  L: "~@4 d3@2 ~@3 f#3@3 ~@4, ~@3 f#3@3 ~@3 a3 ~@6", M: "~@2 d3 ~@5, ~@3 f#3@3 ~@10", N: "~@9 c#4@3 ~@2 [e3,a3,c#4]@2",
  O: "~@9 c#4@3 c#4@2 ~ e3, ~@7 [a3,c#4]", P: "~@9 b2@3 ~@2 [b2,g#3] [e2,b2,e3,g#3,b3]", Q: "~@7 e2",
  R: "~@9 [e3,c#4]@3 ~@2 c#4@2", S: "~@9 c#4@3 ~@3 e3, ~@7 e3", T: "~@9 [e2,b2,e3,g#3,b3]@3 ~@2 [e2,b2,e3] [e2,e3]",
  U: "~@9 [e2,b2,b3]@3 ~@4", V: "~@9 f#2@3 f#3@2 [f#2,e3,f#3,a#3] [f#2,c#3,e3,f#3,a#3]",
  W: "~@3 f#3@3 ~@3 f#2@3 ~@2 [f#2,e3,f#3,a#3]@2", X: "~@9 a2@3 ~@2 e3@2", Y: "~@4 b3 ~@3", Z: "~@7 a2",
  AA: "~@9 [d#3,f#3,b3]@3 ~@4", AB: "~@3 b2@3 ~@10", AC: "~@9 f#3@3 ~@2 [b2,f#3]@2", AD: "[f#3,d#4]@2 ~ [a2,d#4] ~@12",
  AE: "f#3@2 ~ d#4 ~@2 a2@7 ~@3", AF: "g#3 ~@2 [f#3,d#4]@4 ~", AG: "f#3@2 ~ f#3 ~@2 e3@8 ~@2",
  AH: "g#3@3 ~@3 f#3@8 ~@2", AI: "[g#3,c#4]@3 ~@3 f#3@8 ~@2", AJ: "~@3 [a2,d#4] ~@12",
})).s("gm_acoustic_guitar_steel").gain(0.1)

// chords · overdriven guitar
const overdriven_guitar = note("<~@41 A@2 ~@2 B@3 ~@53>".pickRestart({
  A: "[~@6 e4@12 ~@2 a3 ~ e3@8 ~@2, ~@4 b3@14 ~@3 g#3@2 ~@9]/2",
  B: "[~@6 e4@12 ~@2 a3 ~@7 [b4,e5]@20, ~@4 b3@14 ~@3 g#3@2 ~@25, ~@11 e3@4 ~@9]/3", // E5
})).s("gm_overdriven_guitar").gain(0.25)

// drums · kick
const kick = s("bd").struct(`<
  ~@19 A B A B A B A B A B A C D E F E F E F G A B A B A B A B A B A H A B A B A B A B A B A B A I A J A K A L A B A B A
  M A B A B A C ~@18
>`.pickRestart({
  A: "x ~@2 x ~@2 x ~@3 x ~@5", B: "x ~@2 x ~@2 x ~@3 x ~@3 x ~", C: "x ~@2 x ~@2 x ~@9", D: "x",
  E: "x ~@2 x ~@6 x ~@5", F: "x ~@2 x ~@12", G: "x ~@2 x ~@6 x!2 ~@4", H: "x ~@10 x ~ x ~@2",
  I: "x ~@2 x ~@2 x ~@4 x ~@2 x ~", J: "x ~@2 x ~@6 x!3 ~@2 x", K: "x ~@2 x ~@4 x ~@2 x ~@2 x ~",
  L: "x!2 ~@3 x!2 ~@2 x!6 ~", M: "x!2 ~@2 x ~@2 x!2 ~@5 x ~",
})).gain(0.56)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@20 A ~@5 A ~@13 A ~ A ~ A ~ A ~ A ~@3 A ~@5 A ~@5 A ~@5 B ~ A ~@5 A ~@22
>`.pickRestart({
  A: "~@9 x ~@6", B: "~@9 x!2 ~@3 x ~",
})).gain(0.37)
// … 80 more lines

More by Dirotta su Cuba