Strudelify
Stella gemella cover art

1996 · Dove C'è Musica

Stella gemella

Ramazzotti

KeyD majorTempo71 bpm
0:00/0:00
// Stella gemella — Ramazzotti
// 71 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 84 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(71/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 · slap bass 1
const bass = note(`<
  A B C D A B E F A B A G C D C D H I A B A G C D C J K L M N O P Q R S T Q R S C D A B C D C D U P Q R S T Q R S T V W
  V X V Y Z AA AB AC AB AC AB AC AB AC AB AC AB AC AB AC AB AC AD ~@2
>`.pickRestart({
  A: "g1 ~@2 g1@3 ~@6 f1 ~@2 f1@3 ~@6", B: "c1 ~@2 c1@3 ~@6 c1 ~@2 c1@3 ~@6", C: "a#1 ~@2 a#1@3 ~@6 a1 ~@2 a1@3 ~@6",
  D: "c1 ~@2 c1@3 ~@5 c2 c1 ~@2 c1@3 ~@6", E: "d#1@22 ~ d#2", F: "d#2 d#3 ~@3 d#2!2 d#3 ~@5 d#2 f2 g2 a#2 f2 g2@2 ~@4",
  G: "c1 ~@2 c1@3 ~@6 c1 ~ c2 c1@3 ~@3 d1@3", H: "d#1 ~@2 d#1@9 d#1 ~@2 d#1@9",
  I: "d#1 ~@2 d#1@9 d#1 ~@2 d#1@4 ~@2 f1@3", J: "c1@10 ~ c1 ~@3 c1@7 ~@2", K: "e1@8 ~@3 e1 ~@3 e1@7 ~@2",
  L: "a1@10 ~ a1 ~@3 a1@5 ~ g1@2 ~", M: "d1@10 ~@2 f1@7 ~ f1@3 ~", N: "a1@11 a1 ~@3 a1@9", O: "a#1@10 ~ a#1 ~@3 a#1@9",
  P: "a1@10 ~ a1@4 g1@3 f#1@3 e1@2 ~", Q: "d1@3 d1@3 ~@5 d1 ~@3 d1@3 ~@6", R: "b1@2 ~ b1@3 ~@5 b1 ~@3 b1@3 ~@6",
  S: "g1@2 ~ g1@3 ~@5 g1 ~@3 g1@3 ~@5 g1", T: "f#1@2 ~ f#1@5 ~ f#1@2 a1 ~@2 a1 a1@2 ~@3 a1 b1@2 ~",
  U: "a1@10 ~ a1 ~@3 a1@9", V: "g1@2 ~ g1@7 ~ g1 a1 ~@2 a1@7 ~ a1", W: "b1 ~@2 b1@7 ~ b1 b0@3 c#1@3 d1@3 f#1@3",
  X: "d2 ~@2 d2@17 ~ d2@2 a1", Y: "b1@2 ~ b1@13 ~ b1 b1@5 ~", Z: "g1 ~@2 g1@7 ~ g1!2 ~@2 g1@4 ~ g1 g1@3",
  AA: "g1@17 ~ g1@6", AB: "a1@12 g1@11 ~", AC: "d1@18 e1@2 g1@3 ~", AD: "a1 ~@23",
})).s("gm_slap_bass_1").gain(0.32)

// bass · slap bass 1 · soft notes
const bass_soft = note(`<
  ~@3 A ~@3 B ~ C ~@3 A ~ A ~ D ~ C ~@3 A ~ E F G H I ~@4 J ~@3 J ~ A ~@3 A ~ A ~@4 J ~@3 J ~@8 K ~@19
>`.pickRestart({
  A: "~@10 c1 ~@13", B: "~@20 [e2,f2,f#2] [c#2,d2,d#2] [a1,a#1,b1,c2] g#1", C: "~@7 d1", D: "~@20 d#1 ~@3",
  E: "~@14 c1 ~@8 c1", F: "~@9 e1 ~@4 e1 ~@8 e1", G: "~@14 a1 ~@5 e1 ~@2 a1", H: "~@11 d1 ~@12", I: "~@14 a1 ~@9",
  J: "~@14 g1 ~@9", K: "~@17 g2 ~@6",
})).s("gm_slap_bass_1").gain(0.16)

// chords · synth strings 1
const synth_strings_1 = note(`<
  A B C D A B E@2 A B A B C D C D E@2 F G F G H I J K L M N M O P Q@3 R@5 S@2 T H G U@3 V W@7 X Y Z Y AA@2 AB AC@2 ~@16
  AD ~@2
>`.pickRestart({
  A: "[d3,g3,a#3]@11 ~ [c3,f3,a3]@11 ~", B: "[c3,e3,g3]@11 ~", C: "[f3,a#3,d4]@11 ~ [f3,a3,c4]@11 ~",
  D: "[c3,e3,g3]@23 ~", E: "[d#3,f3,a#3]/2", F: "[d3,g3,a#3] [c3,f3,a3]", G: "[c3,e3,g3]", H: "[a#3,d4] [a3,c4], f3",
  I: "~ c3@11, [e3,g3]@23 ~, ~@2 d3 ~@21", J: "[a#3,d4] [a3,c4], f3@23 ~", K: "[e3,g3,c4]", L: "[e3,g3,a3,d4]@23 ~",
  M: "[e3,a3,c4]", N: "[f#3,a3,d4]@12 [f3,a3,c4]@11 ~", O: "[a#2,f3,a3,d4]", P: "[a3,c#4], e3@11 ~",
  Q: "[~@48 g3@23 ~, d4@71 ~, [f#3,a3]@23 ~@13, ~ b3@2]/3", // F#m
  R: "[f#3@12 e4@12 ~@48 g3@24 a#3@11 ~ [a3,c4]@12, a3@3 ~@2, c#4@2 d4@7 ~, ~@24 f#3@47 ~@25 f3@23 ~, ~@2 b3@2 ~]/5", // Am
  S: "[[c3,e3]@23 ~ [a#3,d4]@12 [f3,a3,c4]@12, g3@35 ~@13]/2", T: "[c3,g3], e3@11 ~",
  U: "[[a#3,d4] a3 e4@2 [e3,a3,d4]@2, f3 g3@2, ~ c4@3 ~@2]/3", V: "[a3,c#4,e4]@23 ~",
  W: "[~@48 [e3,g3]@24 f#3@11 ~ e4@12 ~@48 [e3,g3]@24, d4@73 ~@23 d4@72, [f#3,a3]@48 ~@24 c#4@24 f#3@47 ~@25, ~@24 b3@48 a3@71 ~@25, ~@5 b3@2]/7", // Em F#m
  X: "[a3,c#4,e4]", Y: "[g3,b3,d4] [a3,c#4,e4]", Z: "[f#3,b3,d4]@23 ~",
  AA: "[[a3,f#4]@2 [g3,b3] [a3,c#4,e4], d4@3 ~]/2", AB: "[b3,d4,f#4]@23 ~", AC: "[[g3,a3,d4]@5 ~@3]/2",
  AD: "[a3,e4] ~@23", // A5
})).s("gm_synth_strings_1").gain(0.19)

// chords · synth strings 1 · soft notes
const synth_strings_1_soft = note("<~@65 A B C D E B F B F B C B C B F B ~@3>".pickRestart({
  A: "[a3,c4]@4 [g3,b3,d4]@3 ~, e4@3 ~@5", B: "[d3,f#3,a3]@7 ~", C: "[a3,c4,e4] [g3,d4], ~@4 b3@3 ~",
  D: "[f#3,a3], d3@7 ~", E: "[a3,c4,e4]@4 [g3,b3,d4]@3 ~", F: "[a3,c4,e4]@4 [g3,b3]@3 ~, ~ d4",
})).s("gm_synth_strings_1").gain(0.11)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@17 A ~@8 B C D E ~@2 F G H I J@2 K ~@7 L M ~ F G H I J@2 K ~ N O@7 ~@19
>`.pickRestart({
  A: "~@8 d5@2 c5 ~ a#4@7 ~@5", B: "[b2,e3,b3,d4,e4,b4]", C: "[a2,e3,a3,c4,e4,a4]", D: "[a2,d3,a3,a4]",
  E: "[a2,e3,a3,c4,e4,a4] ~@3", F: "d4@5 [d4,f#4,a4] ~@3 d4@9 [d4,f#4,a4] ~@5",
  G: "d4@5 [d4,f#4,b4] ~@3 d4@9 [d4,f#4,b4] ~@5", H: "~@5 [e4,g4,b4] ~@12 [e4,g4,b4] ~@5, d4@9 d4@11 ~@4",
  I: "c#4@5 c#4 ~@3 c#4@9 [c#4,e4,a4] ~@5, ~@5 a4@13 ~@6", // A
  J: "[d4@5 [d4,f#4,a4] ~@3 d4@9 [d4,f#4] ~@5 d4@5 [d4,f#4,b4] ~@3 d4@9 [d4,f#4,b4] ~@5, ~@9 a4@5 ~@10]/2", // D Bm
  K: "~@5 [e4,g4,b4] ~@4 d4@8 [e4,g4,b4] ~@5, d4@3 ~@5", L: "[e3,g3,c4,e4]", M: "[b3,d4]@23 ~", N: "d4 ~@3",
  O: "[~@53 a4@19 d4@6 ~@15 c#4@3 ~@3 f#4@5 ~@34 d3@6 ~@24, c#4@17 ~ d4@9 d4@9 d4@6 c#4@5 ~ d4@22 ~@8 d4@8 ~ c#4@5 ~@4 d4@14 d4@12 ~ d4@5 ~ d4@14 ~@25, ~@5 b4@19 g3@14 ~ a3@44 ~ a3@35 ~ g3@14 ~ g3@6 ~@27, ~@9 f#4@23 ~ g4@12 e4@44 ~ e4@9 ~@6 f#4@21 g4@20 ~@22]/7",
})).s("gm_electric_guitar_clean").gain(0.14).pan(0.8)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note("<~@28 A ~@4 B ~@11 C@2 D E ~ B ~@6 F@2 ~@25>".pickRestart({
  A: "[d4,f#4]", B: "~@21 d4 ~@2", C: "[~@23 [g2,c3]@24 b2, ~@23 e4 ~@24]/2", D: "g3@23 e3", E: "[a2,e3,a3,c#4,e4] ~@3",
  F: "[~@18 c#4@5 ~@25, ~ d4@2 ~@5, ~@15 e4@17 ~@16]/2",
})).s("gm_electric_guitar_clean").gain(0.06).pan(0.8)

// other · distortion guitar
const distortion_guitar = note("<~@39 A B C D E F ~@12 G H G I G H ~@9 J K L M N@2 O@2 P Q ~@2>".pickRestart({
  A: "g4@9 ~@9 d4@2 c4 a#3@2 g3", B: "d4@21 ~@2 a#4",
  C: "a4@2 g4 a4@2 a#4 c5@2 d5 f5@2 e5@3 d5 e5@2 f5 g5@2 a5@2 a#5@2", D: "c6@4 a#5 g5 a#5@2 g5@7 ~@3 g5@6",
  E: "f5@5 ~@3", F: "~@2 f5 e5@2 c5 g4@2 c5 d5@2 d5@11 ~@2", G: "[g2,d3,g3]@11 ~ [a2,e3,a3]@11 ~",
  H: "[b2,f#3,b3]@23 ~", I: "[a2,d3,a3]@11 ~", J: "~@3 d5@4 c5 a4 c5 a4@2", K: "~ [a3,b3,c4] [d3,e3,f3,g3] ~@21",
  L: "~@14 e5@8 d5 c5", M: "e5@5 ~@7", N: "[~@11 d6@5 c6 a5 c6@2 a5@12 c6 ~@15]/2",
  O: "[~@9 e4@2 e4@5 d4 c4 ~@5 a4@4 ~@21, ~@6 e4@3 ~@7]/2",
  P: "[a3,e4,g4]@2 a3@2 [e4,g4]@2 a3@2 [e4,g4]@2 ~@2 g4@4 d4 c4 c4@5 ~, ~@10 a3@7 ~ a3 ~@5, ~@6 e4 ~@5", // A7 Em
  Q: "[e3,a3]@10 ~ g3 ~@12", // A5
})).s("gm_distortion_guitar").gain(0.16).pan(0.7)

// other · distortion guitar · soft notes · Fmaj7 Dm Am
const distortion_guitar_soft = note(`<
  ~@72
  [~@23 g4]
  [[e4,f4] d4 c3 ~@21]
  ~@4
  [~@18 c4 ~@5]
  ~@2
  [~@11 [d3,e3,f3] [a2,b2,c3] ~@11]
  ~@2
>`).s("gm_distortion_guitar").gain(0.08).pan(0.7)

// chords · electric guitar muted
const electric_guitar_muted = note(`<
  ~@17 A B C B C D E F G H I J K L M N@2 O P N@2 O ~@7 Q R S N@2 O P N@2 O P T U V W X Y Z ~ AA AB AC AD AA AB AC AD AA
  AB AC AD AA AB AC AD AE ~@2
>`.pickRestart({
  A: "~@8 d5@2 c5 ~ a#4@7 ~@5", B: "[d3,g3] ~@2 [d3,g3]@7 ~@2 [c3,f3] ~@2 [c3,f3]@4 ~@2 e3@3",
  C: "c4 ~@2 [e3,c4]@5 ~ e3@2 a3 ~@3 e3@3 g3@5 ~", D: "[a#2,f3]@2 ~ [a#2,f3]@5 ~ [a#2,f3] ~ a#2 [a2,f3]@3 [a2,f3]@8 a2",
  E: "[c3,g3]@2 ~ [c3,g3]@6 ~@2 [g3,c4] ~@3 e3 ~@2 g3@3 e3@2 ~", // C5
  F: "[a#2,f3]@2 ~ [a#2,f3]@7 ~@2 [a2,f3]@2 ~ [a2,f3]@8 ~", G: "[c3,g3]@2 ~ [c3,g3]@5 ~ e3@2 g3 ~@3 e3 ~@2 g3@3 e3@2 ~",
  H: "[b2,e3]@2 ~ [b2,e3]@3 b2 ~@4 [b2,e3] ~@3 b2@3 e3@3 b3@2 ~, ~@15 e3@2 ~@7", // E5
  I: "a2@2 ~ a2@2 ~ a2@5 a3 ~@3 a2@2 ~ a2@5 ~, e3@9 ~@5 e3@9 ~", J: "a2@8 ~ a2@3 [f2,c3]@7 ~ [f2,c3] ~@3, d3@11 ~@13",
  K: "[a2,e3]@2 ~ [a2,e3]@7 ~ [a2,e3] ~@3 a2@6 e3@2 a2, ~@15 e3@5 ~@4", // A5
  L: "[a#2,f3]@2 ~ [a#2,f3]@6 ~@2 a#3 ~@2 f3 [a#2,f3]@2 ~ [a#2,f3]@5 a#2", // A#5
  M: "[a2,e3]@3 [a2,e3]@5 a2@2 ~ a3 ~@2 a3 g3@3 f#3@3 e3@2 ~", // A5
  N: "[~@3 [d3,a3] ~@4 [d3,a3] ~@3 a3@3 d3 ~ [a3,d4]@4 [d3,a3]@2 [f#3,b3]@3 ~ b3 ~@4 b3 ~@3 [f#3,b3]@2 f#3 a3@2 b3 ~@2 d4 ~@3]/2", // D5 B5
  O: "~@3 e3@2 [a3,d4] e3 ~@4 [d3,g3] ~@3 [d3,g3] ~@2 d3 ~ [d3,a3] ~@3", P: "~@15 [b2,f#3]@3 a3@2 b3 a3 ~@2",
  Q: "~@2 [g3,c4] ~@2 g3 [g3,c4]@2 [g3,c4] ~@2 c4 ~@2 g3 [g3,d4]@2 c4 ~@2 [g3,c4] ~@3", // C5 G5 C5
  R: "~@2 [a3,e4] ~@3 [a3,e4] ~ [a3,e4] ~@5 [a3,e4] ~@3 [a3,e4] ~ a3 [a3,d4]@2 e4", // A5 D5
  S: "~@2 [a3,e4] ~@3 [a3,e4] ~ [a3,e4] ~@2 a3@2 ~ a3 g3@3 f#3@3 e3@2 ~", // A5
  T: "[d3,g3]@6 d3 ~ [d3,g3] ~@5 [e3,a3]@3 e3 a3@5 e3, ~@6 e3 ~", U: "[f#3,b3]@8 ~ [f#3,b3]@2 d4@4 b3 a3 f#3 a3@6",
  V: "[d3,g3]@5 ~ g3 ~ [d3,g3] ~@5 [e3,a3] ~@3 [e3,a3]@4 e3 ~", W: "[d3,a3]@8 ~ [f#3,b3]@2 d4@4 b3 a3 ~ a3@5 ~",
  X: "g3@6 d3 ~ [d3,g3] ~@5 [e3,a3] ~@3 [e3,a3]@5 e3, d3@5 ~@19", // G5 A5
  Y: "[f#3,b3]@6 f#3 ~ d4@4 ~@6 [b2,f#3]@2 ~ [e3,a3]@3, ~ b3 ~@2", Z: "[d3,g3]@19 ~ [d3,g3] ~@3",
  AA: "e3@3 e3@2 c4 ~@2 e3 [e3,c4]@3 ~@2 [d3,b3] ~@3 d3@2 ~ d3 ~ d3, c4@5 ~@13 b3@5 ~", // C G
  AB: "[d3,a3]@5 [d3,a3]@3 ~ [d3,a3]@7 ~ a3 ~@3 [d3,a3] ~@2", // D5
  AC: "~@2 [e3,c4] ~@3 c4@4 ~ [d3,b3]@5 ~ b3@3 d3 [d3,b3]@2 ~, ~@6 e3@2 ~@9 d3 ~@6", // C G
  AD: "[d3,a3]@4 ~ [d3,a3]@3 d3 [a2,d3]@2 [a3,d4] ~@3 [a3,d4] [g3,c4] [e3,a3] [g3,c4]@5 ~", AE: "[e3,a3] ~@23",
})).s("gm_electric_guitar_muted").gain(0.19).pan(0)

// chords · electric guitar muted · soft notes
const electric_guitar_muted_2 = note(`<
  ~@23 A ~@7 B C D E ~ C D E ~@7 F G H C D E ~ C D E ~@3 I J K ~@3 L M N ~ L M N ~ L M N ~ L M N ~@4
>`.pickRestart({
  A: "~@9 c3 ~@14", B: "~@9 e3 ~@14", C: "~@12 d3 ~@11", D: "~@3 f#3 ~@2 f#3 ~ f#3 ~@2 f#3 ~@5 f#3 ~@6",
  E: "~@14 d3 ~@9", F: "~@11 g3 ~@12", G: "~@5 a3 ~@6 a3 ~@11", H: "~@5 a3 ~@18", I: "~@6 d3 ~@17", J: "~@17 f#3 ~@6",
  K: "~@11 [e3,a3] ~@12", L: "~@5 e3 ~@6 b3 ~@11", M: "~@8 d3 ~@8 d3 ~@2 d3 ~@2 d3", N: "e3 ~@4 e3 ~@3 e3 ~@5 d3 ~@8",
})).s("gm_electric_guitar_muted").gain(0.1).pan(0)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@25 A B C@2 D E F G@3 H@3 I J K L M N@2 O@2 P Q R S T U@4 V W X Y@3 Z AA ~ AB@3 AC@2 AD@2 AE@4 AF@2 AG@2 AH ~@3
>`.pickRestart({
  A: "[g3,c4,e4]@23 ~", B: "[e3,g3,a3,d4]@23 ~", C: "[[e3,c4,e4]@23 ~ [d3,f#3,d4]@11 ~ [f3,a3,c4]@11 ~, a3@35 ~@13]/2",
  D: "a3", E: "c4@23 ~", F: "c#4", G: "[a2@24 b2@24 ~@2 e3@21 ~, d3@71 ~, f#3@45 ~@3 [g3,b3]@23 ~, ~@8 a3@7 ~@9]/3",
  H: "[f#3@11 e3@12 ~ g6@9 f#6@15 e6@9 d6@14 ~, a3@71 ~, c#3@23 ~ [f#3,d4]@24 [f#3,b3,d4]@23 ~]/3", // D Bm
  I: "[e3,g3,b3,d4]@7 ~", J: "[d4,f4,a#4]@11 ~ [c4,f4,a4]@11 ~", K: "[c4,e4,g4]@5 ~",
  L: "[d4,g4,a#4]@12 [c4,f4,a4]@11 ~", M: "g4@7 ~@5 c5@9 ~@3, e4@7 ~, c4@5 ~@7, ~@7 g4@14 ~@3",
  N: "[[a#3,d4]@6 a3@5 ~ [e3,g3]@11 ~, f3@23 ~@25, ~@12 c4@35 ~]/2", // A# Em
  O: "[[a#3,d4]@11 ~ a3@11 ~ [e3,g3]@20 ~@4, f3@23 ~@25, ~@4 c4@11 ~]/2", P: "[e3,g3,b3,d4]@23 ~",
  Q: "[e3,a3,c#4]@11 ~", R: "[f#3,a3,d4]@11 ~", S: "[f#3,a3,b3,d4]@23 ~", T: "[e3,g3,b3,d4]",
  U: "[f#3@12 ~@6 [c#4,e4]@6 g6@9 f#6@15 e6@9 d6@14 ~ [e3,g3]@24, a3@71 ~@25, c#4@16 ~@8 d4@71 ~, ~@12 e3@8 ~@4 f#3@47 ~@25, ~ b3]/4", // C#m Em
  V: "[a3,c#4,e4]@5 ~", W: "[d3,g3,b3,b5] [e3,a3,c#4,c#6]", X: "[f#3,b3,d4,d6]@23 ~",
  Y: "[[d3,g3,b3,d6]@12 [e3,c#4,e6]@12 [f#4,f#6]@23 ~ [b3,b5]@12 [a3,c#4,e4,c#6]@12, ~@12 a3@35 g3@12 ~@13, ~@24 d4@35 ~@13]/3", // G C#m F# B A
  Z: "[b3,d4,f#4,d6]@23 ~", AA: "[g3,a3,d4]",
  AB: "[[e3,a3,c4]@11 ~ [g3,b3]@11 ~ f#3@23 ~ [e3,c4]@12 [g3,b3]@10 ~@2, ~@12 d3@35 ~@13 d3@12, ~@24 a3@35 ~@13]/3", // Am G C G
  AC: "[[f#3,d4]@24 [e3,c4]@12 [d3,g3,b3]@11 ~, a3@3 ~]/2", AD: "[[f#3,d4]@24 [e3,c4]@12 [d3,b3]@11 ~, a3@12 g3@3 ~]/2",
  AE: "[[f#3,d4]@24 [e3,c4]@12 [g3,b3]@11 ~ f#3@22 ~@2 [e3,c4]@12 [d3,b3]@11 ~, a3@35 ~ d3@35 ~@25, ~@48 a3@35 ~ g3@9 ~@3]/4", // D C G C G
  AF: "[[f#3,d4]@23 ~ [e3,c4]@12 [d3,g3,b3]@11 ~, a3@35 ~@13]/2", // D C G
  AG: "[[d3,f#3]@8 e3@4 [g3,b3]@3 ~, a3@35 ~ d3@11 ~, ~@12 c4@5 ~@7]/2", AH: "[f#3,a3,d4]@2 ~",
})).s("gm_string_ensemble_2").gain(0.11)

// other · pad poly
const pad_poly = note("<~@6 A ~@9 A ~@7 B@2 ~ C D ~@7 E F ~@15 E F ~@8 G ~ H@16 ~@3>".pickRestart({
  A: "~@3 [a#4,a#5] ~@2 [a4,a5] ~@2 [f4,f5] ~@2", B: "[~@24 e6@5 ~@19, ~@23 [g5,c6]@6 ~@19]/2", C: "c6 ~@23",
  D: "~@11 a4 c5 ~ d5 ~ c5 ~@7", E: "g5 ~@8 f#5 ~@14", F: "e5 ~@8 d5 ~@14", G: "~@6 d5 ~@5 c#5 ~@5 a4 ~@5",
  H: "~@2 a5 ~ a5 ~@3 a5 ~ a5 ~@3 a5 ~ a5 ~@3 a5 ~ a5 ~",
})).s("gm_pad_poly").gain(0.15).pan(0.4)

// other · pad poly · soft notes
const pad_poly_soft = note("<~@65 A B A B A B A B A B A B A B A B ~@3>".pickRestart({
  A: "~@6 a5 ~@5 a5 ~@5 a5 ~@5", B: "a5 ~@5 a5 ~@5 a5 ~@5 a5 ~@5",
})).s("gm_pad_poly").gain(0.07).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B C A B A B A B A B A B A C A B A B ~@2 D
>`.pickRestart({
  A: "x ~@2 x ~@5 x ~@2 x ~@2 x ~ x ~@6", B: "x ~@2 x ~@5 x ~@2 x ~@4 x ~@6", C: "x!2 ~@6", D: "x",
})).gain(0.4)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B ~ A B A B A B A C A B A ~ A B A B ~@3
>`.pickRestart({
  A: "~@8 x ~@2 x ~@2 x ~@2 x ~@5 x", B: "~@8 x ~@2 x ~@12", C: "~ x ~",
})).gain(0.24)

// drums · snare
const snare = s("sd").struct(`<
  [~ x ~ x]!64
  [~@6 x ~@2 x!2 ~@6 x ~@2 x!2 ~@2]
  [~ x ~ x]!7
  [~@6 x ~@4 x ~@2 x!2 ~@2 x!2 ~ x ~ x]
  [~ x ~ x]!3
// … 60 more lines

More by Ramazzotti