Strudelify

Io come te

Giorgia

KeyF majorTempo98 bpm
0:00/0:00
// Io come te — Giorgia
// 98 bpm, 4/4, key F major. 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 106 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 26.
setcpm(98/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(`<
  ~@16 A B C D E F G H I@2 J@3 K L M N O P Q@4 ~@3 R S T U ~ E F G H I@2 J@3 K L M N O V W X Y Z AA AB AC AD AE AF AG AH
  AI I@2 J@3 K L M N O AJ Y Z AA AB AC AD AE AF Y Z AA AB AC AD AE AF Q@3 AK
>`.pickRestart({
  A: "f1", B: "eb1@15 ~", C: "bb1@15 ~", D: "f1@15 ~", E: "f1@2 g1 a1", F: "eb1", G: "g1", H: "a1@4 c2 d2 f2 d2",
  I: "[g1@4 ~ d1 f1 g1 ~ g1 g1@2 ~@4 c2@4 ~ e1 g1 c2 ~ c2 c2@2 ~ a1 ~@2, ~@4 g1@3 ~@5 g1@10 ~@6 g1@4]/2",
  J: "[g1@4 ~ d1 f1 g1 ~ g1 g1@2 ~@4 c2@4 ~ g1 c2 ~ eb2@4 ~@2 eb1@9 ~ bb1@6 ~@2, ~@4 g1@3 ~@5 g1@9 ~@27]/3",
  K: "c2@2 d2@2 f2@2 d2@2 g1@4 ~ d1 f1 g1, ~@12 g1@3 ~", L: "~ g1 g1@2 ~@4 c2@4 ~ e1 g1 c2, ~@2 g1@5 ~",
  M: "~ c2 c2@2 ~ a1 ~@2 g1@4 ~ d1 f1 g1, ~@4 g1@4 ~@4 g1@3 ~", N: "~ g1 g1@2 ~@4 c2@4 ~ g1 c2 ~, ~@4 g1@9 ~@3",
  O: "eb2@4 ~@2 eb1@9 ~", P: "bb1@2 ~ bb1@4 ~", Q: "f1@2 ~ eb1@3 ~@2", R: "~@9 a2@2 f3 eb3 c3 bb2 ab2",
  S: "f2 f1@5 ~@6 g1@4", T: "eb1@13 ~@3", U: "bb1@5 ~@3", V: "bb1@3 f1@3 bb1@6 ~@2 f1@2", W: "eb1@4 ~@2 eb2@9 ~",
  X: "g1@7 ~ c2@2 d2@2 f2@2 d2 ~", Y: "f1@4 ~@2 f1@5 ~ f1@3 ~", Z: "g1@5 ~ g1@2 ~@2 g1@3 ~ g1@2",
  AA: "a1@5 ~ a1@2 ~@2 a1@3 ~ a1@2", AB: "bb1@4 ~@2 bb1@3 ~ c2 d2 f2@2 d2 c2", AC: "f1@4 ~@2 f1@4 ~@2 f1@3 ~",
  AD: "g1@4 ~ d1 g1@3 ~ d1@3 g1@2 ~", AE: "a1@5 ~ a1@3 ~ f1@2 a1@4", AF: "bb1@4 ~@2 bb1@3 ~ f1@2 ~ bb1@2 ~",
  AG: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", AH: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~",
  AI: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 d2 f2 d2", AJ: "bb1@2 ~@2 c2 d2 f2 d2", AK: "f1@4 ~@2 eb1 ~@9",
})).s("gm_electric_bass_finger").gain(0.48)

// chords · pad warm
const pad_warm = note(`<
  ~@4 A B C A ~@16 D E D F@2 G@4 H I ~@16 D E D F@2 G@4 H I H I J D K L J D K L J I M D E D F@2 G@4 H I J D K L J D K L
  J D K L J D K L ~@4
>`.pickRestart({
  A: "[a3,c4,f4]", B: "[g3,bb3,eb4]", C: "[f3,bb3,d4]", D: "[g2,d3,bb3,d4,f4]", E: "[c3,g3,c4,e4,g4]",
  F: "[[c3,g3,c4,e4,g4] [bb2,eb3,bb3,eb4,g4]@2 [bb2,f3,bb3,d4,f4]]/2", // C Eb Bb
  G: "[~ [g2,d3,bb3,d4,f4]@2 [c3,g3,c4,e4,g4]@2 [g2,d3,bb3,d4,f4]@2 [c3,g3,c4,e4,g4]]/4", H: "[bb2,eb3,bb3,eb4,g4]",
  I: "[bb2,f3,bb3,d4,f4]", J: "[f2,c3,a3,c4,f4]", K: "[a2,f3,a3,c4,f4]", L: "[bb2,f3,bb3,c4,f4]",
  M: "[c3,g3,c4,e4]@15 ~", // C
})).s("gm_pad_warm").gain(0.25)

// chords · pad halo
const pad_halo = note("<~@51 A B A C@2 D@4 E F E F ~@8 G H I A B A J@6 E F ~@20>".pickRestart({
  A: "[g2,d3,bb3,d4,f4]", B: "[c3,g3,c4,e4,g4]", C: "[[c3,g3,c4,e4,g4] [bb2,eb3,bb3,eb4,g4]@2 [bb2,f3,bb3,d4,f4]]/2",
  D: "[~ [g2,d3,bb3,d4,f4]@2 [c3,g3,c4,e4,g4]@2 [g2,d3,bb3,d4,f4]@2 [c3,g3,c4,e4,g4]]/4", E: "[bb2,eb3,bb3,eb4,g4]",
  F: "[bb2,f3,bb3,d4,f4]", G: "[a2,f3,f4,c5,f5]", H: "[bb2,f3,d4,f4,bb4,f5]", I: "[c3,g3,g4,c5,e5]@15 ~",
  J: "[[c3,g3,c4,e4,g4] [bb2,eb3,bb3,eb4,g4]@2 [bb2,f3,bb3,d4,f4]@2 [g2,d3,bb3,d4,f4]@2 [c3,g3,c4,e4,g4]@2 [g2,d3,bb3,d4,f4]@2 [c3,g3,c4,e4,g4]]/6", // C Eb Bb Gm7 C Gm7 C
})).s("gm_pad_halo").gain(0.19)

// other · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@3 A B@2 C D ~@15 E ~@5 F ~@5 G@2 ~@9 A H ~@2 E ~ I J K@2 L M@2 ~@5 N@3 O N@3 P Q@2 R S@2 T@3 L M@2 ~@3 N@3 O N@3 O
  N@3 O N@3 O G@2 ~@2
>`.pickRestart({
  A: "~@9 b3@3 b3 ab3@3, ~@9 f3 ~@6", B: "[~@3 f5@9 ~@2 f4@9 ~@3 ab4@2 ~ ab4@3, a4@3 ~@5]/2", C: "f4@8 ~@2 bb3@3 ab3@3",
  D: "f3@15 ~", E: "~@4 [c3,c4] [d3,d4] [f3,f4] [d3,d4]", F: "[c3,c4] [d3,d4] [f3,f4] [d3,d4] ~@4", G: "[bb3@3 ~]/2",
  H: "~@3 f5@9 ~@4, a4@3 ~", I: "~@5 [f3,f4]@2 ~ [e3,e4]@2 ~ [d3,d4]@2 ~ [c3,c4]@2, ~@4 g3@3 g3@3 g3@3 g3@3",
  J: "[d3,d4] ~", K: "[~@8 f4@13 ~@11]/2", L: "[c3,c4] [d3,d4] [f3,f4] [d3,d4] a4@4",
  M: "[~@13 [f3,f4]@2 ~ [e3,e4]@2 ~ [d3,d4]@2 ~ [c3,c4]@2 [d3,d4]@8, ~@12 g3@3 g3@3 g3@3 g3@3 ~@8]/2", // F E D C D
  N: "[f4@5 ~@5 f4@2 ~ g4@8 ~@5 f4@3 g4@8 ~@5 a4@3 g4@3]/3", O: "f4@7 ~@9", P: "f4@7 ~@3 a4@3 bb4@2 ~",
  Q: "[[a2,f3,a3,c4,f4,bb4]@15 ~ [d3,f3,bb3,d4,f4]@16, ~@15 bb2@16 ~]/2", R: "[g2,c3,g3,c4,e4]@7 ~",
  S: "[~@8 a3@2 bb3@2 c4@2 g3@5 ~@2 [f3,f4]@2 ~ [e3,e4]@2 ~ [d3,d4]@2 ~ [c3,c4]@2, ~@20 g3@3 g3@3 g3@3 g3@3]/2", // F E D C
  T: "[[d3,d4]@8 a3@2 bb3 ~ c4@2 g3@4 ~@6 f4@13 ~@11]/3", // D
})).s("gm_acoustic_guitar_steel").gain(0.3).pan(0.7)

// other · lead 8 bass lead
const lead_8_bass_lead = note(`<
  ~@24 A B C D E F G H I A C ~@8 J ~ J K ~ L J M A B C D E F G H I A C A C A C N@2 A C N@2 ~@3 A B C D E F G H I A C A C
  N@2 A C N@2 A C N@2 A C N@2 ~@4
>`.pickRestart({
  A: "c4 f4 bb3 c4 f4 bb3 c4 f4 bb3 c4 f4 bb3 c4 f4 bb3 c4", B: "e4 bb3 c4 e4 bb3 c4 e4 bb3 c4 e4 bb3 c4 e4 bb3 c4 e4",
  C: "f4 bb3 c4 f4 bb3 c4 f4 bb3 c4 f4 bb3 c4 f4 bb3 c4 f4", D: "e4 bb3 c4 e4 bb3 c4 e4 bb3 c4 f4 bb3 c4 f4 bb3 c4 f4",
  E: "bb3 c4 f4 bb3 c4 f4 bb3 c4 f4 bb3 c4 f4 bb3 c4 f4 bb3", F: "c4 f4 bb3 c4 f4 bb3 c4 f4 c4 f4 bb3 c4 f4 bb3 c4 f4",
  G: "bb3 c4 f4 bb3 c4 f4 bb3 c4 e4 bb3 c4 e4 bb3 c4 e4 bb3", H: "c4 e4 bb3 c4 e4 bb3 c4 e4 f4 bb3 c4 f4 bb3 c4 f4 bb3",
  I: "c4 f4 bb3 c4 f4 bb3 c4 f4 e4 bb3 c4 e4 bb3 c4 e4 bb3", J: "c3 f3 bb2 c3 f3 bb2 c3 f3 bb2 c3 f3 bb2 c3 f3 bb2 c3",
  K: "f3 bb2 c3 f3 bb2 c3 f3 bb2 c3 f3 bb2 c3 f3 bb2 c3 f3", L: "c3 f3 bb2 c3 f3 bb2 c3 f3 bb2 c3 f3 bb2 c3 f3 bb2 f3",
  M: "bb2 f3 bb2 c3 f3 bb2 c3 f3 bb2 c3 f3 bb2 c3 f3 bb2 c3", N: "c4 bb3 c4 f4 bb3 c4 f4 bb3 c4 f4 bb3 c4 f4 bb3 c4 f4",
})).s("gm_lead_8_bass_lead").gain(0.08).pan(0.8)

// other · piano
const piano = note("<~@16 A@4 ~@4 B@4 ~ C@4 ~@10 A@4 ~@4 B@4 ~ C@4 ~@12 D@2 E ~@31>".pickRestart({
  A: "[f4@15 eb4@14 d4@5 bb3@11 a4@5 f4@5 ~@9]/4", B: "[~@7 e4@8 f4@8 e4@4 ~@5]/4", C: "[~@3 f4@8 e4@8 f4@8 e4@4 ~]/4",
  D: "[a4@5 f4@11]/2", E: "g4@7 ~@9",
})).s("gm_piano").gain(0.05)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  A B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A D@5 E F G H@3 I@4 ~@4 A B C A@2 B C A D@5 E F G J K@4 L@8 M N O D@5 E
  F G J P@2 Q@2 R S T U@5 V@6 W@4
>`.pickRestart({
  A: "[ab3,f4] a3@2 [c4,f4] [f3,a3,c4] ~ [c3,f3,a3,c4,f4] ~ [f3,a3,c4] ~@2 a3 [f3,a3,c4,f4] [c3,f3,a3,c4,f4] [f3,a3,c4] ~, [c3,f3]@2 ~@3 [c3,f3,ab3] ~@2", // Db F5 F F5 Fm
  B: "[gb3,eb4] g3@2 [bb3,eb4] [eb3,g3,bb3] ~ [bb2,eb3,g3,bb3,eb4] ~ [eb3,g3,bb3] ~@2 g3 [eb3,g3,bb3,eb4] [bb2,eb3,g3,bb3,eb4] [eb3,g3,bb3] ~, [bb2,eb3]@2 ~@3 [bb2,eb3,gb3] ~@2", // Ebm Eb5 Eb Eb5 Ebm
  C: "[db4,bb4] d4@2 [f4,bb4] [bb3,d4,f4] ~ [bb2,f3,bb3,d4,f4,bb4] ~ [bb3,d4,f4] ~@2 d4 [bb3,d4,f4,bb4] [bb2,f3,bb3,d4,f4,bb4] [bb3,d4,f4] ~, [bb2,f3,bb3]@2 ~@3 [bb2,f3,bb3,db4] ~@2", // Gb Bb5 Bb Bb5 Bbm
  D: "[[g2,d3,g3,bb3,f4]@3 ~ [g2,d3,g3,bb3,f4]@3 [g2,d3,g3,bb3,f4] [d3,g3,bb3]!2 [g2,d3,g3,bb3,f4]@3 [g2,d3,g3,bb3,f4] ~ g3 [g2,c3,c4]@3 ~ [g2,c3,g3,c4,f4]@3 [g2,c3,g3,c4,f4] [c3,g3,c4]!2 [g2,c3,g3,c4,e4]@3 [g2,c3,g3,c4,e4]@2 g3 [g2,d3,bb3]@3 ~ [g2,d3,g3,bb3,f4]@2 ~ [g2,d3,g3,bb3,f4] [d3,g3,bb3]!2 [g2,d3,g3,bb3,f4]@2 ~ [g2,d3,g3,bb3,f4]@2 g3 [g2,c3,g3,c4,f4]@3 ~ [g2,c3,g3,c4,e4]@3 ~@2 g4@14 ~ [d4,f4]@8, ~@15 [d3,bb3]@8 ~@8 [c3,c4]@8 ~@8 [d3,bb3]@8 [bb2,eb3]@15 ~@10, ~@56 [g3,bb3,eb4]@15 [f3,bb3]@9]/5", // Gm7 Gm Gm7 C5 Csus4 C5 C Gm …
  E: "~@8 [g2,d3,g3,bb3,f4]@3 ~ [g2,d3,g3,bb3,f4]@3 [g2,d3,g3,bb3,f4]", // Gm7
  F: "[d3,g3,bb3]!2 [g2,d3,g3,bb3,f4]@3 [g2,d3,g3,bb3,f4] ~ g3 [g2,c3,c4]@3 ~ [g2,c3,g3,c4,f4]@3 [g2,c3,g3,c4,f4], ~@7 [d3,bb3]@8 ~", // Gm Gm7 C5 Csus4 Gm
  G: "[c3,g3,c4]!2 [g2,c3,g3,c4,e4]@3 [g2,c3,g3,c4,e4]@2 g3 [g2,d3,bb3]@3 ~ [g2,d3,g3,bb3,f4]@2 ~ [g2,d3,g3,bb3,f4], ~@7 [c3,c4]@8 ~", // C5 C Gm Gm7 C
  H: "[[d3,g3,bb3]!2 [g2,d3,g3,bb3,f4]@2 ~ [g2,d3,g3,bb3,f4]@2 g3 [g2,c3,g3,c4,f4]@3 ~ [g2,c3,g3,c4,e4]@3 ~@2 g4@14 ~ [d4,f4]@16, ~@7 [d3,bb3]@8 [bb2,eb3]@15 ~@18, ~@16 [g3,bb3,eb4]@15 [f3,bb3]@17]/3", // Gm Gm7 Csus4 C Dm Gm Eb5 Eb …
  I: "[[f2,c3,f3]@3 [f2,c3,f3,c4,f4] ~@2 [eb2,bb2,eb3,bb3,eb4]@8 [bb2,eb3,bb3] ~ [f2,c3,f3]@2 ~ [f2,c3,f3,c4,f4] ~@2 [eb2,bb2,eb3,bb3,eb4]@8 [bb2,eb3,bb3] ~ [f2,c3,f3]@2 ~ [f2,c3,f3,c4,f4] ~@2 [eb2,bb2,eb3,bb3,eb4]@8 [bb2,eb3,ab3] ~ [f2,c3,f3]@2 ~ [f2,c3,f3,c4,f4] ~@2 [eb2,bb2,eb3,bb3,eb4]@8 [bb2,eb3,bb3]!2, ~@5 [c3,f3,c4]@8 ~@2 [bb2,eb3,bb3]@6 [c3,f3,c4]@8 ~@2 [bb2,eb3,bb3]@6 [c3,f3,c4]@8 ~@2 [bb2,eb3]@6 [c3,f3,c4]@8 ~@3]/4", // F5 Eb5 F5 Eb5 F5 Eb5 Ebsus4 F5 …
  J: "[d3,g3,bb3]!2 [g2,d3,g3,bb3,f4]@2 ~ [g2,d3,g3,bb3,f4]@2 g3 [g2,c3,g3,c4,f4]@3 ~ [g2,c3,g3,c4,e4]@3 [bb2,eb3], ~@7 [d3,bb3]@8 ~", // Gm Gm7 Csus4 C Eb5 Gm
  K: "[~ g4@14 ~@18 g4@14 ~ [d4,f4]@16, [g3,bb3,eb4]@15 f3@31 ~ [f3,bb3]@17, ~@15 bb3@17 [bb3,eb4]@15 ~@17, ~@16 [d4,f4]@31 ~@17]/4", // Dm Eb Bb5 Eb5 Dm
  L: "[[f2,c3,f3,a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@4 [f2,c3,f3,a3,c4,f4]@3 [f3,c4,f4]@3 [g2,d3,f3,bb3,c4,f4]@3 [g2,d3,f3,bb3,c4,f4]@3 [g2,d3,f3,bb3,c4,f4]@4 [g2,d3,f3,bb3,c4,f4]@3 [g2,f3,c4,f4]@3 [g2,f3,a3,c4,f4]@3 [f3,a3,c4,f4]@3 [a2,f3,a3,c4,f4]@4 [a2,f3,a3,c4,f4]@3 [f3,c4,f4]@3 [bb2,f3,bb3,c4,f4]@3 [bb2,f3,bb3,c4]@3 [bb2,f3,bb3,c4,d4]@3 ~ bb2@3 [c4,f4]@3 [f2,c3,f3,a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@4 [f2,c3,f3,a3,c4,f4]@3 [f3,c4,f4]@3 [g2,d3,f3,bb3,c4,f4]@3 [g2,d3,f3,bb3,c4,f4]@3 [g2,bb3,c4,f4]@3 [g2,g3,bb3,c4,f4]@4 [c4,f4]@3 [a2,f3,a3,c4,f4]@3 [a2,f3,a3,c4,f4]@3 [a2,f3,a3,c4,f4]@3 [a2,c3,f3,a3,c4,f4]@4 [f3,c4,f4]@3 [bb2,f3,bb3,c4,f4]@3 [bb2,f3,bb3,c4,d4,f4]@3 [bb2,f3,bb3,d4,f4]@3 [bb2,f3,bb3,d4,f4]@4 [bb2,f3,bb3,c4,d4,f4]@3, ~@13 [f2,c3]@32 a2@32 f2@32 ~@19, ~@13 a3@19 ~@3 g2@26 bb3@16 c3@28 ~@4 [a2,c3,a3]@19, ~@29 d3@22 f4@6 d4@20 a3@9 d3@7 [g2,d3,g3]@32 ~@3, ~@29 bb3@16 a3@12 [f3,bb3,c4,f4]@4 bb2@25 f3@7 bb3@19 ~@6 c4@7 ~@3]/8", // F F5 Gm7 Csus4 F F5 Bbsus2 Bb …
  M: "c4!2 [a2,f3,a3,c4,f4] [a3,c4]!2 [a2,a3,c4,f4]!3, [a2,f3,a3,f4]@2 ~ f3@3 f3@2, ~@3 [a2,f4]@2 ~@3", // F Am F Dm
  N: "bb2 [bb2,f3] [bb2,f3,d4] [bb3,d4]!2 [bb2,f3,bb3,d4,f4] [f3,d4]!2, [bb3,f4]@3 ~@5, d4 ~@3, f3 ~@5 [bb2,f3,f4]@4 ~@2 [bb2,bb3,f4]@4", // Bb5 Bb Dm Bb5
  O: "[c3,g3,c4] [g3,c4] [g3,c4,e4] [g2,c3,g3,c4,e4] [c3,c4,e4]!4, e4 ~@3, ~ c3@2 ~ [g2,g3]@2 [g2,g3]@2", // C5 C G
  P: "[~ g4@14 ~ [d4,f4]@16, [g3,bb3,eb4]@15 [f3,bb3]@17]/2", // Dm Eb Bb5
  Q: "[[f2,c3,f3,a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@4 [f2,c3,f3,a3,c4,f4]@3 [f3,c4,f4]@3 [g2,d3,f3,bb3,c4,f4]@3 [g2,d3,f3,bb3,c4,f4]@3 [g2,d3,f3,bb3,c4,f4]@4 [g2,d3,f3,bb3,c4,f4]@3 [g2,d3,f3,bb3,c4,f4]@3, ~@13 [f2,c3,a3]@19]/2", // F F5 Gm7 F
  R: "[g2,f3,a3,c4,f4]@3 [f3,a3,c4,f4]@3 [a2,f3,a3,c4,f4]@4 [a2,f3,a3,c4,f4]@3 [a2,f3,a3,c4,f4]@3, ~@3 g2@13", // F
  S: "[bb2,f3,bb3,c4,f4]@3 [bb2,f3,bb3,c4]@3 [bb2,f3,bb3,c4,d4]@3 ~ bb2@3 [bb2,bb3,c4,f4]@3, ~@3 f4@6 [f3,d4]@7, ~@9 [bb3,c4,f4]@4 ~@3", // Bbsus2 Bb Bbsus2 Dm Bbsus2
  T: "[f2,c3,f3,a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@4 [f2,c3,f3,a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@3", // F
  U: "[[g2,d3,f3,bb3,c4,f4]@3 [g2,d3,f3,bb3,c4,f4]@3 [g2,bb3,c4,f4]@3 [g2,g3,bb3,c4,f4]@4 [c4,f4]@3 [a2,f3,a3,c4,f4]@3 [a2,f3,a3,c4,f4]@3 [a2,f3,a3,c4,f4]@3 [a2,c3,f3,a3,c4,f4]@4 [f3,c4,f4]@3 [bb2,f3,bb3,c4,f4]@3 [bb2,f3,bb3,c4,d4,f4]@3 [bb2,f3,bb3,d4,f4]@3 [bb2,f3,bb3,d4,f4]@4 [f3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@4 [f2,c3,f3,a3,c4,f4]@3 [f3,c4,f4]@3 [g2,d3,f3,bb3,c4,f4]@3 [g2,d3,f3,bb3,c4,f4]@3 [g2,d3,f3,bb3,c4,f4]@4 [g2,d3,f3,bb3,c4,f4]@3 [g2,d3,f3,bb3,c4,f4]@3, ~@6 f3@10 ~@13 a2@32 [f2,c3,a3]@19, ~@6 d3@7 [g2,d3,g3]@32 [bb2,d4]@32 ~@3, ~@13 bb3@19 ~@6 c4@7 bb3@19 ~@16, ~@29 [c3,a3]@19 ~@32]/5", // Gm7 F5 F F5 Bbsus2 Bb F5 F …
  V: "[[g2,f3,a3,c4,f4]@3 [f3,a3,c4,f4]@3 [a2,f3,a3,c4,f4]@4 [a2,f3,a3,c4,f4]@3 [f3,c4,f4]@3 [bb2,f3,bb3,c4,f4]@3 [bb2,f3,bb3,c4]@3 [bb2,f3,bb3,c4,d4]@3 ~ bb2@3 [c4,f4]@3 [f2,c3,f3,a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@4 [f2,c3,f3,a3,c4,f4]@3 [f3,c4,f4]@3 [g2,d3,f3,bb3,c4,f4]@3 [g2,d3,f3,bb3,c4,f4]@3 [g2,bb3,c4,f4]@3 [g2,g3,bb3,c4,f4]@4 [c4,f4]@3 [a2,f3,a3,c4,f4]@3 [a2,f3,a3,c4,f4]@3 [a2,f3,a3,c4,f4]@3 [a2,c3,f3,a3,c4,f4]@4 [f3,c4,f4]@3 [bb2,f3,bb3,c4,f4]@3 [bb2,f3,bb3,c4,d4,f4]@3 [bb2,f3,bb3,d4,f4]@3 [bb2,f3,bb3,d4,f4]@4 [bb2,f3,bb3,c4,d4,f4]@3, ~@3 g2@26 bb3@16 c3@28 ~@4 [a2,c3,a3]@19, ~@13 a2@32 f2@32 ~@19, ~@13 a3@12 [f3,bb3,c4,f4]@4 bb2@25 [d3,f3]@7 [g2,d3,g3]@32 ~@3, ~@19 f4@6 d4@20 a3@16 bb3@19 ~@6 c4@7 ~@3]/6", // F F5 Bbsus2 Bb F5 F F5 Gm7 …
  W: "[[f2,c3,f3]@3 [f2,c3,f3,c4,f4] ~@2 [eb2,bb2,eb3,bb3,eb4]@8 [bb2,eb3,bb3] ~ [f2,c3,f3]@2 ~ [f2,c3,f3,c4,f4] ~@2 [eb2,bb2,eb3,bb3,eb4]@8 [bb2,eb3,bb3] ~ [f2,c3,f3]@2 ~ [f2,c3,f3,c4,f4] ~@2 [eb2,bb2,eb3,bb3,eb4]@8 [bb2,eb3,ab3] ~ [f2,c3,f3]@2 ~ [f2,c3,f3,c4,f4] ~ [c3,f3,c4] [eb2,bb2,eb3,bb3,eb4] ~@9, ~@5 [c3,f3,c4]@8 ~@2 [bb2,eb3,bb3]@6 [c3,f3,c4]@8 ~@2 [bb2,eb3,bb3]@6 [c3,f3,c4]@8 ~@2 [bb2,eb3]@7 ~@10]/4", // F5 Eb5 F5 Eb5 F5 Eb5 Ebsus4 F5 …
})).s("gm_acoustic_guitar_steel").gain(0.32).pan(0.3)

// other · kalimba
const kalimba = note("<~@15 A B C A B C A B C ~@15 A B C A B C A B C A B C ~@55>".pickRestart({
  A: "f3 c4 f4 f3 c4 f4 f3 c4 f4 f3 c4 f4 f3 c4 f4 f3", B: "c4 f4 f3 c4 f4 f3 c4 f4 f3 c4 f4 f3 c4 f4 f3 c4",
  C: "f4 f3 c4 f4 f3 c4 f4 f3 c4 f4 f3 c4 f4 f3 c4 f4",
})).s("gm_kalimba").gain(0.15).pan(0.2)

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

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@38 A ~@32 B ~@2 C ~@18 B ~@7 B ~@3 D>".pickRestart({
  A: "~@5 x!4 ~@7", B: "~@11 x ~ x ~@2", C: "~@13 x ~@2", D: "~@5 x!2 ~@9",
})).gain(0.32)

// drums · clap
const clap = s("cp").struct("<~@4 [~ x ~ x]!4 ~@98>").gain(0.64)

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

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@25 A ~@3 B ~ B ~@2 A ~@5 A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 B ~ B ~@2 A ~ A ~ A ~ A ~ A ~ A ~ A@2 ~ A ~@3 B ~ B ~@2 A ~ A
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@4
>`.pickRestart({
  A: "~@7 x", B: "~@3 x ~@4",
})).gain(0.4)

// drums · tambourine
const tambourine = s("tb").struct("<~@64 [x!16]!8 ~@14 [x!16]!16 ~@4>").gain(0.24)

// drums · splash
const splash = s("cr").struct("<~@24 A ~@26 A ~@4 B ~@7 A ~@7 A ~@2 A ~@10 A ~@7 A ~@7 A ~@2 C>".pickRestart({
  A: "x", B: "~ x", C: "~@3 x ~@4",
})).gain(0.48)

// drums · shaker
const shaker = s("sh").struct("<~@8 [x!16]!27 ~@4 [x!16]!63 ~@4>").gain(0.24)

stack(
  bass, pad_warm, pad_halo, acoustic_guitar_steel, lead_8_bass_lead, piano, acoustic_guitar_steel_2, kalimba, kick,
  snare, snare_soft, clap, hihat, open_hat, tambourine, splash, shaker
)

More by Giorgia