Strudelify

Domani, domani

Romina Power Al Bano

KeyE♭ majorTempo120 bpm
0:00/0:00
// Domani, domani — Romina Power Al Bano
// 120 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 91 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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.

// chords · synth strings 1 · "Domani Do"
const synth_strings_1 = note(`<
  ~ A@2 B@6 C D E F G@2 H@2 I@3 J K L M@2 N@3 O@4 P Q R@2 S T@2 U@2 T@2 V@4 W X Y Z AA@2 AB@3 AC@4 P AD AE Q AF AG@3 AH
  AI AJ AK AL AM@3 AN@4 AO AP AQ AR AS@2 AT@2 AU AV ~
>`.pickRestart({
  A: "[g4@8 bb4@8 [c4,ab4]@8 ~@4 d4@3 ~, eb4@7 ~, bb3@15 ~@9 [bb3,f4]@8]/2", // Fm Bb5
  B: "[g4@8 bb4@7 ~ [c4,ab4]@8 ~@4 d4 ~ [c4,eb4,g4]@12 [bb3,d4,f4]@4 [ab3,eb4]@10 f4@8 [g3,eb4]@31 ~, eb4@28 ~@28 bb3@39 ~, bb3@15 ~@9 [bb3,f4]@6 ~@16 c4@17 ~@33]/6", // Fm Cm Bb Ab5 Cm Bb5
  C: "[g3,bb3,eb4]@15 ~", D: "[g3,bb3,d4]", E: "[ab3,c4,eb4]@15 ~", F: "eb4@7 d4@8 ~, [bb3,f4]",
  G: "[eb4 d4, [g3,bb3]]/2", H: "[[ab3,c4]@8 ~@3 d4@4 ~, eb4@23 ~@9, ~@16 [bb3,f4]@15 ~]/2",
  I: "[db4@8 ~@8 b3@7 ~, gb4@47 ~, bb3@31 ~@17, ~@16 eb4@31 ~]/3", J: "[ab3,db4,f4]", K: "eb4 d4, [g3,bb3]@15 ~",
  L: "ab3@8 [gb3,a3]@7 ~, [c4,eb4]@15 ~", M: "[eb4@16 d4@9 ~@7, [f3,bb3]@25 ~@7]/2",
  N: "[bb3 ~ ab4, eb4, g4@31 ~@17, ~@16 c4@31 ~]/3",
  O: "[[d4,f4] ~@2 ab4, bb3@31 ~ c4@31 ~, ~@16 eb4@47 ~, ~ g4@2 ~]/4", P: "[bb3,d4,f4]", Q: "eb4@8 d4@7 ~, [bb3,g4]",
  R: "[[c4,eb4,ab4]@8 [d4,f4]@8 eb4@7 ~ d4@7 ~, ~@8 bb3@23 ~, ~ g4]/2", S: "[c4,ab4]@8 [bb3,d4,f4]@7 ~, eb4@3 ~@5",
  T: "[eb4 d4, [g3,bb3]@31 ~]/2", U: "[[ab3,c4]@15 ~@9 d4@7 ~, eb4@3 ~, ~@16 [bb3,f4]@15 ~]/2",
  V: "[[ab3,c4]@15 ~@9 d4@6 ~@2 db4@16 eb4@15 ~, eb4@3 ~@5, ~@16 bb3@47 ~, ~@16 f4@15 ~ gb4@31 ~]/4", // Ab
  W: "[eb4,gb4], b3@7 ~", X: "[ab3,db4,f4]@15 ~", Y: "eb4@8 d4@7 ~, [g3,bb3]@15 ~", Z: "ab3 [gb3,a3], [c4,eb4]",
  AA: "[eb4@16 d4@9 ~@7, [f3,bb3]@3 ~]/2", AB: "[bb3@15 ~@17 ab4@16, eb4@23 ~, g4@2 ~, ~@8 c4@15 ~]/3",
  AC: "[[f4,bb4] ~ c4 [c4,ab4], bb3@31 ~@33, d4@14 ~@2 eb4@47 ~, ~ g4@2 ~]/4", AD: "eb4@7 ~ d4@7 ~, [bb3,g4]",
  AE: "[c4,eb4,ab4] [bb3,f4,bb4], ~@4 d4@3 ~", AF: "[c4,eb4,ab4]@8 [d4,f4,bb4]@7 ~",
  AG: "[[c4,eb4,ab4] f4 [g3,bb3,eb4,g4], ab3@31 ~@17, ~@8 bb4@15 ~, ~@8 d4@7 ~@9]/3", // Ab Eb
  AH: "[ab3,c4,eb4,ab4]@5 [bb3,eb4,g4]@3", AI: "[f3,ab3,c4,f4]", AJ: "[g3,c4,eb4,g4]", AK: "[bb3,eb4,f4]@15 ~",
  AL: "f4 e4@2 ~, [c4,g4]@3 ~", AM: "[c4@14 ~@18 [bb3,bb4]@15 ~, f4, a3@5 ~@3, ~@8 d4@15 ~]/3",
  AN: "[[e4,g4]@15 ~@33 [bb3,bb4]@15 ~, c4@16 d4@15 ~, ~ f4@3, ~@16 a4@31 ~@17]/4", AO: "[e4,g4], c4@7 ~",
  AP: "f4@8 e4@7 ~, [c4,a4]", AQ: "[d4,f4,bb4]@7 ~ [c4,e4,g4]@8", AR: "f4@7 ~ e4@7 ~, [c4,a4]",
  AS: "[[d4,f4,bb4]@7 ~ [e4,g4]@8 f4@8 e4@7 ~, ~@8 c4@23 ~, ~ a4]/2", // Bb Em
  AT: "[[d4,f4,bb4]@7 ~ [e4,g4]@8 f4@8 e4@7 ~, ~@8 c4@23 ~, ~@16 a4@15 ~]/2", AU: "[bb3,f4,bb4] [c4,e4,g4], d4@3 ~@5",
  AV: "[f3,a3,c4,f4]", // F
})).s("gm_synth_strings_1").gain(0.3)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@9 A B C D E F C D G@2 H I J K L M N O P Q N O P Q R S R T A B C D E F C D G@2 H I J K L M N O P Q N O P Q R S R T U
  V W X Y Z AA AB AC AD AE AF AC AD AE AF AG AH AG AH AG AH AG AH AI ~
>`.pickRestart({
  A: "~@2 bb3 ~ f4@2 eb4 ~ g4 ~@7", B: "~@2 bb3 ~ f4@2 eb4 ~ g4@2 ~@6", C: "~@2 c4@2 f4@2 eb4 ~ g4@2 ~@6",
  D: "~@2 [bb3,eb4,f4] ~ [bb3,eb4,f4] ~ [bb3,eb4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // Bbsus4 Bb
  E: "~@2 bb3@2 f4@2 eb4 ~ g4 ~@7", F: "~@2 bb3@2 f4@2 eb4@2 g4@3 ~@5", G: "[bb4@31 ~]/2", H: "b4", I: "ab4@13 ~@3",
  J: "[eb4,g4,bb4,eb5] ~ [eb4,g4,bb4,eb5] ~ [eb4,g4,bb4,eb5] ~ [eb4,g4,bb4,eb5] ~ [d4,g4,bb4,d5] ~ [d4,g4,bb4,d5] ~ [d4,g4,bb4,d5] ~ [d4,g4,bb4,d5] ~", // Eb Gm
  K: "[c4,eb4,ab4,c5] ~ [c4,eb4,ab4,c5] ~ [c4,eb4,ab4,c5] ~ [c4,eb4,ab4,c5] ~ [eb4,gb4,a4,c5] ~ [eb4,gb4,a4,c5] ~ [eb4,gb4,a4,c5] ~ [eb4,gb4,a4,c5] ~", // Ab Ebdim
  L: "[eb4,f4,bb4,eb5] ~ [eb4,f4,bb4,eb5] ~ [eb4,f4,bb4,eb5] ~ [eb4,f4,bb4,eb5] ~ [eb4,f4,bb4,eb5] ~ [eb4,f4,bb4,eb5] ~ [eb4,f4,bb4,eb5] ~ [eb4,f4,bb4,eb5] ~", // Ebsus2
  M: "[d4,f4,bb4,d5] ~@3 [d4,f4,bb4,d5] ~@11", // Bb
  N: "[g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~", // Eb
  O: "[g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~", // Cm
  P: "[ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~", // Ab
  Q: "[f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~", // Bb
  R: "[g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,d4] ~ [g3,bb3,d4] ~ [g3,bb3,d4] ~ [g3,bb3,d4] ~", // Eb Gm
  S: "[ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [bb3,f4] ~ [bb3,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // Ab Bb5 Bb
  T: "[ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [f3,bb3] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~", // Ab Bb5 Bb
  U: "[c4,ab4,eb5] ~ [c4,ab4,eb5] ~ [c4,ab4,eb5] ~ [c4,ab4,eb5] ~ [c4,ab4,eb5] ~ [c4,ab4,eb5] ~ [c4,ab4,eb5] ~ [c4,ab4,eb5] ~", // Ab
  V: "[d4,bb4,f5] ~ [d4,bb4,f5] ~ [d4,bb4,f5] ~ [d4,bb4,f5] ~ [d4,bb4,f5] ~ [d4,bb4,f5] ~ [d4,bb4,f5] ~ [d4,bb4,f5] ~", // Bb
  W: "[eb4,bb4,g5] ~ [eb4,bb4,g5] ~ [eb4,bb4,g5] ~ [eb4,bb4,g5] ~ [eb4,bb4,g5] ~ [eb4,bb4,g5] ~ [eb4,bb4,g5] ~ [eb4,bb4,g5] ~", // Eb
  X: "[eb4,c5,ab5] ~ [eb4,c5,ab5] ~ [eb4,c5,ab5] ~ [eb4,c5,ab5] ~ [eb4,c5,ab5] ~ [eb4,bb4,g5]@3 ~ [c4,ab4,f5]@2", // Ab Eb Fm
  Y: "~@2 [c4,ab4,f5] ~ [c4,ab4,f5] ~ [c4,ab4,f5] ~ [c4,ab4,f5] ~ [c4,ab4,f5] ~ [c4,ab4,f5] ~ [c4,ab4,f5] ~", // Fm
  Z: "[c4,g4,eb5] ~ [c4,g4,eb5] ~ [c4,g4,eb5] ~ [c4,g4,eb5] ~ [c4,g4,eb5] ~ [c4,g4,eb5] ~ [c4,g4,eb5] ~ [c4,g4,eb5] ~", // Cm
  AA: "[f4,bb4,eb5,f5] ~ [f4,bb4,eb5,f5] ~ [f4,bb4,eb5,f5] ~ [f4,bb4,eb5,f5] ~ [f4,bb4,eb5,f5] ~ [f4,bb4,eb5,f5] ~ [f4,bb4,eb5,f5] ~ [f4,bb4,eb5,f5] ~", // Ebsus2
  AB: "[g4,c5,f5,g5] ~ [g4,c5,f5,g5] ~ [g4,c5,g5]@9 ~@3, ~ e5 ~@2", // Csus4 C5
  AC: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  AD: "[a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~", // Dm
  AE: "[bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // Bb
  AF: "[c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~", // C
  AG: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [bb3,d4,f4] ~", // F Am Bb
  AH: "[bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~", // Bb C
  AI: "[f3,a3,f4]", // F
})).s("gm_string_ensemble_1").gain(0.5)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~ A@2 B@4 C ~@16 D E F G H E F G I J@4 ~@15 D E F G H E F G I J@4 G@2 K L M N H O P Q H F P R H F S T U V W@2 X T ~@2
>`.pickRestart({
  A: "[ab4 g4 eb4 bb3@2 eb4 f4 ab3@6 ~@3]/2",
  B: "[ab4@2 g4@2 eb4@2 bb3@4 eb4@2 f4@2 ab3@9 ~ f4@2 eb4@2 d4@2 eb4@11 ~ g4@4 ab4@4 g4@2 f4@2 eb4@2 f4@3 ~ f4@4]/4",
  C: "eb4", D: "[bb2,f3]@2 ~@2 [bb2,f3]@3 ~@9", E: "eb3 ~ eb3!3 ~ eb3!3 ~ eb3!3 ~ eb3!2",
  F: "c4 ~ c4!3 ~ c4!3 ~ c4!3 ~ c4!2", G: "ab3 ~ ab3!3 ~ ab3!3 ~ ab3!3 ~ ab3!2",
  H: "bb3 ~ bb3!3 ~ bb3!3 ~ bb3!3 ~ bb3!2", I: "bb3 ~ bb3!3 ~ bb3!3 ~ bb3!3 ~ bb3 ~",
  J: "[eb3 ~ eb3!3 ~ [eb3,bb3]@2 c4@2 eb4@2 eb4 ~ eb4@19 ~@5 bb3@2 c4@2 eb4@3 ~ eb4@16 ~@2]/4", // Eb5
  K: "g3 ~ g3!3 ~ g3!3 ~ g3!3 ~ g3!2", L: "ab3 ~ ab3!3 ~ ab3!2 ab3@2 g3@4 f3@2", M: "~@2 f3!3 ~ f3!3 ~ f3!3 ~ f3!2",
  N: "c3 ~ c4!3 ~ c4!3 ~ c4!3 ~ c4!2", O: "[g3,c4] ~@3 [g3,c4]@5 ~@7", P: "f3 ~ f3!3 ~ f3!3 ~ f3!3 ~ f3!2",
  Q: "d3 ~ d3!3 ~ d3!3 ~ d3!3 ~ d3!2", R: "d4 ~ d4!3 ~ d4!3 ~ d4!3 ~ d4!2", S: "f3 ~ f3 ~ f3 ~ f3 ~@3 c4@2 d4@2 f4@2",
  T: "~ f4@7", U: "f3 ~ f3!3 ~ f3@2 c4@2 d4@2 f4 ~ f4@2", V: "~@2 f4@12 d4 c4",
  W: "[f3 ~ f3!2 f3@2 c4@2 d4@2 f4@3 ~ f4@4 f4@12 d4 c4]/2", X: "f3 ~ f3!3 ~ c4@2 d4@2 f4@3 ~ f4@2",
})).s("gm_overdriven_guitar").gain(0.45)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~ A B C D E F G H I J K L I M K N O P Q R S T U V W X K Y Z AA AB Y AC AD AE AF I J K L I M K N O P Q R S T U V W X K
  Y Z AA AB Y AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AH AQ AR AS AH AT AU AV AW AX AY AX AW AX AZ ~
>`.pickRestart({
  A: "[bb3,eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5] ~@3 [bb3,eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5]@2 ~@2 [bb3,eb4,g4,bb4,eb5] ~", // Eb
  B: "[ab3,eb4,ab4,c5,eb5] ~ [ab3,eb4,ab4,c5,eb5]@2 ~@2 [ab3,eb4,ab4,c5,eb5] ~ [bb3,f4,bb4,eb5] ~ [bb3,f4,bb4,eb5] ~ [bb3,f4,bb4,d5]@3 ~", // Ab Bbsus4 Bb
  C: "[eb4,g4,bb4,eb5] ~ [eb4,g4,bb4,eb5]@2 ~@2 [bb3,eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5]@2 ~@2 [bb3,eb4,g4,bb4,eb5] ~", // Eb
  D: "[ab3,eb4,ab4,c5,eb5] ~ [ab3,eb4,ab4,c5,eb5]@3 ~ [ab3,eb4,ab4,c5,eb5] ~ [bb3,f4,bb4,eb5] ~ [bb3,f4,bb4,eb5] ~ [bb3,f4,bb4,d5] ~ [c4,eb4,g4,c5]@2", // Ab Bbsus4 Bb Cm
  E: "~@2 [c4,eb4,g4,c5]@3 ~ [c4,eb4,g4,c5] ~ [c4,eb4,g4,c5] ~ [bb3,f4,bb4,d5]@3 ~ [ab3,eb4,ab4,c5]@2", // Cm Bb Ab
  F: "~@2 [ab3,eb4,ab4,c5] ~ [ab3,ab4,c5]@4 [f4,bb4,c5] ~ [f4,bb4,c5]@3 ~ [f4,bb4,c5] ~, ~@2 eb4 ~@5", // Ab Fsus4
  G: "[eb4,g4,bb4,eb5] ~ [eb4,g4,bb4,eb5]@2 ~@2 [eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5]@3 ~ [bb3,eb4,g4,bb4,eb5] ~", // Eb
  H: "[bb3,eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5]@3 ~ [bb3,eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5]@2 ~@2 [bb3,eb4,g4,bb4,eb5] ~", // Eb
  I: "[bb3,eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5]@3 ~ [bb3,eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5]@3 ~ [bb3,eb4,g4,bb4,eb5] ~", // Eb
  J: "[d4,g4,bb4,d5] ~ [d4,g4,bb4,d5]@3 ~ [d4,g4,bb4,d5] ~ [d4,g4,bb4,d5] ~ [d4,g4,bb4,d5]@3 ~ [d4,g4,bb4,d5] ~", // Gm
  K: "[eb4,ab4,c5,eb5] ~ [eb4,ab4,c5,eb5]@3 ~ [eb4,ab4,c5,eb5] ~ [eb4,ab4,c5,eb5] ~ [eb4,ab4,c5,eb5]@3 ~ [eb4,ab4,c5,eb5] ~", // Ab
  L: "[eb4,f4,bb4,eb5] ~ [eb4,f4,bb4,eb5]@3 ~ [d4,f4,bb4,d5] ~ [d4,f4,bb4,d5] ~ [d4,f4,bb4,d5]@3 ~ [d4,f4,bb4,d5] ~", // Ebsus2 Bb
  M: "[bb3,d4,g4,bb4,d5] ~ [bb3,d4,g4,bb4,d5]@3 ~ [bb3,d4,g4,bb4,d5] ~ [bb3,d4,g4,bb4,d5] ~ [bb3,d4,g4,bb4,d5]@3 ~ [bb3,d4,g4,bb4,d5] ~", // Gm
  N: "[bb3,eb4,f4,bb4,eb5] ~ [bb3,eb4,f4,bb4,eb5]@2 ~@2 [bb3,d4,f4,bb4,d5] ~ [bb3,d4,f4,bb4,d5] ~ [bb3,d4,f4,bb4,d5]@3 ~ [bb3,d4,f4,bb4,d5] ~", // Bbsus4 Bb
  O: "[bb3,eb4,gb4,bb4,db5] ~ [gb4,bb4,db5]@3 ~ [db4,gb4,bb4,db5] ~ [db4,gb4,bb4,db5] ~ [db4,gb4,bb4,db5]@3 ~ [db4,gb4,bb4,db5] ~", // Ebm7 Gb
  P: "[eb4,gb4,bb4,eb5] ~ [eb4,gb4,bb4,eb5]@3 ~ [eb4,gb4,bb4,eb5] ~ [eb4,gb4,bb4,eb5] ~ [eb4,gb4,bb4,eb5]@3 ~ [eb4,gb4,bb4,eb5] ~", // Ebm
  Q: "[b3,gb4,b4,eb5] ~ [b3,gb4,b4,eb5]@3 ~ [b3,gb4,b4,eb5] ~ [b3,gb4,b4,eb5] ~ [b3,gb4,b4,eb5]@3 ~ [b3,gb4,b4,eb5] ~", // B
  R: "[db4,f4,ab4,db5] ~ [db4,f4,ab4,db5]@3 ~ [db4,f4,ab4,db5] ~ [db4,f4,ab4,db5] ~ [db4,f4,ab4,db5]@3 ~ [db4,f4,ab4,db5] ~", // Db
  S: "[bb3,eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5]@3 ~ [eb4,g4,bb4,eb5] ~ [d4,g4,bb4,d5] ~ [d4,g4,bb4,d5]@3 ~ [d4,g4,bb4,d5] ~", // Eb Gm
  T: "[eb4,ab4,c5,eb5] ~ [eb4,ab4,c5,eb5]@3 ~ [eb4,ab4,c5,eb5] ~ [eb4,gb4,a4,c5,eb5] ~ [eb4,gb4,a4,c5,eb5]@3 ~ [eb4,gb4,a4,c5,eb5] ~", // Ab Ebdim
  U: "[f4,bb4,eb5] ~ [f4,bb4,eb5]@3 ~ [f4,bb4,eb5] ~ [eb4,f4,bb4,eb5] ~ [eb4,f4,bb4,eb5]@3 ~ [eb4,f4,bb4,eb5] ~", // Ebsus2
  V: "[bb3,d4,f4,bb4,d5] ~ [bb3,d4,f4,bb4,d5]@2 ~@4", // Bb
  W: "[bb3,eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5]@3 ~ [bb3,eb4,g4,bb4,eb5]@3 ~ [bb3,eb4,g4,bb4,eb5]@3 ~ [bb3,eb4,g4,bb4,eb5] ~", // Eb
  X: "~@2 [c4,g4,c5,eb5]@3 ~ [c4,g4,c5,eb5]@3 ~ [c4,g4,c5,eb5]@3 ~ [c4,g4,c5,eb5] ~", // Cm
  Y: "[d4,f4,bb4,d5] ~ [d4,f4,bb4,d5]@3 ~ [d4,f4,bb4,d5] ~ [d4,f4,bb4,d5] ~ [d4,f4,bb4,d5]@3 ~ [d4,f4,bb4,d5] ~", // Bb
  Z: "[eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5]@3 ~ [bb3,eb4,g4,bb4,eb5]@2 ~@2 [bb3,eb4,g4,bb4,eb5]@3 ~ [eb4,g4,bb4,eb5]@2", // Eb
  AA: "[c4,g4,c5,eb5] ~ [c4,g4,c5,eb5]@3 ~ [c4,g4,c5,eb5]@3 ~ [c4,g4,c5,eb5]@3 ~ [c4,g4,c5,eb5] ~", // Cm
  AB: "[c4,eb4,ab4,c5,eb5] ~ [c4,eb4,ab4,c5,eb5]@3 ~ [c4,eb4,ab4,c5,eb5] ~ [c4,eb4,ab4,c5,eb5] ~ [c4,eb4,ab4,c5,eb5]@3 ~ [c4,eb4,ab4,c5,eb5] ~", // Ab
  AC: "[eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5]@3 ~ [eb4,g4,bb4,eb5] ~ [d4,g4,bb4,d5] ~ [d4,g4,bb4,d5]@3 ~ [d4,g4,bb4,d5] ~", // Eb Gm
  AD: "[eb4,ab4,c5,eb5] ~ [eb4,ab4,c5,eb5]@3 ~ [eb4,ab4,c5,eb5] ~ [d4,f4,bb4,d5] ~ [d4,f4,bb4,d5]@3 ~ [d4,f4,bb4,d5] ~", // Ab Bb
  AE: "[bb3,eb4,g4,bb4,eb5] ~ [bb3,eb4,g4,bb4,eb5]@3 ~ [bb3,eb4,g4,bb4,eb5]@2 [d4,g4,bb4,d5] ~ [d4,g4,bb4,d5]@3 ~ [d4,g4,bb4,d5] ~", // Eb Gm
  AF: "[eb4,ab4,c5,eb5] ~ [eb4,ab4,c5,eb5]@3 ~ [eb4,ab4,c5,eb5] ~ [d4,f4,bb4,d5] ~ [f4,bb4,d5]@3 ~ [f4,bb4,d5] ~", // Ab Bb
  AG: "[eb4,ab4,c5,eb5] ~ [eb4,ab4,c5,eb5]@2 ~@2 [eb4,ab4,c5,eb5] ~ [eb4,ab4,c5,eb5] ~ [eb4,ab4,c5,eb5]@3 ~ [eb4,ab4,c5,eb5] ~", // Ab
  AH: "[f4,bb4,d5,f5] ~ [f4,bb4,d5,f5]@3 ~ [f4,bb4,d5,f5] ~ [f4,bb4,d5,f5] ~ [f4,bb4,d5,f5]@3 ~ [f4,bb4,d5,f5] ~", // Bb
  AI: "[eb4,g4,bb4,eb5] ~ [eb4,g4,bb4,eb5]@3 ~ [eb4,g4,bb4,eb5] ~ [eb4,g4,bb4,eb5] ~ [eb4,g4,bb4,eb5]@3 ~ [eb4,g4,bb4,eb5] ~", // Eb
  AJ: "[ab3,eb4,ab4,c5,eb5] ~ [ab3,eb4,ab4,c5,eb5]@3 ~ [ab3,eb4,ab4,c5,eb5] ~ [ab3,eb4,ab4,c5,eb5] ~ [g3,g4,bb4,eb5]@3 ~ [f3,f4,ab4,c5,eb5]@2", // Ab Eb Fm7
  AK: "~@2 [f3,f4,ab4,c5] ~ [f3,f4,ab4,c5]@3 ~ [f3,f4,ab4,c5] ~ [f3,f4,ab4,c5] ~@3 [f3,f4,ab4,c5]@2", // Fm
  AL: "[c4,eb4,g4,c5] ~ [c4,eb4,g4,c5]@3 ~ [c4,eb4,g4,c5] ~ [c4,eb4,g4,c5] ~ [c4,eb4,g4,c5]@3 ~@3", // Cm
  AM: "[f4,bb4,eb5,f5] ~ [f4,bb4,eb5,f5]@3 ~ [f4,bb4,eb5,f5] ~ [f4,bb4,eb5,f5] ~ [f4,bb4,eb5,f5]@3 ~ [f4,bb4,eb5,f5] ~", // Ebsus2
  AN: "[g4,c5,f5,g5] ~@3 [g4,c5,e5,g5]@8 ~@4", // Csus4 C
  AO: "[f4,a4,c5,f5] ~ [f4,a4,c5,f5]@3 ~ [f4,a4,c5,f5] ~ [f4,a4,c5,f5] ~ [f4,a4,c5,f5]@2 ~@2 [f4,a4,c5,f5]@2", // F
  AP: "[d4,a4,d5,f5] ~ [d4,a4,d5,f5]@2 ~@2 [d4,a4,d5,f5] ~@3 [d4,a4,d5,f5]@3 ~ [d4,a4,d5,f5] ~", // Dm
  AQ: "~@2 [g4,c5,f5]@2 ~@2 [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5]@3 ~ [g4,c5] ~", // Csus4 C C5
  AR: "[f4,a4,c5,f5] ~ [f4,a4,c5,f5]@3 ~ [f4,a4,c5,f5] ~ [f4,a4,c5,f5] ~ [f4,a4,c5,f5]@3 ~ [f4,a4,c5,f5] ~", // F
  AS: "[d4,a4,d5,f5] ~ [d4,a4,d5,f5]@3 ~ [d4,a4,d5,f5] ~ [d4,a4,d5,f5] ~ [d4,a4,d5,f5]@3 ~ [d4,a4,d5,f5] ~", // Dm
  AT: "[c4,g4,c5,e5] ~ [c4,g4,c5,e5]@3 ~ [c4,g4,c5,e5] ~ [c4,g4,c5,e5] ~ [c4,g4,c5,e5]@3 ~ [c4,g4,c5,e5] ~", // C
  AU: "[f4,a4,c5,f5] ~ [f4,a4,c5,f5]@3 ~ [f4,a4,c5,f5] ~ [e4,a4,c5,e5] ~ [e4,a4,c5,e5]@3 ~ [e4,a4,c5,e5] ~", // F Am
  AV: "[d4,f4,bb4,d5] ~ [d4,f4,bb4,d5]@3 ~ [d4,f4,bb4,d5]@2 ~@2 [c4,g4,c5,e5]@3 ~ [c4,g4,c5,e5] ~", // Bb C
  AW: "[f4,a4,c5,f5] ~ [f4,a4,c5,f5]@3 ~ [f4,a4,c5,f5] ~ [e4,a4,c5,e5] ~ [e4,a4,c5,e5]@2 ~@2 [e4,a4,c5,e5] ~", // F Am
  AX: "[d4,f4,bb4,d5] ~ [d4,f4,bb4,d5]@3 ~ [d4,f4,bb4,d5] ~ [c4,g4,c5,e5] ~ [c4,g4,c5,e5]@3 ~ [c4,g4,c5,e5] ~", // Bb C
  AY: "[eb4,f4,a4,c5,f5] ~ [f4,a4,c5,f5]@3 ~ [f4,a4,c5,f5]@2 [e4,a4,c5,e5] ~ [e4,a4,c5,e5]@3 ~ [e4,a4,c5,e5] ~", // F7 F Am
  AZ: "[f3,c4,a4,c5,f5] ~ [f3,c4,a4,c5,f5]@14", // F
})).s("gm_electric_guitar_clean").gain(0.3).pan(0.4)

// bass · electric bass finger
const bass = note(`<
  ~ A B C D@3 E F G H I J K L M J N K O P A Q R S T U V W T X V W Y Z AA AB G H I J K L M J N K O P A Q R S T U V W T X
  V W Y Z AA AB AC AD AE AF AG X AH AI AG AJ W X AK AJ W X AL AM AL AM AN AO AL AO AP ~
>`.pickRestart({
  A: "eb1@5 ~ eb1@2 g1@5 ~ g1@2", B: "ab1@4 ~@2 ab1@2 bb1@5 ~ bb1@2", C: "eb2@5 ~ eb2@2 g1@5 ~ g1@2",
  D: "[ab1@5 ~ ab1 ~ bb1@5 ~ c2@7 ~ c2 ~ c2@2 bb1@4 ab1@7 ~ ab1@2 f1@3 ~ f1@4]/3", E: "eb1@5 ~ eb1 ~ eb1@5 ~ eb1 ~",
  F: "eb1@5 ~ eb1 ~ eb1@4 ~@4", G: "eb1@4 ~@2 eb1 ~ eb1@7 ~", H: "g1@5 ~ g1 ~ g1@5 ~ g1@2",
  I: "ab1@5 ~ ab1 ~ ab1@5 ~ ab1 ~", J: "bb1@5 ~ bb1 ~ bb1@5 ~ bb1@2", K: "eb1@5 ~ eb1 ~ eb1@5 ~ eb1@2",
  L: "g1@5 ~ g1 ~ g1@5 ~ g1 ~", M: "ab1@5 ~ ab1 ~ ab1@5 ~ ab1@2", N: "gb1@4 ~@2 gb1 ~ gb1@5 ~ gb1@2",
  O: "b1@5 ~ b1 ~ b1@5 ~ b1@2", P: "db2@5 ~ db2 ~ db2@5 ~ db2@2", Q: "ab1@5 ~ ab1@2 a1@5 ~ a1@2",
  R: "bb1@5 ~ bb1 ~ bb1@5 ~ bb1 ~", S: "bb1@2 ~@2 bb1@9 ~@3", T: "eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1@2",
  U: "c2@2 c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2", V: "ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1@2",
  W: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1@2", X: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2",
  Y: "eb2 ~ eb2 ~ eb2 ~ eb2@2 g1 ~ g1 ~ g1 ~ g1@2", Z: "ab1 ~ ab1 ~ ab1 ~ ab1 ~ bb1 ~ bb1 ~ bb1 ~ bb1@2",
  AA: "eb2 ~ eb2 ~ eb2 ~ eb2 ~ g1 ~ g1 ~ g1 ~ g1@2", AB: "ab1 ~ ab1 ~ ab1 ~ ab1@2 bb1 ~ bb1 ~ bb1 ~ bb1 ~",
  AC: "ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~", AD: "ab1 ~ ab1 ~ [ab1,bb1] ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~",
  AE: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~", AF: "ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ g1@3 ~ f1@2",
  AG: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@2", AH: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~",
  AI: "c2 f2 d2 c2 d2 c2 a1 g1", AJ: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2@2",
  AK: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~", AL: "f1 ~ f1 ~ f1 ~ f1@2 a1 ~ a1 ~ a1 ~ a1 ~",
  AM: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ c2 ~ c2 ~ c2 ~ c2@2", AN: "f1 ~ f1 ~ f1 ~ f1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
  AO: "bb1 ~ bb1 ~ bb1 ~ bb1@2 c2 ~ c2 ~ c2 ~ c2@2", AP: "f1",
})).s("gm_electric_bass_finger").gain(0.5)

// chords · brass section
const brass_section = note(`<
  ~ A B C D@3 E ~@16 F ~@8 G H G I ~@15 F ~@8 G H G I ~@6 J K ~@8 L@2 M@2 N@2 O@2 P ~
>`.pickRestart({
  A: "[bb4,eb5,ab5]@2 [bb4,eb5,g5]@2 ~@6 [bb4,eb5,bb5] ~@5", B: "[c5,eb5,ab5]@4 ~@4 eb5@3 ~ d5 ~@3, ~@4 [bb4,f5]@3 ~",
  C: "ab5@2 g5@2 ~@6 [bb4,eb5,bb5] ~@5, [bb4,eb5] ~@3", // Eb5
  D: "[[c5,eb5,ab5]@3 ~@11 [g4,c5,eb5]@11 ~ [f4,bb4] ~@3 [eb4,ab4,c5]@8 ~@2 [ab4,f5]@2 ~@2 [ab4,f5]@2 ~@2, ~@13 d5 ~@10]/3", // Ab Cm Bb5 Ab Db
  E: "[g4,eb5], bb4 ~@15", F: "bb4 ~@3 [bb4,bb5]@2 ~@10", G: "~@4 [g4,bb4,eb5] ~@5 [g4,bb4,d5] ~@5",
  H: "[eb4,ab4,c5]@5 ~@11", I: "[eb4,ab4,c5]@3 ~@13", J: "~@10 [bb4,eb5,f5] ~@3 [bb4,eb5,f5] ~",
  K: "[c5,f5,g5] ~ [c5,e5,g5] ~@5", // Csus4 C
  L: "[~@4 [a4,c5,f5] ~@3 [a4,c5,e5]@4 ~@2 [d5,f5]@10 [c5,e5,g5]@4 ~@4, ~@7 bb4@4 ~@5]/2", // F Am Dm C
  M: "[~@4 [a4,c5,f5] ~@3 [a4,c5,e5]@5 ~ [bb4,d5]@8 ~@2 [c5,e5,g5]@5 ~@3, ~@7 f5@5 ~@4]/2", // F Am Bb C
  N: "[~@4 [a4,c5,f5] ~@3 [a4,c5,e5]@5 ~ [bb4,d5,f5]@9 ~ [c5,e5,g5]@7 ~]/2", // F Am Bb C
  O: "[~@4 [a4,c5,f5] ~@3 [a4,c5,e5]@4 ~@2 [bb4,d5,f5]@9 ~ [c5,e5,g5]@7 ~]/2", P: "[a4,c5,f5]@3 ~@5",
})).s("gm_brass_section").gain(0.5)

// drums · kick
const kick = s("bd").struct("<A B@3 C D B@18 E F@12 B@15 E F@15 G F@3 E F@16 H ~>".pickRestart({
  A: "~@5 x ~@2", B: "x ~@2 x!2 ~@3", C: "x ~@2 x!2 ~@2 x", D: "~@3 x!2 ~@2 x", E: "x!2 ~@2", F: "x!4",
  G: "x ~ x ~ x!2 ~ x", H: "x",
})).gain(0.5)

// drums · rim
const rim = s("rim").struct("<~@7 A B A@3 B A@3 C ~@20 A@3 B A@3 C ~@46>".pickRestart({
// … 52 more lines

More by Romina Power Al Bano