Strudelify

Una rosa pericolosa

Celentano

KeyA minorTempo119 bpm
0:00/0:00
// Una rosa pericolosa — Celentano
// 119 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 132 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(119/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 · acoustic bass
const bass = note(`<
  ~@9 A B A B C D E F G H I J K L M K N H O P Q ~ A B A B C D E F G A B C@2 E F G R@2 S@2 R@2 T@2 U V T@2 W@2 A B A B C
  D E F A B A B A B A B R@2 S@2 R@2 T@2 U V T@2 W@2 A B A B C D E F G A B C@2 E F G X Y F G X Y F G X Y F G X Y F G X Y
  F G X Z S@2 ~
>`.pickRestart({
  A: "a1@5 ~ c2@3 ~ a1@2 c2@3 ~", B: "a1@5 ~ e2@4 e1@2 e2@3 ~", C: "d2@5 ~ a2@3 ~ a1@2 a2@3 ~",
  D: "d2@5 ~ a2@3 ~ a1 ~ a2@3 ~", E: "a1@7 ~ e2@7 ~", F: "a1@5 ~ c2@3 ~ a1@2 c2@4", G: "a1@5 ~ e2@3 ~ e1@2 e2@3 ~",
  H: "d2@5 ~ a2@5 ~ a1@3 ~", I: "d2@5 ~ a2@5 ~ a1@4", J: "d2@5 ~ a2@5 ~ d2@4", K: "a1@5 ~ e2@3 ~ a1@2 e2@3 ~",
  L: "e1@5 ~ e2@6 b1@3 ~", M: "e1@5 ~ e2@2 e1@5 ~@3", N: "a1@5 ~ c2@5 ~ a1@2 ~@2", O: "d2@6 a2@5 ~ a1@3 ~",
  P: "d2@5 ~ a2@6 d2@3 ~", Q: "e2@3 ~@13", R: "[e2@31 ~]/2", S: "[a1@31 ~]/2", T: "[a1@15 ~]/2", U: "e2@7 ~", V: "e1",
  W: "[e2@29 ~@3]/2", X: "e2@5 ~ b1@5 ~ b1@4", Y: "e2@5 ~ b1@3 ~ b1@2 b1@3 ~", Z: "e2",
})).s("gm_acoustic_bass").gain(0.49)

// chords · synth strings 1
const synth_strings_1 = note("<~@17 A@5 B@7 ~@13 C@5 ~@22 D@8 ~@25 C@5 ~@25>".pickRestart({
  A: "[~@15 [d4,f4]@48 [c4,e4]@16 ~, ~@15 a3@64 ~]/5", // Dm C
  B: "[[g#3,b3]@32 [a3,c4]@29 ~@2 [a3,d4,f4]@47 ~@2, e4@61 ~@51]/7", // G#m Am Dm
  C: "[[d4,f4]@4 c4 [g#3,b3] [a3,c4]@4, a3 ~, ~@2 e4@3]/5", // Dm G#m Am
  D: "[e4@4 f4@6 e4@6 f4@15 e4@5 f4@6 g4@6 f4@14 e4@6 f4@6 e4@6 f4@14 e4@6 f4@6 g4@2 e4@4 f4@2 e4@14, c4]/8",
})).s("gm_synth_strings_1").gain(0.09).pan(0.4)

// chords · piano
const piano = note("<~@68 A B C D E F C G H ~@29 I J K L M N@2 O@2 J K L M N@2 P@2 J K L M N@2 Q@2 ~>".pickRestart({
  A: "~@14 [c4,e4] ~", // C
  B: "~@2 a3@2 [c4,f4]@2 ~@2 a3@2 [e3,c4,e4] ~@3 a3@2, [e3,c4,e4]@4 f3 ~ [f3,c4,f4]@4 ~@2 [e3,c4,e4]@4", // F5 C F5 C
  C: "[f3,c4,f4] ~ [f3,c4,f4]@11 ~ [c4,e4] ~", // F5 C
  D: "~@2 a3@2 [f3,c4,f4] ~ [f3,c4,f4]@2 a3 ~ [g3,c4,g4] ~@3 a3@2, [e3,c4,e4] ~@2 [g3,c4,g4]", // F5 C5 C C5
  E: "[f3,c4,f4] ~ [f3,c4,f4]@12 [c4,e4] ~", // F5 C
  F: "[e3,c4,e4]@2 a3 ~ [f3,c4,f4] ~ [f3,c4,f4]@2 a3 ~ [e3,c4,e4] ~ [e3,c4,e4]@2 a3 ~", // C F5 C
  G: "[e3,c4,e4]@2 a3 ~ [f3,c4,f4] ~ [f3,c4,f4]@2 a3 ~ [g3,g4] ~ [e3,c4,e4]@2 a3 ~", H: "f4 [e3,a3,c4,e4]@6 ~, f3 ~@15",
  I: "~@10 [e5,c6]@3 [e5,c6]@2 ~", J: "[e5,c6]@2 ~ [d5,b5]@3 [d5,b5]@2 ~@3 [c5,a5]@3 [c5,a5]@2, ~@8 [d5,b5]@7 ~",
  K: "[c5,a5]@2 ~ [b4,g#5]@3 [b4,g#5]@2 [b4,g#5]@2 ~ [g#4,f5]@2 [g#4,f5]@2 ~", // F E C#
  L: "[g#4,f5]@2 ~ [c5,e5]@2 ~ e5@2 [c5,e5]@2 ~ [f4,d5]@2 [f4,d5]@2 ~, ~@5 c5@2 ~@9", // C# C Dm
  M: "[f4,d5]@2 ~ [e4,c5]@2 [e4,c5]@2 ~ [e4,c5]@2 ~@3 [c4,a4]@2 ~, ~@11 [d4,b4]@5", // Dm C F G
  N: "[[c4,a4]@3 [b3,g#4]@3 [d4,b4]@17 ~ [d4,b4]@3 [e4,c5]@2 ~ b4@2, ~@29 d4@2 ~]/2", // F E G C
  O: "[[d4,b4]@3 [c4,a4]@3 [e4,c5]@15 ~@5 [e5,c6]@3 [e5,c6]@3]/2", // G F C
  P: "[[d4,b4]@3 [c4,a4]@3 [e4,c5]@15 ~@5 [e5,c6] ~@2 [e5,c6] ~@2]/2", Q: "[c4,a4]/2",
})).s("gm_piano").gain(0.56).pan(0.8)

// chords · epiano2
const epiano2 = note(`<
  ~@4 A@2 B@2 C D@2 A@2 B@2 C D@2 ~@4 E@2 F@2 ~@2 G H ~@3 A@2 B@2 C D@2 A@2 B@2 C D@2 ~@16 A@2 B@2 C D@2 ~@23 A@2 B@2 C
  D@2 A@2 B@2 C D@2 ~@2 D@2 ~@2 D@2 ~@2 D@2 ~@2 D@2 ~@2 D@2 ~@2 D@2 ~
>`.pickRestart({
  A: "[[a3,c4,e4]@15 ~]/2", B: "[[a3,d4,f4]@15 ~]/2", C: "[a3,c4] [g#3,b3]", D: "[a3@21 ~@11]/2",
  E: "[[g#3,b3,d4]@29 ~@3]/2", F: "[[a3,c4]@25 ~@7]/2", G: "f4@3 e4@3 f4@2", H: "e4@5 ~@11",
})).s("gm_epiano2").gain(0.27).pan(0.2)

// chords · string ensemble 1
const string_ensemble_1 = note("<~@94 A@4 B@2 ~@2 C@2 D E@2 ~@25>".pickRestart({
  A: "[a3@2 ~ c#4@2 a#3@2 ~@9 [d5,a5]@24 f5@4 d5@3 [a4,c5]@8 ~ [g#4,d5]@8, ~ a#3 ~@2 a3@16 ~@12]/4", B: "[e5@5 ~@3]/2",
  C: "[~@3 f3 e3@2 d3@5 f4 a4@2 d5@2]/2", D: "~@2 a4@2 c5@3 ~ [b3,d4]@8, [a3,c4] ~", E: "[[a3,c4]@31 ~]/2",
})).s("gm_string_ensemble_1").gain(0.54).pan(0.3)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@38 A B ~@7 C D E F C D ~ G H ~@2 I C D ~@16 C D E F C D ~ G H ~@2 I C D ~@7 A B ~@32
>`.pickRestart({
  A: "~@7 f3", B: "~ e3@13 ~@2", C: "[b2,e3]@2 [a#2,d#3] [g#2,a2,c#3,d3] [g2,b2,c3] a#2 ~@8 e2!2", D: "e2@15 ~",
  E: "a2@2 a2@2 e2@2 [c#2,d2,d#2] c2 ~@8", F: "~@2 [e2,e3] ~ [a2,a3] ~ [b2,b3]@6 [a2,a3]@3 ~", G: "~ e3 a3 b3!3 a3@2",
  H: "[b2,e3]@2 [a#2,d#3] [g#2,a2,c#3,d3] [g2,b2,c3] a#2 ~@10", I: "~ e2 a2 b2!3 a2@2",
})).s("gm_distortion_guitar").gain(0.38).pan(0.4)

// chords · distortion guitar · soft notes
const distortion_guitar_soft = note("<~@47 A ~@3 A ~@3 A ~@3 A ~@17 A ~@3 A ~@3 A ~@3 A ~@42>".pickRestart({
  A: "~@4 f#2 [e2,f2,a2] ~@10", // Fmaj7
})).s("gm_distortion_guitar").gain(0.22).pan(0.4)

// chords · string ensemble 1
const string_ensemble_1_2 = note(`<
  ~@34 A@2 B C D@2 ~@2 E F G ~@19 A@2 B C D@2 ~@4 H I J ~@3 K L@4 M@2 N O P@2 Q R ~ S T@2 U V@2 ~ W@3 X Y Z@2 AA AB AC
  AD AE AF AG AH AA AB AC AD AE AF AG AH AA AB AC AD AE AI@2 ~
>`.pickRestart({
  A: "[a2 a#2 c#3 a#2 a2@12]/2", B: "c3@3 a2@3 c3@2", C: "a2 e2", D: "[a2@29 ~@3]/2", E: "~@7 e3@5 d3@4",
  F: "c3@6 a2@5 c3@5", G: "a2 ~", H: "~@2 a3 b3 c4 b3 c4 b3 a3 g#3 a3 b3 c4 b3 c4 b3", I: "~@10 a3 b3 c4 b3 c4 b3",
  J: "a3 g#3 a3 b3 c4 b3 c4 b3 ~@8", K: "~@2 e2 ~ a2@2 b2@2 c3@2 b2@2 a2@3 ~",
  L: "[g#5@16 ~@9 e3 a3 b3 c4 b3 a3 ~, ~@32 a5@31 ~]/4", M: "[g#5@3 b5@4 d6@5 g#5@4]/2", N: "a5@3 c6@5",
  O: "~ [e2,c6] [a2,b5] [b2,c6] c3 b2 [a2,a5]@2, ~@2 b5 ~", P: "g#5/2", Q: "~@14 e3 f3, a5", R: "e3 ~",
  S: "a2 a#2 c#3 a#2 a2@4", T: "[d3@6 d5 b4, f4]/2", U: "e4 b3", V: "[[c4,a4]@5 ~@3]/2",
  W: "[~@2 e5@2 d5@2 e5@2 c5@2 e5@2 b4@2 ~@2 f4@19 ~ a4@4 d5@3 f5@5, ~@14 a4@21 ~@13]/3", X: "~ c5 e5@2 ~@4",
  Y: "~@8 [e4,a4] [f4,a#4] [f#4,g4,b4,c5] [g#4,c#5] [a4,d5] [a#4,b4,d#5,e5] [c5,f5] [e5,g5]", // A5 A#5 Cmaj7 C#5 D5 Emaj7 F5 Em
  Z: "[[c5,e5]@6 [e5,a5]@2 [a5,c6]@11 [d5,b5]@2 [d5,b5]@2 ~ [d5,b5]@2 ~ [c5,a5]@2 [c5,a5]@2 ~]/2", // C A5 Am G F
  AA: "[c5,a5]@2 ~ [b4,g#5]@2 [b4,g#5]@2 ~ [b4,g#5]@2 ~ [g#4,f5]@2 [g#4,f5]@2 ~", // F E C#
  AB: "[g#4,f5]@2 ~ [c5,e5]@2 [c5,e5]@2 ~ [c5,e5]@2 ~ [f4,d5]@2 [f4,d5]@2 ~", // C# C Dm
  AC: "[f4,d5]@2 ~ [e4,c5]@2 [e4,c5]@2 ~ [e4,c5]@3 [d4,b4]@2 [c4,a4]@2 ~", AD: "[c4,a4]@3 [b3,g#4]@3 [d4,b4]@10",
  AE: "~@8 [d4,b4]@3 [e4,c5]@2 [d4,b4]@2 ~", AF: "[d4,b4]@3 [c4,a4]@3 [e4,c5]@10", AG: "~@10 [e5,c6]@2 ~ [e5,c6]@2 ~",
  AH: "[e5,c6]@3 [d5,b5]@2 [d5,b5]@2 ~ [d5,b5]@2 ~ [c5,a5]@2 [c5,a5]@2 ~", AI: "[c4,a4]/2",
})).s("gm_string_ensemble_1").gain(0.5).pan(0.8)

// chords · piano
const piano_2 = note("<~@56 A@2 ~@2 B@2 ~@24 A@2 ~@2 B@2 ~@4 C@3 ~@7 D@2 E@2 ~ F ~@20>".pickRestart({
  A: "[~@2 [b4,d5]@3 [c5,e5]@3 [b4,d5]@3 [a4,c5]@3 [c5,e5]@16 ~@2]/2", // Bm C Bm Am C
  B: "[~ [b4,d5]@2 [c5,e5] [b4,d5] [a4,c5]@8 ~@3]/2", // Bm C Bm Am
  C: "[~@3 [c4,e4]@4 [d4,f4]@2 [c4,e4]@3 [d4,f4]@2 [e4,g4] [c4,e4]@8 ~]/3", D: "[[c4,e4]@3 [d4,f4]@2 [c4,e4]@8 ~@3]/2",
  E: "[~@3 [c4,e4] [d4,f4]@2 [e4,g4] [c4,e4]@8 ~]/2", F: "~@3 [b3,e4] [d4,f4]@2 [e4,g4] [b3,e4]",
})).s("gm_piano").gain(0.05)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@39 A@3 ~ B@4 C D E F C D G@2 H I J K L D ~@16 C D E F C D G@2 H I J K L D ~ M@2 ~@5 A@3 ~ B@4 ~@2 N O P D Q R I ~ S
  T U D V W I ~ S T U D X@2 ~
>`.pickRestart({
  A: "[~@16 a3@19 ~@13, ~@14 e4@21 ~@13, ~@15 c4@20 ~@13]/3",
  B: "[~@16 [c4,e4]@7 ~ [g#3,b3]@7 ~ [a3,c4]@29 ~@3, ~@15 a3@8 e3@7 ~ e3@30 ~@3]/4", C: "~@14 e2!2", D: "e2@15 ~",
  E: "~@14 [a2,e3,a3,c4,e4]!2", F: "[a2,e3,a3,c4,e4]@5 ~@3", G: "[[a2,e3,a3,c4,e4]@5 ~@2 e3@9]/2",
  H: "~@14 [e2,e3,g#3,b3,e4]!2", I: "[e2,e3,g#3,b3,e4]@5 ~@3", J: "~@7 f3", K: "e3@11 ~@5",
  L: "[b2,e3,g#3,b3,e4]@4 ~@10 e2!2", M: "[~@16 a3@15 ~, ~@14 e4@17 ~, ~@15 c4@16 ~]/2", N: "~@14 e3 f3",
  O: "e3@14 [e2,e3,g#3,b3,e4]!2", P: "[e2,e3,g#3,b3,e4]@5 ~@2 e2", Q: "[a2,e3,a3,c4,e4]@5 ~@2 f3",
  R: "e3@11 ~@3 [e2,e3,g#3,b3,e4]@2", S: "~@5 e4@3, ~ e3@7, ~ a3@3, ~@3 c4@5",
  T: "~@5 e4@2 ~, ~ e3@6 ~, ~@2 a3@5 ~, ~@3 c4@4 ~", U: "[e2,e3,g#3,b3,e4]@10 ~@4 e2!2",
  V: "[c4,e4]@3 [c4,e4]@2 ~@2 e3, [a2,e3,a3]@5 ~@3", W: "[a3,c4,e4]@3 a2 [a3,c4,e4]@4", X: "[a2,e3,a3,c4,e4]/2",
})).s("gm_electric_guitar_clean").gain(0.25).pan(0.7)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B C D E F G H I J K E F L H I J K L H M E N@2 E F L H M O ~ C D E F G H I P K E F L H I P K Q R S T Q R U@2 Q V S T
  Q R C D E F G H I P E F E F E F E F Q R S T Q R U@2 Q V S T Q R C D E F G H I P K E F L H I P K W@2 X K W@2 Y K W@2 Y
  K W@2 X K W@2 Y K W Z ~@3
>`.pickRestart({
  A: "[a3,c4,e4]!2 ~ [a2,e3,a3,c4,e4] [e3,a3,c4,e4] [e3,a3]@2 [a2,e3,a3,c4,e4], a2@3 ~ a2@3 ~, e3@2 ~@3 [c4,e4] ~@2", // Am A5 Am C
  B: "[a3,c4,e4]!2 ~ [a2,e3,a3,c4,e4]!3 ~ [a2,e3,a3,c4,e4], [a2,e3] ~@3", // Am A5
  C: "[a3,c4,e4]!2 ~ [a2,e3,a3,c4,e4]!2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4], [a2,e3] ~@3", // Am A5
  D: "[e3,a3,c4,e4]!2 ~ [a2,e3,a3,c4,e4]!3 ~ [e3,a3,c4,e4], a2@3 ~@3 a2@2", // Am
  E: "[a2,e3,a3,c4,e4]!2 ~ [a2,e3,a3,c4,e4] [a3,c4,e4] [a3,c4,e4]@2 [a2,e3,a3,c4,e4], ~@4 [a2,e3]@3 ~", // Am A5
  F: "[e3,a3,c4,e4]!2 ~ [a2,e3,a3,c4,e4] [e3,a3,c4,e4] [e3,a3,c4,e4]@2 [e3,a3,c4,e4], a2 ~ a2@2", // Am
  G: "[a3,d4,f4] [a3,d4] ~ [d3,a3,d4,f4]!3 ~ [d3,a3,d4,f4], d3 ~@3, ~ f4@2 ~@5", // Dm D5 Dm
  H: "[d3,a3,d4,f4] d3!2 [d3,a3,d4,f4]!3 ~ [d3,a3,d4,f4], ~ [a3,d4,f4]@2 ~@5", // Dm
  I: "[a3,c4] [a3,c4,e4] ~ [a2,e3,a3,c4,e4] [e3,g#3,b3,e4]!2 ~ [b2,e3,g#3,b3,e4], [a2,e3] ~ b2 ~, e4 ~@15", // Am E A5
  J: "[a3,c4,e4]!2 ~ [a2,e3,a3,c4,e4] [a3,c4]!2 ~ [a2,e3,a3,c4,e4], [a2,e3] ~ [a2,e3] ~, ~@8 e4 ~ e4@4 ~@2", // Am A5
  K: "[e3,a3,c4,e4]!2 ~ [a2,e3,a3,c4,e4] [c4,e4]!2 ~ [a2,e3,a3,c4,e4], a2 ~ [a2,e3,a3] ~", // Am C Am A5
  L: "[a3,d4,f4] [a3,d4] [d3,a3,d4] [d3,a3,d4,f4]!3 ~ [d3,a3,d4,f4], d3 ~@3, ~ f4@2 ~@5", // Dm D5 Dm
  M: "[a3,d4]!2 [d3,a3,d4] [d3,a3,d4,f4]!3 ~ [d3,a3,d4,f4], d3 ~@3, f4 ~ f4@4 ~@10", // D5 Dm
  N: "[e3,g#3,b3,e4]!2 ~ [b2,e3,g#3,b3,e4] [e3,g#3,b3,e4]!2 ~ [b2,e3,g#3,b3,e4], b2 ~ b2 ~", O: "[b2,e3,g#3,b3,e4] ~@7",
  P: "[a3,c4,e4]!2 ~ [a2,e3,a3,c4,e4] [a3,c4,e4] [a3,c4] ~ [a2,e3,a3,c4,e4], [a2,e3] ~ [a2,e3] ~, ~@5 e4@2 ~", // Am A5
  Q: "[b2,e3,g#3,b3,e4]@2 [e3,g#3,b3,e4] ~ [b2,e3,g#3,b3,e4] ~ [b2,e3,g#3,b3,e4]@4 [b2,e3,g#3,b3,e4]@2 [b2,e3,g#3,b3,e4] ~ [b2,e3,g#3,b3,e4]@2", // E
  R: "[e3,g#3,b3,e4]@2 [e3,g#3,b3,e4]@2 [b2,e3,g#3,b3,e4] ~@3 [b2,e3,g#3,b3,e4]@4 [b2,e3,g#3,b3,e4]@4, b2 ~@3", // E
  S: "[a3,c4,e4]@2 [a3,c4,e4]@2 [a2,e3,a3,c4,e4] ~ [a2,e3,a3,c4,e4]@4 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4] ~@3, [a2,e3] ~@3", // Am A5
  T: "~@5 a2 ~ [e3,a3,c4,e4], ~@5 [e3,a3,c4,e4]@2 ~, ~@3 a2", // Am
  U: "[a3,c4,e4]@2 [a3,c4,e4]@2 [a2,e3,a3,c4,e4] ~ [a2,e3,a3,c4,e4]@4 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4] ~ [a2,e3,a3,c4,e4]@2, [a2,e3] ~@3", // Am A5
  V: "~@4 [b2,e3,g#3,b3,e4] ~@3 [b2,e3,g#3,b3,e4]@4 [b2,e3,g#3,b3,e4]@4", // E
  W: "[g#3,b3,e4] [e3,g#3,b3,e4] ~ [b2,e3,g#3,b3,e4] [g#3,b3,e4] [e3,g#3,b3,e4] ~ [b2,e3,g#3,b3,e4], b2 ~ b2 ~", // E
  X: "[a3,c4,e4]!2 ~ [a2,e3,a3,c4,e4] [a3,c4]!2 ~ [a2,e3,a3,c4,e4], ~@2 [a2,e3] ~, ~@8 e4 ~ e4@4 ~@2", // Am A5
  Y: "[a3,c4,e4]!2 ~ [a2,e3,a3,c4,e4] [a3,c4,e4] [a3,c4] ~ [a2,e3,a3,c4,e4], ~@2 [a2,e3] ~, ~@5 e4@2 ~", // Am A5
  Z: "[b2,g#3,b3,e4]", // E
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.8)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  A@6 B@2 C A@4 B@2 C A@2 B@3 A D@2 A@2 B@3 ~@2 A@4 B@2 C A@4 B@2 C A@2 ~@2 E F G ~ F ~ H I J F G ~ A@4 B@2 C A@9 ~@2 E
  F G ~ F ~ H I J F G ~ A@4 B@2 C A@4 B@2 C A@2 D@2 A@2 D@2 A@2 D@2 A@2 D@2 A@2 D@2 A@2 D ~ K@2 ~
>`.pickRestart({
  A: "~@4 [a2,e3,a3,c4,e4] ~@7 [a2,e3,a3,c4,e4] ~@3", B: "~@4 [a2,d3,a3,d4,f4] ~@7 [a2,d3,a3,d4,f4] ~@3",
  C: "~@4 [a2,e3,a3,c4,e4] ~@7 [b2,e3,g#3,b3,e4] ~@3", D: "~@4 [b2,e3,g#3,b3,e4] ~@7 [b2,e3,g#3,b3,e4] ~@3",
  E: "~@14 [a2,e3,a3,c4,e4]!2", F: "[a2,e3,a3,c4,e4]@5 ~@3", G: "[b2,e3,g#3,b3,e4] ~@3", H: "~@14 [e2,e3,g#3,b3,e4]!2",
  I: "[e2,e3,g#3,b3,e4]@5 ~@3", J: "~@7 [a2,e3,a3,c4,e4]", K: "[a2,e3,a3,c4,e4]/2",
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.2)

// drums · kick
const kick = s("bd").struct("<~@30 A B@16 C@14 B@16 C@14 B@23 D B@7 D B@5 C@2 ~@2>".pickRestart({
  A: "~@7 x", B: "x!2", C: "x", D: "x ~@3 x ~@2 x",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct("<~@30 A B@16 ~@14 B C B@14 ~@14 B C B@29 C B@5 ~@4>".pickRestart({
  A: "~@11 x!2 ~@3", B: "~ x ~ x", C: "~@2 x ~@2 x!2 ~",
})).gain(0.64)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@30 A B@8 C B@22 D B@13 E B@15 D B@6 C B@6 E B@3 D B@3 E B@3 D B@3 E B@3 D@2 F@2 ~@2
>`.pickRestart({
  A: "~@7 x", B: "x!8", C: "x!5 ~ x!2", D: "x!7 ~", E: "x!3 ~ x!4", F: "x",
})).gain(0.32)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@39 A ~@22 B ~@13 C ~@15 B ~@6 A ~@6 C ~@3 B ~@3 C ~@3 B ~@3 C ~@3 B@2 ~@4
>`.pickRestart({
  A: "~@5 x ~@2", B: "~@7 x", C: "~@3 x ~@4",
})).gain(0.48)

// drums · crash
const crash = s("cr").struct(`<
  ~@31 A ~@8 A ~@6 A ~ B ~ A ~@3 A ~@7 A ~@5 A ~@7 A ~ B ~ A ~@3 A ~@7 A ~@6 A ~@4 A ~ A ~@6 C A ~@7 A ~@4 A@2 ~@2
>`.pickRestart({
  A: "x", B: "~@15 x", C: "~@7 x",
})).gain(0.4)

// … 26 more lines

More by Celentano