Strudelify

Ascolta il tuo cuore

Laura Pausini

KeyF majorTempo84 bpm
0:00/0:00
// Ascolta il tuo cuore — Laura Pausini
// 84 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 6/4 at bar 30, 4/4 at bar 32, 6/4 at bar 53, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 92 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(84/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 · fretless bass
const bass = note(`<
  ~@12 A B C A D E F G H I F G H J K L M N O P Q R S T U V@2 W X Y Z AA AB Y Z AC AD AE AF AG AH AI AJ AK AL AM AN AO AP
  AI AJ AK AQ AI AJ AK AR AI AJ AK AL AM AN AS AT F G H I F G H I F G H I AU ~@2
>`.pickRestart({
  A: "d2", B: "g1", C: "c2", D: "g1@3 a2", E: "bb2@15 ~", F: "d1 ~ d1@3 ~@2 d1 ~ d1 d1@2 d1@4",
  G: "g1 ~ g1@2 ~@3 g1 ~ g1 f1@2 g1@4", H: "c1 ~ c1@2 ~@3 c1 ~ c1 c2@2 c1@3 ~",
  I: "g1 ~ g1@2 ~@3 g1 ~ g1 f1@2 g1 a1 c2 a1", J: "d1 ~ d1@2 ~@3 d1 ~ d1 d1@2 g1 a1 d2 a1",
  K: "g1@4 ~@3 g1!2 ~ g1@2 a1@3 ~", L: "bb1@5 ~@2 bb1 ~ bb1 bb1@5 ~", M: "c2@6 ~ c2!2 ~ c2@6",
  N: "g1 ~ g1@4 ~ g1!2 ~ g1@2 bb1@2 d2@2", O: "g2@4 g1@4 f1@4 ~@2 f1 ~", P: "f1@5 ~ g1 a1 c2@6 ~@2",
  Q: "c1 ~ c1@6 g1@4 ~@2 g1 ~", R: "g1@5 ~ g1 a1 d2@5 ~ d2 a1", S: "d2 a1 d2@2 c2@4 bb1@4 ~@2 bb1 ~",
  T: "bb1@5 ~ bb1 c2 f1@6 ~ f1", U: "f1 ~ f1@2 c2@4 eb1@4 ~@2 eb1 ~", V: "[eb1 ~ eb1@2 f1 g1 bb1 c2 eb2@15 ~@9]/2",
  W: "~@8 g1@7 d2", X: "g2 d2 g2@2 g1@4 d1 ~ d1@3 ~@2 d1", Y: "~ d1 d1@2 d1@4 g1 ~ g1@2 ~@3 g1",
  Z: "~ g1 f1@2 g1@4 c1 ~ c1@2 ~@3 c1", AA: "~ c1 c2@2 c1@3 ~ g1 ~ g1@2 ~@3 g1",
  AB: "~ g1 f1@2 g1 a1 c2 a1 d1 ~ d1@3 ~@2 d1", AC: "~ c1 c2@2 c1@3 ~ d1 ~ d1@2 ~@3 d1",
  AD: "~ d1 d1@2 g1 a1 d2 a1 g1@4 ~@3 g1", AE: "g1 ~ g1@2 a1@3 ~ bb1@5 ~@2 bb1", AF: "~ bb1 bb1@5 ~ c2@6 ~ c2",
  AG: "c2 ~ c2@6 g1 ~ g1@4 ~ g1", AH: "g1 ~ g1@2 bb1@2 d2@2 g2@4 g1@4", AI: "f1@4 ~@2 f1 ~ f1@5 ~ g1 a1",
  AJ: "c2@6 ~@2 c1 ~ c1@6", AK: "g1@4 ~@2 g1 ~ g1@5 ~ g1 a1", AL: "d2@5 ~ d2 a1 d2 a1 d2@2 c2@4",
  AM: "bb1@4 ~@2 bb1 ~ bb1@5 ~ bb1 c2", AN: "f1@6 ~ f1!2 ~ f1@2 c2@4", AO: "eb1@4 ~@2 eb1 ~ eb1 ~ eb1@3 ~ eb1 f1",
  AP: "bb1@3 bb1@2 f1 bb1@3 ~ c2@4 ~@2", AQ: "d2@5 ~ d2 a1 d2 a1 c2 d2 c2@4", AR: "bb1@5 ~ bb1 b1 c2 ~ c2@2 g1@2 c2@2",
  AS: "eb1@4 ~@2 eb1 ~ eb1 ~ eb1@2 f1 g1 bb1 c2", AT: "eb2 ~@3", AU: "d1",
})).s("gm_fretless_bass").gain(0.72)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@12 A B C D ~ E@2 F@2 G@5 H I@5 J@2 K@2 L@5 M@2 N O@2 P@2 Q R@3 S@8 ~ T@8 U@6 V@3 F@2 W@6 X@2 Y@2 ~@2
>`.pickRestart({
  A: "~@4 [a3,c4,f4]@11 ~, d2@15 ~, ~ d3@7", B: "~@4 [g3,bb3,d4,f4]@11 ~, g2@15 ~, ~@2 d3@13 ~",
  C: "~ [c4,e4,g4]@3, c3, ~ g3@7", D: "~ [a3,c4,f4]@3, d2, ~ d3@7",
  E: "[~@18 d3@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4]!3 [d3,a3,c4] [d3,a3,c4]@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4]!2, ~@15 [d3,a3]@4 ~@13, ~@16 [d4,f4]@4 ~@5 f4@3 ~@4]/2", // Dm7 D7 Dm7 D5 Dm
  F: "[d3@2 d3@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4] [d3,bb3,d4,f4]@2 [d3,bb3] [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4] ~ [e3,g3]@2 [e3,g3]@2 [e3,g3,c4,e4]@2 [g3,c4,e4] [e3,g3,c4,e4] [g3,c4,e4] [e3,g3,c4] [e3,g3,c4]@2 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]!2, [bb3,d4]@4 ~@5 [d4,f4]@3 ~@3 [d3,bb3,d4,f4]@2 ~@8 e4@3 ~@4]/2", // Bb Gm Bb Gm Bb Em C Bb …
  G: "[[d3,bb3]@2 [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4]!3 d3 d3@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4] ~ [d4,f4]@4 [d3,a3,c4,f4]@2 [d3,a3,c4,f4] ~ [d3,a3]!2 [d3,a3]@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4] ~ [d3,bb3]@2 [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4]!2 [d3,bb3,d4] [d3,bb3] [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4] ~ [e3,g3]@2 [e3,g3]@2 [e3,g3,c4,e4]@3 ~ [g3,c4] [e3,g3] [e3,g3]@2 [e3,g3,c4,e4]@2 [e3,g3,c4] ~ [d3,a3]@2 [d3,a3]@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4]!2 [a3,c4,f4] [d3,a3,c4] [d3,a3,c4]@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4]!2, d4@4 ~@5 [bb3,d4,f4]@3 ~@3 [d3,a3]@5 ~@3 [d3,a3,c4,f4]@2 [c4,f4]@3 ~@3 [d3,a3,c4,f4]@2 ~@8 [d4,f4]@3 ~@3 [d3,bb3,d4,f4]@2 ~@6 [e3,g3,c4,e4]@2 [c4,e4]@3 ~@3 [e3,g3,c4,e4]@2 ~@8 f4@3 ~@4]/5", // Gm Bb Dm Dm7 D5 Dm7 Gm Bb …
  H: "[d3,bb3]@2 [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4]!2 [d3,bb3,d4] [d3,bb3] [d3,bb3]@2 [f3,a3,c4,f4]@4, ~@9 [d4,f4]@3 ~@4", // Gm Bb Gm F Dm
  I: "[[f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4] [f3,bb3,d4,f4]@2 [f3,bb3] [f3,bb3]@2 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4] ~ [e3,g3]@2 [e3,g3]@2 [e3,g3,c4,e4]@3 ~ [g3,c4] [e3,g3] [e3,g3]@2 [e3,g3,c4,e4]@2 [e3,g3,c4] ~ [d3,bb3]@2 [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4]!2 [d3,bb3,d4] [d3,bb3] [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4] [d3,bb3,d4,f4]@2 [d3,bb3] [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4] ~ [f3,a3]@2 [f3,a3]@2 [f3,a3,c4,f4]@3 ~ [a3,c4] [f3,a3] [f3,a3]@2 [f3,a3,c4,f4]@2 [f3,a3,c4] ~ [e3,g3]@2 [e3,g3]@2 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]!2, ~@9 [d4,f4]@3 ~@3 [f3,bb3,d4,f4]@2 ~@6 [e3,g3,c4,e4]@2 [c4,e4]@3 ~@3 [e3,g3,c4,e4]@2 ~@8 [d4,f4]@3 ~@5 [d4,f4]@3 ~@3 [d3,bb3,d4,f4]@2 ~@6 [f3,a3,c4,f4]@2 [c4,f4]@3 ~@3 [f3,a3,c4,f4]@2 ~@7]/5", // Bb Bb5 Bb Em C C5 Em C …
  J: "[[e3,g3,c4] [e3,g3] [e3,g3]@2 [e3,g3,c4,e4]@2 [e3,g3,c4,e4] ~ [g3,bb3]@2 [g3,bb3]@2 [g3,bb3,d4,g4]@3 ~ [bb3,d4] [g3,bb3] [g3,bb3]@2 [g3,bb3,d4,g4]@2 [g3,bb3,d4] ~ [d3,a3]@2 [d3,a3]@2 [d3,a3,d4,f4]@2 [d3,a3,d4,f4]!2, ~ [c4,e4]@3 ~@3 [e3,g3,c4,e4]@2 ~@6 [g3,bb3,d4,g4]@2 [d4,g4]@3 ~@3 [g3,bb3,d4,g4]@2 ~@7]/2", // C Em C Gm Bb Gm D5 Dm …
  K: "[[d3,a3,d4] [d3,a3] [d3,a3]@2 [d3,a3,d4,f4]@2 [d3,a3,d4,f4] ~ [f3,bb3]@2 [f3,bb3]@2 [f3,bb3,d4,f4]@3 ~ [bb3,d4] [f3,bb3] [f3,bb3]@2 [f3,bb3,d4,f4]@2 [f3,bb3,d4] ~ [f3,a3]@2 [f3,a3]@2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]!2, ~ [d4,f4]@3 ~@3 [d3,a3,d4,f4]@2 ~@6 [f3,bb3,d4,f4]@2 [d4,f4]@3 ~@3 [f3,bb3,d4,f4]@2 ~@7]/2", // D5 Dm Bb5 Bb Bb5 Bb F Dm …
  L: "[[f3,a3,c4] [f3,a3] [f3,a3]@2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4] ~ [g3,bb3]@2 [g3,bb3]@2 [g3,bb3,eb4,g4]@3 ~ [bb3,eb4] [g3,bb3] [g3,bb3]@2 [g3,bb3,eb4,g4]@2 [g3,bb3,eb4] ~ [bb3,eb4,g4]@12 ~@6 d3@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4] [d3,a3,c4,f4]@2 [d3,a3,c4] [d3,a3,c4]@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4]!2 [g2,d3]@2 d3@2 [d3,bb3,d4,f4]@2 [g2,d3,bb3,d4] [g2,d3,bb3,d4,f4]@2 [g2,d3,bb3] [g2,d3,bb3]@2 [g2,d3,bb3,d4,f4]@2 [g2,d3,bb3,d4,f4] d3 ~@2 d3@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4]!2, ~ [c4,f4]@3 ~@3 [f3,a3,c4,f4]@2 ~@6 [g3,bb3,eb4,g4]@2 [eb4,g4]@3 ~@3 [eb3,g3]@12 ~@4 [d3,a3]@4 ~@15 g2@4 ~@10 [d4,f4]@4 ~@4, ~@40 [d4,f4]@4 ~@5 f4@3 ~@4 [bb3,d4]@4 ~@5 [d4,f4]@3 ~@3 a3@4 ~@5]/5", // F Gm Eb Eb5 Gm Eb Dm7 D7 …
  M: "[[d3,a3,c4,f4] [d3,a3,c4] [d3,a3,c4]@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4]!2 d3@2 d3@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4] [d3,bb3,d4,f4]@2 [d3,bb3] [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4] ~ [e3,g3]@2 [e3,g3]@2 [e3,g3,c4,e4]@2 [g3,c4,e4] [e3,g3,c4,e4], ~ f4@3 ~@4 [bb3,d4]@4 ~@5 [d4,f4]@3 ~@3 [d3,bb3,d4,f4]@2 ~@7]/2", // Dm7 D7 Dm7 Bb Gm Bb Gm Bb …
  N: "[g3,c4,e4] [e3,g3,c4] [e3,g3,c4]@2 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]!2 [d3,bb3]@2 [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4]!2, ~ e4@3 ~@4 d4@4 ~@4", // C Gm Bb
  O: "[[d3,bb3,d4,f4] d3 d3@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4] ~ [d4,f4]@4 [d3,a3,c4,f4]@2 [d3,a3,c4,f4] ~ [d3,a3]!2 [d3,a3]@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4] ~ [d3,bb3]@2 [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4]!2, ~ [bb3,d4,f4]@3 ~@3 [d3,a3]@5 ~@3 [d3,a3,c4,f4]@2 [c4,f4]@3 ~@3 [d3,a3,c4,f4]@2 ~@7]/2", // Bb Dm Dm7 D5 Dm7 Gm Bb D5 …
  P: "[[d3,bb3,d4] [d3,bb3] [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4] ~ [e3,g3]@2 [e3,g3]@2 [e3,g3,c4,e4]@3 ~ [g3,c4] [e3,g3] [e3,g3]@2 [e3,g3,c4,e4]@2 [e3,g3,c4] ~ [d3,a3]@2 [d3,a3]@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4]!2, ~ [d4,f4]@3 ~@3 [d3,bb3,d4,f4]@2 ~@6 [e3,g3,c4,e4]@2 [c4,e4]@3 ~@3 [e3,g3,c4,e4]@2 ~@7]/2", // Gm Bb Em C C5 Em C D5 …
  Q: "[a3,c4,f4] [d3,a3,c4] [d3,a3,c4]@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4]!2 [d3,bb3]@2 [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4]!2, ~ f4@3 ~@12", // F D7 Dm7 Gm Bb
  R: "[[d3,bb3,d4] [d3,bb3] [d3,bb3]@2 [f3,a3,c4,f4]@4 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4] [f3,bb3,d4,f4]@2 [f3,bb3] [f3,bb3]@2 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4] ~ [e3,g3]@2 [e3,g3]@2 [e3,g3,c4,e4]@3 ~ [g3,c4] [e3,g3] [e3,g3]@2 [e3,g3,c4,e4]@2 [e3,g3,c4] ~ [d3,bb3]@2 [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4]!2, ~ [d4,f4]@3 ~@13 [d4,f4]@3 ~@3 [f3,bb3,d4,f4]@2 ~@6 [e3,g3,c4,e4]@2 [c4,e4]@3 ~@3 [e3,g3,c4,e4]@2 ~@7]/3", // Gm F Bb Bb5 Bb Em C C5 …
  S: "[[d3,bb3,d4] [d3,bb3] [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4] [d3,bb3,d4,f4]@2 [d3,bb3] [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4] ~ [f3,a3]@2 [f3,a3]@2 [f3,a3,c4,f4]@3 ~ [a3,c4] [f3,a3] [f3,a3]@2 [f3,a3,c4,f4]@2 [f3,a3,c4] ~ [e3,g3]@2 [e3,g3]@2 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]!2 [e3,g3,c4] [e3,g3] [e3,g3]@2 [e3,g3,c4,e4]@2 [e3,g3,c4,e4] ~ [g3,bb3]@2 [g3,bb3]@2 [g3,bb3,d4,g4]@3 ~ [bb3,d4] [g3,bb3] [g3,bb3]@2 [g3,bb3,d4,g4]@2 [g3,bb3,d4] ~ [d3,a3]@2 [d3,a3]@2 [d3,a3,d4,f4]@2 [d3,a3,d4,f4]!2 [d3,a3,d4] [d3,a3] [d3,a3]@2 [d3,a3,d4,f4]@2 [d3,a3,d4,f4] ~ [f3,bb3]@2 [f3,bb3]@2 [f3,bb3,d4,f4]@3 ~ [bb3,d4] [f3,bb3] [f3,bb3]@2 [f3,bb3,d4,f4]@2 [f3,bb3,d4] ~ [f3,a3]@2 [f3,a3]@2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]!2 [f3,a3,c4] [f3,a3] [f3,a3]@2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4] ~ [g3,bb3]@2 [g3,bb3]@2 [g3,bb3,eb4,g4]@3 ~ [bb3,eb4] [g3,bb3] [g3,bb3]@2 [g3,bb3,eb4,g4]@2 [g3,bb3,eb4] ~, ~ [d4,f4]@3 ~@5 [d4,f4]@3 ~@3 [d3,bb3,d4,f4]@2 ~@6 [f3,a3,c4,f4]@2 [c4,f4]@3 ~@3 [f3,a3,c4,f4]@2 ~@8 [c4,e4]@3 ~@3 [e3,g3,c4,e4]@2 ~@6 [g3,bb3,d4,g4]@2 [d4,g4]@3 ~@3 [g3,bb3,d4,g4]@2 ~@8 [d4,f4]@3 ~@3 [d3,a3,d4,f4]@2 ~@6 [f3,bb3,d4,f4]@2 [d4,f4]@3 ~@3 [f3,bb3,d4,f4]@2 ~@8 [c4,f4]@3 ~@3 [f3,a3,c4,f4]@2 ~@6 [g3,bb3,eb4,g4]@2 [eb4,g4]@3 ~@4]/8", // Gm Bb Gm Bb F Am F Em …
  T: "[[f3,a3]@2 [f3,a3]@2 [f3,a3,c4,f4]@3 ~ [a3,c4] [f3,a3] [f3,a3]@2 [f3,a3,c4,f4]@2 [f3,a3,c4] ~ [e3,g3]@2 [e3,g3]@2 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]!2 [e3,g3,c4] [e3,g3] [e3,g3]@2 [e3,g3,c4,e4]@2 [e3,g3,c4,e4] ~ [g3,bb3]@2 [g3,bb3]@2 [g3,bb3,d4,g4]@3 ~ [bb3,d4] [g3,bb3] [g3,bb3]@2 [g3,bb3,d4,g4]@2 [g3,bb3,d4] ~ [d3,a3]@2 [d3,a3]@2 [d3,a3,d4,f4]@2 [d3,a3,d4,f4]!2 [d3,a3,d4] [d3,a3] [d3,a3]@2 [d3,a3,d4,f4]@2 [d3,a3,d4,f4] ~ [f3,a3]@2 [f3,a3]@2 [f3,a3,c4,f4]@3 ~ [a3,c4] [f3,a3] [f3,a3]@2 [f3,a3,c4,f4]@2 [f3,a3,c4] ~ [e3,g3]@2 [e3,g3]@2 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]!2 [e3,g3,c4] [e3,g3] [e3,g3]@2 [e3,g3,c4,e4]@2 [e3,g3,c4,e4] ~ [g3,bb3]@2 [g3,bb3]@2 [g3,bb3,d4,g4]@3 ~ [bb3,d4] [g3,bb3] [g3,bb3]@2 [g3,bb3,d4,g4]@2 [g3,bb3,d4] ~ [bb2,f3]@2 [bb2,f3]@2 [bb2,f3,d4,f4]@2 [bb2,f3,d4,f4]!2 [c3,g3,c4] [c3,g3] [c3,g3]@2 [c3,g3,c4,e4]@2 [c3,g3,c4,e4]!2, ~@7 [f3,a3,c4,f4]@2 [c4,f4]@3 ~@3 [f3,a3,c4,f4]@2 ~@8 [c4,e4]@3 ~@3 [e3,g3,c4,e4]@2 ~@6 [g3,bb3,d4,g4]@2 [d4,g4]@3 ~@3 [g3,bb3,d4,g4]@2 ~@8 [d4,f4]@3 ~@3 [d3,a3,d4,f4]@2 ~@6 [f3,a3,c4,f4]@2 [c4,f4]@3 ~@3 [f3,a3,c4,f4]@2 ~@8 [c4,e4]@3 ~@3 [e3,g3,c4,e4]@2 ~@6 [g3,bb3,d4,g4]@2 [d4,g4]@3 ~@3 [g3,bb3,d4,g4]@2 ~@8 [c4,e4]@3 ~@4]/8", // F Am F Em C Em C Gm …
  U: "[[f3,a3]@2 [f3,a3]@2 [f3,a3,c4,f4]@3 ~ [a3,c4] [f3,a3] [f3,a3]@2 [f3,a3,c4,f4]@2 [f3,a3,c4] ~ [e3,g3]@2 [e3,g3]@2 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]!2 [e3,g3,c4] [e3,g3] [e3,g3]@2 [e3,g3,c4,e4]@2 [e3,g3,c4,e4] ~ [g3,bb3]@2 [g3,bb3]@2 [g3,bb3,d4,g4]@3 ~ [bb3,d4] [g3,bb3] [g3,bb3]@2 [g3,bb3,d4,g4]@2 [g3,bb3,d4] ~ [d3,a3]@2 [d3,a3]@2 [d3,a3,d4,f4]@2 [d3,a3,d4,f4]!2 [d3,a3,d4] [d3,a3] [d3,a3]@2 [d3,a3,d4,f4]@2 [d3,a3,d4,f4] ~ [f3,bb3]@2 [f3,bb3]@2 [f3,bb3,d4,f4]@3 ~ [bb3,d4] [f3,bb3] [f3,bb3]@2 [f3,bb3,d4,f4]@2 [f3,bb3,d4] ~ [f3,a3]@2 [f3,a3]@2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]!2 [f3,a3,c4] [f3,a3] [f3,a3]@2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]!2, ~@7 [f3,a3,c4,f4]@2 [c4,f4]@3 ~@3 [f3,a3,c4,f4]@2 ~@8 [c4,e4]@3 ~@3 [e3,g3,c4,e4]@2 ~@6 [g3,bb3,d4,g4]@2 [d4,g4]@3 ~@3 [g3,bb3,d4,g4]@2 ~@8 [d4,f4]@3 ~@3 [d3,a3,d4,f4]@2 ~@6 [f3,bb3,d4,f4]@2 [d4,f4]@3 ~@3 [f3,bb3,d4,f4]@2 ~@8 [c4,f4]@3 ~@4]/6", // F Am F Em C Em C Gm …
  V: "[[g3,bb3]@2 [g3,bb3]@2 [g3,bb3,eb4,g4]@3 ~ [bb3,eb4] [g3,bb3] [g3,bb3]@2 [g3,bb3,eb4,g4]@2 [g3,bb3,eb4] ~ [bb3,eb4,g4]@4 ~@14 d3@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4]!3 [d3,a3,c4] [d3,a3,c4]@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4]!2, ~@7 [g3,bb3,eb4,g4]@2 [eb4,g4]@3 ~@3 [eb3,g3]@5 ~@11 [d3,a3]@4 ~@13, ~@32 [d4,f4]@4 ~@5 f4@3 ~@4]/3", // Gm Eb Eb5 Gm Eb Dm7 D7 Dm7 …
  W: "[[d3,bb3]@2 [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4]!3 d3 d3@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4] ~ [d4,f4]@4 [d3,a3,c4,f4]@2 [d3,a3,c4,f4] ~ [d3,a3]!2 [d3,a3]@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4] ~ [d3,bb3]@2 [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4]!2 [d3,bb3,d4] [d3,bb3] [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4] ~ [e3,g3]@2 [e3,g3]@2 [e3,g3,c4,e4]@3 ~ [g3,c4] [e3,g3] [e3,g3]@2 [e3,g3,c4,e4]@2 [e3,g3,c4] ~ [d3,a3]@2 [d3,a3]@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4]!2 [a3,c4,f4] [d3,a3,c4] [d3,a3,c4]@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4] ~@3 d3@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4]!3 [d3,a3,c4] [d3,a3,c4]@2 [d3,a3,c4,f4]@2 [d3,a3,c4,f4]!2, d4@4 ~@5 [bb3,d4,f4]@3 ~@3 [d3,a3]@5 ~@3 [d3,a3,c4,f4]@2 [c4,f4]@3 ~@3 [d3,a3,c4,f4]@2 ~@8 [d4,f4]@3 ~@3 [d3,bb3,d4,f4]@2 ~@6 [e3,g3,c4,e4]@2 [c4,e4]@3 ~@3 [e3,g3,c4,e4]@2 ~@8 f4@3 ~@3 [d3,a3]@4 ~@13, ~@80 [d4,f4]@4 ~@5 f4@3 ~@4]/6", // Gm Bb Dm Dm7 D5 Dm7 Gm Bb …
  X: "[d3@2 d3@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4] [d3,bb3,d4,f4]@2 [d3,bb3] [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4] ~ [c3,e3,g3]@2 [c3,e3,g3]@2 [c3,e3,g3,c4,e4]@2 [g3,c4,e4] [c3,e3,g3,c4,e4] [g3,c4,e4] [c3,e3,g3,c4] [c3,e3,g3,c4]@2 [c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]!2, [bb3,d4]@4 ~@5 [d4,f4]@3 ~@3 [d3,bb3,d4,f4]@2 ~@8 e4@3 ~@4]/2", // Bb Gm Bb Gm Bb C Bb Dm …
  Y: "[[d3,bb3]@2 [d3,bb3]@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4]!3 d3 d3@2 [d3,bb3,d4,f4]@2 [d3,bb3,d4,f4] ~ [d4,f4]@16, d4@4 ~@5 [bb3,d4,f4]@3 ~@3 [d3,a3]@16 ~]/2", // Gm Bb Dm Bb D5
})).s("gm_acoustic_guitar_steel").gain(0.15).pan(0.3)

// other · pan flute
const pan_flute = note("<~@16 [bb5@3 c6] d6 ~@74>").s("gm_pan_flute").gain(0.29)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@4 A@3 B ~@40 C@5 ~@39>".pickRestart({
  A: "a6/3", B: "g6", C: "[~@2 [bb3,d4,g4]@3 [c4,f4,a4] [d4,f4,bb4]@4 [c4,e4,g4]@4 [d4,f4,bb4]@6]/5",
})).s("gm_string_ensemble_2").gain(0.25)

// other · acoustic guitar steel
const acoustic_guitar_steel_2 = note("<A@4 B@2 C@2 ~@30 D E F ~@36 G@12 H@3>".pickRestart({
  A: "[f4@7 a3 d4 f4@2 e4@2 d4 f4@9 bb3 d4 f4@2 e4@2 d4 e4@9 g3 c4 e4@2 d4@2 c4@2 d4@13 e4@4]/4",
  B: "[f4@7 a3 d4 f4@2 e4@2 d4 f4@9 bb3 d4 f4@2 e4@2 d4@3]/2", C: "[f4@9 ~@3 a4@2 g4@11 ~@7]/2", D: "~@15 a3",
  E: "d4 f4@2 e4@2 d4 f4@9 bb3", F: "d4 f4@2 e4@2 d4@3 ~@8",
  G: "[f4@7 a3 d4 f4@2 e4@2 d4 f4@9 bb3 d4 f4@2 e4@2 d4 e4@9 g3 c4 e4@2 d4@2 c4 d4@13 ~@5]/4",
  H: "[f4@7 a3 d4 f4@2 e4@2 d4@2 ~ [c4,f4]@24 ~@8, ~@5 [d3,a3]@8 ~@3]/3", // F5 D5
})).s("gm_acoustic_guitar_steel").gain(0.28)

// chords · piano
const piano = note(`<
  A B C D A B E F G H I J G H I G K L A M N M A M N A O L P Q@5 R@4 ~@2 S@7 T@6 U N V W X U Y X U N V W U N V Z U N V W
  X U Y ~ A M N M A M N M A M N M A ~@2
>`.pickRestart({
  A: "[d2,a3,c4,f4]", B: "[bb3,d4,f4]@7 ~, g1", C: "d4@3 c4@5, [c2,g3,e4]",
  D: "~@4 bb3 ~ [g1,a3,bb3,f4]@5 ~ [a1,g3,c4,e4]@4, g1@3 ~@5, ~ a3@2 ~@5", E: "a4@3 f4@5, [bb1,a3,d4]",
  F: "g4@3 e4@5, [a1,g3,c4]", G: "~ [a3,c4,f4]@3, d2@13 ~@3, ~@2 d3@11 ~@3",
  H: "~@4 [bb3,d4,f4]@11 ~, g1@13 ~@3, ~ g2@6 ~", I: "~@2 [c4,e4]@2 [d4,f4]@2 [e4,g4]@9 ~, c2@15 ~",
  J: "~ [bb3,d4] [c4,e4] [bb3,d4,f4]@4 ~, g1@13 ~@3, ~ f3@6 ~", K: "[g1,g3,bb3,d4]@11 ~ [a1,c4,f4,a4]@4, f4 ~@15",
  L: "[bb1,bb3,d4,f4]", M: "[g1,bb3,d4,f4]", N: "[c2,g3,c4,e4]", O: "[g1,g3,bb3,d4,f4]@11 ~ [a1,c4,f4,a4]@4",
  P: "[c2,c4,e4,g4]", // C
  Q: "[[g3,bb3,d4,f4]@23 ~ [f2,a3,c4,f4]@16 [c2,g3,c4,e4]@16 [g2,g3,bb3,d4]@16 [d2,f3,a3,d4]@8, g1 ~@4]/5", // Gm7 F C Gm Dm
  R: "[~ [c3,f3,a3,c4] [bb2,f3,bb3,d4]@4 [f2,a3,c4,f4]@4 [eb2,g3,bb3,eb4]@4 ~@2]/4", // F Bb F Eb
  S: "[~@4 [d2,a3,c4,f4]@8 [g1,bb3,d4,f4]@8 [c2,g3,c4,e4]@8 [g1,bb3,d4,f4]@8 [d2,a3,c4,f4]@8 [g1,bb3,d4,f4]@8 ~ [c4,e4] [d4,f4] [e4,g4], ~@13 [c2,g3]]/7", // Dm7 Gm7 C Gm7 Dm7 Gm7 C Dm …
  T: "[~@8 [d2,a3,c4,f4]@16 [g1,g3,bb3,d4,f4]@11 ~ [a1,c4,f4,a4]@4 [bb1,bb3,d4,f4]@16 [c2,c4,e4,g4]@16 [g3,bb3,d4,f4]@23 ~, ~@9 g1@2 ~]/6", // Dm7 Gm7 F Bb C Gm7
  U: "[f2,a3,c4,f4]", V: "[g2,g3,bb3,d4]", W: "[d2,f3,a3,d4]@3 [c3,f3,a3,c4]", X: "[bb2,f3,bb3,d4]",
  Y: "[eb2,g3,bb3,eb4]", Z: "[bb2,f3,bb3,d4] [c3,g3,c4,e4]",
})).s("gm_piano").gain(0.4)

// chords · electric guitar clean
const electric_guitar_clean = note("<~@30 A@8 ~@15 B C D E F G H I B C D E B C D J B C D E F G H ~@16>".pickRestart({
  A: "[~@14 a3@9 ~@7 e3@8 ~@8 g3@8 ~@8 f4@6 ~@10 f4@9 ~@7 g3@8 ~@8 g4@9 ~@9, ~@8 [f2,a4]@15 ~ [c3,g4]@15 ~ [g2,g4]@14 ~@2 d3@14 ~@2 bb2@14 ~@2 f2@14 ~@6 eb4@11 ~@9, ~@10 c4@13 ~@3 g3@13 ~@5 d4@10 ~@2 f4@4 d4@8 ~@8 d4@11 ~@3 c4@12 ~@2 g3@15 ~@9, ~@12 f4@11 ~@5 c4@11 ~@3 bb3@12 ~@4 a3@10 ~@6 bb3@12 ~@6 f4@10 ~@4 bb3@13 ~@9]/8", // F C5 G
  B: "~@6 a3@9 ~, [f2,a4]@15 ~, ~@2 c4@13 ~, ~@4 f4@11 ~", C: "~@3 e3@4 ~, [c3,g4]@15 ~, ~@2 g3@13 ~, ~@4 c4@11 ~",
  D: "~@3 g3@4 ~, [g2,g4]@7 ~, ~ bb3@6 ~, ~@2 d4@5 ~", E: "~@3 f4@3 ~@2, d3@7 ~, f4 d4@2 ~, ~ a3@5 ~@2",
  F: "~@6 f4@9 ~, bb2@7 ~, ~ bb3@6 ~, ~@4 d4@11 ~", G: "~@3 g3@4 ~, f2@7 ~, ~ c4@6 ~, ~@2 f4@5 ~",
  H: "~@6 g4@9 ~, g3@15 ~, ~@2 bb3@13 ~, ~@4 eb4@11 ~", I: "~@6 f4@9 ~, f3@15 ~, ~@2 bb3@13 ~, ~@4 d4@11 ~",
  J: "~@3 f4 ~@3 g4, bb2 c3, f4@2 d4@2 ~ c4@3, ~ bb3@3 ~@2 e4@2",
})).s("gm_electric_guitar_clean").gain(0.3).pan(0.7)

// chords · pad warm
const pad_warm = note("<A B C D A E F G A B H I A B H A J K ~@74>".pickRestart({
  A: "[d2,a3,c4,f4]", B: "[g2,bb3,d4,f4]", C: "d4@3 c4@5, [c2,g3,e4]", D: "[g1,a3,bb3,f4]@3 [a1,g3,c4,e4]",
  E: "[g1,bb3,d4,f4]", F: "[bb1,a3,d4,f4]", G: "[a1,g3,c4,e4]", H: "[c2,g3,c4,e4]", I: "[a3,bb3,f4], g1@3 ~",
  J: "[g1,g3,bb3,d4,f4]@11 ~ [a1,c4,f4,a4]@4", K: "[bb1,bb3,d4,f4]",
})).s("gm_pad_warm").gain(0.16)

// chords · percussive organ
const percussive_organ = note("<~@29 A@5 B@4 ~@13 C@2 D E F G H D I H D E F G D E F J K L F G H D I ~@16>".pickRestart({
  A: "[[bb4,d5,f5]@3 [c5,f5,a5]@2 [c5,e5,g5]@2 [bb4,d5,g5]@2 [a4,d5,f5]]/5", // Bb F C Gm Dm
  B: "[~ [a4,c5,f5] [bb4,d5,f5]@4 [c5,f5,a5]@4 [bb4,eb5,g5]@4 ~@2]/4", C: "[~ [bb4,d5,f5]@3]/2", D: "[c5,f5,a5]",
  E: "[c5,e5,g5]", F: "[bb4,d5,g5]", G: "[a4,d5,f5]@3 [a4,c5,f5]", H: "[bb4,d5,f5]", I: "[bb4,eb5,g5]",
  J: "[d5,f5,bb5] [e5,g5,c6]", K: "[a4,c5,f5]", L: "[g4,c5,e5]",
})).s("gm_percussive_organ").gain(0.19)

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

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

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

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@18 A B@2 C A B@2 C D A B C E B@3 E B F G ~@2 H B@3 I B@3 I F B@2 J A B@2 K A L B M A B@2 K A B@2 K A B@2 K A L N ~ A
  B@2 C A B@2 M ~@7
>`.pickRestart({
  A: "~@3 x ~ x ~ x ~ x ~ x ~ x ~ x", B: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", C: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2",
  D: "~@3 x ~ x ~ x ~ x ~ x ~@3 x", E: "~ x ~ x ~@7 x ~ x ~ x", F: "~ x ~ x ~@3 x ~@3 x ~ x ~ x", G: "~ x ~ x ~@12",
  H: "~@11 x ~ x ~ x", I: "~ x ~ x ~ x ~@5 x ~ x ~ x", J: "~ x ~ x ~ x ~@3 x ~ x ~@4", K: "~ x ~ x ~ x ~ x ~ x ~ x ~@4",
  L: "~ x ~ x ~ x ~ x ~ x ~ x ~@3 x", M: "~ x ~ x ~ x ~ x ~ x ~@6", N: "~@3 x ~ x ~ x ~ x ~ x ~@4",
})).gain(0.32)

// drums · low tom
const low_tom = s("lt").struct("<~@40 [~ x ~@2] ~@19 [~@15 x] ~@31>").gain(0.8)

// drums · mid tom
const mid_tom = s("mt").struct("<~@30 A ~@3 A ~@2 B ~@14 C ~@3 C ~@3 C ~@3 C ~@3 C ~@3 C ~@2 D ~@16>".pickRestart({
  A: "~@3 x ~@4", B: "~@6 x!2 ~@8", C: "~@7 x", D: "~@14 x!2",
})).gain(0.8)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@21 A ~@3 A ~@4 B ~@3 C ~@2 D ~@6 D ~@3 D ~@3 E ~@3 F ~@3 F ~@3 F ~@3 F ~@3 F ~@2 A ~@4 G ~@11
>`.pickRestart({
  A: "~@15 x", B: "~ x ~@2", C: "~@3 x ~@4", D: "~@7 x ~@8", E: "~@3 x", F: "~@7 x", G: "~@14 x!2",
})).gain(0.64)

// drums · crash
const crash = s("cr").struct(`<
  ~@4 A ~@3 A ~@7 A ~ A ~@3 A ~@3 B A ~@2 C ~@3 D ~ D C@2 ~ C ~@3 C ~@3 C D ~@3 A ~@2 E A E ~@2 A ~@2 E A ~@2 E A ~@2 E
  A E A ~ A ~@3 A ~@2 F A ~@6
>`.pickRestart({
  A: "x", B: "x ~@2 x", C: "~ x", D: "~ x!2 ~", E: "~@3 x", F: "~@10 x ~@4 x",
})).gain(0.64)

// drums · ride
const ride = s("rd").struct("<A@2 B C ~ A@2 C ~@8 D A ~@20 D E A ~@19 F ~@31>".pickRestart({
  A: "x", B: "x!2 ~@6", C: "~ x!3 ~@4", D: "~@3 x", E: "x!4", F: "~@5 x ~@2",
})).gain(0.48)

// drums · tambourine
const tambourine = s("tb").struct("<~@18 A@19 B ~@2 C A@35 ~ A@8 D E D E ~@3>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "~@3 x", D: "~ x!3", E: "x!4",
})).gain(0.8)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct(`<
  ~@85
// … 12 more lines

More by Laura Pausini