Strudelify
Felicita cover art

1988 · Felicità

Felicita

Romina Power Al Bano

KeyG majorTempo108 bpm
0:00/0:00
// Felicita — Romina Power Al Bano
// 108 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 95 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(108/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 · lead 8 bass lead · "BASS&LEAD"
const bass = note(`<
  A B A B C D E@2 F G H I C D E@2 F G H J C D E@2 F G H K L M N O P Q R S L M N O P Q R T U V L W N O P Q X Y L M N O Z
  Q X AA C AB E AC AD AE H AF C AB E AC AD AE H AG F AH AI AJ AK AL E AC F AH AI AJ AK AL E AM@2
>`.pickRestart({
  A: "c2 ~ c3@2 c2@2 c3@2 c2@2 c3@2 c2@2 c3@2 c2 ~ c3@2 c2@2 c3@2",
  B: "c2@2 c3@2 c2@2 c3 ~ c2@2 c3@2 c2@2 c3@2 c2@2 c3@2 c2@2 c3 ~", C: "c2 c3 c2 c3 c2 c3 c2 c3 c2 c3 c2 c3",
  D: "c2@2 c3@2 c2@2 c3@2 c2@2 c3@2 c2@2 c3@2 c2@2 c3@2 c2 ~ c3@2", E: "a1 a2 a1 a2 a1 a2 a1 a2 a1 a2 a1 a2",
  F: "d2 d3 d2 d3 d2 d3 d2 d3 d2 d3 d2 d3", G: "d2 ~ d3@2 d2@2 d3@2 d2@2 d3@2 d2@2 d3@2 d2@2 d3@2 d2@2 d3@2",
  H: "g1 g2 g1 g2 g1 g2 g1 g2 g1 g2 g1 g2", I: "g1 ~ g2@2 g1 ~ g2@2 g1@2 g2@2 g1 ~ g2@2 g1@2 g2@2 g1@2 g2 ~",
  J: "g1 ~ g2@2 g1@2 g2@2 g1@2 g2@2 g1@2 g2@2 g1@2 g2@2 g1@2 g2 ~", K: "g1 g2 g1 g2 g1 g2 g1 g2 g1 c2 c3 c2",
  L: "c3 c2 c3 c2 c3 c2 c3 c2 c3 c2 c3 c2", M: "c3 c2 c3 c2 c3 c2 c3 c2 c3 a1 a2 a1",
  N: "a2 a1 a2 a1 a2 a1 a2 a1 a2 a1 a2 a1", O: "a2 a1 a2 a1 a2 a1 a2 a1 a2 d2 d3 d2",
  P: "d3@2 d2@2 d3@2 d2@2 d3@2 d2@2 d3@2 d2@2 d3@2 d2 ~ d3@2 d2@2", Q: "d3 d2 d3 d2 d3 d2 d3 d2 d3 g1 g2 g1",
  R: "g2@2 g1@2 g2@2 g1@2 g2@2 g1@2 g2@2 g1@2 g2@2 g1 ~ g2@2 g1 ~",
  S: "g2@2 g1@2 g2@2 g1 ~ g2@2 g1@2 g2@2 g1@2 g2@2 c2@2 c3@2 c2@2",
  T: "g2@2 g1@2 g2@2 g1 ~ g2@2 g1@2 g2@2 g1@2 g2@2 c3@2 d3@2 e3@2", U: "c3 d3 e3 c3 d3 e3 c3 d3 e3 c3 d3 e3",
  V: "c3@2 d3@2 e3@2 c3@2 d3@2 e3@2 c3@2 d3@2 e3 ~ c2@2 c3@2 c2@2",
  W: "c3@2 c2@2 c3@2 c2@2 c3@2 c2@2 c3@2 c2 ~ c3@2 a1@2 a2@2 a1@2", X: "g2 g1 g2 g1 g2 g1 g2 g1 g2 g1 g2 g1",
  Y: "g2@2 g1@2 g2@2 g1@2 g2@2 g1@2 g2@2 g1@2 g2 ~ c2@2 c3@2 c2@2", Z: "d3 d2 d3 d2 d3 d2 d3 d2 d3 d2 d3 d2",
  AA: "g2 g1 g2 g1 g2 g1 c2 c3 c2 c3 c2 c3", AB: "c2 c3 c2 c3 c2 c3 a1 a2 a1 a2 a1 a2",
  AC: "a1 a2 a1 a2 a1 a2 d2 d3 d2 d3 d2 d3", AD: "d2@2 d3@2 d2@2 d3@2 d2@2 d3@2 d2 ~ d3@2 d2@2 d3@2 d2@2 d3@2",
  AE: "d2 d3 d2 d3 d2 d3 g1 g2 g1 g2 g1 g2", AF: "g1 g2 g1 g2 g1 g2 c2 c3 c2 c3 c2 c3",
  AG: "g1 g2 g1 g2 g1 g2 d2 d3 d2 d3 d2 d3", AH: "d2 d3 d2 d3 d2 d3 b1 b2 b1 b2 b1 b2",
  AI: "b1 b2 b1 b2 b1 b2 b1 b2 b1 b2 b1 b2", AJ: "b1 b2 b1 b2 b1 b2 e2 e3 e2 e3 e2 e3",
  AK: "e2 e3 e2 e3 e2 e3 e2 e3 e2 e3 e2 e3", AL: "e2 e3 e2 e3 e2 e3 a1 a2 a1 a2 a1 a2",
  AM: "[a1 a2 a1 a2 a1 a2 d2@12 ~@6]/2",
})).s("gm_lead_8_bass_lead").gain(0.32)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@4 A@2 B@4 C D E@2 F@4 G@2 H@2 I@4 J@8 K@8 L@2 M@2 N O P Q R ~ S T@2 U@2 V@2 W@2 X Y Z AA@2 AB AC AD@2 Y Z AA@2 AB AC
  AE@2 AF AG AH AI AJ AK AL AM AF AG AH AI AJ AK AL AN@2
>`.pickRestart({
  A: "[[c3,c4] [d3,d4] [e3,e4]@13 [f3,f4]@2 [e3,e4]@4 [f3,f4] [e3,e4] [d3,d4]]/2", // C D E F E F E D
  B: "[[c3,c4]@2 [d3,d4]@2 [e3,e4]@26 [f3,f4]@4 [e3,e4]@8 [f3,f4]@2 [e3,e4]@2 [d3,d4]@4 [e3,e4]@2 [f3,f4]@25 ~ [g3,g4]@4 [f3,f4]@8 [g3,g4]@2 [f3,f4]@2 [e3,e4]@2]/4", // C D E F E F E D …
  C: "[d3,d4] [e3,e4] [f3,f4]@10", D: "[d3,d4] [e3,e4] f4 d4 e4 f4@2 g4 a4 b4 c5 d5, ~@2 f3@5 ~@5",
  E: "[[c3,c5] [d3,d5] [e3,e5]@13 [f3,f5]@3 [e3,e5]@3 [f3,f5] [e3,e5] [d3,d5]]/2", // C D E F E F E D
  F: "[[c3,c5]@2 [d3,d5]@2 [e3,e5]@26 [f3,f5]@6 [e3,e5]@6 [f3,f5]@2 [e3,e5]@2 [d3,d5]@4 [e3,e5]@2 [f3,f5]@25 ~ [g3,g5]@6 [f3,f5]@6 [g3,g5]@2 [f3,f5]@2 [e3,e5]@2]/4", // C D E F E F E D …
  G: "[[d3,d5]@2 [e3,e5]@2 f5@25 ~ d5@2 e5@2 f5@4 g5@2 a5@2 b5@2 c6@2 d6@2, ~@4 f3@43 ~]/2", // D E
  H: "[[c4,c6] [d4,d6] [e4,e6]@13 [f4,f6]@3 [e4,e6]@3 [f4,f6] [e4,e6] [d4,d6]]/2", // C D E F E F E D
  I: "[[c4,c6] [d4,d6] [e4,e6]@13 [f4,f6]@3 [e4,e6]@3 [f4,f6] [e4,e6] [d4,d6]@2 [e4,e6] [f4,f6]@13 [g4,g6]@3 [f4,f6]@3 [g4,g6] [f4,f6] [e4,e6]]/4", // C D E F E F E D …
  J: "[[d4,d6] [e4,e6] [f4,f6]@4 [d4,d5,d6] [e4,e5,e6] [f4,f5,f6]@5 [g4,g5,g6] [f4,f5,f6] [e4,e5,e6]@3 [d4,d5,d6]@3 [c5,c6]@6 [d5,d6]@6 [e5,e6]@6 [f5,f6]@2 [e5,e6]@2 [d5,d6]@2 [a4,a5]@6 [b4,b5]@6 [c5,c6] [b4,b5] [a4,a5]@5 [a4,a5] [b4,b5] [c5,c6] [d5,d6] [e5,e6] [d5,d6]@6 [e5,e6]@6 [f5,f6]@6 [g5,g6]@2 [f5,f6]@2 [e5,e6]@2 [e5,e6]@3]/8", // D E F D E F G F …
  K: "[~ [f5,f6] [e5,e6] [d5,d6]@18 [c5,c6]@6 [d5,d6]@6 [e5,e6]@6 [f5,f6]@2 [e5,e6]@2 [d5,d6]@2 [a4,a5]@6 [b4,b5]@6 [c5,c6] [b4,b5] [a4,a5]@5 [a4,a5] [b4,b5] [c5,c6] [d5,d6] [e5,e6] [d5,d6]@6 [e5,e6]@6 [f5,f6]@6 [g5,g6]@2 [f5,f6]@2 [e5,e6]@2 [e5,e6]@3]/8", // F E D C D E F E …
  L: "[~ [f5,f6] [e5,e6] [d5,d6]@18 c3 d3 e3]/2", // F E D
  M: "[c3@2 d3@2 e3@2 c3@2 d3@2 e3@2 c3@2 d3@2 ~@24 e3@2 [c3,c6]@2 [d3,d6]@2 [e3,e6] ~, ~@8 e3 c3 d3 e3 c3 d3 e3 c3 d3 e3 c3 d3 ~@4, ~@17 c4@2 d4@2 e4@2 c4@2 d4@2 e4@2 c4@2 d4@2 e4@2 c4@2 d4@2 e4@2 ~@7]/2", // C D E
  N: "[e3,e6] ~@11", O: "~@18 c4@2 d4@2 e4 ~", P: "e4 ~@11", Q: "~@9 [d3,d6] [e3,e6] [f3,f6]", R: "[f3,f6] ~@11",
  S: "~@3 [d3,d4] [e3,e4] f3 [f3,f4] ~@5, ~@10 f4 ~@13", T: "[~ d5 e5 f5 g5 a5 b5 c6 d6 [c4,c6] [d4,d6] [e4,e6]@13]/2",
  U: "[[f4,f6]@3 [e4,e6]@3 [f4,f6] [e4,e6] [d4,d6] [c4,c6] [d4,d6] [e4,e6]@13]/2", // F E F E D C D E
  V: "[[f4,f6]@3 [e4,e6]@3 [f4,f6] [e4,e6] [d4,d6]@2 [e4,e6] [f4,f6]@13]/2", // F E F E D E F
  W: "[[g4,g6]@3 [f4,f6]@3 [g4,g6] [f4,f6] [e4,e6] [d4,d6] [e4,e6] [f4,f6]@4 [d4,d5,d6] [e4,e5,e6] [f4,f5,f6]@5 [g4,g5,g6] [f4,f5,f6]]/2", // G F G F E D E F …
  X: "[e4,e5,e6] [d4,d5,d6] [c5,c6]@2", Y: "[d5,d6] [e5,e6]", Z: "[f5,f6] [e5,e6] [d5,d6] [a4,a5]@3",
  AA: "[[b4,b5]@6 [c5,c6] [b4,b5] [a4,a5]@5 [a4,a5] [b4,b5] [c5,c6] [d5,d6] [e5,e6] [d5,d6]@6]/2", // B C B A B C D E …
  AB: "[e5,e6] [f5,f6]", AC: "[g5,g6]@2 [f5,f6]@2 [e5,e6]@2 [e5,e6]@4 [f5,f6] [e5,e6]", AD: "[[d5,d6]@3 [c5,c6]]/2",
  AE: "[[d5,d6]@3 [d3,d6]]/2", AF: "[e3,e6] [f#3,f#6]", AG: "[a3,a6] [b3,b6]", AH: "[c#4,c#7]@2 [d4,d7] [c#4,c#7]",
  AI: "[b3,b6] [f#3,f#6] [e3,e6]@2", AJ: "[f#3,f#6] [g3,g6]", AK: "[b3,b6] [c#4,c#7]", AL: "[b3,b6]@2 [a3,a6] [g3,g6]",
  AM: "[f#3,f#6] [e3,e6] [d3,d6]@2", AN: "[[f#3,f#6] [e3,e6] [d3,d6]@4 ~@2]/2",
})).s("gm_string_ensemble_1").gain(0.22).pan(0.4)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@27 A@5 B@8 C@4 ~@17 D E@2 F@2 G@4 E@2 F@2 H@4 I@2 J@2 K@4 I@2 J@2 L@5>".pickRestart({
  A: "[~@3 [c4,e4]@2 [d4,f4]@2 [e4,g4]@4 [c4,e4]@2 [b3,d4]@2 [c4,e4]@4 [d4,f4]]/5", // C Dm Em C Bm C Dm
  B: "[~ [e4,g4]@2 [f4,a4]@4 [g4,d5,b5]@8 [c4,e4]@2 [d4,f4]@2 [e4,g4]@4 [c4,e4]@2 [b3,d4]@2 [c4,e4]@4 [d4,f4]]/8", // Em F G C Dm Em C Bm …
  C: "[~@6 [e4,g4]@12 [f4,a4]@24 [g4,d5,b5]@49 ~@5]/4", D: "~ [c4,e4]", E: "[[d4,f4] [e4,g4]@2 [c4,e4]]/2",
  F: "[[b3,d4] [c4,e4]@2 [d4,f4]]/2", G: "[[e4,g4] [f4,a4]@2 [g4,d5,b5]@4 [c4,e4]]/4",
  H: "[[e4,g4] [f4,a4]@2 [g4,d5,b5]@4 [d4,f#4]]/4", I: "[[e4,g4] [f#4,a4]@2 [d4,f#4]]/2",
  J: "[[c#4,e4] [d4,f#4]@2 [e4,g4]]/2", K: "[[f#4,a4] [g4,b4]@2 [a4,e5,c#6]@4 [d4,f#4]]/4",
  L: "[[f#4,a4]@12 [g4,b4]@24 [a4,e5,c#6]@48 [d5,f#5,a5]@25 ~@11]/5", // F#m G A D
})).s("gm_string_ensemble_2").gain(0.24).pan(0.6)

// other · french horn · "FR.HORN"
const french_horn = note("<~@77 A B C D E F G H I B C D E F G H J@2>".pickRestart({
  A: "~ d4", B: "e4 f#4", C: "a4 b4", D: "c#5@2 d5 c#5", E: "b4 f#4 e4@2", F: "f#4 g4", G: "b4 c#5", H: "b4@2 a4 g4",
  I: "f#4 e4 d4@2", J: "[f#4@3 e4@3 d4@13 ~@5]/2",
})).s("gm_french_horn").gain(0.23).pan(0.4)

// chords · piano · "A.PIANO 1"
const piano = note("<~@33 A@3 ~@5 B@3 ~@23 C@3 ~@5 D@3 E F@3 G@4 H@2 I@2 J@2 K@3>".pickRestart({
  A: "[~@64 b3@3 ~@5, ~@18 b6@20 g5@2 d5@2 g5@2 d5@2 b4@2 d5@2 b4@2 g4@2 b4@2 g4@2 d4@2 g4@2 d4@5 ~@5, ~@20 g6@4 g6@43 ~@5, ~@22 d6@4 d6@4 d6@37 ~@5, ~@28 b5@4 b5@2 g5@2 b5@31 ~@5]/3",
  B: "[~@64 [d3,b3]@3 ~@5, ~@18 b6@18 d5@2 [b4,g5]@2 d5@2 [b4,g5]@2 [g4,d5]@2 [d4,b4]@2 [g4,d5]@2 [d4,b4]@2 [b3,g4]@2 [d4,b4]@2 [b3,g4]@2 [g3,d4]@2 [b3,g4]@2 [g3,d4]@5 ~@5, ~@18 d6@4 [g5,d6]@4 [g5,d6]@4 d6@37 ~@5, ~@20 [b5,g6]@4 g6@43 ~@5, ~@24 b5@4 [d5,b5]@2 g5@2 [d5,b5]@2 [b4,g5]@2 b5@31 ~@5]/3", // G Em G5 G G5 G Em G …
  C: "[~@58 [d3,b3]@3 ~@11, ~@12 b6@18 d5@2 [b4,g5]@2 d5@2 [b4,g5]@2 [g4,d5]@2 [d4,b4]@2 [g4,d5]@2 [d4,b4]@2 [b3,g4]@2 [d4,b4]@2 [b3,g4]@2 [g3,d4]@2 [b3,g4]@2 [g3,d4]@5 ~@11, ~@12 d6@4 [g5,d6]@4 [g5,d6]@4 d6@37 ~@11, ~@14 [b5,g6]@4 g6@43 ~@11, ~@18 b5@4 [d5,b5]@2 g5@2 [d5,b5]@2 [b4,g5]@2 b5@31 ~@11]/3", // G Em G5 G G5 G Em G …
  D: "[~@35 [a5,d6], ~@6 b6@6 b6@12 b4 [g4,d5] [d4,b4] [g4,d5] [d4,b4] [b3,g4]@2 [a5,d6] d5 [a5,d6] d5@2, ~@7 g6@2 g6@4 ~@2 g6@21, ~@8 d6@2 d6@2 d6@2 [g5,d6]@2 [g5,d6]@2 d6@3 d5 [b4,g5] [g4,d5] g5@12, ~@11 b5@2 [b5,g6]@2 b5@2 [d5,b5] g5 [d5,b5] [b4,g5] b5@15]/3", // D5 G5 G G5 G Em D5 G5 …
  E: "d5 ~ [a5,d6]@2 ~@2 [a5,d6]@3 ~ [a5,d6]@2 ~@2 f#5@2 d5@2 [a5,d6]@2 d5 ~ [a5,d6]@2, ~@4 d5@5 d5@3 d5@4 ~@8", // D5
  F: "[d5@2 f#5@2 d5@2 [a5,d6]@2 d5@2 d6@2 ~@44 d6@2 [b5,d6]@2 f#5 ~ [b5,e6]@2 e5@2 ~@4 g5@2, ~@10 a5 ~ d5@4 d5@4 d5@4 d5@4 d5@4 d5@6 d5@23 ~@7 e5@4, ~@14 [b5,d6]@8 [b5,d6]@4 [b5,d6]@4 [b5,d6]@4 d6@14 d6@2 f#6@2 [d6,b6]@2 [f#6,d7]@7 ~@11, ~@9 f#5@9 f#5@2 f#5@2 f#5@2 f#5@6 ~@3 g5@2 ~, ~@34 b5@8 b5@4 b5@4 b5@6 b6@5 ~@11]/3", // D5 Bm E5 Bm G D
  G: "[e5 ~ b5@2 e5 ~ [b5,e6]@2 ~@2 b5@2 e5 ~ e6@2 e5 ~@7 e5@2 e6@2 ~@54 c#5@2 ~@4 d5@4 e5@4, ~@4 e5@2 ~@3 b5@4 ~@2 b5@18 c#6 a4 e5 a5 a4@2 e5 a5@2 ~@6, ~@10 e5@2 ~@2 e5@3 e5@3 a4@2 a5@2 a4@2 a5 c#6 a6@14 ~@6, ~@11 e6@2 ~@3 g5@22 c#6@4 ~@6, ~@19 a5@2 e5@2 c#6@2 e5@4 c#6 e6 a5 e6@10 ~@6]/4", // E5
  H: "[f#5@4 a5@4 ~@4 f#6@25 ~@3 e6@2 ~@2 c#6@2 d6@2, ~@8 d6@29 ~@5 d6@4 ~@2]/2",
  I: "[c#6@2 ~@8 b5@2 ~@20 b4@3 ~ [e4,g4]@4 [g4,b4]@2 ~@2 [e4,g4]@4, ~@2 b5@4 b5@4 ~@6 f#5@12 c#5@7 ~@13, ~@4 c#6@9 ~@7 e5@15 ~@13, ~@8 a5@4 a5@23 ~@13, ~@24 d5@11 ~@13]/2", // Em G Em
  J: "[[f#4,a4]@4 [a4,c#5]@3 ~ [f#4,a4]@2 ~@2 [g4,b4]@22 c#5 ~@11 f#5@2, ~@35 e5@12 ~, ~@3 a5, ~@11 g5]/2", // F#m A F#m G
  K: "[~@16 f#4 e4 [d3,d4]@13 ~@5, g5@20 c#5@2 b4@2 c#5@2 b4@2 a4@2 g4@5 ~@37, ~@2 f#5@33 ~@37, ~@4 e5@6 d5@2 e5@23 ~@37, ~@6 d5@2 c#5@6 d5@2 c#5@2 d5@17 ~@37]/3", // D
})).s("gm_piano").gain(0.31)

// chords · epiano1 · "E.PIANO 1"
const epiano1 = note("<~@4 A@4 B@5 C D E F G@2 H I J K L M N O P ~@67>".pickRestart({
  A: "[~@3 [c4,e4,g4]@11 ~ [c4,e4,a4]@9]/4", // C Am
  B: "[~@12 [d4,f4,a4]@42 ~@6 g4@36 [e4,g4,c5]@11 ~ [c5,e5,g5]@12, ~@60 [d4,b4]@47 ~@13]/5", C: "[e5,g5,c6]",
  D: "[e4,a4,c5] [c5,e5,a5]", E: "[e5,a5,c6]", F: "[f4,a4,d5] [d5,f5,a5]",
  G: "[~@2 [g4,b4,d5] [d5,g5,b5], [f5,a5,d6]@3 ~]/2", H: "~ b5@23, [g5,d6]@23 ~", I: "[e5,g5,c6] [g5,c6,e6]", J: "g6",
  K: "[e5,a5,c6] [a5,c6,e6]", L: "a6@23 ~", M: "[d5,f5,a5] [f5,a5,d6]", N: "[d6,f6]", O: "[d5,g5,b5] [g5,b5,d6]",
  P: "[b5,d6,g6]@2 ~", // G
})).s("gm_epiano1").gain(0.23).pan(0.3)

// other · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  ~@4 A@4 B@4 A@4 B@4 C@4 D@2 E@6 F@8 G@4 ~ H@8 I@8 J K@2 L@2 M@4 K@2 L@2 N@4 O@2 P@2 Q@4 O@2 P@2 R@5
>`.pickRestart({
  A: "[c4,e4]/4", B: "[f4@48 g4@47 ~, d4@95 ~]/4", C: "[g4@47 ~ a4@47 ~, e4]/4", D: "[f4,a4]/2",
  E: "[[g4,b4]@41 ~ c4@12 d4@11 ~ e4@23 ~ a4@11 ~ b4@11 ~ c5@24 f4@6]/6", // G
  F: "[~@6 g4@11 ~ a4@24 b4@47 ~ c4@12 d4@11 ~ e4@23 ~ a4@11 ~ b4@11 ~ c5@24 f4@6]/8",
  G: "[~@6 g4@11 ~ a4@24 b4@47 ~@7]/4", H: "[~@3 [c4,e4]@16 f4@8 g4@5, ~@19 d4@13]/8",
  I: "[~@18 [e4,g4]@47 ~ [e4,a4]@47 ~ [f4,a4]@48 [g4,b4]@30]/8", J: "~ c4", K: "[d4@11 ~ e4@23 ~ a4@11 ~]/2",
  L: "[b4@11 ~ c5@24 f4@11 ~]/2", M: "[g4@11 ~ a4@24 b4@47 ~ c4@12]/4", N: "[g4@11 ~ a4@24 b4@47 ~ d4@12]/4",
  O: "[e4@11 ~ f#4@23 ~ b4@11 ~]/2", P: "[c#5@11 ~ d5@24 g4@11 ~]/2", Q: "[a4@11 ~ b4@24 c#5@47 ~ d4@12]/4",
  R: "[a4@11 ~ b4@24 c#5@47 ~ d5@25 ~@11]/5",
})).s("gm_synth_strings_1").gain(0.27).pan(0.6)

// chords · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note("<~@46 A B C ~ D E F G H I J K L M N O ~@33>".pickRestart({
  A: "~@6 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,e4]@2 ~@10, ~@12 c4 ~@11", // C
  B: "~@18 c4@2 [a3,d4] ~ [a3,c4,e4] ~, ~@18 a3 ~@5", // D5 Am
  C: "[a3,c4,e4] ~@5 [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4]@2 ~@10", // Am
  D: "~@6 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4]@2 ~@10", E: "~@18 [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~",
  F: "[b3,d4,g4]@2 ~@4 [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,g4] ~@11, ~@6 d4 ~@5", // G Em
  G: "~@18 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~", // C
  H: "[g3,c4,e4] ~@5 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~@5 [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~", // C
  I: "[g4,c5,e5] ~@17 [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~", // C Am
  J: "[a3,c4,e4] ~@5 [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~@5 [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~", // Am
  K: "[a4,c5,e5] ~@17 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~", // Am Dm
  L: "[a3,d4] ~@5 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~@5 [a4,d5,f5] ~ [a4,d5,f5] ~ [a4,d5,f5] ~, f4 ~@11", // D5 Dm
  M: "[a4,d5,f5] ~@17 [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~", // Dm G
  N: "[d4,g4,b4] ~@5 [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~@5 [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // G G5 G
  O: "[b4,d5,g5] ~@11", // G
})).s("gm_synth_brass_1").gain(0.21).pan(0.4)

// drums · kick
const kick = s("bd").struct("<[x!2]!27 [x ~@2 x] [~ x ~ x]!7 [~@3 x] [~ x ~ x]!25 [~ x] [x!2]!32 ~>").gain(0.52)

// drums · snare
const snare = s("sd").struct("<A@27 B C@7 D C@25 E A@7 F A@7 G A@7 H A@6 I ~@2>".pickRestart({
  A: "~ x ~ x", B: "~ x", C: "x!2", D: "x ~@3 x!5 ~@3", E: "~@3 x!3 ~@3 x ~@2", F: "~@2 x!4 ~@3 x ~@2",
  G: "~ x!2 ~ x!2 ~@3 x ~@2", H: "~@2 x!2 ~@5 x ~@2", I: "~ x ~@2",
})).gain(0.46)

// drums · low tom
const low_tom = s("lt").struct("<~@27 A ~@7 B ~@25 C ~@7 D ~@7 E ~@7 D ~@6 F G ~>".pickRestart({
  A: "~@5 x ~ x!2 ~@3", B: "~@4 x!5 ~@3", C: "~ x ~@4", D: "~@4 x!2 ~@6", E: "~ x ~@2", F: "~@11 x", G: "~@5 x ~@6",
})).gain(0.46)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@27 [~@3 x!2 ~@7] ~@33 [x!2 ~@10] ~@30 [~@5 x] [~@3 x!2 ~@7] ~>").gain(0.46)

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

// drums · crash
const crash = s("cr").struct("<~@27 A ~@7 A ~@7 A ~@17 B ~@7 B ~@7 B ~@7 B ~@6 B C ~>".pickRestart({
  A: "~@3 x", B: "~ x", C: "x",
})).gain(0.35)

// drums · high tom
const high_tom = s("ht").struct("<~@93 [~ x ~@4] ~>").gain(0.4)

// drums · cabasa
const cabasa = s("cabasa:4").struct(`<
  ~@12 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 N AB S AC AD ~ AE AF AG AH AI AJ AK S Q AL AM AN N Z AC AL
  N AO AP AQ AR W@3 AS S W AT AU W AV AW AX AW N AY W AZ N@2 BA S N AU AV N@2 BB BC ~
>`.pickRestart({
  A: "~@7 x ~ x ~ x", B: "~@3 x ~@5 x ~ x", C: "~ x ~@4 x ~@4 x", D: "~@3 x!4 ~ x ~ x!2", E: "x ~ x!3 ~ x ~ x ~@3",
  F: "~@2 x!3 ~ x ~ x ~@3", G: "x ~ x!3 ~ x ~ x ~ x ~", H: "x ~ x", I: "x ~@2 x!4 ~ x ~ x ~", J: "x ~ x!2 ~ x!3 ~ x!3",
  K: "~@3 x ~@2 x ~@3 x!2", L: "x!6 ~ x!3 ~ x", M: "~@2 x!2 ~ x ~@3 x!3", N: "x!12", O: "x!2 ~ x!5 ~ x!3",
  P: "x!2 ~ x!2 ~ x ~@2 x ~ x", Q: "x ~@2 x ~ x!7", R: "~ x!5 ~ x!5", S: "x!4 ~ x!7", T: "~ x ~ x ~ x!7",
  U: "x!4 ~ x ~ x ~ x ~ x", V: "x!4 ~ x ~ x ~ x!3", W: "x!10 ~ x", X: "~ x ~ x ~@5 x!3", Y: "x!4 ~ x ~ x!2 ~ x!2",
  Z: "x!6 ~ x ~ x!2 ~", AA: "x!4 ~ x ~@2 x!3 ~", AB: "x!4 ~ x ~ x!4 ~", AC: "x!4 ~ x ~ x!5", AD: "x ~ x!7 ~@3",
  AE: "~@5 x", AF: "x ~@2 x!2 ~ x ~ x ~ x ~", AG: "x!11 ~", AH: "x!2 ~ x ~ x!2 ~@2 x!3", AI: "x!4 ~ x!3 ~ x ~ x",
// … 25 more lines

More by Romina Power Al Bano