Strudelify

Strani Amori

Laura Pausini

KeyG majorTempo69 bpm
0:00/0:00
// Strani Amori — Pausini laura
// 69 bpm, 4/4, key G 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 81 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(69/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 · "FRETLESS"
const bass = note(`<
  ~ A@2 B C D E F G ~@7 H@2 I J K I L I M N O P Q R S O T N U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AH AN AO
  AP AQ AR AS AT AU AV AW AX AO AY AZ BA BB BC BD BE ~@3 BF@5
>`.pickRestart({
  A: "c2", B: "b1", C: "c2@3 b1", D: "a1@3 g1", E: "f1", F: "g1", G: "g1@13 ~@3", H: "[~@15 c3@17]/2", I: "f2",
  J: "g2 b2", K: "c3@3 e2", L: "g2 a2", M: "g2@9 g3 g2@2 d3@2 g3@2", N: "c2@6 ~ c2 c2@7 ~", O: "d2@6 ~ d2 d2@7 ~",
  P: "b1@6 ~ b1 g1@7 ~", Q: "c2@6 ~ c2 e1@4 e1@4", R: "f1@6 ~ f1 f1@7 ~", S: "g1@6 ~ g1 a1@7 ~",
  T: "b1@6 ~ b1 g1@6 g1@2", U: "b1@7 ~ b1@7 ~", V: "g#1@6 ~ g#1 g#1@4 e1@4", W: "a1@5 ~ g2@2 g2@8",
  X: "f1@6 ~ f1 b1@7 ~", Y: "e1@6 ~ e1 a1@7 ~", Z: "d2@6 ~ d2 d2@6 d2 c2", AA: "b1@7 ~ g1@7 ~", AB: "d1@5 ~@3 d1@7 ~",
  AC: "g1@5 ~@2 g1 g1@7 ~", AD: "a1 c#2", AE: "d2@3 f#1", AF: "g1@7 ~ g1@2 g1@6", AG: "a1@5 ~@3 b1@4 b1 a1 f#1 d1",
  AH: "g1@6 ~ g1 g1@7 ~", AI: "a1@4 ~ a2@4 e2 ~ a1 a1@2 c#2@2", AJ: "d1@3 ~ d1@2 d2@2", AK: "e1@6 ~ e1 e1@4 e2@4",
  AL: "c#2@6 ~ c#2 a1@7 ~", AM: "d2@6 ~ d2 f#1@4 f#1@4", AN: "a1@6 ~ a1 b1@7 ~", AO: "e2@6 ~ e2 e2@7 ~",
  AP: "c#2@6 ~ c#2 a1@4 c#2@2 e2@2", AQ: "e1@3 ~ e1@2 e2@2", AR: "e1@6 ~ e1 e2@8", AS: "d#2@6 ~ d#2 b1@7 ~",
  AT: "e1@6 ~ e1 e1@2 e1@2 g#1@4", AU: "a1@8 a1@7 ~", AV: "b1@6 ~ b1 c#2@7 ~", AW: "f#2@7 ~ f#1@4 f#2@4",
  AX: "d#2@6 ~ d#2 b1@2 b1@2 d#2@4", AY: "d#2@7 ~ d#2@7 ~", AZ: "c2@6 ~ c2 c2@4 g#1@4", BA: "c#2@5 ~ b1@2 b1@8",
  BB: "a1@6 ~ a1 d#2@7 ~", BC: "g#1@6 ~ g#1 c#2@4 c#2@4", BD: "f#1@6 ~ f#1 f#1@8", BE: "d#2@6 b1 c#2 b1@8",
  BF: "[~@2 d#2@2 c#2@6 b1@2 a1@8 b1@8 e2@5 ~@7]/5",
})).s("gm_fretless_bass").gain(0.34)

// other · epiano2 · "E.PIANO 2"
const epiano2 = note("<A@8 B ~@8 C D E C ~@55 F G@2 H ~>".pickRestart({
  A: "[~@5 e5 d5 c5@6 f5 e5 d5@6 d5 c5 b4@6 e5 d5 c5@6 e5 d5 c5@4 c5 g5 f5 e5 d5@6 d5 c5 b4@5 c5@4]/8", B: "d5 ~",
  C: "d6 c6", D: "e6 d6", E: "c6 b5", F: "~ g#5 f#5 e5@4 e5", G: "[b5 a5 g#5 f#5@6 f#5 e5 d#5@5]/2", H: "e5 f#5 e5 ~",
})).s("gm_epiano2").gain(0.44).pan(0.3)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  A B@8 ~@8 C D E F G ~@2 H I J K L M N O P Q R S T U V W X Y Z Y@2 ~@4 AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP
  AQ AR AS AT AU@2 AV AW AX AY AZ BA@5
>`.pickRestart({
  A: "~@5 e5 d5 c5",
  B: "[~@4 c4@2 ~@6 e5@2 ~@12 d5@2 c5@2 ~@12 e5@2 d5@2 ~@12 [c5,e5]@2 [b4,d5]@2 ~@8 [a4,c5]@2 [e5,g5]@2 [d5,f5]@2 [c5,e5]@2 ~@12 d5@2 c5@2 ~@4 d3@2 ~@2 d3@2 ~@2 d3@2 ~@4 [g3,b3]@11 ~@5, c3@14 ~@2 c3@14 ~@2 b2@14 c5@8 [d4,e4,g4]@8 [a4,c5]@7 ~@9 [a4,d5]@8 d4@10 ~@14 d3@13 ~@5, ~@2 g3@12 ~@4 f3@11 ~@5 g3@14 c3@11 ~ b2@4 a2@11 ~ g2@4 f2@14 b4@10 c5@8 d5@8 ~@8, ~@6 [d4,e4,g4]@8 ~@6 a3@9 ~@7 b3@12 ~@2 g3@10 ~@6 e3@10 ~@6 c3@13 ~ g2@8 g2@19 ~@5, ~@10 f5@4 d5@9 ~@7 b4@7 ~ [d4,g4]@10 ~@4 c4@7 ~@9 a3@12 ~@4 f3@12 ~@4 g3@6 ~@2 a3@4 ~@16]/8", // C Bm Am Em Dm C G Em7 …
  C: "d5 c5", D: "e5 d5", E: "c5 b4", F: "d5@2 ~ e2, ~ c5", G: "f2@3 ~",
  H: "~@7 c4 ~@6 g2@2, g2 ~, ~ d3@3 ~@2 d3@2, ~@2 g3@2 ~ g3@3, ~@3 d4 b3@4", I: "g3@5 ~@2 g4, e4, c4@3 c4, ~@5 g3@3",
  J: "a3@5 ~@2 g4, [c4,f4]@3 c4, ~@5 a3@3", K: "g3@5 ~@2 g4, [b3,d4]@3 b3, ~@5 g3@3", L: "[g3,c4,e4]", M: "[a3,c4,f4]",
  N: "c4@5 ~@2 g4, d4, g4@7 ~, ~@5 b3@3, ~@3 c4", O: "f4@6 f4 c4, [a3,c4]@7 ~",
  P: "[a3,b3,d4]@5 ~@2 g4, ~@5 g3@3, ~@3 d4", Q: "g3@5 ~@2 g4, [c4,e4]@3 c4, ~@5 g3@3",
  R: "[b3,d4,f4]@9 ~@5 d4@2, ~@5 e3@3, ~@3 a3", S: "[e3,g#3,b3]@11 ~ [e3,g#3,b3,d4]@4",
  T: "[a2,e3,a3,c4]@8 [d3,g3,b3]@7 ~", U: "~ d3, [c3,f3,a3]@11 ~@5", V: "g3@5 b3 ~ g4, ~@3 c4", W: "[a3,d4,f4]@15 ~",
  X: "[b3,d4,g4]@15 ~", Y: "a4", Z: "b4", AA: "a3@5 a3@3, [d4,f#4]", AB: "[b3,d4,g4]@7 ~@9", AC: "[a3,c#4,e4]@3 a3",
  AD: "[a3,d4,f#4]@3 [a3,d4,f#4]", AE: "[b3,d4,g4]", AF: "~ b4, e4, [d4,a4]@5 ~@3", AG: "g4@3 g4, [b3,d4]@7 ~",
  AH: "[a3,c#4,e4]@9 ~@7", AI: "b3@5 b3@3, [e4,g#4]", AJ: "[c#4,e4,a4]@7 ~@9", AK: "[b3,d#4,f#4]@3 b3",
  AL: "[b3,e4,g#4]@3 [b3,e4,g#4]", AM: "[c#4,e4,a4]", AN: "~ c#5, e4, [f#4,b4]@5 ~@3", AO: "a4@3 a4, c#4@7 ~, e4 ~@15",
  AP: "[b3,d#4,f#4]@9 ~@7", AQ: "b3@5 ~@2 b4, [e4,g#4]@3 e4, ~@5 b3@3",
  AR: "[d#4,f#4,a4]@9 ~@5 f#4@2, ~@5 g#3@3, ~@3 c#4", AS: "[g#3,c4,d#4]@11 ~ [g#3,c4,d#4,f#4]@4",
  AT: "[c#3,g#3,c#4,e4]@8 [f#3,b3,d#4]@7 ~", // C#m B
  AU: "[~@16 b3 ~@9 d#4@2 ~@2 b4@2, [e3,a3,c#4]@11 ~@21, ~@4 f#3@9 ~ e4@2]/2", AV: "[c#4,f#4,a4]@15 ~",
  AW: "[d#4,f#4,b4]@3 b4", AX: "[b3,e4,g#4] e4", AY: "~@4 f#4@3 ~, [a3,c#4]@7 ~", AZ: "[b3,e4]@4 d#4@3 ~",
  BA: "[~@2 [e5,g#5]@2 [d#5,f#5]@2 ~@8 [c#5,e5]@2 [g#5,b5]@2 [f#5,a5]@2 [e5,g#5]@2 ~@12 f#5@2 e5@2 ~@4 f#3@2 ~@2 f#3@2 ~@2 f#3@2 [d#4,f#5]@3 ~ e5@4 ~@20, ~@4 d#3@4 c#3@11 ~ b2@4 a2@14 d#5@10 e5@4 ~@28, ~@6 [c#5,e5]@6 c#4@12 ~@2 e3@13 ~ b2@8 b2@18 ~@14, ~@5 g#3@5 ~ [c#5,f#5]@4 f#4@5 ~@20, ~@28 a3@12 ~@4 b3@6 ~@5 e3@4 ~@21]/5", // E D#m C#m G#m F#m E D#m C#m …
})).s("gm_piano").gain(0.31).pan(0.4)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~ A B C D ~@16 E F G H ~@16 I J@2 K L M L N O@4 P Q R S T@4 U V W X ~@16
>`.pickRestart({
  A: "~@4 d4@2 d4@9 ~, c3@15 ~, ~@2 g3@13 ~, ~@4 g4@11 ~", B: "~@6 d4@5 ~@5, c3@11 ~@5, ~@2 a4@9 ~@5, ~@4 f4@7 ~@5",
  C: "~ g4@3, b2, ~ g3@7", D: "~@6 d4@7 ~@3, c3@13 ~@3, ~@2 g3@11 ~@3, ~@4 g4@9 ~@3",
  E: "~@3 g3@4 ~, ~ f3@6 ~, ~@2 c4@5 ~", F: "~@3 e4, ~ a2, ~@5 e3@3", G: "~@3 g3@4 ~, f2@7 ~, ~ c3@6 ~, ~@2 c4@5 ~",
  H: "[g2,g3,d4] ~", I: "~@7 a3, d3, ~@3 a3@11 ~@2, ~ d4, ~@11 f#4@5",
  J: "[~@24 c#4@4 e4@3 ~, g2@11 b3@7 ~@2 b3@8 ~@4, b3 e4 d4 ~, ~@6 e3@7 ~ e3@5 ~@13]/2",
  K: "e4@4 ~@3 f#3, d3@15 ~, ~ d4, ~@11 a3@5", L: "~@6 a3@7 ~@3, g2@13 ~@3, ~@2 d3@11 ~@3, ~@4 d4@9 ~@3", M: "a2 b2",
  N: "~@4 d4@3 ~ [e3,c#4]@7 ~, a2@7 a2@7 ~@2, ~ e3@3 ~@4", // C#m
  O: "[a2@9 ~@13 g3@6 ~@6 e3@2 ~@8 c#4@2 a3 ~ [a3,e4]@8 ~@8, ~@5 d3@2 a3@2 b2@5 ~ b3@2 ~ a3@5 ~@9, ~@12 d4@4 e2@12 ~@4 a2@15 ~@17, ~@20 e3@8 e4@5 ~@9 e3@5 d3@8 ~@9]/4", // A5
  P: "~@5 g3@3, ~ g2@6 ~, ~@6 d3@9 ~", Q: "~ a3 ~ b3, a2@7 ~ b2@8, ~@5 f#3@3",
  R: "~@4 g3@2 b3@8 d3 ~, g2@15 ~, ~ d3@4 ~@3", S: "~@6 d4@4 c#4@4 a3 ~, a2@7 ~, ~@4 g3@5 ~@7",
  T: "[b2@9 ~@13 a3@6 ~@6 f#3@2 ~@8 d#4@2 b3 ~ [b3,f#4]@8 ~@8, ~@5 e3@2 b3@2 c#3@5 ~ c#4@2 ~ b3@5 ~@9, ~@12 e4@4 f#2@12 ~@4 b2@15 ~@17, ~@20 f#3@8 f#4@5 ~@9 f#3@5 e3@8 ~@9]/4", // B5
  U: "~@5 a3@3, ~ a2@6 ~, ~@6 e3@9 ~", V: "~ b3 ~ c#4, b2@7 ~ c#3@8, ~@5 g#3@3",
  W: "~@4 a3@2 c#4@8 e3 ~, a2@15 ~, ~ e3@4 ~@3", X: "~@6 e4@4 d#4@4 b3 ~, b2@7 ~, ~@4 a3@5 ~@7",
})).s("gm_electric_guitar_clean").gain(0.12).pan(0.7)

// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note("<~@3 A ~@47 B ~@2 C D E ~@2 F ~@2 G H I ~@16>".pickRestart({
  A: "~@3 d4@5", B: "~@3 e3@2 ~@3", C: "~@2 e3@3 ~ e3@2 ~@8", D: "~@10 d3@2 e3@3 ~", E: "~ e3@3 e3@2 e3 ~",
  F: "~@3 f#3@2 ~@3", G: "~@2 f#3@3 ~ f#3@2 ~@8", H: "~@10 e3@2 f#3@3 ~", I: "~ f#3@3 f#3@2 f#3 ~",
})).s("gm_electric_guitar_clean").gain(0.09).pan(0.7)

// chords · kalimba
const kalimba = note(`<
  ~@25 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT
  AU AV ~@8
>`.pickRestart({
  A: "~ [c4,e4]!2 ~ [c4,e4] ~@2 [c4,e4] ~ [c4,e4]!2 ~ c4 [c4,e4]!3", // C
  B: "~ [d4,f4]!2 ~ [d4,f4] ~@2 [d4,f4] ~ [d4,f4]!2 ~ [d4,f4]!4", // Dm
  C: "~ [b3,d4]!2 ~ [b3,d4]!2 ~ [b3,d4] ~ [b3,d4]!2 ~ [b3,d4]!4", // Bm
  D: "~ [c4,e4]!2 ~ [c4,e4] ~@2 [c4,e4] ~ [c4,e4]!2 ~ [c4,e4]!3 e4", // C
  E: "~ [c4,f4]!2 ~ [c4,f4] ~@2 [c4,f4] ~ [c4,f4]!2 ~@2 [c4,f4] ~ [c4,f4]", // F5
  F: "~ d4 [d4,g4] ~ [d4,g4] d4 ~ [d4,g4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4]!2 ~", // G5 A5
  G: "~ [c4,f4]!2 ~ [c4,f4]!2 ~ [c4,f4] ~ [c4,f4]!2 ~@2 [c4,f4]!3", // F5
  H: "~ d4 [d4,g4] ~ [d4,g4] ~@2 [d4,g4] ~@3 [d4,g4] ~ [d4,g4]!3", // G5
  I: "~ e4!2 ~ [c4,e4]!2 ~ [c4,e4] ~ e4 ~ [c4,e4] ~ e4!3", // C
  J: "~ [f4,a4]!2 ~ [f4,a4]!2 ~ [f4,a4] ~ [f4,a4] ~ [f4,a4] ~ [f4,a4]!3", // F
  K: "~ [b3,e4]!2 ~ [b3,e4]!2 ~ [b3,e4] ~ [b3,e4] ~ [b3,e4] ~ [b3,e4]!3", // E5
  L: "~ [e4,a4]!2 ~ [e4,a4]!2 ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4]!3", // A5
  M: "~ [f4,a4]!2 ~ [f4,a4]!2 ~ [f4,a4] ~ [f4,a4] ~ a4 ~ [f4,a4] a4 [f4,a4]", // F
  N: "~ [e4,g4] e4 ~ [e4,g4] ~@2 [e4,g4] ~ [e4,g4] ~ [e4,g4] ~ [e4,g4]!3", // Em
  O: "~ [d4,f4] f4 ~ [d4,f4] d4 ~ [d4,f4] ~ [d4,f4]!2 ~@2 [d4,f4] ~ [d4,f4]", // Dm
  P: "~@2 [d4,g4] ~ d4 [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]!2 ~", // G5
  Q: "~ [f#4,a4]!2 ~ [f#4,a4]!2 ~ [f#4,a4] ~ [f#4,a4]!2 ~ [f#4,a4]!2 a4 [f#4,a4]", // F#m
  R: "~ [g4,b4]!2 ~ [g4,b4]!2 ~ [g4,b4] ~ [g4,b4] b4 ~ [g4,b4]!2 ~ [g4,b4]", // G
  S: "~ [e4,a4]!2 ~ [e4,a4]!2 ~ [e4,a4] ~ [e4,a4]!2 ~ [e4,a4]!2 ~ [e4,a4]", // A5
  T: "~ a4 [f#4,a4] ~ [f#4,a4]!2 ~ [f#4,a4] f#4 [f#4,a4]!2 ~@2 [f#4,a4] a4 [f#4,a4]", // F#m
  U: "~ [g4,b4]!2 ~ [g4,b4]!2 ~ [g4,b4] ~ [g4,b4]!2 ~ [g4,b4]!4", // G
  V: "~ a4 [e4,a4] ~ [e4,a4]!2 ~ [e4,a4] ~ b4 [f#4,b4] ~ [f#4,b4] f#4 [f#4,b4]!2", // A5 B5
  W: "~ [d4,g4] g4 ~ [d4,g4] ~ [d4,g4]!2 ~ [d4,g4]!2 ~ [d4,g4]!4", // G5
  X: "~ [e4,a4]!2 ~ [e4,a4]!4 e4 [e4,a4]!2 ~ a4 [e4,a4]!3", // A5
  Y: "~ [d4,f#4]!2 ~ [d4,f#4] ~@2 [d4,f#4] ~ [d4,f#4]!2 ~ d4 [d4,f#4]!3", // D
  Z: "~ [e4,g4]!2 ~ [e4,g4] ~@2 [e4,g4] ~ [e4,g4]!2 ~ [e4,g4]!4", // Em
  AA: "~ [c#4,e4]!2 ~ [c#4,e4]!2 ~ [c#4,e4] ~ [c#4,e4]!2 ~ [c#4,e4]!4", // C#m
  AB: "~ [d4,f#4]!2 ~ [d4,f#4] ~@2 [d4,f#4] ~ [d4,f#4]!2 ~ [d4,f#4]!3 f#4", // D
  AC: "~ [d4,g4]!2 ~ [d4,g4] ~@2 [d4,g4] ~ [d4,g4]!2 ~@2 [d4,g4] ~ [d4,g4]", // G5
  AD: "~ e4 [e4,a4] ~ [e4,a4] e4 ~ [e4,a4] ~ [f#4,b4] ~ [f#4,b4] ~ [f#4,b4]!2 ~", // A5 B5
  AE: "~ [d4,g4]!2 ~ [d4,g4]!2 ~ [d4,g4] ~ [d4,g4]!2 ~@2 [d4,g4]!3", // G5
  AF: "~ e4 [e4,a4] ~ [e4,a4] ~@2 [e4,a4] ~@3 [e4,a4] ~ [e4,a4]!3", // A5
  AG: "~ [e4,g#4]!2 ~ [e4,g#4] ~@2 [e4,g#4] ~ [e4,g#4]!2 ~ e4 [e4,g#4]!3", // E
  AH: "~ [f#4,a4]!2 ~ [f#4,a4] ~@2 [f#4,a4] ~ [f#4,a4]!2 ~ [f#4,a4]!4", // F#m
  AI: "~ [d#4,f#4]!2 ~ [d#4,f#4]!2 ~ [d#4,f#4] ~ [d#4,f#4]!2 ~ [d#4,f#4]!4", // D#m
  AJ: "~ [e4,g#4]!2 ~ [e4,g#4] ~@2 [e4,g#4] ~ [e4,g#4]!2 ~ [e4,g#4]!3 g#4", // E
  AK: "~ [e4,a4]!2 ~ [e4,a4] ~@2 [e4,a4] ~ [e4,a4]!2 ~@2 [e4,a4] ~ [e4,a4]", // A5
  AL: "~ f#4 [f#4,b4] ~ [f#4,b4] f#4 ~ [f#4,b4] ~ [g#4,c#5] ~ [g#4,c#5] ~ [g#4,c#5]!2 ~", // B5 C#5
  AM: "~ [e4,a4]!2 ~ [e4,a4]!2 ~ [e4,a4] ~ [e4,a4]!2 ~@2 [e4,a4]!3", // A5
  AN: "~ f#4 [f#4,b4] ~ [f#4,b4] ~@2 [f#4,b4] ~@3 [f#4,b4] ~ [f#4,b4]!3", // B5
  AO: "~ [e4,g#4]!2 ~ [e4,g#4]!2 ~ [e4,g#4] ~ [e4,g#4] ~ [e4,g#4] ~ [e4,g#4]!3", // E
  AP: "~ [a4,c#5]!2 ~ [a4,c#5]!2 ~ [a4,c#5] ~ [a4,c#5] ~ [a4,c#5] ~ [a4,c#5]!3", // A
  AQ: "~ [d#4,g#4]!2 ~ [d#4,g#4]!2 ~ [d#4,g#4] ~ [d#4,g#4] ~ [d#4,g#4] ~ [d#4,g#4]!3", // G#5
  AR: "~ [g#4,c#5]!2 ~ [g#4,c#5]!2 ~ [g#4,c#5] ~ [g#4,c#5] ~ [g#4,c#5] ~ [g#4,c#5]!3", // C#5
  AS: "~ [a4,c#5]!2 ~ [a4,c#5]!2 ~ [a4,c#5] ~ [a4,c#5] ~ c#5 ~ [a4,c#5] c#5 [a4,c#5]", // A
  AT: "~ [g#4,b4] g#4 ~ [g#4,b4] ~@2 [g#4,b4] ~ [g#4,b4] ~ [g#4,b4] ~ [g#4,b4]!3", // G#m
  AU: "~ [f#4,a4] a4 ~ [f#4,a4] f#4 ~ [f#4,a4] ~ [f#4,a4]!2 ~@2 [f#4,a4] ~ [f#4,a4]", // F#m
  AV: "~ f#4 [f#4,b4] ~ f#4 [f#4,b4] ~ [f#4,b4] ~ [f#4,b4] ~ [f#4,b4] ~ [f#4,b4]!2 ~", // B5
})).s("gm_kalimba").gain(0.18)

// chords · kalimba · soft notes
const kalimba_soft = note(`<
  ~@25 A ~@2 B ~ C D E F ~@6 G H I J K L M N O P ~@2 Q ~ R S T U ~@2 V ~ W A X ~@16
>`.pickRestart({
  A: "~@12 e4 ~@3", B: "~@6 e4 ~@8 c4", C: "~ g4 ~@14", D: "~@12 c4 ~@3", E: "~ g4 ~@3 g4 ~@3 [d4,g4] ~@6",
  F: "~ c4!2 ~@6 c4 ~@3 c4!3", G: "~ d4 ~@14", H: "~@14 f#4 ~", I: "~@10 g4 ~@3 [g4,b4] ~",
  J: "~@3 [e4,a4] ~@4 a4 ~@2 [e4,a4] ~@2 [e4,a4] ~", K: "~ f#4 ~ a4 ~@2 a4 ~ a4 ~@2 f#4 ~@2 f#4 ~",
  L: "~@6 [g4,b4] ~@4 g4 ~@4", M: "~ e4 ~@4 [e4,a4] ~@2 f#4 ~ f#4 ~ b4 ~@2", N: "~@2 d4 [d4,g4] ~@12",
  O: "~@3 a4 ~@7 e4!2 ~@3", P: "~@12 f#4 ~@3", Q: "~@6 f#4 ~@8 d4", R: "~ a4 ~@14", S: "~@12 d4 ~@3",
  T: "~ a4 ~@3 a4 ~@3 [e4,a4] ~@6", U: "~@12 g#4 ~@3", V: "~@6 g#4 ~@8 e4", W: "~ b4 ~@14",
  X: "~ b4 ~@3 b4 ~@3 [f#4,b4] ~@6", // B5
})).s("gm_kalimba").gain(0.11)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@40 A ~@11 B C D E F ~ G H I F J K L E M N O P@2 Q R ~@8>".pickRestart({
  A: "~@12 g2 g1 ~@2", B: "~@5 [d2,b2] f#2@2", C: "g2", D: "a2 b2", E: "e2", F: "a2", G: "~@3 e4@10 e5@3", H: "d#5",
  I: "b4@9 ~ [e2,c#3]@2 g#2@4", J: "b2 c#3", K: "f#2", L: "b2", M: "d#2", N: "c3@3 g#2", O: "c#2 b2",
  P: "[a2@7 f#4@17 e4@8]/2", Q: "a3@15 ~", R: "d#3@3 b2@4 ~",
})).s("gm_overdriven_guitar").gain(0.18).pan(0.6)

// other · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note("<~@9 A B C D B E B F ~@56 G H I ~@5>".pickRestart({
  A: "c3", B: "f2", C: "g2 b2", D: "c3@3 e2", E: "g2 a2", F: "g2", G: "e3", H: "a2", I: "b2 d#3",
})).s("gm_synth_strings_1").gain(0.06).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~@17 A@8 B@15 C D@7 E D@11 F D@3 B D@8 ~@3 G H D ~@2>".pickRestart({
  A: "x", B: "x ~@6 x!2 ~@7", C: "x ~@6 x!2 ~@2 x ~@4", D: "x!2", E: "x ~@3 x ~@2 x", F: "x ~@3 x!2 ~@2",
  G: "~@8 x ~@6 x", H: "x ~@7 x ~@6 x",
})).gain(0.48)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@41 [~@7 x ~@8]!7 ~ [~@7 x ~@8]!14 ~@2 [~@7 x ~@8]!8 ~@8>").gain(0.32)

// drums · rim
const rim = s("rim").struct("<~@17 [~ x ~ x]!8 ~@56>").gain(0.48)

// drums · snare
const snare = s("sd").struct("<~@25 A@23 B A@7 C A@5 D A@9 D ~@3 E A D ~@2>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@4 x ~@2 x ~@3", C: "~@4 x ~@4 x ~@6", D: "~ x ~@2", E: "~@3 x",
})).gain(0.56)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@25
  [~@5 x ~@10]!15
  [~@5 x ~@4 x!2 ~@4]
  [~@5 x ~@3 x ~@6]!32
  ~@3
  [~@13 x ~@2]!2
  ~@3
// … 49 more lines

More by Laura Pausini