Strudelify
Gelosia cover art

1995 · Dirotta su Cuba

Gelosia

Dirotta su Cuba

KeyF majorTempo123 bpm
0:00/0:00
// Gelosia — Dirotta su Cuba
// 123 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: duplicate parts dropped: ch 16 alto sax (copy of ch 15 alto sax, 0.5 beats late)
// note: Full arrangement: all 135 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123/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, A@4 for four bars: edit a riff to change every repeat.

// bass · electric bass finger
const bass = note(`<
  ~@7 A B C D E B C D F G@2 H I G@2 H J G@2 H I G@2 H K L M N O P Q R S T U V E T U W X@2 G@2 H I G@2 H J G@2 H I G@2 H
  K L M N O P Q R S T U V E T U V E T U V E T U W Y@2 Z@2 AA AB Z@2 AA AC AD AE AF AG AD AE AF AG Z@2 AA AB Z@2 AA AH AI
  AJ AK AL AM AJ AK AL AM AJ AK AL AM AJ AK AL AM AJ AK AL ~
>`.pickRestart({
  A: "~@2 bb1 gb1", B: "g1@3 ~ g1 ~ g1!2 ~ g2 g1 ~ a1@2 bb1@2", C: "c2@3 ~ c2 ~ c2!2 ~ c3 c2 ~ a1@2 g1 ~",
  D: "f1@3 ~ f1 ~ f1!2 ~ f2 f1 ~ c2@2 db2@2", E: "d2@3 ~ d2 ~ d2!2 ~ d3 d2 ~ bb1@2 gb1@2",
  F: "d2!2 ~@5 d1 bb1@4 a1@3 ~", G: "d1@3 ~ d1 ~ d1!2 ~ d2 a1 ~ g1@2 f1@2", H: "g1@3 ~ g1 ~ g1!2 ~ g1 d1@2 f1@2 d1@2",
  I: "eb1@3 ~ eb1 ~ eb1!2 ~ eb1 bb1@2 a1@2 g1@2", J: "eb1 eb2 ~ eb1!2 ~ eb1!2 ~ eb1 bb1@2 a1@2 g1@2",
  K: "eb1 eb2 ~ eb1!2 ~ eb1!2 ~ eb1 eb2@2 c2@2 b1@2", L: "bb1@3 ~ bb1 ~ bb1!2 ~ bb2 bb1 ~ f1@2 e1@2",
  M: "eb1@3 ~ eb1 ~ eb1!2 ~ eb2 eb1 ~ c2@2 db2@2", N: "d2@3 ~ d2@3 a1 d2 d2@2 a1 eb2@2 e2@2",
  O: "f2@3 ~ f2@3 a1 f2!2 a1@2 c2@2 b1@2", P: "bb1@3 ~ bb1 ~ bb1!2 ~ bb2 bb1 ~ g1@2 ab1@2",
  Q: "a1@3 ~ a1 ~ a1 a2 ~ a1 g1 ~ f1@2 e1@2", R: "eb1 eb2 ~ eb1 eb2 ~ eb1 eb2 ~ eb1 bb1@2 g1@2 f1@2",
  S: "eb1 eb2 ~ eb1 eb2 ~ eb1 eb2 ~ eb1 c2@2 f1@2 gb1@2", T: "g1@3 ~ g1 ~ g1!2 ~ g2 g1@2 bb1@2 b1@2",
  U: "c2@3 ~ c2 ~ c2!2 ~ c3 c2 ~ g1@2 gb1@2", V: "f1@3 ~ f1 ~ f1!2 ~ f2 f1@2 c2@2 db2@2",
  W: "f1@3 ~ f1 ~ f1!2 ~ f2 f1 ~ f1@4", X: "[d1@2 ~ d1@21 bb1@4 a1@3 ~]/2", Y: "[d1@2 ~ d1@19 ~@2 b1@4 bb1@3 ~]/2",
  Z: "eb1@3 ~ eb1 ~ eb1!2 ~ eb2 bb1 ~ ab1@2 gb1@2", AA: "ab1@3 ~ ab1 ~ ab1!2 ~ ab1 eb1@2 gb1@2 eb1@2",
  AB: "e1@3 ~ e1 ~ e1!2 ~ e1 b1@2 bb1@2 ab1@2", AC: "e1 e2 ~ e1!2 ~ e1!2 ~ e1 b1@2 bb1@2 ab1@2", AD: "eb1@6 eb2 bb1",
  AE: "eb2@2 ~ eb2 ~@2 eb2@2 ~@4 gb1@2 g1@2", AF: "ab1@11 ~ ab1@2 eb1@2", AG: "e1@2 ~ e1 ~@2 e1@2 ~@4 e1@2 db1@2",
  AH: "e1 e2 ~ e1 e2 ~ e1 e2 ~ e1 f1@2 gb1@2 g1@2", AI: "ab1@3 ~ ab1 ~ ab1!2 ~ ab2 ab1@2 b1@2 ~@2",
  AJ: "db2@3 ~ db2 ~ db2!2 ~ db3 db2 ~ ab1@2 g1@2", AK: "gb1@3 ~ gb1 ~ gb1!2 ~ gb2 gb1@2 db2@2 d2@2",
  AL: "eb2@3 ~ eb2 ~ eb2!2 ~ eb3 eb2 ~ b1@2 g1@2", AM: "ab1@3 ~ ab1 ~ ab1!2 ~ ab2 ab1@2 b1@2 c2@2",
})).s("gm_electric_bass_finger").gain(0.37)

// chords · epiano2
const epiano2 = note(`<
  A B C D A B C D A B C D A B C E F@2 G H I@2 G J K@2 L M K@2 L N O P Q R S T U@2 V W N X V W N Y@2 F@2 G N F@2 G N Z@2
  L AA AB@2 AC N O P Q R S T U@2 V W N X V W N AD V W N X V W N AE@2 AF@2 AG@2 AF@2 AG@2 AH@3 AI AJ@2 AK@2 AJ@2 AL AM
  AJ@2 AN@2 AO AP AQ AR AO AP AQ AS AT AU AV AW AX AU AV AW AX AU AV AW ~
>`.pickRestart({
  A: "[a3,bb3,d4,f4]", B: "[bb3,d4,e4,g4]", C: "[bb3,d4,eb4,g4]", D: "[c4,d4,f4,a4]@2 [b3,eb4,f4,bb4] [bb3,c4,eb4,gb4]",
  E: "[c4,d4,f4,a4]@2 [bb3,d4,e4,g4] [g3,c4,db4,f4]", F: "[[a3,c4,d4,e4,f4]@7 ~]/2", G: "[b3,d4,f4,g4]@13 ~@3",
  H: "[bb3,d4,f4,g4]@13 ~@3", I: "[[a3,c4,d4,e4,f4]@27 ~@5]/2", J: "[bb3,d4,g4]@15 ~", K: "[[a3,c4,d4,e4,f4]@15 ~]/2",
  L: "[a3,b3,e4,f4]@7 ~", M: "[f3,a3,db4]@7 ~", N: "[bb3,d4,eb4,g4]@7 ~", O: "[c4,d4,f4,a4]@7 ~", P: "[c4,db4,f4]@7 ~",
  Q: "[a3,c4,e4,f4]@7 ~", R: "[g3,a3,c4,eb4]@15 ~", S: "[a3,bb3,d4,f4]@7 ~", T: "[g3,db4,f4]@7 ~, c4@3 ~",
  U: "[[g3,bb3,d4]@11 ~@5]/2", V: "[bb3,d4,f4,g4]@7 ~", W: "[bb3,d4,e4,g4]@13 ~@3", X: "[a3,c4,d4,g4]@13 ~@3",
  Y: "[[a3,c4,d4,g4]@5 ~ [bb3,d4,e4,g4] [a3,c4,db4,f4]]/2", Z: "[[a3,c4,e4,f4]@7 ~]/2", AA: "[a3,c4,db4,f4]@7 ~",
  AB: "[[a3,c4,e4,f4]@15 ~]/2", AC: "[a3,b3,e4,f4]", AD: "[a3,c4,d4,g4]@15 ~",
  AE: "[[a3,c4,d4,g4]@5 ~ [a3,db4,eb4,ab4] [a3,db4,eb4,gb4]]/2", AF: "[ab3,bb3,db4,f4]/2",
  AG: "[[c4,eb4,gb4,ab4]@13 ~ [b3,eb4,gb4,ab4]@18]/2", AH: "[[gb3,bb3,db4,f4]@29 ~ [gb3,bb3,c4,f4]@18]/3",
  AI: "~@8 ab4@7 ~, [a3,db4,eb4,gb4]@15 ~", AJ: "[[gb3,bb3,db4,f4]@31 ~]/2",
  AK: "[[gb3,bb3,c4,f4]@14 [ab3,b3,eb4,e4]@17 ~]/2", AL: "[gb3,bb3,c4,f4]@15 ~", AM: "[a3,db4,eb4,gb4,ab4]",
  AN: "[[gb3,bb3,c4,f4]@14 [b3,eb4,e4,ab4]@17 ~]/2", AO: "[b3,eb4,gb4,ab4]@7 ~", AP: "[b3,eb4,f4,ab4]@13 ~@3",
  AQ: "[b3,eb4,e4,ab4]@7 ~", AR: "[bb3,db4,eb4,ab4]@13 ~@3", AS: "[bb3,db4,eb4,ab4]", AT: "[bb3,b3,eb4,gb4]@15 ~",
  AU: "[b3,eb4,f4,ab4]", AV: "[b3,eb4,e4,ab4]", AW: "[db4,eb4,gb4,bb4]@2 [c4,e4,gb4,b4] [b3,db4,e4,g4]",
  AX: "[bb3,b3,eb4,gb4]", // Bmaj7
})).s("gm_epiano2").gain(0.18)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@8 A@2 B@2 A@2 C D ~@7 E F@2 G@2 F@2 H@2 I@3 J K@3 L M@3 N O@2 P Q@2 R S T U V@2 ~ E F@2 G@2 F@2 H@2 I@3 J K@3 L M@3
  N A@2 B@2 A@2 W@2 A@2 C X@2 ~@15 Y Z@2 AA AB Z@2 AC@2 AD@3 AE AF@3 AE AF@3 AE AF@3 AE AF@3 AE ~
>`.pickRestart({
  A: "[g5,g6]/2", B: "[[f5,f6]@6 [bb5,bb6] [gb5,gb6]]/2", C: "[f5,f6]@15 ~",
  D: "~@8 [ab3,bb4,d5,e5,g5]@4 [g3,g4,c5,db5,f5]@3 ~", E: "~@2 [d4,c5,c6] [e4,d5,d6]",
  F: "[a4@4 ~@2 [f5,f6] [g5,g6], c4, [e5,e6]@3 ~, ~ g4]/2", // F G E
  G: "[[e5,e6]@3 [f5,f6] [db5,db6] [a4,a5] [a5,a6] [g5,g6], f4, b3 db4]/2", // E F Db A G
  H: "[[b3,e5,e6]@7 ~ bb3@4 [d4,a4,d5,d6]@2 [c4,g4,c5,c6]@2, f4@3 ~, ~@7 [f5,f6]@5 ~@4]/2", // E5 D5 C5 F
  I: "[[a5,a6]@6 [f5,f6]@2 [g5,g6]@2 [f5,f6]@2 [db5,db6]@2 [c6,c7]@2 [a5,a6]@6 [g5,g6] [gb5,gb6], f4@2 e4, a3 g3@2]/3", // A F G F Db C A G …
  J: "[f5,f6]@2 [d5,d6] [c5,c6], eb4, f3@7 ~", // F D C
  K: "[[a4,a5]@14 [bb4,bb5] [b4,b5] [c5,c6]@8 [f5,f6]@7 [eb4,d5,d6]@17, f4@31 ~@17, a3 g3@2]/3", // A Bb B C F Ebmaj7
  L: "~@8 g4 bb4 c5 f5 bb4 c5 f5 bb5", M: "[g4, g5 ~@47]/3", N: "[f4,f5]@2 [bb4,bb5] [gb4,gb5]", O: "[g4,g5]/2",
  P: "[f4,f5]", Q: "[[e3,d4,a4]@3 [d3,c4]@21 [bb2,g4,d5]@4 [a2,f4,db5]@4, ~@3 g4@18 ~@11]/2",
  R: "[a3,a4,c5,e5]@3 [f3,f4,a4,c5]", S: "[d3,d4,f4]@3 [d3,e4,g4], a4 ~@15", T: "[b3,d4,f4], g2@7 ~",
  U: "[eb3,bb3,eb4,g4]", V: "[d3,a3,d4,f4]/2", W: "[[f5,f6]@11 ~ [bb5,bb6]@2 [gb5,gb6]@2]/2",
  X: "[[d4,a4,e5,e6]@3 [g4,d5,d6]@17 ~@4 [ab5,ab6]@3 ~ [gb5,gb6]@3 ~, ~@3 c4@20 ~@9]/2", Y: "~@2 [db5,db6] [eb5,eb6]",
  Z: "[[f5,f6]@6 [gb5,gb6] [ab5,ab6]]/2", AA: "[f5,f6]@3 gb6", AB: "d6 bb5 [bb5,bb6] [ab5,ab6]",
  AC: "[[f5,f6]@14 [gb5,gb6]@10 ab4 b4 db5 gb5 b4 db5 gb5 b5]/2", AD: "[[ab4,ab5], bb6 ~@3]/3",
  AE: "[gb4,gb5]@2 [b4,b5] [g4,g5]", AF: "[ab4,ab5]/3",
})).s("gm_string_ensemble_1").gain(0.14)

// chords · clavinet
const clavinet = note(`<
  A B C D A B C D A B C D A B C D ~@16 E F G H I J K L A B C D A B C D ~@17 E F G H I J K M A B C D A B C D A B C D A B
  C D ~@25 N O P Q N O P Q N O P Q N O P Q N O P Q ~
>`.pickRestart({
  A: "g3 [d4,f4] ~ g3 [d4,f4] ~ g3 [d4,f4] ~ g3 [d4,f4]@2 g3@2 [d4,f4]@2", // Dm
  B: "c4 [e4,g4] ~ c4 [e4,g4]@2 c4 [e4,g4] ~ c4 [e4,g4]@2 c4@2 [e4,g4]@2", // Em
  C: "bb3 [eb4,g4] ~ bb3 eb4@2 bb3 [eb4,g4] ~ bb3 [eb4,g4]@2 bb3@2 g4@2, ~@4 g4 ~@9 eb4 ~", // Eb
  D: "d4 [f4,a4] ~ d4 [f4,a4]@2 c4 [f4,bb4] ~ c4 [f4,bb4]@2 ~@2 [f4,bb4] ~, ~@13 bb3@2 ~", // F Bb5
  E: "d3 [d4,f4] ~ d3 [d4,f4]@2 d3 [d4,f4] ~ d3 [d4,f4]@2 d3 ~ [d4,f4] ~", // Dm
  F: "~ [db4,f4] ~ db3 [db4,f4]@2 db3 [db4,f4] ~ db3 [db4,f4]@2 db3 ~ [db4,f4]@2", // Db
  G: "~ [c4,e4] ~ c3 [c4,e4]@2 c3 [c4,e4] ~ c3 [c4,e4]@2 c3 [c4,e4]@2 ~", // C
  H: "eb3 [eb4,g4] ~ eb3 eb4@2 eb3 [eb4,g4] ~ eb3 [eb4,g4]@2 eb3 ~ [eb4,g4]@2, ~@4 g4 ~@11", // Eb
  I: "d3 [d4,f4] ~@2 [d4,f4]@2 d3 [d4,f4] ~ d3 [d4,f4]@2 d3 ~ [d4,f4] ~", // Dm
  J: "db3 [db4,f4] ~ db3 [db4,f4]@2 db3 [db4,f4] ~ db3 [db4,f4]@2 db3 ~ f4@2, ~@14 db4 ~", // Db
  K: "eb3 [eb4,g4] ~ eb3 [eb4,g4]@2 eb3 [eb4,g4] ~ eb3 [eb4,g4]@2 eb3 ~ [eb4,g4] ~", // Eb
  L: "eb3 [eb4,g4] ~ eb3 [eb4,g4] ~ eb3 [eb4,g4] ~@8", M: "d4@15 ~, eb3 ~@15",
  N: "ab3 [eb4,gb4] ~ ab3 [eb4,gb4] ~ ab3 [eb4,gb4] ~ ab3 [eb4,gb4]@2 ab3@2 [eb4,gb4]@2", // Ebm
  O: "db4 [f4,ab4] ~ db4 [f4,ab4]@2 db4 [f4,ab4] ~ db4 [f4,ab4]@2 db4@2 [f4,ab4]@2", // Fm
  P: "b3 [e4,ab4] ~ b3 e4@2 b3 [e4,ab4] ~ b3 [e4,ab4]@2 b3@2 ab4@2, ~@4 ab4 ~@9 e4 ~", // E
  Q: "eb4 [gb4,bb4] ~ eb4 [gb4,bb4]@2 db4 [gb4,b4] ~ db4 [gb4,b4]@2 ~@2 [gb4,b4] ~, ~@13 b3@2 ~", // Gb B5
})).s("gm_clavinet").gain(0.07).pan(0.3)

// other · brass section
const brass_section = note(`<
  ~@7 A B@2 C@2 D@2 E F ~@23 G H I J K H I J ~@26 H I J K H I J K H L J K H I J ~@26 M N O P M N O P Q@2 R@2 Q@2 S T Q@2
  S U ~
>`.pickRestart({
  A: "[d4,a5]!2 ~@8 [g4,d5] ~@2 [g4,d5] ~@2", // D5 G5
  B: "[[a4,a5]@4 ~ [g4,g5] ~ [c5,c6] ~ [bb4,bb5] ~ [a4,a5] ~ [g4,g5] ~ [c5,a5]@2 [d5,bb5] [c5,a5] ~@2 [f4,f5] ~ [d4,d5] ~@4 bb4 ~ c5 ~]/2", // A G C Bb A G F Gm …
  C: "[[bb4,f5]@2 ~@2 [g4,d5] ~@2 [eb4,bb4] ~@4 [d5,f5] ~ [bb4,d5] [a4,c5,e5]@4 ~@2 [f5,g5] ~ [gb5,bb5] ~@8]/2", // Bb5 G5 Eb5 Dm Bb Am Fsus2 Gb
  D: "[[a4,a5]@4 ~ [g4,g5] ~ [c5,c6] ~ [bb4,bb5] ~ [a4,a5] ~ [g4,g5] ~ [c5,a5]@2 [d5,bb5] [c5,a5] ~@2 [f4,f5] ~ [d4,d5] ~@4 [bb4,d5] ~ [c5,e5] ~]/2", // A G C Bb A G F Gm …
  E: "[bb4,d5] ~@3 [bb4,eb5] ~@2 bb4@2 ~@3 [d5,f5] ~ [bb4,d5] ~, ~@7 f5 ~@8", F: "[f4,f5]!2 ~@14",
  G: "f4 bb4 c5 f5 d5 ~@11", H: "~@4 bb4@3 g4 ~@8", I: "~@4 d5@3 c5 ~@8", J: "~@4 bb4@3 g4 ~@4 d5@3 c5",
  K: "~@6 f5 ~ gb5 ~@2 gb5 ~@4", L: "~@4 d5@3 c5 ~@8, ~@4 c5 ~@11", M: "~@4 b4@3 ab4 ~@8", N: "~@4 eb5@3 db5 ~@8",
  O: "~@4 b4@3 ab4 ~@4 eb5@3 db5", P: "~@6 gb5 ~ g5 ~@2 g5 ~@4",
  Q: "[bb5@5 ab5 ~ db6 ~ b5 ~ bb5 ~ ab5 ~ bb5@2 b5 bb5 ~@2 gb5 ~ eb5 ~@4 b4 ~ db5 ~]/2",
  R: "[gb5@2 ~@2 eb5 ~@2 b4 ~@4 eb5 ~ b4 db5@4 ~@2 ab5 ~ b5 ~@8]/2", S: "eb5@3 ~ e5 ~@2 gb5 ~@4 eb5 ~ b4 ~",
  T: "~@5 ab5 ~ b5 ~@8", U: "gb5!2 ~@14",
})).s("gm_brass_section").gain(0.58)

// other · alto sax
const alto_sax = note(`<
  ~@7 A B@2 C@2 D@2 E F ~@24 G H I J G H K ~@26 G H I J G H K J G H I J G H I ~ L M N O P Q R S T U ~@7 V@2 W@2 X@2 Y@2
  Z AA AB AC Z AA AD AC AE@2 AF@2 AG@2 AH AI AG@2 AH AJ ~
>`.pickRestart({
  A: "d4!2 ~@8 g4 ~@2 g4 ~@2", B: "[a4@5 g4 ~ c5 ~ bb4 ~ a4 ~ g4 ~ a4@2 bb4 a4 ~@2 f4 ~ d4 ~@4 bb4 ~ a4 ~]/2",
  C: "[g4@2 ~@2 eb4 ~@2 c4 ~@4 d5 ~ bb4 c5@4 ~@2 f4 ~ d4 ~@8]/2",
  D: "[a4@5 g4 ~ c5 ~ bb4 ~ a4 ~ g4 ~ a4@2 bb4 a4 ~@2 f4 ~ d4 ~@4 bb4 ~ c5 ~]/2",
  E: "d5@2 ~@2 bb4 ~@2 f4@2 ~@3 d5 ~ bb4 ~", F: "f4!2 ~@14", G: "~@4 bb4@3 g4 ~@8", H: "~@4 f4@3 e4 ~@8",
  I: "~@4 g4@3 eb4 ~@4 bb4@3 a4", J: "~@6 bb4 ~ c5 ~@2 c5 ~@4", K: "~@4 g4@3 eb4 ~@4 bb4@2 ~ a4",
  L: "~ bb3 b3 db4 eb4 f4 ab4 bb4", M: "f5@14 [d5,eb5] db5", N: "c5 ab4!2 ~ bb4@2 ~ ab4@3 bb4@3 ~@3",
  O: "bb4!2 ab4 bb4 eb4 ~ bb4 ab4 ~ db5 c5@2 ab4 bb4 ~ gb4", P: "ab4@4 ~@4 gb4 ab4 bb4 gb4 ab4@2 gb4 ab4",
  Q: "f4@2 eb4 f4 db4@2 db4 c4@3 ab3 g3 gb3@3 ~", R: "~@6 db5@2 c5!2 ab4 ~ gb4@2 ab4 gb4",
  S: "bb4@2 gb4 ab4 ~ ab4 ~ gb4@2 eb4@3 ~@4",
  T: "~ [c3,eb3] [db3,eb3] f3 [gb3,g3] [ab3,bb3] [bb3,db4] [ab3,b3,db4] [eb4,f4] [ab4,bb4] db5@4 ~ [b4,c5]", // Cm Dbsus2 Gmaj7 Absus2 Bbm Db7 Ebsus2 Absus2 …
  U: "bb4@13 ~@3", V: "[f4 gb4 f4@4 eb4 f4 db4@3 ~@3 gb4@4 eb4 f4 db4@3 ~@5 c4@2 eb4@2]/2",
  W: "[f4@2 ab4@2 bb4@2 db5@3 c5 b4 bb4@2 f4@5 eb4 ~ f4 db4 eb4@5 ~@5]/2",
  X: "[~@2 f4@2 gb4@2 f4@2 ab4@3 ~ gb4 ab4@2 f4@4 db4@2 ~ eb4@5 ~@5]/2",
  Y: "[ab4@2 gb4 f4 ~ eb4 ab4@2 gb4 f4 ~ eb4 a4@2 g4 gb4@2 e4 ~@14]/2", Z: "~@4 b4@3 ab4 ~@8", AA: "~@4 gb4@3 f4 ~@8",
  AB: "~@4 ab4@3 e4 ~@4 b4@3 bb4", AC: "~@6 b4 ~ db5 ~@2 db5 ~@4", AD: "~@4 ab4@3 e4 ~@4 b4@2 ~ bb4",
  AE: "[~@5 ab4 ~ db5 ~ b4 ~ bb4 ~ ab4 ~ bb4@2 b4 bb4 ~@2 gb4 ~ eb4 ~@4 b4 ~ bb4 ~]/2",
  AF: "[ab4@2 ~@2 e4 ~@2 db4 ~@4 eb5 ~ b4 db5@4 ~@2 gb4 ~ eb4 ~@8]/2",
  AG: "[bb4@5 ab4 ~ db5 ~ b4 ~ bb4 ~ ab4 ~ bb4@2 b4 bb4 ~@2 gb4 ~ eb4 ~@4 b4 ~ db5 ~]/2",
  AH: "eb5@2 ~@2 b4 ~@2 gb4@2 ~@3 eb5 ~ b4 ~", AI: "~@5 gb4 ~ eb4 ~@8", AJ: "gb4!2 ~@14",
})).s("gm_alto_sax").gain(0.51)

// other · trombone
const trombone = note(`<
  ~@7 A B@2 C@2 D@2 E F ~@24 G H I J G H I ~@26 G H I J G H I J G H I J G H K ~@26 L M N O L M N O P@2 Q@2 R@2 S T R@2 S
  U ~
>`.pickRestart({
  A: "d4!2 ~@8 d4 ~@2 d4 ~@2",
  B: "[[a3,a5]@5 [g3,g5] ~ [c4,c6] ~ [bb3,bb5] ~ [a3,a5] ~ [g3,g5] ~ [c4,e5]@2 [d4,f5] [c4,e5] ~@2 [f3,d5] ~ [d3,bb4] ~@4 [bb3,bb4] ~ [c4,c5] ~]/2", // A G C Bb A G C Dm …
  C: "[[bb3,f5]@2 ~@2 d5@2 ~ eb3@3 ~@2 [f4,c5] ~ [d4,bb4] [a3,e5]@4 ~@2 [f4,f5] ~ [gb4,gb5] ~@8, ~@4 g3 ~@2 bb4 ~@24]/2", // Bb5 F5 Gm A5 F Gb
  D: "[[a3,a5]@5 [g3,g5] ~ [c4,c6] ~ [bb3,bb5] ~ [a3,a5] ~ [g3,g5] ~ [c4,e5]@2 [d4,f5] [c4,e5] ~ f3 d5 ~ [d3,bb4] ~@4 [d4,bb4] ~ [e4,c5] ~]/2", // A G C Bb A G C Dm …
  E: "[f4,d5]@2 ~@2 [d4,eb5] ~@2 [bb3,f5]@2 ~@3 [f4,d5] ~ [d4,bb4] ~", F: "[f3,f5]!2 ~@14", G: "~@4 d4@3 bb3 ~@8",
  H: "~@4 bb3@2 ~ bb3 ~@8", I: "~@4 d4@2 ~ bb3 ~@4 d4@3 c4", J: "~@6 c4 ~ d4 ~@2 d4 ~@4",
  K: "~@4 d4@3 bb3 ~@4 d4@2 ~ c4", L: "~@4 eb4@3 b3 ~@8", M: "~@4 b3@2 ~ b3 ~@8", N: "~@4 eb4@2 ~ b3 ~@4 eb4@3 db4",
  O: "~@6 db4 ~ eb4 ~@2 eb4 ~@4",
  P: "[[bb3,bb5]@5 [ab3,ab5] ~ [db4,db6] ~ [b3,b5] ~ [bb3,bb5] ~ [ab3,ab5] ~ [db4,f5]@2 [eb4,gb5] [db4,f5] ~@2 [gb3,eb5] ~ [eb3,b4] ~@4 [b3,b4] ~ [db4,db5] ~]/2", // Bb Ab Db B Bb Ab Db Ebm …
  Q: "[[b3,gb5]@2 ~@2 eb5@2 ~ e3@3 ~@2 [gb4,db5] ~ [eb4,b4] [bb3,f5]@4 ~@2 [gb4,gb5] ~ [g4,g5] ~@8, ~@4 ab3 ~@2 b4 ~@24]/2", // B5 Gb5 Abm Bb5 Gb G
  R: "[[bb3,bb5]@5 [ab3,ab5] ~ [db4,db6] ~ [b3,b5] ~ [bb3,bb5] ~ [ab3,ab5] ~ [db4,f5]@2 [eb4,gb5] [db4,f5] ~ gb3 eb5 ~ [eb3,b4] ~@4 [eb4,b4] ~ [f4,db5] ~]/2", // Bb Ab Db B Bb Ab Db Ebm …
  S: "[gb4,eb5]@2 ~@2 [eb4,e5] ~@2 [b3,gb5]@2 ~@3 [gb4,eb5] ~ [eb4,b4] ~", T: "~@5 [gb4,gb5] ~ [g4,g5] ~@8",
  U: "[gb3,gb5]!2 ~@14", // Gb
})).s("gm_trombone").gain(0.19).pan(0.9)

// chords · rock organ
const rock_organ = note(`<
  ~@24 A@2 B C A@2 D E ~@25 A@2 B C A@2 D E ~@33 F@2 G H F@2 I J K@2 L M K@2 N O ~@21
>`.pickRestart({
  A: "[c7,e7]@2 ~ [c7,e7]@2 ~ [c7,e7] ~", B: "[b6,e7]@3 ~@3 [b6,e7]@4 ~@2 [b6,e7]@2 ~@2",
  C: "[db7,f7]@3 ~@3 [db7,f7]@4 ~@2 [db7,f7]@3 ~", D: "[b6,e7]@4 ~@2 [b6,e7]@4 ~@2 [b6,e7]@3 ~",
  E: "[eb7,g7]@4 ~@2 [eb7,g7]@5 ~ [eb7,g7]@3 ~", // Eb
  F: "[db6,f6,db7,f7,db8,f8]@3 [bb5,bb6,bb7] ~@2 [db6,f6,db7,f7,db8,f8]@4 [bb5,bb6,bb7] ~ [db6,f6,db7,f7,db8,f8]@2 [bb5,bb6,bb7] ~", // Db Bb Db Bb Db Bb
  G: "[c6,f6,c7,f7,c8,f8]@3 [bb5,bb6,bb7] ~@2 [c6,f6,c7,f7,c8,f8]@4 [bb5,bb6,bb7] ~ [c6,f6,c7,f7,c8,f8]@2 [bb5,bb6,bb7] ~", // F5 Bb F5 Bb F5 Bb
  H: "[d6,gb6,d7,gb7,d8,gb8]@3 [bb5,bb6,bb7] ~@2 [d6,gb6,d7,gb7,d8,gb8]@4 [bb5,bb6,bb7] ~ [d6,gb6,d7,gb7,d8,gb8]@2 [bb5,bb6,bb7] ~", // D Bb D Bb D Bb
  I: "[c6,f6,c7,f7,c8,f8]@3 ~@3 [c6,f6,c7,f7,c8,f8]@4 [bb5,bb6,bb7] ~ [c6,f6,c7,f7,c8,f8]@2 [bb5,bb6,bb7] ~", // F5 Bb F5 Bb
  J: "[eb6,ab6,eb7,ab7,eb8,ab8]@3 [b5,b6,b7] ~@2 [eb6,ab6,eb7,ab7,eb8,ab8]@4 [b5,b6,b7] ~ [eb6,ab6,eb7,ab7,eb8,ab8]@2 [b5,b6,b7] ~", // Ab5 B Ab5 B Ab5 B
  K: "[db7,f7]@3 bb6 ~@2 [db7,f7]@4 bb6 ~ [db7,f7]@2 bb6 ~", L: "[c7,f7]@3 bb6 ~@2 [c7,f7]@4 bb6 ~ [c7,f7]@2 bb6 ~",
  M: "[d7,gb7]@3 bb6 ~@2 [d7,gb7]@4 bb6 ~ [d7,gb7]@2 bb6 ~", N: "[c7,f7]@3 ~@3 [c7,f7]@4 bb6 ~ [c7,f7]@2 bb6 ~",
  O: "[eb7,ab7]@3 b6 ~@2 [eb7,ab7]@4 b6 ~ [eb7,ab7]@2 b6 ~", // Ab5
})).s("gm_rock_organ").gain(0.05).pan(0.3)

// other · alto sax
const alto_sax_2 = note("<~@91 A B C ~ D E@2 ~@37>".pickRestart({
  A: "~@13 ab4@3", B: "bb4@3 ~@13", C: "~@5 gb4 ab4@4 ~@6", D: "ab3 g3 gb3@3 ~@11", E: "[~@13 gb4@2 eb4@3 ~@14]/2",
})).s("gm_alto_sax").gain(0.29).pan(0.9)

// drums · kick
const kick = s("bd").struct("<~@4 A@4 B@39 C D B@39 C D B@8 A@8 B@28 ~>".pickRestart({
  A: "x!4", B: "x ~@3 x ~@2 x!2 ~@3 x ~@3", C: "x ~@2 x ~@6 x ~@3 x ~", D: "x ~@2 x ~@12",
})).gain(0.41)

// drums · snare
const snare = s("sd").struct(`<
// … 86 more lines

More by Dirotta su Cuba