Strudelify
Senza fine cover art

Una Sera Con Gino Paoli

Senza fine

Paoli

KeyE♭ majorTempo120 bpm
0:00/0:00
// Senza fine — Paoli
// 120 bpm, 4/4, key D# 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 112 bars on a 32-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.

// bass · fretless bass
const bass = note(`<
  A@3 B@3 C@6 D@3 E@3 F@3 G@3 H@3 I@6 J@3 K@3 L@2 M N@3 O@8 P Q@6 R@3 S@6 T@6 U@4 V@3 W@3 X@2 Y Z@3 AA@3 AB@2 AC AD@3
  AE@2 AF AG@3 AH@3 AI@3
>`.pickRestart({
  A: "[~@29 eb2@16 ~@8 eb2@19 ~@5 bb1@18 ~]/3", B: "[~@5 bb1@22 ~@2 c2@19 ~@5 c2@19 ~@5 f1@18 ~]/3",
  C: "[~@5 f1@20 ~@4 bb1@24 g1@24 eb2@22 ~@2 f2@18 ~@6 bb1@20 ~@4 g1@21 ~@3 eb2@19]/6",
  D: "[~@5 f2@18 ~@6 ab2@18 ~@6 ab2@20 ~@4 gb2@19]/3", E: "[~@5 gb2@21 ~@3 ab2@18 ~@6 ab2@20 ~@4 gb2@19]/3",
  F: "[~@5 gb2@14 ~@2 gb1@7 ~ c2@19 ~@5 c2@19 ~@6 f1@16 ~@2]/3",
  G: "[~@6 f1@8 g1@8 a1@8 bb1@19 ~@5 g1@18 ~@6 eb2@18]/3", H: "[~@6 f2@19 ~@5 bb1@14 ~@2 bb1@8 g1@24 eb2@18]/3",
  I: "[~@6 f2@17 ~@7 ab2@19 ~@5 ab2@23 ~ gb2@24 gb1@22 ~@2 ab2@18 ~@6 ab2@23 ~ gb2@18]/6",
  J: "[~@6 gb2@13 ~@3 gb2@8 c2@19 ~@5 c2@13 ~@3 c2@7 ~ f1@18]/3",
  K: "[~@6 f1@17 ~@7 f1@16 c2@7 ~ bb1@16 d2@7 ~ eb2@13 ~@3 eb2@2]/3",
  L: "[~@6 eb2@15 ~ e2@8 f2@12 ~@4 f2@7 ~ bb1@10]/2", M: "~@6 bb1@7 ~ eb2@18",
  N: "[~@6 eb2@22 ~@2 f2@13 ~@3 f2@7 ~ f1@13 ~@3 f1@8 bb1@18]/3",
  O: "[~@6 bb1@23 ~ eb2@15 ~@9 eb2@22 ~@2 eb2@12 ~@4 eb2@4 ~@5 eb2@12 ~@4 eb2@8 d2@21 ~@3 d2@14 ~@2 a1@8 g1@20 ~@4 g1@12 ~@4 g1@6 ~@2 c2@18 ~@6 c2@9]/8",
  P: "~@7 c2@5 ~@3 f1@17", Q: "[~@7 f1@8 g1@8 a1@7 ~ bb1@24 g1@24 eb2@22 ~@2 f2@18 ~@6 bb1@20 ~@4 g1@21 ~@3 eb2@17]/6",
  R: "[~@7 f2@18 ~@6 ab2@18 ~@6 ab2@20 ~@4 gb2@17]/3",
  S: "[~@7 gb2@21 ~@3 ab2@18 ~@6 ab2@20 ~@4 gb2@21 ~@3 gb2@14 ~@2 gb1@7 ~ c2@18 ~@6 c2@19 ~@5 f1@16 ~]/6",
  T: "[~@7 f1@8 g1@8 a1@8 bb1@18 ~@6 g1@18 ~@6 eb2@20 ~@4 f2@19 ~@5 bb1@14 ~@2 bb1@8 g1@24 eb2@17]/6",
  U: "[~@7 f2@17 ~@7 ab2@19 ~@6 ab2@23 ~ gb2@24 gb1@22 ~@2]/4",
  V: "[ab2@18 ~@6 ab2@23 ~ gb2@19 ~@5 gb2@13 ~@3 gb2@8]/3", W: "[c2@19 ~@5 c2@13 ~@3 c2@7 ~ f1@19 ~@5 f1@17 ~@7]/3",
  X: "[f1@16 c2@7 ~ bb1@16 d2@7 ~ eb2@13 ~@3]/2", Y: "eb2@3 ~@5 eb2@15 ~ e2@8",
  Z: "[f2@12 ~@4 f2@7 ~ bb1@12 ~@4 bb1@7 ~ eb2@20 ~@4 eb2@22 ~@2]/3",
  AA: "[f2@12 ~@4 f2@7 ~ f1@13 ~@3 f1@8 bb1@19 ~@5 bb1@23 ~]/3", AB: "[eb2@15 ~@9 eb2@22 ~@2 eb2@12 ~@4]/2",
  AC: "eb2 ~ eb2@3 ~ eb2@2", AD: "[d2@21 ~@3 d2@14 ~@2 a1@8 g1@20 ~@4 g1@12 ~@4 g1@6 ~@2]/3",
  AE: "[c2@18 ~@6 c2@11 ~@5 c2@5 ~@3 f1@16]/2", AF: "~@8 f1@8 g1@8 a1@7 ~", AG: "[bb1@24 g1@25 eb2@22 ~@2 f2@18 ~@5]/3",
  AH: "[~ bb1@24 g1@24 eb2@22 ~@2 f2@18 ~@5]/3", AI: "[~ bb1@24 g1@24 eb2@22 ~@25]/3",
})).s("gm_fretless_bass").gain(0.28)

// chords · epiano2
const epiano2 = note(`<
  A@5 B@4 C@3 D@8 E F@6 G@7 H@6 I@8 J@7 K@3 L@2 M@8 N O@8 P@2 Q@3 R@3 S@3 T@3 U@3 V@3 W@3 X@3 Y@3 Z@6
>`.pickRestart({
  A: "[~@29 [g4,bb4,c5,f5]@15 ~ [g4,bb4,eb5]@8 [g4,bb4]@16 [g4,bb4,eb5]@7 ~ [f4,bb4,eb5]@16 [f4,bb4,d5]@7 ~ [f4,bb4]@16 [f4,bb4,d5]@8 [f4,g4]@16 [f4,g4,c5]@8 [e4,g4,d5]@11, ~@29 eb3@24 [eb3,f5]@23 ~ bb3@48 c4@35, ~@101 eb5@24 d5@24 ~@11]/5", // Gm7 Eb Gm Eb Ebsus2 Bb Bb5 Bb …
  B: "[~@5 [e4,g4,c5]@7 ~ [eb4,g4,d5]@15 ~ [eb4,g4,c5]@7 ~ [eb4,gb4]@16 [eb4,gb4,c5]@7 ~ [d4,f4,g4,c5]@24 [f4,a4,bb4,d5]@23 ~ [g4,bb4,c5,f5]@19, ~@13 f3@47 ~@68, ~@37 d5@23 ~@68]/4", // C Ebmaj7 Cm Ebm Cdim Dm7 Bbmaj7 Gm7
  C: "[~@5 [eb4,g4,a4,d5]@24 [d4,f4,g4,c5]@23 ~ [f4,a4,bb4,d5]@21 ~@11 eb5@11, ~@25 g4@7, ~@19 bb4@5, ~@77 [c5,f5]@19]/3", // Ebmaj7 Dm7 Bbmaj7 F5
  D: "[~@5 [eb4,g4,a4,d5]@24 ~@24 bb5@24 bb4@32 ~@40 bb5@24 [gb4,bb4,db5,f5]@42 ~@7 [ab4,bb4]@15 ~ db5@8 [e4,ab4,bb4,eb5]@10, ~@29 [ab4,b4,eb5]@48 [gb4,f5]@56 gb5@40 ~@83, ~@77 db5@40 db5@56 ~@83, ~@109 bb4@64 ~@83, ~@125 [ab4,b4,eb5]@48 ~@48 [e4,eb5]@15 ~ [e4,ab4]@8 ~@11]/8", // Ebmaj7 Gbmaj7 Absus2 Emaj7 Abm Gbmaj7 Abm Emaj7 …
  E: "~@6 [e4,ab4,db5]@7 ~ [eb4,gb4,a4,db5]@16 [eb4,gb4,c5]@2", // Dbm Ebm7b5 Cdim
  F: "[~@6 [eb4,gb4,a4,db5]@15 ~ [eb4,gb4,c5]@8 [d4,f4,g4,c5]@23 ~ [f4,a4,bb4,d5]@21 ~@11 eb5@16 d5@7 ~ c5@16 [d4,f4,g4,c5]@23 ~ [f4,a4,bb4,d5]@23 ~ [g4,bb4,c5,f5]@18, ~@38 [g4,bb4]@13 [eb4,g4,a4]@12 ~@33, ~@77 c5@24 ~@91, ~@13 f5@4 ~@15]/6", // Ebm7b5 Cdim Dm7 Bbmaj7 Dm7 Bbmaj7 Gm7 Gm …
  G: "[~@14 d5@13 ~@3 eb5@32 ~@8 ab4@8 ~@8 f5@23 ~@9 db5@7 ~@33 ab5@16 [gb4,bb4,db5,f5]@15 ~ [gb4,bb4,eb5]@33 ~, ~@6 [eb4,g4,a4]@21 ~ ab4@41 ~@9 [gb4,bb4,db5]@31 ~ [gb4,bb4,eb5]@15 ~ [ab4,b4,eb5]@48 ~@50, ~@29 b4@48 ~@147, ~@31 eb5@8 ~@73]/7", // Gbmaj7 Ebm Am7b5 Gb Ebm Abm
  H: "[~@6 eb5@7 ~ db5@28 ~@4 db5@8 c5@37 ~@3 [ab4,c5,eb5]@8 [ab4,c5,eb5,g5]@15 ~ [bb3,ab4,d5,g5]@24 [eb3,g4,bb4,c5,f5]@32 bb4 ~@11 c5@4 f3@2, ~@6 [e4,ab4,bb4]@36 ~@2 eb4@47 ~@3 [f3,g4]@23 ~@57 [eb3,g4]@16 ~@2, ~@45 [gb4,a4]@47 ~@82 d5@4 eb5@12 ~@2, ~@88 bb4@7 ~, ~@91 d5@4 ~]/6", // Ab Abmaj7 Gm Cm7 Bbm7b5 Fsus2 Eb Gbm
  I: "[~@6 [ab4,c5,eb5,g5]@15 ~ [bb3,ab4,d5,g5]@23 ~@9 f5@40 ~@8 eb5@14 ~@2 [c5,g5]@24 ~@8 [ab4,b4,d5]@39 ~@57 bb5@10, ~@46 [eb4,g4,bb4,c5]@48 [f3,g4]@48 bb3@47 ~ [eb3,g4,bb4,c5]@64 ~@2, ~@47 [ab4,c5]@11 ab4@13 ~@57, ~@117 eb5@25 ~@56 eb5@58]/8", // Abmaj7 Gm C5 Abdim Cm7 Fsus2 Cm7 Ab
  J: "[~@23 bb4@7 ~ [gb4,bb4,c5,eb5]@23 ~ [gb4,a4,c5,eb5]@24 [g3,f4,ab4,b4,eb5]@48 [e4,a4,bb4,d5]@23 ~ [e4,ab4,bb4,d5]@23 ~ [eb4,g4,a4,d5]@24 [eb4,gb4,a4,d5]@22 ~@3, ~@15 c5@15 ~ d4@48 ~@48 c4@47 ~@50]/7", // Cm7b5 Gbdim Fm7b5 Dsus2 E7 Ebmaj7 D
  K: "[~@7 [d4,f4,g4,c5]@23 ~ [f4,a4,bb4,d5]@16 [g4,bb4,c5,f5]@23 ~ [eb4,g4,a4,d5]@25]/3", // Dm7 Bbmaj7 Gm7 Ebmaj7
  L: "[~@7 [d4,f4,g4,c5]@13 ~@11 d5@15 ~ [g4,bb4,c5,f5]@17, ~@21 a4@25 ~@18, ~@22 bb4@25 ~@17, ~@22 d5@9 ~@33, ~@23 f5@23 ~@18]/2", // Dm7 Gm7
  M: "[~@7 [eb4,g4,a4,d5]@24 ~@40 gb5@5 ~@3 f5@8 eb5@8 db5@31 ~ gb5@8 ~@16 bb5@21 ~@3 f5@42 ~@6 [e4,ab4,bb4,eb5]@15 ~ [e4,ab4,db5]@7 ~ [e4,ab4,bb4,eb5]@9, ~@31 [ab4,b4,eb5]@45 ~@51 [ab4,bb4,b4,eb5]@45 ~@2 [bb4,db5]@43 ~@39, ~@39 gb5@32 ~@64 gb5@37 ~@84, ~@63 gb4@13 ~@2 [gb4,bb4]@48 ~@47 gb4@44 ~@39]/8", // Ebmaj7 Emaj7 Dbm Emaj7 Abm Bbm Gb
  N: "~@7 [e4,ab4,db5]@7 ~ [eb4,gb4,a4,db5]@16 [eb4,gb4,c5]", // Dbm Ebm7b5 Cdim
  O: "[~@7 [eb4,gb4,a4,db5]@15 ~ [eb4,gb4,c5]@7 ~ [d4,f4,g4,c5]@23 ~ [f4,a4,bb4,d5]@21 ~@11 eb5@13 ~@3 d5@7 ~ c5@15 ~ [d4,f4,g4,c5]@23 ~ [f4,a4,bb4,d5]@23 ~ [g4,bb4,c5,f5]@24 ~@8 d5@14 ~@3 eb5@32, ~@77 g4@23 ~ eb4@25 ~@74 [eb4,a4]@22 ~@34, ~@78 c5@23 ~@2 a4@24 ~@95 ab4@34, ~@79 [bb4,f5]@22 ~ g4@25 ~@72 g4@22 ~@2 b4@33]/8", // Ebm7b5 Cdim Dm7 Bbmaj7 Dm7 Bbmaj7 Gm7 Ebdim …
  P: "[~@8 ab4@7 ~@9 f5@23 ~@9 db5@7 ~, eb5@15 ~ [gb4,bb4,db5]@31 ~ [gb4,bb4,eb5]@15 ~]/2", // Gb Ebm
  Q: "[~@32 ab5@15 ~ [gb4,bb4]@16 [gb4,bb4,eb5]@32, [ab4,b4,eb5]@47 ~ [db5,f5]@19 ~@29]/3", // Gb Ebm Abm Db
  R: "[~@8 eb5@7 ~ db5@29 ~@3 db5@8 c5@37 ~@3, ~@8 [e4,ab4,bb4]@37 ~ [eb4,gb4]@47 ~@3, ~@47 a4@46 ~@3]/3", // Bbm7b5 Ebm
  S: "[[ab4,c5,eb5]@8 [ab4,c5,eb5,g5]@15 ~ [bb3,ab4,d5,g5]@24 [eb3,g4,bb4,c5,f5]@32 d5@4 ~@8 c5@4, [f3,g4]@23 ~@57 [eb3,g4]@16, ~@80 bb4 ~@3 [bb4,eb5]@12, ~@11 d5]/3", // Ab Abmaj7 Gm Cm7 Fsus2 Eb Eb5
  T: "[~@8 [ab4,c5,eb5,g5]@15 ~ [bb3,ab4,d5,g5]@23 ~@9 f5@39 ~, f3@23 ~@25 [eb4,g4,bb4,c5]@47 ~]/3", // Abmaj7 Gm Cm7
  U: "[~@8 eb5@14 ~@2 g5@23 ~@9 d5@39 ~, [f3,g4]@47 ~ bb3@47 ~, [ab4,c5]@22 ab4@25 ~@8 [ab4,b4]@40 ~, ~@23 [c5,eb5]@25 ~@48]/3", // Fsus2 Ab Abm Cm
  V: "[~@88 bb4@7 ~, [eb3,g4,bb4,c5]@2 ~, ~@8 eb5@64 ~@8 c5@15 ~, ~@56 bb5@39 ~]/3", // Cm7
  W: "[[gb4,bb4,c5,eb5]@23 ~ [gb4,a4,c5,eb5]@24 [g3,f4,ab4,b4,eb5]@48, d4 ~]/3", // Cm7b5 Gbdim Fm7b5
  X: "[[e4,a4,bb4,d5]@23 ~ [e4,ab4,bb4,d5]@23 ~ [eb4,g4,a4,d5]@24 [eb4,gb4,a4,d5]@22 ~@2, c4@47 ~@49]/3", // Dsus2 E7 Ebmaj7 D
  Y: "[~ [bb3,d4]@23 ~@9 [bb4,d5]@8 [bb4,d5,f5,a5]@8 [eb3,g4,bb4,c5,f5]@23 ~@17 c5@7, [f4,g4,c5]@23 ~@2 g3@24 ~@24 [f3,eb4,g4,a4,d5]@23, ~@4 f5 ~@7, ~@33 a4@16 ~@47]/3", // Bb Bbmaj7 Cm7 Fsus2 Dm
  Z: "[~@17 bb4@7 ~ [bb4,d5]@8 [bb4,d5,a5]@15 ~ [eb3,g4,bb4,c5,f5]@22 ~@2 [a4,d5]@16 g4@8 ~@40 f5@8 ~@16 d5@8 [f3,eb4,g4,a4,d5]@18 ~@5, ~ [bb3,d4,f4,g4,c5]@23 ~ [g3,a4,f5]@23 ~@25 [f3,eb5]@48 [g3,a5]@64 ~@7, ~@73 g5@24 [g4,c5]@24 d5@24 [eb3,bb4,c5,f5]@42 ~@5, ~@89 [eb4,a4]@32 bb4@8 g5@58 ~@5, ~@89 d5@8 [bb3,d4,f4]@48 g4@8 eb5@34 ~@5]/6", // Bb Bbmaj7 Cm7 D5 Dm Gm7 Dm F7 …
})).s("gm_epiano2").gain(0.37).pan(0.3)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  A@6 B@3 C@3 D@5 E@6 F@4 G@5 H@3 I@6 J@6 K@6 L@4 M@3 N@5 O@6 P@4 Q@5 R@3 S@6 T@8 U@6 V@7 W@2
>`.pickRestart({
  A: "[~@29 [eb4,g4,bb4]@47 [d4,g4]@23 [d4,g4,c5]@24 [e4,bb4,d5]@24 [e4,bb4,c5]@24 [eb4,g4,c5]@21, ~@38 f4@13 ~@45]/6", // Eb G5 Csus2 Em7b5 C7 Cm
  B: "[~ [eb4,a4,c5]@13 f4@12 ~@12 f4@10, ~@7 bb4@16 ~, ~@28 d4@47 c4@21, ~@13 g4@11]/3", // Adim
  C: "[~@12 c5@16 f4@23 g4@24 f5@16 eb5@5, ~ a4@2 ~@4 [bb4,d5]@12 ~@5, ~@5 [eb4,g4]@26 ~@44 [g4,bb4,c5]@21]/3", // Bb Eb C7
  D: "[db5@4 ~@15 c5@9 ~@23 f5@25 f5@24 db5@24 eb5@24 f5@12, ~@4 [f4,a4,d5]@25 ab4@50 ~@45 [ab4,b4]@36, ~@14 b4@25 ~@41, ~@28 eb5@23 ~@25 [gb4,bb4]@49 ~@35]/5", // Dm Abm Gb
  E: "[~@12 f5@24 db5@24 eb5@16 db5@8 eb5@14 ~ db5@9 ~@16 c5@8 ~ db5@12 c5@11 c5@15 bb4@10 ~ f4@10, ~@12 [gb4,bb4]@48 [e4,ab4,bb4]@48 [eb4,a4]@49 ~@35, ~@36 db5@5 ~@11 [d4,f4,g4]@9 ~@3, ~@109 gb4@49 ~@23 [bb4,d5]@11]/6", // Gb Bbm7b5 Ebdim G7 Bb
  F: "[~@4 f5@8 ~ [g4,c5]@47 c5@15 ~@9 g4@24 ~ bb4@19, ~@12 f5@48 bb4@49 ~@19, ~@30 f4@13 ~@11 [eb4,g4]@10, ~@75 d5@34 ~@19]/4", // C5 Eb
  G: "[~@4 [eb4,a4,c5]@24 eb5@14 ~@18 eb5@14 f5@18 db5@15 eb5@16 eb5@16 ~ f5@15 eb5@5, ~@28 [ab4,b4]@48 ~@47 [ab4,b4]@37, ~@21 f5@16 [gb4,bb4]@25 ~@18]/5", // Adim Abm Gb
  H: "[~@12 f5@16 db5@15 eb5@17 eb5@16 db5@15 ~ eb5@4, ~ [gb4,bb4]@4 [e4,ab4,bb4]@3]/3", // Gb Bbm7b5
  I: "[~@12 db5@13 ~ c5@32 ~@25 d5@27 ~ a4@2 ~@21 f5@23 ~@25 f5@10, ~@12 [eb4,gb4,a4]@46 ab4@54 ~@45 [ab4,c5,eb5,g5]@35, ~@59 [c5,eb5]@27 ~@24 [g4,bb4,c5]@48 ~@34, ~@20 g5@25 ~@19]/6", // Ebdim Abmaj7 Cm C7
  J: "[~@13 c5@24 d5@24 [g4,ab4,c5,eb5]@32 [ab4,c5,eb5,g5]@17 [ab4,b4]@47 ~@17 eb5@18, ~@13 [g4,bb4,f5]@50 ~@47 f5@65 ~@17, ~@157 [g4,bb4,c5]@35]/6", // Abmaj7 Abm Gm7 C7
  K: "[~@13 [g4,bb4,d5]@16 c5@16 d5@17 ~ bb4@20 ~@2 a4@24 [f4,ab4,b4]@48 a4@24 ~ ab4@10, ~@29 [g4,bb4]@33 ~ eb5@84 ~@45, ~@63 [gb4,c5]@47 ~@47 [e4,bb4,d5]@35]/6", // Gm Fdim Gm Gbdim Em7b5
  L: "[~@13 g4@24 gb4@23 ~@3 d4@21 ~ f4@24 [c4,f4]@19, ~@13 [eb4,a4,d5]@47 ~@3 [f4,g4,c5]@22 g4@43, ~@42 [d4,bb4]@13 ~@9]/4", // F5 D Fsus2 Gm
  M: "[~@6 a4@8 c5@16 f4@23 g4@24 f5@16 eb5@3, ~@6 [eb4,g4]@24 [bb4,d5]@47 [g4,bb4,c5]@19]/3", // Eb Bb C7
  N: "[~@2 db5@4 d5@15 c5@9 eb5@23 f5@24 ~ f5@23 db5@25 eb5@24 f5@10, ~@6 [f4,a4]@27 ~@45 [gb4,bb4]@49 ~@33, ~@15 [ab4,b4]@25 ~@23 [ab4,b4]@17]/5", // F Gb Abm
  O: "[~@38 db5@23 ~@17 db5@7 ~@15 db5@10 db5@15 ~ c5@8 ~@13 c5@10 ~ c5@15 bb4@10 [f4,bb4,d5]@9, ~@13 f5@25 ~@23 eb5@17 ~@7 eb5@25 [eb4,gb4,a4]@48 [d4,f4,g4]@27 ~@7, ~@14 [gb4,bb4]@48 [e4,ab4,bb4]@50 ~@22 db5@25 ~@33]/6", // Bb Ebdim G7 Gb Bbm7b5
  P: "[~@6 f5@8 [g4,c5,f5]@48 c5@15 ~@9 g4@24 [eb4,g4,bb4]@18, ~@31 bb4@24 ~@9, ~@31 f4@13 ~@20, ~@77 d5@34 ~@17]/4", // Csus4 Eb
  Q: "[~@6 [eb4,a4,c5]@24 eb5@13 ~@19 eb5@14 f5@17 db5@16 eb5@16 eb5@16 ~ f5@15 eb5@3, ~@30 [ab4,b4]@48 ~@47 [ab4,b4]@35, ~@43 f5@32 ~ [gb4,bb4]@50 ~@34]/5", // Adim Abm Gb
  R: "[~@13 f5@17 db5@15 eb5@16 ~@17 db5@15 ~ eb5@2, ~@13 [gb4,bb4]@48 [ab4,bb4]@35, ~@61 eb5@16 ~@19, ~@31 e4@17]/3", // Gb Absus2
  S: "[~@14 db5@13 ~ c5@32 ~@25 d5@27 a4@2 ~@21 f5@24 ~@25 f5@8, ~@14 [eb4,gb4,a4]@46 ab4@54 ~@45 [ab4,c5,eb5,g5]@33, ~@60 [c5,eb5]@27 ~@25 [g4,bb4,c5]@48 ~@32, ~@62 g5@75 ~@55]/6", // Ebdim Abmaj7 Cm C7
  T: "[~@38 d5@25 [g4,ab4,c5,eb5]@32 [ab4,c5,eb5,g5]@16 ~@65 eb5@30 [g4,bb4,d5]@16 c5@17 d5@17, ~@14 [bb4,f5]@50 ~@47 b4@47 bb4@48 ~@50, ~@14 c5@25 ~@72 f5@65 ~@80, ~@15 g4@48 ~@49 ab4@47 [g4,c5]@47 ~@16 [g4,bb4]@33 ~]/8", // Abmaj7 Gm Bb5 C5 Gm
  U: "[bb4@20 ~@2 a4@24 [f4,ab4,b4]@49 a4@24 ~ ab4@23 g4@24 gb4@23 ~@2, eb5@84 ~@59 [eb4,a4,d5]@47 ~@2, [gb4,c5]@47 ~@48 [e4,bb4,d5]@49 ~@48]/6", // Fdim D Gbdim Em7b5
  V: "[~ d5@30 eb5@7 f5@8 ~ d5@22 ~@11 f5@8 eb5@7 f4@23 ~@10 eb5@8 f5@7 ~@25 a4@22 ~@25 g4@9, ~ bb4@143 ~@46 bb4@34, ~ f4@45 g4@48 ~@25 g4@50 ~@21 f4@25 ~@9, ~@38 e5 ~@8 g5@34 ~@63 g5@47 ~@33, ~@72 c5@19 ~@4 d5@33 ~@15 c5@47 ~ d5@33]/7",
  W: "[~ eb5@8 f5@6 ~ g5@47 ~, ~@15 c5@48 ~]/2",
})).s("gm_string_ensemble_2").gain(0.2).pan(0.2)

// chords · pad warm
const pad_warm = note("<A@7 ~@30 B C@6 D@3 E@6 F@4 G@3 H@5 I@6 J@4 K@5 L@3 M@3 N@6 O@5 P@6 Q@7 R@2>".pickRestart({
  A: "[~@29 [eb4,g4,bb4]@47 [d4,f4,g4]@23 [d4,g4,c5]@24 [e4,bb4,d5]@24 [e4,bb4,c5]@24 [eb4,c5]@23 [eb4,a4,c5]@27 ~@3, ~@171 g4@26 ~@27]/7", // Eb G7 Csus2 Em7b5 C7 Cm Adim
  B: "~@19 d5@13",
  C: "[~@15 a4@2 ~@21 f5@23 ~@25 f5@22 ~ c5@24 d5@24 [g4,ab4,c5,eb5]@32 [ab4,c5,eb5,g5]@3, ~@14 [g4,bb4,c5]@47 [ab4,c5,eb5]@48 [g4,bb4,f5]@50 ~@33, ~@62 g5@49 ~@81]/6", // Abmaj7 C7 Ab Gm7
  D: "[~@14 [ab4,b4]@47 ~@17 eb5@18, ~@14 f5@65 ~@17, ~@61 [g4,bb4,c5]@35]/3", // Abm C7
  E: "[~@13 [g4,bb4,d5]@16 c5@16 d5@17 ~ bb4@20 ~@2 a4@24 [f4,ab4,b4]@48 a4@24 ~ ab4@10, ~@29 [g4,bb4]@33 ~ eb5@84 ~@45, ~@63 [gb4,c5]@47 ~@47 [e4,bb4,d5]@35]/6", // Gm Fdim Gm Gbdim Em7b5
  F: "[~@13 g4@24 gb4@23 ~@3 [d4,f4,g4,c5]@22 [d4,f4,bb4]@24 [c4,f4]@19, ~@13 [eb4,a4,d5]@47 ~@25 g4@43]/4", // Dm7 Bb F5 D
  G: "[~@6 a4@8 c5@16 f4@23 g4@24 f5@16 eb5@3, ~@6 [eb4,g4]@24 [bb4,d5]@47 [g4,bb4,c5]@19]/3", // Eb Bb C7
  H: "[~@2 db5@4 ~@15 c5@9 eb5@23 f5@24 ~ f5@23 db5@25 eb5@24 f5@10, ~@3 [f4,a4,d5]@12 [ab4,b4]@24 [gb4,bb4]@24 [ab4,b4]@17]/5", // Dm Abm Gb Abm
  I: "[~@38 db5@23 ~@17 db5@7 ~@15 db5@10 db5@15 ~ c5@8 ~@13 c5@11 c5@15 bb4@10 [f4,bb4,d5]@9, ~@13 f5@25 ~@23 eb5@17 ~@7 eb5@25 [eb4,gb4,a4]@48 [d4,f4,g4]@27 ~@7, ~@14 [gb4,bb4]@48 [e4,ab4,bb4]@50 ~@22 db5@25 ~@33]/6", // Bb Ebdim G7 Gb Bbm7b5
  J: "[~@6 f5@8 [g4,c5,f5]@48 c5@15 ~@9 g4@24 [eb4,g4,bb4]@18, ~@31 bb4@24 ~@9, ~@31 f4@13 ~@20, ~@77 d5@34 ~@17]/4", // Csus4 Eb
  K: "[~@6 [eb4,a4,c5]@24 eb5@13 ~@19 eb5@14 f5@17 db5@16 eb5@16 eb5@16 ~ f5@15 eb5@3, ~@30 [ab4,b4]@48 ~@47 [ab4,b4]@35, ~@43 f5@33 [gb4,bb4]@50 ~@34]/5", // Adim Abm Gb
  L: "[~@13 f5@16 ~ db5@15 eb5@16 ~ eb5@16 db5@15 ~ eb5@2, ~@13 [gb4,bb4]@48 [ab4,bb4]@35, ~@31 e4@17]/3", // Gb Absus2
  M: "[~@14 db5@13 ~ c5@32 ~@25 d5@11, ~@7 [eb4,gb4,a4]@23 ab4@18, ~@20 [c5,eb5]@9 ~@3, ~@31 g5@17]/3", // Ebdim Cm
  N: "[~@16 a4@2 ~@21 f5@24 ~@25 f5@23 c5@24 d5@24 [g4,ab4,c5,eb5]@32 [ab4,c5,eb5,g5], ~@16 [g4,bb4,c5]@47 [ab4,c5,eb5,g5]@48 [g4,bb4,f5]@50 ~@31]/6", // Abmaj7 C7 Abmaj7 Gm7
  O: "[~@80 eb5@30 [g4,bb4,d5]@16 c5@17 d5@17, ~@3 f5@13 ~@16, ~@15 b4@47 bb4@48 ~@50, ~@16 ab4@47 [g4,c5]@47 ~@16 [g4,bb4]@33 ~]/5", // Gm C5 Gm
  P: "[bb4@20 ~@2 a4@24 [f4,ab4,b4]@49 a4@24 ~ ab4@23 g4@24 gb4@23 ~@2, eb5@84 ~@59 [eb4,a4,d5]@47 ~@2, [gb4,c5]@47 ~@48 [e4,bb4,d5]@49 ~@48]/6", // Fdim D Gbdim Em7b5
  Q: "[~ d5@30 eb5@7 f5@8 ~ d5@22 ~@11 f5@8 eb5@7 f4@23 ~@10 eb5@8 f5@7 ~@25 a4@22 ~@25 g4@9, ~ bb4@143 ~@46 bb4@34, ~ f4@45 g4@48 ~@25 g4@50 ~@21 f4@25 ~@9, ~@38 e5 ~@8 g5@34 ~@63 g5@47 ~@33, ~@72 c5@19 ~@4 d5@33 ~@15 c5@47 ~ d5@33]/7",
  R: "[~ eb5@8 f5@6 ~ g5@47 ~, ~@15 c5@48 ~]/2",
})).s("gm_pad_warm").gain(0.2).pan(0.8)

// drums · kick
const kick = s("bd").struct(`<
  A B C D B C D B C D B C D B C D B C E F G H F G H F G H F G H F G H F G H F G H F G H F G H F G I J K I J K I J K I J
  K I J K I J K I J K I J K I J L M N L M N L M N L M N L M N L M N L M N L M N L M N L M O P Q O P Q O P ~
>`.pickRestart({
  A: "~@29 x ~@2", B: "~@21 x ~@10", C: "~@13 x ~@18", D: "~@5 x ~@23 x ~@2", E: "~@5 x ~@24 x ~", F: "~@11 x ~@4",
  G: "~@7 x ~@8", H: "~@3 x ~@11 x", I: "~@7 x ~@23 x", J: "~@23 x ~@8", K: "~@15 x ~@16", L: "~ x", M: "~ x ~@2",
  N: "x ~@2 x", O: "~ x ~@23 x ~@6", P: "~@17 x ~@14", Q: "~@9 x ~@22",
})).gain(0.22)

// drums · rim
const rim = s("rim").struct(`<
  ~@37 A B C A B C D E C D F G H I J H K L ~@30 M N O M N O P Q R P Q S P Q T P Q U ~@9
>`.pickRestart({
  A: "~@3 x ~@11 x", B: "~@11 x ~@4", C: "~@7 x ~@8", D: "~@3 x ~@3 x ~@7 x", E: "~@3 x ~@7 x ~@3 x",
  F: "~@6 x ~@16 x ~@7 x", G: "~@3 x ~@11 x ~@7 x ~@8", H: "~@7 x ~@7 x ~@15 x", I: "~@7 x ~@15 x ~@7 x",
  J: "~@15 x ~@7 x ~@8", K: "~@7 x ~@15 x ~@8", L: "~@19 x ~@3 x ~@8", M: "~ x ~@2", N: "x ~@2 x", O: "~ x",
  P: "~ x!2 ~", Q: "x!2 ~ x", R: "x!2", S: "x!2 ~@2 x ~ x ~", T: "x ~ x!2", U: "~@5 x!2 ~",
})).gain(0.29)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@37 A B C A B C A B C ~ D E F G E F H ~@31 I J K I J K I J K ~@2 K I J K I L ~@10
>`.pickRestart({
  A: "~@7 x ~@8", B: "~@3 x ~@11 x", C: "~@11 x ~ x ~@2", D: "~@31 x", E: "~@23 x ~@3 x ~@4", F: "~@15 x ~@16",
  G: "~@7 x ~@23 x", H: "~@7 x ~@15 x ~@8", I: "~ x", J: "~ x ~@2", K: "x ~@5 x!2", L: "~ x ~ x",
})).gain(0.22)

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

// drums · open hat
const open_hat = s("oh").struct("<~@36 [~@3 x ~@12] ~@47 [~ x ~@2] ~@27>").gain(0.18)

// drums · ride
const ride = s("rd").struct("<~@36 A B@8 C D E F@6 G ~@29 H I@17 J ~@9>".pickRestart({
  A: "~@7 x ~@7 x", B: "~@3 x ~@3 x ~@3 x ~@3 x", C: "~@6 x ~@7 x ~@7 x ~@8 x", D: "~@6 x ~@7 x ~@8 x ~@6 x ~",
  E: "~@6 x ~@8 x ~@7 x ~@7 x", F: "~@7 x ~@7 x ~@7 x ~@7 x", G: "~@7 x ~@7 x ~@7 x ~@8", H: "~ x", I: "x!4",
  J: "x ~@8 x ~@6 x ~@7 x ~@7",
})).gain(0.25)

stack(bass, epiano2, string_ensemble_2, pad_warm, kick, rim, low_tom, pedal_hat, open_hat, ride)

More by Paoli