Strudelify

Jesahel

Dirotta su Cuba

KeyC minorTempo126 bpm
0:00/0:00
// Jesahel — Dirotta su Cuba
// 126 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 128, 4/4 at bar 129) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 129 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126/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 · electric bass finger
const bass = note(`<
  A B C B A D C E@2 F@8 G@8 H@7 I@2 J@7 K@6 L M@8 N@6 I@2 F@8 O@7 P@2 ~@4 Q@8 R F@8 S@8 T@8 U@7 V@4
>`.pickRestart({
  A: "g1@4 a1@4 bb1@4 b1@3 c2", B: "~@15 c2", C: "~ c2 ~@13 c2", D: "~@7 c2 d3 c3 eb3 ~ e3@3 c2",
  E: "[~@12 c2@2 db2@17 ~]/2",
  F: "[~@12 bb2@3 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@5 f1@2 f2 f1@2 c2@2 db2@2 d2@2 ~@5 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@5 f1@2 f2 f1@2 c2@2 db2@2 d2@2 ~@5 c2]/8",
  G: "[~ c2 ~@6 d2@4 g1@3 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@5 f1@2 f2 f1@2 c2@2 db2@2 d2@2 ~@5 c2@2 c3 c2@2 bb1@2 a1@2 g1 ~ eb3 ~ d3 c3 ~ c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@5 f1@2 f2 f1@2 c2@2 db2@2 d2@2 ~@5 c2]/8",
  H: "[~ c3 c2@2 bb1@2 a1@2 g1@2 ~@5 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@5 f1@2 f2 f1@2 c2@2 db2@2 d2@2 ~@5 c2@2 c3 c2@2 bb1@2 a1@2 g1 ~@6 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@6]/7",
  I: "[f1@4 g1@3 db1@9]/2",
  J: "[~@12 bb2@3 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@5 f1@2 f2 f1@2 c2@2 db2@2 d2@2 ~@5 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@5 f1]/7",
  K: "[~ f2 f1@6 g1@3 ~ g1@2 db1@17 eb3@4 ~@9 bb2@3 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@5 f1@2 f2 f1@2 bb1@2 b1@2 c2@2 ~@5 c2]/6",
  L: "~@2 c2 ~@13",
  M: "[~ c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@5 f1@2 f2 f1@2 c2@2 db2@2 d2@2 ~@5 c2@2 c3 c2@2 bb1@2 a1@2 g1 ~ eb3 ~ d3 c3 ~ c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@5 f1@2 f2 f1@2 c2@2 db2@2 d2@2 ~@5 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 c2]/8",
  N: "[~ c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@5 f1@2 f2 f1@2 c2@2 db2@2 d2@2 ~@5 c2@2 c3 c2@2 bb1@2 a1@2 g1 ~@6 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@6]/6",
  O: "[~ c3 c2@2 bb1@2 a1@2 g1@2 ~@5 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@5 f1@2 f2 f1@2 c2@2 db2@2 d2@2 ~@5 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@5 f1]/7",
  P: "[~ f2 f1@6 g1@3 ~ g1@2 db1@17 ~]/2",
  Q: "[~@14 bb2 c2@2 ~ c2 ~ c2@2 ~ d2@2 ~ d2 ~ d2@2 ~ db2@2 ~ db2 ~ db2@2 ~ eb2@2 ~ eb2 ~ eb2@2 ~ c2@2 ~ c2 ~ c2@2 ~ d2@2 ~ d2 ~ d2@2 ~ db2@2 ~ db2 ~ db2@2 ~ eb2@2 ~ eb2 ~ eb2@2 ~ c2@2 ~ c2 ~ c2@2 ~ d2@2 ~ d2 ~ d2@2 ~ db2@2 ~ db2 ~ db2@2 ~ eb2@2 ~ eb2 ~ eb2@2 ~ c2@2 ~ c2 ~ c2@2 ~ d2@2 ~ d2 ~ d2@2 db2@2]/8",
  R: "db2 db1@7",
  S: "[~ c3 c2@2 bb1@2 a1@2 g1@2 ~@5 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@5 f1@2 f2 f1@2 c2@2 db2@2 d2@2 ~@5 c2@2 c3 c2@2 bb1@2 a1@2 gb3 ~ f3 ~ eb3 c3@2 c2@2 c3 c2@2 bb1@2 a1@2 g1@2 ~@5 f1@2 f2 f1@2 eb2@2 d2@2 c2@2 ~@5 f1@2 f2 f1@2 c2@2 db2@2 d2@2 ~@5 c2]/8",
  T: "[~ c3 c2@2 bb1@2 a1@2 gb3 ~ f3 ~ eb3 c3@2 c2@2 ~ c2 ~ c2@2 ~ d2@2 ~ d2 ~ d2@2 ~ db2@2 ~ db2 ~ db2@2 ~ eb2@2 ~ eb2 ~ eb2@2 ~ c2@2 ~ c2 ~ c2@2 ~ d2@2 ~ d2 ~ d2@2 ~ db2@2 ~ db2 ~ db2@2 ~ eb2@2 ~ eb2 ~ eb2@2 ~ c2@2 ~ c2 ~ c2@2 ~ d2@2 ~ d2 ~ d2@2 ~ db2@2 ~ db2 ~ db2@2 ~ eb2@2 ~ eb2 ~ eb2@2 ~ c2@2 ~ c2 ~ c2@2 ~ d2@2 ~ d2 ~ d2@2 ~ db2]/8",
  U: "[~@2 db2 ~ db2@2 ~ eb2@2 ~ eb2 ~ eb2@2 ~ c2@2 ~ c2 ~ c2@2 ~ d2@2 ~ d2 ~ d2@2 ~ db2@2 ~ db2 ~ db2@2 ~ eb2@2 ~ eb2 ~ eb2@2 ~ c2@2 ~ c2 ~ c2@2 ~ d2@2 ~ d2 ~ d2@2 ~ db2@2 ~ db2 ~ db2@2 ~ eb2@2 ~ eb2 ~ eb2@2 ~ c2@2 ~ c2 ~ c2@2 ~ d2@2 ~ d2 ~ d2@2 ~ db2@2 ~ db2 ~ db2@2 ~ eb2@2 ~ eb2 ~ eb2@2 ~ c2]/7",
  V: "[~@2 c2 ~ c2@2 ~ d2@2 ~ d2 ~ d2@2 db2@16 ~ c1@2 ~@7 c3 bb2 g2 f2 eb2 c2 bb1 eb1@3 f1 ~@13]/4",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  A@2 B C D B@2 C ~ E F G H I J K L M N O P Q R S T U N O P Q V W X@2 ~ F G H I F Y ~@3 F G H I N O P Q R S T U N O P Q
  V W X@2 ~ F G H I F G H I F G H I F Y ~@6 Z@2 AA@6 ~@2 F G H I F G H I F G H I F G H AB@2 AC@12 AD@3 ~@2
>`.pickRestart({
  A: "[c4@4 d4@3 ~ eb4@4 e4@2 ~ f4@2 ~@7 [eb4,g4]@2 ~ [eb4,g4] ~@4]/2", B: "~@8 [eb4,g4]@3 [eb4,g4,c5] ~@4",
  C: "~@8 [eb4,g4,c5]@2 ~ [eb4,g4,c5] ~@4", D: "c4@3 ~ d4@4 eb4@3 ~ e4@3 f4", E: "~@15 [eb4,g4,c5]",
  F: "~ [eb4,g4,c5] ~ c4 ~@2 c4 ~ [eb4,g4,c5]@2 ~ [eb4,g4,c5] ~@3 [f4,a4,d5]", // Cm Dm
  G: "~ [f4,a4,d5] ~@6 [f4,a4,d5]@2 ~ [f4,a4,d5] ~ [f4,d5] ~ [eb4,g4,c5]", // Dm Cm
  H: "~ [eb4,g4,c5] ~@4 [eb4,gb4,c5] ~ [d4,gb4,c5]@2 c5 ~ [b3,eb4,bb4]@2 ~ [c4,eb4,bb4]", // Cm Cdim D7 Bmaj7 Cm7
  I: "~ [c4,eb4,bb4] ~@4 [bb4,eb5] ~@2 bb4 [g4,bb4,eb5]!2 ~ [f4,a4,d5] ~ [eb4,g4,c5], ~@4 [g4,bb4,eb5] ~@3", // Cm7 Eb5 Eb Dm Cm Eb
  J: "~ c4 ~@5 c4 [eb4,g4,c5]@2 ~ [eb4,g4,c5] ~@3 [f4,a4,d5]", // Cm Dm
  K: "~ [f4,a4,d5] ~@4 [f4,d5] ~ [f4,a4,d5]@2 ~ [f4,a4,d5] ~ [f4,d5] ~ [eb4,g4,c5]", // Dm Cm
  L: "~ [eb4,g4,c5] ~@4 [eb4,gb4,c5] ~ [d4,gb4,c5]@2 c5 ~ [b3,eb4,bb4]@2 ~ [c4,g4,c5]", // Cm Cdim D7 Bmaj7 C5
  M: "~ [c4,g4,c5] ~@13 [bb3,eb4,g4]", N: "~@8 [bb3,eb4,g4]@2 ~ [bb3,eb4,g4] ~@3 [a3,d4,f4]",
  O: "~@8 [a3,d4,f4]@2 ~ [a3,d4,f4] ~@3 [eb4,ab4,c5]", P: "~@8 [d4,gb4,c5]@3 ~ [b3,eb4,bb4]@2 ~ [bb3,eb4,g4]",
  Q: "~ [bb3,eb4,g4] ~@4 g4 ~ [bb3,eb4,g4]@2 [bb3,g4]!2 ~@3 [bb3,eb4,g4]", // Eb
  R: "~@8 [bb3,eb4,g4]@2 ~ [bb3,eb4,g4] ~@3 [a3,c4,f4]", S: "~@3 a3 ~@4 [a3,d4,f4]@2 ~ [a3,d4,f4] ~ f4 ~ [eb4,ab4,c5]",
  T: "~@8 [c4,gb4,a4]@4 [b3,f4,ab4]@2 ~ [bb3,eb4,g4]", // Gbdim Fdim Eb
  U: "~ [bb3,eb4,g4] ~@4 c5 ~ [eb4,g4,c5]@2 [g4,bb4,eb5] [eb4,g4,c5] ~@3 [bb3,eb4,g4]", // Eb Cm Eb Cm Eb
  V: "~@4 [bb3,eb4,g4] ~@3 c5!3 [eb4,g4,c5] ~@3 [a3,c4,f4], ~@8 [eb4,g4]@3 ~@5", // Eb Cm F Eb
  W: "~ [c4,f4] ~@6 [a3,d4,f4]@2 ~ [a3,d4,f4] ~@4", X: "[[ab3,c4,f4]@4 [bb3,d4,g4]@3 [c4,eb4,ab4]@9]/2",
  Y: "~ [f4,a4,d5] ~@6 [f4,a4,d5]@2 ~ [f4,a4,d5] ~ [f4,d5] ~ eb4", // Dm
  Z: "[~@15 [eb4,g4,bb4]@2 [eb4,g4,bb4] ~@5 [eb4,g4,c5]@2 [eb4,g4,c5] ~@6]/2", // Eb Cm
  AA: "[[g4,bb4] [g4,b4] [g4,c5]!3 ~@2 [gb4,bb4,db5]@2 [gb4,bb4,db5] ~@5 [eb4,g4,bb4]@2 [eb4,g4,bb4] ~@5 [eb4,g4,c5]@2 [eb4,g4,c5] ~@6, eb4 ~@7]/2", // Gm G C5 Gb Eb Cm
  AB: "[~ [c4,eb4,bb4] ~@4 [bb4,eb5] ~@2 bb4 [g4,bb4,eb5]!2 ~ [f4,a4,d5] ~ [eb4,g4,bb4,c5]@2 [eb4,g4,bb4] ~@5 [eb4,g4,c5]@2 [eb4,g4,c5] ~@6, ~@4 [g4,bb4,eb5] ~@11]/2", // Cm7 Eb5 Eb Dm Cm7 Eb Cm Eb
  AC: "[g4 ~ [g4,c5]!3 ~@2 [gb4,bb4,db5]@2 [gb4,bb4,db5] ~@5 [eb4,g4,bb4]@2 [eb4,g4,bb4] ~@5 [eb4,g4,c5]@2 [eb4,g4,c5] ~@6, eb4 ~@7]/2", // C5 Gb Eb Cm
  AD: "[g4 ~ [g4,c5]!3 ~@2 [gb4,bb4,db5]@2 [gb4,bb4,db5] ~@5 [eb4,g4,bb4]@2 [eb4,g4,bb4] ~@5 [eb4,g4,c5]@2 [eb4,g4,c5] ~@4 [eb4,ab4,c5]@14 ~@4, eb4 ~@11]/3", // C5 Gb Eb Cm Ab
})).s("gm_electric_guitar_clean").gain(0.4).pan(0.8)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note(`<
  ~@2 A ~@3 A ~@4 B ~@3 C ~@2 A D E F G H ~ I A D E F ~ J ~@4 B ~@3 B ~@4 B ~@2 A D E F G H ~ I A D E F ~ J ~@4 B ~@3 B
  ~@3 B ~@3 B ~@17 B ~@3 B ~@3 B ~@3 B ~@3 K ~ K ~ K ~ K ~ K ~ K ~ K ~@4
>`.pickRestart({
  A: "~@6 g4 ~@9", B: "~@3 eb4 ~ f4 ~@10", C: "~@3 eb4 ~@12", D: "~ d4 ~ d4 ~@2 f4 ~@9", E: "~@3 ab4 ~ ab4 ~@10",
  F: "~@9 eb4!3 ~@4", G: "~@6 bb3 ~@9", H: "~ a3 ~@11 d4 ~@2", I: "~@6 c4 ~@9", J: "~ a3 ~@14", K: "bb4 [g4,b4] ~@14",
})).s("gm_electric_guitar_clean").gain(0.24).pan(0.8)

// other · vibraphone
const vibraphone = note(`<
  ~@18 A B ~@2 A C ~@2 D E ~@2 A F ~@3 G@2 H@2 I@2 J@2 ~@5 K L ~@2 M N ~@2 K O ~@2 K P@2 ~@2 Q@2 R@2 S@2 T@2 U@2 V W X@2
  Y Z ~@12 AA AB Q@2 AC@2 AD@2 AE@2 Q@2 V W U@2 AF@2 ~@15 AG ~@2
>`.pickRestart({
  A: "~@4 eb5 ~ eb5 ~ eb5 ~ eb5 ~ eb5 ~ g5 ~", B: "g5@2 f5 ~ f5 ~ eb5 ~ f5@3 ~ c5@4",
  C: "g5 ~ f5 ~ f5 ~ eb5 ~ g5@4 eb5@4", D: "~@4 c6 ~ c6 ~ g5 ~ f5 ~ f5@2 eb5 ~", E: "f5 ~ f5 ~ f5@2 eb5 ~ g5@4 eb5@3 ~",
  F: "g5@2 f5 ~ f5@2 eb5 ~ g5@3 ~ eb5@3 ~", G: "[eb5@12 c5@2 f5@4 ~@2 g5 f5 eb5 ~ f5@4 g5@3 ~]/2",
  H: "[f5@6 g5 c5@3 ~@6]/2", I: "[eb5@8 g5@6 f5@5 ~ g5 f5 eb5@2 f5@3 ~ g5@3 ~]/2", J: "[f5@4 g5@3 c5@2 eb5@7]/2",
  K: "~@4 eb5 ~ eb5 ~ eb5 ~ eb5 ~ eb5@2 g5 ~", L: "g5@2 f5 ~ f5@2 eb5 ~ f5@3 ~ c5@4",
  M: "~@4 eb5 ~ eb5 ~ eb5 ~ eb5 ~ eb5 ~ eb5 ~", N: "c6@2 bb5 ~ bb5@2 g5 ~ c6@3 ~ bb5@4",
  O: "g5@2 f5 ~ f5@2 eb5 ~ f5@4 c5@4", P: "[g5@2 f5 ~ f5@2 eb5 ~ g5@4 eb5@6 ~@14]/2",
  Q: "[eb5@12 c5@2 f5@4 ~@2 g5 f5 eb5 ~ f5@3 ~ g5@3 ~]/2", R: "[f5@6 g5 c5@2 ~@7]/2",
  S: "[eb5@8 g5@6 f5@4 ~@2 g5 f5 eb5 ~ f5@3 ~ g5@3 ~]/2", T: "[f5@12 g5@2 c5@5 ~@13]/2",
  U: "[eb5@8 g5@6 f5@5 ~ g5 f5 eb5 ~ f5@3 ~ g5@3 ~]/2", V: "f5@6 g5 bb5", W: "g5@3 ~@5",
  X: "[eb5@12 c5@2 f5@5 ~ g5 f5 eb5 ~ f5@3 ~ g5@3 ~]/2", Y: "f5@4 g5@3 c5", Z: "~@2 eb5@13 ~",
  AA: "c5 ~ c5 ~ eb5 ~ eb5 ~ f5@2 eb5 ~ g5@2 ~@2", AB: "g5@4 f5@3 ~ eb5@4 f5@3 ~", AC: "[f5@12 g5@2 ~ c5@5 ~@12]/2",
  AD: "[eb5@8 g5@6 f5@5 ~ g5 f5 eb5 ~ f5@4 g5@3 ~]/2", AE: "[f5@12 g5@3 c5@4 ~@13]/2", AF: "[f5@12 c6@2 ~ c6@6 ~@11]/2",
  AG: "c5@2 c5 ~ eb5 ~ eb5 ~ f5@2 eb5 ~ g5@2 ~@2",
})).s("gm_vibraphone").gain(0.29)

// other · brass section
const brass_section = note(`<
  A B C ~ A B C D@2 E F G H@2 I@2 J K ~@8 K ~@5 L@2 ~@7 M@2 N O@2 P@2 ~@8 Q ~@5 L@2 ~@4 R ~@3 S ~@3 T@2 ~ L@2 ~@4 U V@4
  W@3 X@2 ~@3 R ~@3 S ~@3 Y ~@3 Z@8 AA@2 AB@7 AC@2
>`.pickRestart({
  A: "[g4,g5]@4 [a4,a5]@4 [bb4,bb5]@4 [a4,b5]@3 [g4,c6]", B: "~@15 c4", C: "~ c4 ~@13 c6",
  D: "[~@6 [d4,bb4] [eb4,c5]@9]/2", E: "~@8 c6 bb5 g5 f5 gb5 f5 eb5 c5", F: "~@4 gb5 f5 ~@2 eb5 c5 ~@2 d5@3 c5",
  G: "~@4 b4 c5 ~@6 bb4 c5 ~ eb5", H: "[~ bb4 c5@4 bb4 ~@5 gb4 f4 eb4 f4@3 eb4 ~@13]/2",
  I: "[~@2 gb4 ~@2 f4 ~@2 eb4 ~@3 bb4 ~@2 a4@9 ~@4 bb4 c5 ~ eb5]/2", J: "~ bb4 c5@4 bb4 ~@3 gb5 ~ f5 eb5 ~ [c5,c6]",
  K: "~ [c5,c6] ~@14", L: "[c5@8 bb4@6 c5@17 ~]/2", M: "[c5@8 bb4@6 c5@16 ~ c5]/2",
  N: "~ [eb4,c5] ~@6 c6 bb5 g5 f5 gb5 f5 eb5 c5", // Cm
  O: "[~@4 bb3 c4 ~ eb4 gb4 g4 ~ d5 ~ c5 gb5 g5@3 d5 ~@2 c5 ~@2 f4!2 ~@5 c5]/2",
  P: "[f5!2 eb5 f5 ~@2 gb5!2 f5 gb5 ~ eb5 g5!2 eb5 f5@3 eb5 ~@4 c4 a4 bb4 a4 bb4 a4 bb4 ~ [c5,c6]]/2", Q: "~ c6 ~@14",
  R: "~@7 gb4 f4@2 eb4 ~ c4@2 bb3 ~", S: "~@8 bb5 ~ bb5 ~ eb5 c5 ~@2", T: "[~@8 bb4@4 ab4@3 g4@11 ~@6]/2",
  U: "~@15 [c5,c6]", V: "[~@7 f4@3 ~ eb4 ~@2 f4@19 ~@7 f4@2 [gb4,g4] [ab4,a4] ~@2 ab4@16 ~ [c5,c6]]/4",
  W: "[~@7 f5@3 ~ eb5 ~@2 f5@19 ~ [c5,c6] ~ [b4,b5] [c5,c6] ~@2 f5@2 ~ f5 ~@2 a5@2]/3", X: "[[eb4,c5]@9 ~@7]/2",
  Y: "~@8 bb5 ~ bb5 ~ eb5 c5 ~ eb5",
  Z: "[~@8 bb5 ~ bb5 ~ eb5 c5 ~ [c3,bb3]@8 [d3,c4]@8 [db3,c4]@8 [eb3,db4]@8 [c3,bb3]@8 [d3,c4]@8 [db3,c4]@8 [eb3,db4]@8 [c3,bb3]@8 [d3,c4]@8 [db3,c4]@8 [eb3,db4]@8 [bb3,g4]@8 [c4,a4]@8 [c4,ab4]]/8", // C7 D7 Dbmaj7 Eb7 C7 D7 Dbmaj7 Eb7 …
  AA: "[~@7 [db4,bb4]@8 [bb3,g4]@8 [c4,a4]@8 [c4,ab4]]/2", // Gb Eb F Fm
  AB: "[~@7 [db4,bb4]@8 [bb3,g4,c5]@8 [c4,a4,d5]@8 [c4,ab4,db5]@8 [db4,bb4,eb5]@8 [bb3,g4,c5]@8 [c4,a4,d5]@8 [c4,ab4,db5]@8 [db4,bb4,eb5]@8 [bb3,g4,c5]@8 [c4,a4,d5]@7 [db3,c4,ab4]@18]/7", // Gb C7 D7 Dbmaj7 Eb7 C7 D7 Dbmaj7 …
  AC: "[~@15 [ab3,db4,g4]@2 ~ [bb3,eb4,a4]@2 ~@12]/2", // Db Eb
})).s("gm_brass_section").gain(0.48).pan(0.8)

// other · tuba
const tuba = note(`<
  A B C ~ A B D E@2 F G H I@2 J@2 K L ~@8 L ~@5 M@2 N@4 O@3 P@2 Q R@2 S@2 ~@8 L ~@5 M@2 N@4 T@4 U@4 V@5 ~@4 W X@4 Y@3 Z
  ~ AA@3 T@4 U@4 AB AA@3 AB ~@7 W ~@3 W ~@2 AC ~ AD@2
>`.pickRestart({
  A: "[g3,bb3]@4 [a3,c4]@4 [bb3,db4]@4 [b3,d4]@3 [c4,eb4]", B: "~@15 [c3,bb3]", C: "~ [c3,bb3] ~@13 bb3",
  D: "~ [c3,bb3] ~@13 eb4", E: "[~@6 [c3,g3] [db3,ab3]@9]/2", F: "~@8 c4 bb3 ~@6",
  G: "~@4 gb4 f4 ~@2 eb4 c4 ~@2 bb3@3 a3", H: "~@4 ab3 a3 ~@6 bb3 c4 ~ eb4",
  I: "[~ bb3 c4@4 bb3 ~@5 gb3 f3 eb3 f3@3 eb3 ~@13]/2",
  J: "[~@2 gb3 ~@2 f3 ~@2 eb3 ~@3 g4 ~@2 f4@9 ~@4 bb3 c4 ~ eb4]/2", K: "~ bb3 c4@4 bb3 ~@3 gb4 ~ f4 eb4 ~ c4",
  L: "~ c4 ~@14", M: "[f3@4 g3@3 db3@9]/2", N: "[~@15 bb3@12 ~ bb3@3 a3@13 ~@3 ab3@9 gb3@4 f3@3 eb3]/4",
  O: "[~@15 bb3@12 ~ bb3@3 a3@13 ~@4]/3", P: "[f3@8 g3@6 db3@16 ~ ab3]/2", Q: "~ ab3 ~@6 c5 bb4 g4 f4 gb4 f4 eb4 c4",
  R: "[~@4 bb2 c3 ~ eb3 gb3 g3 ~ d4 ~ c4 gb4 g4@3 a3 ~@2 a3 ~@2 f3!2 ~@5 g3]/2",
  S: "[c4!2 b3 c4 ~@2 d4!2 db4 c4 ~ c4 eb4!2 c4 d4@3 c4 ~@4 c3 a3 bb3 a3 bb3 a3 bb3 ~ c4]/2",
  T: "[~@7 gb3 f3@2 eb3 ~ c3@2 bb2 bb3@12 ~ bb3@3 a3@13 ~@3 ab3@9 gb3@4 f3@3 eb3]/4",
  U: "[~@8 gb4 ~ f4 ~ eb4 c4 ~ bb3@12 ~ bb3@3 a3@13 ~@3 ab3@9 gb3@4 f3@3 eb3]/4",
  V: "[~@8 c4@4 b3@3 bb3@12 ~ bb3@3 a3@13 ~@4 f3@8 g3@6 db3@18, ~@47 ab3@9 ~@24]/5", W: "~@15 eb4",
  X: "[~@7 f4@3 ~ eb4 ~@2 f4@19 ~@7 f4@2 [gb4,g4] [ab4,a4] ~@2 eb4@16 ~ eb4]/4", // Gmaj7 Amaj7
  Y: "[~@7 f4@3 ~ eb4 ~@2 f4@19 ~ g4 ~ gb4 g4 ~@2 c4@2 ~ c4 ~@2 e4@2]/3", Z: "eb4",
  AA: "[~@12 bb3@3 a3@13 ~@3 ab3@9 gb3@4 f3@3 eb3]/3", AB: "~@8 gb4 ~ f4 ~ eb4 c4 ~ eb4", AC: "~@2 g4 ~ gb4 g4 ~@10",
  AD: "[~@8 c5 bb4 ab4 f4 eb4 c4 b3 [bb3,ab4]@3 [c4,bb4]@2 ~@12]/2", // Bb7 C7
})).s("gm_tuba").gain(0.31).pan(0.1)

// other · tenor sax
const tenor_sax = note(`<
  A B C ~ A D E F@2 G H I J@2 K@2 L M ~@8 M ~@5 N@2 O@4 P@3 Q@2 R S@2 T@2 ~@8 U ~@5 N@2 O@4 V@4 W@4 X@5 ~@4 Y Z@4 AA@3
  AB@2 AC@3 V@4 W@4 AD AC@3 AD ~@7 D ~@3 D ~@2 AE ~ AF@2
>`.pickRestart({
  A: "g4@3 ~ a4@3 ~ bb4@3 ~ a4@3 g4", B: "~@15 eb4", C: "~ eb4 ~@13 g4", D: "~@15 c4", E: "~ c4 ~@13 eb4",
  F: "[~@6 eb4 f4@9]/2", G: "~@8 c5 bb4 g4 f4 gb4 f4 eb4 c4", H: "~@4 gb4 f4 ~@2 eb4 c4 ~@2 g4@3 f4",
  I: "~@4 e4 f4 ~@6 bb3 c4 ~ eb4", J: "[~ bb3 c4@4 bb3 ~@5 d4 c4 bb3 c4@3 bb3 ~@13]/2",
  K: "[~@2 gb3 ~@2 f3 ~@2 eb3 ~@3 eb4 ~@2 [d4,g4]@9 ~@4 bb3 c4 ~ eb4]/2", L: "~ bb3 c4@4 bb3 ~@3 gb4 ~ f4 eb4 ~ c4",
  M: "~ c4 ~@14", N: "[eb4@4 d4@3 eb4@9]/2", O: "[~@15 eb4@12 ~ eb4@3 d4@14 ~@2 c4@13 b3@3 ~]/4",
  P: "[~@15 eb4@12 ~ eb4@3 d4@14 ~@3]/3", Q: "[eb4@8 d4@6 eb4@16 ~ eb4]/2", R: "~ eb4 ~@6 c5 bb4 g4 f4 gb4 f4 eb4 c4",
  S: "[~@4 bb2 c3 ~ eb3 gb3 g3 ~ d4 ~ c4 f4 eb4@3 a3 ~@2 a3 ~@2 [c4,f4]!2 ~@5 c4]/2", // F5
  T: "[f4!2 eb4 f4 ~@2 gb4!2 f4 gb4 ~ eb4 g4!2 eb4 f4@3 eb4 ~@4 c3 a3 bb3 a3 bb3 a3 bb3 ~ [c4,c5]]/2", // C
  U: "~ [c4,c5] ~@14", V: "[~@7 gb4 f4@2 eb4 ~ c4@2 bb3 eb4@12 ~ eb4@3 d4@14 ~@2 c4@13 b3@3 ~]/4",
  W: "[~@8 [bb3,bb4] ~ [bb3,bb4] ~ [eb3,eb4] c4 ~ eb4@12 ~ eb4@3 d4@14 ~@2 c4@13 b3@3 ~]/4", // Bb Eb
  X: "[~@8 bb4@3 ~ ab4@3 eb4@12 ~ eb4@3 d4@14 ~@3 eb4@8 d4@6 eb4@18, ~@47 c4@13 ~@20]/5", Y: "~@15 c5",
  Z: "[~@7 f3@3 ~ eb3 ~@2 f3@19 ~@7 f4@2 ~ a4 ~@2 ab4@16 ~ c5]/4",
  AA: "[~@7 f4@3 ~ eb4 ~@2 f4@19 ~ c5 ~ [d3,b4] c5 ~@2 f4@2 ~ f4 ~@2 a4@2]/3", AB: "[f4@9 ~@7]/2",
  AC: "[~@12 eb4@3 d4@14 ~@2 c4@13 b3@3 ~]/3", AD: "~@8 [bb3,bb4] ~ [bb3,bb4] ~ [eb3,eb4] c4 ~ [eb3,eb4]",
  AE: "~@2 c5 ~ [d3,b4] c5 ~@10", AF: "[~@8 c5 bb4 ab4 f4 eb4 c4 b3 eb5@3 f5@2 ~@12]/2",
})).s("gm_tenor_sax").gain(0.36).pan(0.3)

// other · tenor sax · soft notes
const tenor_sax_soft = note(`<
  ~@37 A ~@29 A ~@3 A B ~@2 A ~@9 C ~@2 D C ~@2 E ~@4 A ~@3 A B ~@2 A B ~@2 A B ~@7 C ~@3 C ~@2 E ~ F@2
>`.pickRestart({
  A: "~@15 bb3", B: "~@13 c3 ~@2", C: "~@15 bb2", D: "~@10 [gb4,g4] ab4 ~@4", E: "~@2 eb3 ~@2 eb3 ~@10",
  F: "[~@15 f3@3 g3@2 ~@12]/2",
})).s("gm_tenor_sax").gain(0.18).pan(0.3)

// other · clavinet
const clavinet = note("<~@10 A@7 B ~@7 C D@4 E@2 ~@3 F@6 ~@14 C D@4 G@2 ~@3 H@6 ~@24 I@6 ~@2 J@6 ~@20>".pickRestart({
  A: "[~ c3 c2 ~ bb2@2 a2@2 g2 ~@6 f2@2 f3 f2@2 eb3@2 d3@2 c3 ~ d3 ~ eb3@2 ~ f2@2 f3 f2@2 c3@2 db3@2 d3@2 ~@5 c2@2 c3 c2@2 ~@4 f3@2 eb3 ~ c3@2 bb2 c2@2 c3 c2 ~ bb2@2 a2@2 g2 ~@6 f2@2 f3 f2 ~ eb3@2 d3@2 c3 ~ d3 ~ eb3@2 ~ f2@2 f3 f2@2 c3@2 db3@2 d3@2 ~@5 c3, ~@56 eb3 ~@55]/7",
  B: "~ c3 ~@14", C: "~@8 f3@2 eb3 ~ c3@2 bb2 c2, ~@8 gb3 ~@7",
  D: "[~ c3 c2 ~ bb2@2 a2@2 g2 ~@6 f2@2 f3 f2 ~ eb3@2 d3@2 c3 ~ d3 ~ eb3@2 ~ f2@2 f3 f2 f3 c3@2 db3@2 d3@3 ~ db3@3 c2@2 c3 c2@2 ~@3 c3 [c4,f4]@2 [bb3,eb4] ~ g3 gb3 f3 eb3]/4", // F5 Eb5
  E: "[~ c3 c2@2 bb2@2 a2@2 g2 ~@6 f2@2 f3 f2 ~ eb3@2 d3@2 c3 ~@7]/2",
  F: "[~ c3 c2 ~ bb2@2 a2@2 g2 ~@6 f2@2 f3 f2 ~ eb3@2 d3@2 c3 ~@6 f2@2 f3 f2@2 c3@2 db3@2 d3@2 ~@5 c2@2 c3 c2@2 ~@4 f3@2 eb3 ~ c3@2 bb2 c2@2 c3 c2@2 bb2@2 a2@2 g2 ~@6 f2@2 f3 f2 ~ eb3@2 d3@2 c3 ~@7, ~@56 eb3 ~@39]/6",
  G: "[~ c3 c2 ~ bb2@2 a2@2 g2 ~@6 f2@2 f3 f2 ~ eb3@2 d3@2 c3 ~@7]/2",
  H: "[~ c3 c2 ~ bb2@2 a2@2 g2 ~@6 f2@2 f3 f2 ~ eb3@2 d3@2 c3 ~@6 f2@2 f3 f2@2 c3@2 db3@2 d3@2 ~@5 c2@2 c3 c2@2 ~@11 c2@2 c3 c2@2 bb2@2 a2@2 g2 ~@6 f2@2 f3 f2 ~ eb3@2 d3@2 c3 ~@7]/6",
  I: "[~ c3 c2 ~ bb2@2 a2@2 g2 ~@6 f2@2 f3 f2 ~ eb3@2 d3@2 c3 ~@6 f2@2 f3 f2@2 c3@2 db3@2 d3@2 ~@5 c2@2 c3 c2@2 ~@11 c2@2 c3 c2 ~ bb2@2 a2@2 g2 ~@6 f2@2 f3 f2 ~ eb3@2 d3@2 c3 ~@7]/6",
  J: "[~ c3 c2 ~ bb2@2 a2@2 g2 ~@6 f2@2 f3 f2 ~ eb3@2 d3@2 c3 ~@6 f2@2 f3 f2@2 c3@2 db3@2 d3@2 ~@5 c2@2 c3 c2@2 ~@11 c2@2 c3 c2 ~ bb2@2 a2@2 g2 ~@6 f2@2 f3 f2@2 eb3@2 d3@2 c3 ~@7]/6",
})).s("gm_clavinet").gain(0.48).pan(0.8)

// chords · epiano1
const epiano1 = note(`<
  A@2 B C D@2 B E@2 F@3 G@5 H ~@7 I@7 J@3 ~@20 I@7 J@3 ~@16 K@7 ~@22 L@8 M@7 N@2 O@2
>`.pickRestart({
  A: "[g3@4 a3@4 bb3@4 b3@3 [eb4,g4] ~@15 [bb3,eb4,g4], ~@15 bb3@2 ~@15]/2", B: "~ [bb3,eb4,g4] ~@13 [bb3,eb4,g4]",
  C: "~@15 c4", D: "[g3@4 a3@4 bb3@4 b3@2 ~ [eb4,g4] ~@15 [bb3,eb4,g4], ~@15 bb3@2 ~@15]/2",
  E: "[~@6 [c2,bb3,d4,g4] [db2,c4,eb4,ab4]@9]/2", F: "[~@15 [g3,bb3,eb4]@13 [g3,bb3,eb4]@3 [f3,a3,d4]@15 ~@2]/3",
  G: "[[ab3,c4,eb4]@8 [gb3,c4,f4]@4 [f3,b3,eb4]@3 [g3,bb3,eb4]@10 ~ [b3,f4,bb4] ~@2 [f4,ab4] ~ [bb3,eb4,g4]@12 ~ [bb3,eb4,g4]@2 ~ [a3,f4]@14 ~@2 [ab3,eb4,g4]@8 ~ [a3,c4,gb4]@4 [ab3,b3,f4]@3 [g3,bb3,eb4], ~@29 b3@2 ~@16 d4@12 ~@21]/5", // Ab F Fm7b5 Eb Bb Fm Eb Dm …
  H: "~ [g3,bb3,eb4] ~@8 [b3,f4,bb4] ~@2 [b3,f4,ab4]@2 [bb3,eb4,g4]", // Eb Bb Fdim Eb
  I: "[~@10 [b3,f4,bb4] ~@2 [b3,f4,ab4]@2 [bb3,eb4,g4]@16 [a3,d4,g4]@15 ~ [ab3,c4,eb4]@8 ~ [a3,c4,f4]@4 [ab3,b3,eb4]@3 [bb3,c4,g4]@13 ~@3 [bb3,eb4,g4]@16 [a3,eb4,g4]@17]/7", // Bb Fdim Eb Dsus4 Ab F Abm C7 …
  J: "[[ab3,c4,f4]@4 [bb3,d4,g4]@3 [c4,eb4,ab4]@17]/3", // Fm Gm Ab
  K: "[~@15 [c3,bb3,g4]@2 ~ [c3,bb3,g4] ~ [c3,bb3,g4]@2 ~ [d3,c4,a4]@2 ~ [d3,c4,a4] ~ [d3,c4,a4]@3 [db3,c4,ab4]@2 ~ [db3,c4,ab4] ~ [db3,c4,ab4]@3 [eb3,db4,bb4]@2 ~ [eb3,db4,bb4] ~ [eb3,db4,bb4]@3 [c3,bb3,g4]@2 ~ [c3,bb3,g4] ~ [c3,bb3,g4]@2 ~ [d3,c4,a4]@2 ~ [d3,c4,a4] ~ [d3,c4,a4]@3 [db3,c4,ab4]@2 ~ [db3,c4,ab4] ~ [db3,c4,ab4]@3 [eb3,db4,bb4]@2 ~ [eb3,db4,bb4] ~ [eb3,db4,bb4]@3 [c3,bb3,g4]@2 ~ [c3,bb3,g4] ~ [c3,bb3,g4]@2 ~ [d3,c4,a4]@2 ~ [d3,c4,a4] ~ [d3,c4,a4]@3 [db3,c4,ab4]@2 ~ [db3,c4,ab4] ~ [db3,c4,ab4]@3 [eb3,db4,bb4]@2 ~ [eb3,db4,bb4] ~ [eb3,db4,bb4]@3 ~]/7", // C7 D7 Dbmaj7 Eb7 C7 D7 Dbmaj7 Eb7 …
  L: "[~@15 [c3,bb3,g4]@2 ~ [c3,bb3,g4] ~ [c3,bb3,g4]@2 ~ [d3,c4,a4]@2 ~ [d3,c4,a4] ~ [d3,c4,a4]@3 [db3,c4,ab4]@2 ~ [db3,c4,ab4] ~ [db3,c4,ab4]@3 [eb3,db4,bb4]@2 ~ [eb3,db4,bb4] ~ [eb3,db4,bb4]@3 [c3,bb3,g4]@2 ~ [c3,bb3,g4] ~ [c3,bb3,g4]@2 ~ [d3,c4,a4]@2 ~ [d3,c4,a4] ~ [d3,c4,a4]@3 [db3,c4,ab4]@2 ~ [db3,c4,ab4] ~ [db3,c4,ab4]@3 [eb3,db4,bb4]@2 ~ [eb3,db4,bb4] ~ [eb3,db4,bb4]@3 [c3,bb3,g4]@2 ~ [c3,bb3,g4] ~ [c3,bb3,g4]@2 ~ [d3,c4,a4]@2 ~ [d3,c4,a4] ~ [d3,c4,a4]@3 [db3,c4,ab4]@2 ~ [db3,c4,ab4] ~ [db3,c4,ab4]@3 [eb3,db4,bb4]@2 ~ [eb3,db4,bb4] ~ [eb3,db4,bb4]@3 [c3,bb3,g4]@2 ~ [c3,bb3,g4] ~ [c3,bb3,g4]@2 ~ [d3,c4,a4]@2 ~ [d3,c4,a4] ~ [d3,c4,a4]@3 [db3,c4,ab4]]/8", // C7 D7 Dbmaj7 Eb7 C7 D7 Dbmaj7 Eb7 …
  M: "[~@2 [db3,c4,ab4] ~ [db3,c4,ab4]@3 [eb3,db4,bb4]@2 ~ [eb3,db4,bb4] ~ [eb3,db4,bb4]@3 [c3,bb3,g4]@2 ~ [c3,bb3,g4] ~ [c3,bb3,g4]@2 ~ [d3,c4,a4]@2 ~ [d3,c4,a4] ~ [d3,c4,a4]@3 [db3,c4,ab4]@2 ~ [db3,c4,ab4] ~ [db3,c4,ab4]@3 [eb3,db4,bb4]@2 ~ [eb3,db4,bb4] ~ [eb3,db4,bb4]@3 [c3,bb3,g4]@2 ~ [c3,bb3,g4] ~ [c3,bb3,g4]@2 ~ [d3,c4,a4]@2 ~ [d3,c4,a4] ~ [d3,c4,a4]@3 [db3,c4,ab4]@2 ~ [db3,c4,ab4] ~ [db3,c4,ab4]@3 [eb3,db4,bb4]@2 ~ [eb3,db4,bb4] ~ [eb3,db4,bb4]@3 [c3,bb3,g4]@2 ~ [c3,bb3,g4] ~ [c3,bb3,g4]@2 ~ [d3,c4,a4]@2 ~ [d3,c4,a4] ~ [d3,c4,a4]@3 [db3,c4,ab4]@2 ~ [db3,c4,ab4] ~ [db3,c4,ab4]@3 [eb3,db4,bb4]@2 ~ [eb3,db4,bb4] ~ [eb3,db4,bb4]@3 [c3,bb3,g4]]/7", // Dbmaj7 Eb7 C7 D7 Dbmaj7 Eb7 C7 D7 …
  N: "[~@2 [c3,bb3,g4] ~ [c3,bb3,g4]@2 ~ [d3,c4,a4]@2 ~ [d3,c4,a4] ~ [d3,c4,a4]@2 [db3,c4,ab4]@18]/2", // C7 D7 Dbmaj7
// … 129 more lines

More by Dirotta su Cuba