Strudelify

Amore bello

Baglioni Claudio

KeyF minorTempo63 bpm
0:00/0:00
// Amore bello — Baglioni Claudio
// 63 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 83 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(63/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@18 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 AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT
  AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK@3
>`.pickRestart({
  A: "c2 ~ c2@12 ~@2 c2 ~ c2@13 ~", B: "c2 ~ c2@12 ~@2 c2 ~ c2@12 ~@2", C: "c2 ~ c2@12 ~@2 c2 ~ c2@6 f1@4 e1@3 ~",
  D: "a1@13 ~ a1 ~ g1@10 d2@2 g1@4", E: "f1@13 ~ f1@2 g1@8 f1@8", F: "e1@9 ~ e1@6 a1@9 ~ a1@2 e2@4",
  G: "f2@13 ~ f2@2 g2@5 ~ g2@2 e2@4 b1@4", H: "a1@14 a1@2 g1@9 ~ g1@2 e1@4", I: "f1@13 ~ f1@2 g1@5 ~ g1@2 f1@6 f1@2",
  J: "e1@13 ~ e1@2 a1@9 ~ a1@6", K: "f2@4 ~@2 f2@10 e2@5 ~ e2@10",
  L: "d2@5 ~ d2@4 f1@2 g1@4 a1@5 ~ a1@4 c2@2 d2@2 e2@2", M: "f2@5 ~ f2@10 e2@5 ~ e2@10",
  N: "g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~ g1@4 f1@4 g1@3 ~", O: "c2@13 ~ c2@2 bb1@9 ~ bb1@6",
  P: "a1@13 ~ a1@2 ab1@5 ~ ab1@3 ~ f2@2 d2@4", Q: "c2@11 ~ c2@4 d2@8 gb1@7 ~", R: "g1@5 ~ g1@9 ~ g1@8 f1@4 g1@3 ~",
  S: "c2@11 ~ c2@2 b1@2 bb1@13 ~ bb1@2", T: "a1@13 ~ a1@2 ab1@12 ~@2 ab1@2",
  U: "g1@11 ~ g1@4 d2@8 gb1@8, ~@12 bb1 ~@19", V: "g1@11 ~ g1@2 ~@2 g1@12 ~@4", W: "f2@16 gb2@15 ~",
  X: "g2@10 c2@5 ~ g1@15 ~", Y: "g1@5 g2@3 g1@8", Z: "c2@15 ~ c2@7 ~ c2@2 d2@2 e2@4", AA: "f2@16 gb2@11 ~ gb2@4",
  AB: "g2@9 ~ g2@2 c2@4 g1@12 g1@4", AC: "d2@9 ~ d2@2 a1@4 g1@15 ~", AD: "c2 ~ c2@12 ~@2 c2 ~ c2@11 ~@3",
  AE: "c2 ~ c2@12 ~@2 c2 ~ c2@14", AF: "c2 ~ c2@6 ~@2 c2@3 ~ c2@3 ~ c2@3 ~ c2 ~ c2@3 ~ c2@4",
  AG: "db2@14 ~@2 db2 ~ db2@6 ~@2 db2@5 ~", AH: "db2 ~ db2@13 ~ db2@5 ~ db2@3 ~ db2@5 ~",
  AI: "db2 ~ db2@12 ~@2 db2 ~ db2@3 ~ db2@3 ~ c2@2 bb1@2 f1@2", AJ: "bb1@12 ~@2 bb1@2 ab1@9 ~ ab1@3 ~ ab1@2",
  AK: "gb1@13 ~ gb1@2 ab1@8 gb1@8", AL: "f1@9 ~ f1@6 bb1@9 ~ bb1@2 f2@4", AM: "gb2@13 ~ gb2@2 ab2@5 ~ ab2@2 f2@4 c2@4",
  AN: "bb1@14 bb1@2 ab1@9 ~ ab1@2 f1@4", AO: "gb1@13 ~ gb1@2 ab1@5 ~ ab1@2 gb1@6 gb1@2",
  AP: "f1@13 ~ f1@2 bb1@9 ~ bb1@6", AQ: "gb2@4 ~@2 gb2@10 f2@5 ~ f2@10",
  AR: "eb2@5 ~ eb2@4 gb1@2 ab1@4 bb1@5 ~ bb1@4 db2@2 eb2@2 f2@2", AS: "gb2@5 ~ gb2@10 f2@5 ~ f2@9 ~",
  AT: "ab1@3 ~ ab1@3 ~ ab1@3 ~ ab1@3 ~ ab1@3 ~ ab1@4 gb1@4 ab1@3 ~", AU: "db2@13 ~ db2@2 b1@9 ~ b1@6",
  AV: "bb1@13 ~ bb1@2 a1@5 ~ a1@3 ~ gb2@2 eb2@4", AW: "db2@11 ~ db2@4 eb2@8 g1@8",
  AX: "ab1@5 ~ ab1@9 ~ ab1@8 gb1@4 ab1@4", AY: "db2@11 ~ db2@2 c2@2 b1@13 ~ b1@2", AZ: "bb1@13 ~ bb1@2 a1@12 ~@2 a1@2",
  BA: "ab1@11 ~ ab1@4 eb2@8 g1@8, ~@12 b1 ~@19", BB: "ab1@11 ~ ab1@2 ~@2 ab1@12 ~@4", BC: "gb2@16 g2@15 ~",
  BD: "ab2@10 db2@5 ~ ab1@15 ~", BE: "ab1@5 ab2@3 ab1@8", BF: "db2@15 ~ db2@7 ~ db2@2 eb2@2 f2@4",
  BG: "gb2@16 g2@11 ~ g2@4", BH: "ab2@9 ~ ab2@2 db2@4 ab1@12 ab1@4", BI: "eb2@9 ~ eb2@2 bb1@4 ab1@15 ~", BJ: "db2",
  BK: "[~ db2@26 ab1@7 db1@61 ~]/3",
})).s("gm_acoustic_bass").gain(0.29)

// chords · drawbar organ · "ELEC ORGAN"
const drawbar_organ = note("<~@22 A@2 B@5 C@3 ~@22 D@2 E@5 F@3 ~@19>".pickRestart({
  A: "[[c5,f5,a5]@4 d5@4 ~@4 [a5,c6]@3 [d5,g5,b5], ~ [g5,b5]@2 ~, ~@8 e5@7 ~]/2", // F Am G
  B: "[[c5,f5,a5]@2 [d5,g5] ab5 [a5,c6]@2 [g5,b5]@2 [c5,f5,a5]@2 g5 f5 g5@2 c6@2 [a4,f5]@2 [g4,e5,g5]@2, ~ b5 ~@3 b5@2 a5@2 ~, ~@24 e5@41 ~@15 d5@16 e5@32 c5@32]/5", // F G5 Am G F Dm C
  C: "[[d5,f5]@16 ~@16 f5@16 c6@8 e5@7 ~@17 b4@8 ~@8, a4 ~@2, ~@16 c5@65 ~@15, ~@16 e5@18 ~@29 d5@25 ~@8, ~@11 a5@13 g5@20 ~@4]/3", // Dm
  D: "[[db5,gb5,bb5]@4 eb5@4 ~@4 [bb5,db6]@3 [eb5,ab5,c6], ~ [ab5,c6]@2 ~, ~@8 f5@7 ~]/2", // Gb Bbm Ab
  E: "[[db5,gb5,bb5]@2 [eb5,ab5] a5 [bb5,db6]@2 [ab5,c6]@2 [db5,gb5,bb5]@2 ab5 gb5 ab5@2 db6@2 [bb4,gb5]@2 [ab4,f5,ab5]@2, ~ c6 ~@3 c6@2 bb5@2 ~, ~@24 f5@41 ~@15 eb5@16 f5@32 db5@32]/5", // Gb Ab5 Bbm Ab Gb Ebm Db
  F: "[[eb5,gb5]@16 ~@16 gb5@16 db6@8 f5@8 ~@16 c5@7 ~@9, bb4 ~@2, ~@16 db5@65 ~@15, ~@8 f5@9 ~@15 eb5@12 ~@4, ~@11 bb5@13 ab5@20 ~@4]/3", // Ebm
})).s("gm_drawbar_organ").gain(0.09)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@28 A B C D E@4 F@4 G@4 H I ~@4 J K@2 L ~@6 M N O P Q@4 R@4 S@4 T U@2 ~@2 V ~
>`.pickRestart({
  A: "[f2,f3,a4] ~@2 [f2,f3,c4,f4,a4]@5 [e2,e3,c4,g4,c5] ~@2 [e2,e3,c4,g4,c5]@5, [c4,f4] ~@31", // F C F5
  B: "[d2,d4,a4]@2 ~@4 [d2,d3,d4,f4,a4]@10 [c4,e4]@2 a4 ~ [e4,a4]@2 c5 ~ [a4,c5]@2 e5 ~@3 c6@2, f4 ~@27 [e5,a5]@4", // D5 Dm C A5 Am A5
  C: "[f2,f3,c4,f4,a4]@2 ~@4 [f2,f3,c4,f4,a4]@6 ~@4 [e2,e3,c4,g4,c5]@2 ~@4 [e2,e3,g4,c5]@7 ~@3", // F C
  D: "[g2,c4,d4,g4] ~ [g2,c4,d4,g4] ~ [g2,c4,d4,g4] ~ [g2,c4,d4,g4] ~ [g2,b3,d4,g4] ~ [g2,b3,d4,g4,g5]@2 [f2,a3,c4,f4,f5]@2 [g2,b3,d4,g4,g5]@2", // Gsus4 G F G
  E: "[c5@15 ~@9 c4@2 d4@2 e4@2 ~@4 a4@2 d4@4 ~@15 c4@2 d4@2 e4@2 ~@14 e4@2 g4@2 ~ a4@2 d4@10 c4@3 d4@7 c4@3 a3@5 c4@2 [g3,b5]@8 [c5,f5,a5]@4 [d5,g5,b5]@4, [e5,g5]@31 [c5,a5]@16 c6@32 ~@16 c6@17 ~@16, c4@23 ~@7 g4@4 ~@6 c4@15 ~@7 g4@14 ~@52, ~@15 bb4@16 f5@33 e5@16 ~@15 [d5,g5]@24 ~@9, ~@47 ab5@16 g5@16 [gb5,a5,d6]@16 ~@33]/4", // G F G Em F G5 D
  F: "[c5@15 ~@8 c4@2 d4@2 ~@7 a4@2 d4@4 ~@15 c4@2 d4@2 e4@2 ~@14 e4@2 g4@2 ~@2 d4@10 c4@4 d4@7 c4@4 a3@4 c4@2 g3@16, [e5,g5]@32 f5@31 [e5,g5]@17 [gb5,d6]@16 ~@10 c4 ~@21, c4@23 ~@5 e4@2 ~@10 c4@15 ~@7 g4@14 ~@4 a4@2 ~@13 [d5,g5]@30 ~@3, ~@15 bb4@17 [c5,a5]@15 ab5@17 ~@15 a5@16 ~@33, ~@29 g4@5 ~@13 c6@65 b5@12 ~@4]/4", // Em D G5 F
  G: "[a3@16 c4@11 d4@4 c4@6 g3@74 ~@17]/4",
  H: "~@18 e4@2 ~ g4@2 a4@2 ~@5 d4@2, ~@20 gb4@2 ~@3 b4@2 c5@2 d5@2 ~, ~@13 b3 c4 ~", I: "~ c4@2 ~@29, e4 ~@15",
  J: "[db3,db4]@3 ~ [f3,f4]@3 ~@2 [f3,f4]@4 [db3,db4]@8 [eb3,eb4]@3 [f3,f4]@4 [eb3,eb4]@4, ~@3 e3@2 ~@2 eb3@2 ~@23, ~@2 e4 ~ eb4 ~@11", // Db F Db Eb F Eb
  K: "[db4@35 f4@4 eb4@2 f4@4 db4@8 ~ eb4@2 f4@3 eb4@5, ~@35 e4 ~@28]/2", L: "db4@31 ~",
  M: "[gb2,gb3,bb4]@2 ~@4 [gb2,gb3,db4,gb4,bb4]@10 [f2,f3,db4,ab4,db5]@2 ~@4 [f2,f3,db4,ab4,db5]@9 ~, [db4,gb4] ~@31", // Gb Db Gb5
  N: "[eb2,eb3,eb4,bb4]@2 ~@4 [eb2,eb3,eb4,gb4,bb4]@10 [db4,f4]@2 bb4 ~ [f4,bb4]@2 db5 ~ [bb4,db5]@2 f5 ~@3 db6@2, gb4 ~@27 [f5,bb5]@4", // Eb5 Ebm Db Bb5 Bbm Bb5
  O: "[gb2,gb3,db4,gb4,bb4] ~@2 [gb2,gb3,db4,gb4,bb4]@3 ~@2 [f2,f3,db4,ab4,db5] ~@2 [f2,f3,db4,ab4,db5]@4 ~", // Gb Db
  P: "[ab2,db4,eb4,ab4] ~ [ab2,db4,eb4,ab4] ~ [ab2,db4,eb4,ab4] ~ [ab2,db4,eb4,ab4] ~ [ab2,c4,eb4,ab4] ~ [eb4,ab4,ab5]@2 [db4,gb5]@2 [eb4,ab5]@2, eb3 ~@31", // Absus4 Ab Ab5 Gb5 Ab5
  Q: "[db5@15 ~@9 db4@2 eb4@2 f4@2 ~@4 bb4@2 eb4@4 ~@15 db4@2 eb4@2 f4@2 ~@14 f4@2 ab4@2 ~ bb4@2 eb4@10 db4@3 eb4@7 db4@4 bb3@4 db4@2 [ab3,c6]@8 [gb3,db5,bb5]@4 [ab3,eb5,c6]@4, [f5,ab5]@31 [db5,bb5]@16 ~ db6@32 ~@15 db6@16 ~@17, db4@23 ~@7 ab4@4 ~@6 db4@15 ~@7 ab4@14 ~@52, ~@15 b4@16 gb5@32 ab5@16 [g5,bb5,eb6]@16 ~@33, ~@48 a5@16 f5@16 ~@15 [eb5,ab5]@24 ~@9]/4", // Ab Gb Ab Fm Gb Eb Ab5
  R: "[db5@15 ~@8 db4@2 eb4@2 ~@7 bb4@2 eb4@4 ~@15 db4@2 eb4@2 ~@16 f4@2 ab4@2 ~@2 eb4@10 db4@4 eb4@7 db4@3 ~ db4 ~@3 db4@2 ab3@16, [f5,ab5]@32 gb5@31 [f5,ab5]@17 [g5,eb6]@16 ~@9 bb3@4 ~@19, db4@23 ~@5 f4@2 ~@10 db4@15 ~@5 f4 ab4@14 ~@5 bb4@2 ~@13 [eb5,ab5]@30 ~@3, ~@15 b4@17 [db5,bb5]@15 a5@17 ~@15 bb5@16 ~@33, ~@29 ab4@5 ~@13 db6@65 c6@11 ~@5]/4", // Fm Cm Ab5 Gb
  S: "[bb3@16 db4@11 eb4@4 db4@6 ab3@74 ~@17]/4",
  T: "~@18 f4@2 ~ ab4@2 bb4@2 ~@5 eb4@2, ~@16 g5@13 eb5@2 ~, ~@20 g4@2 ~@3 c5@2 db5@3 ~@2, ~@13 c4 db4 ~",
  U: "[~ db4@2 ~ ab3@7 f3@4 ab3@48 ~, f5 ~@3, f4 ~@31]/2", V: "db3@31 ~",
})).s("gm_string_ensemble_1").gain(0.11)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@30 A ~@12 B@4 C@2 D E@3 F ~@21 G@4 H@3 ~>".pickRestart({
  A: "~@11 c4@4 ~",
  B: "[[e4,c5]@3 [f4,d5]@2 [g4,e5]@4 [a4,f5]@2 [b4,g5]@4 [c5,a5]@4 [b4,g5]@2 [a4,f5]@2 [g4,e5]@2 [f4,d5]@2 e4@4 f5@17 gb5@15 ~@5 g3@7 e3@4 e4@15 ~@17 b4@16 ~, ~@27 c5@30 ~@6 g5@3 c5@46 ~@16, ~@31 a3@27 ~@6 e5@15 g3@48 ~, ~@68 g4@59 ~, ~@3 [f4,d5]]/4", // C Dm C Dm Em F Em Dm …
  C: "[[e3,g3,g4]@15 [f3,a3,f4,a4]@16 ~ [g3,b3,e4,b4]@16 [f3,a3,f4,a4,c5]@16, c5 ~, e4@14 ~@17 g4@17 ~@16]/2", // Em F Em F
  D: "[g2,g3,bb4]@15 ~ [ab2,ab3,c5]@16, eb6@31 ~, ~@15 ab4@17", // Gm Ab
  E: "[[db5,db6]@10 [eb5,eb6]@2 ~@2 ab5@3 [gb5,gb6]@2 ~ [f5,f6]@5 [eb5,eb6]@2 [db5,db6]@2 [eb5,eb6]@2 [f5,f6]@16 [gb5,gb6]@6 [f5,f6]@2 [eb5,eb6]@4 [ab5,ab6]@4 [f5,f6]@4 ~ db6@2 ~ [db5,db6]@2 [eb5,eb6]@2 [f5,f6]@2 [ab5,ab6]@4 [gb5,gb6]@2 [f5,f6]@3 [ab5,ab6]@4 [db6,db7]@2 [c6,c7]@4, ~@12 [f5,f6]@2 ~@53 db5@3 [eb5,eb6]@2 ~@24, ~@13 ab6@4 ~@79]/3", // Db Eb Gb F Eb Db Eb F …
  F: "[bb5,bb6]@2 ~ eb5, ~ ab4, ~@17 ab5@14 ~", // Bb
  G: "[[f4,db5]@3 [gb4,eb5]@2 [ab4,f5]@3 ~ [bb4,gb5]@2 [c5,ab5]@4 [db5,bb5]@4 [c5,ab5]@2 [bb4,gb5]@2 [ab4,f5]@2 [gb4,eb5]@2 ~@4 bb3@27 ~@5 ab5@3 ~@13 f4@15 ~@17 c5@16 ~, ~@27 f4@4 gb5@17 ~@20 ab4@59 ~, ~@14 db5@15 ~@4 db5@23 ~@8, ~@3 [gb4,eb5]]/4", // Db Ebm Db Ebm Fm Gb Fm Ebm …
  H: "[[f3,ab3]@16 [gb3,bb3]@16 [ab3,c4]@16 [gb3,bb3]@16 [f3,ab3]@31 ~, db5]/3", // Fm Gb Ab Gb Fm
})).s("gm_string_ensemble_1").gain(0.02)

// chords · piano · "A.PIANO"
const piano = note(`<
  A B@2 C@2 D@2 E F@2 G H I J K L M N O@3 P Q@2 R S T U V W X Y Z AA AB AC AD AE AF AG AH AI@2 AJ AK AL AM AN AO AP AQ
  AR AS AT AU@2 AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM@2 BN BO BP BQ BR BS@2 ~
>`.pickRestart({
  A: "[e6,g6]@5 [d6,g6] [d6,g6]@2 [c6,f6]@4 b5 ~ a5@2, [c3,g3]@15 ~ [f3,c4]@16, d6 ~@9 e6@6 ~@8 [c6,f6]@8, ~@13 b5@3", // Em G5 F5 C5 F5
  B: "[~@12 e5@4 e5 ~@9 d5@5 ~@11 d6@2 d6@4 [c6,f6]@8 b5@2 ~@2 a5@4, [g3,d4,g5,d6] c4@2 [f3,c4], ~@10 f5@6 [f3,f5,a5]@16 [c3,g3,g4,c5,e5]@17 ~@9 b5@6, ~@24 c5@7 ~@11 [e6,g6]@6 ~@8 [c6,f6]@8]/2", // F5 G5 F5 F C Em F5
  C: "[~@12 e5@4 ~@28 g3@3 ~ [a3,c4,f4]@6 [b3,d4,g4]@6 [a3,c4,f4]@4, [g3,g5,d6]@16 [f3,f4,f5,c6]@16 [g3,e4]@6 g4@4 e4@5 ~@17, ~@10 f5@6 c4@16 [c2,c3,c4]@15 ~ [c2,c3]@16, ~@24 c5@23 ~@17, ~@26 d5@21 ~@17]/2", // F G F G5 F5 C
  D: "[e4@10 ~@2 e4@4 [a3,c4,f4]@6 [b3,d4,g4]@6 [a3,f4]@3 ~@13 g3@3 ~ [f2,a3,c4,f4]@6 [g2,b3,g4]@6 [e2,ab3,b3,e4]@4, c3@27 ~@5, [c2,g3]@15 ~ c2@15 ~ c2@10 e4@5 ~@7 d4@10, ~@10 g4@5 ~@13 c4@19 ~@17, ~@32 [g3,e4]@6 g4@9 ~@17]/2", // F G Dm F G E C5 C
  E: "[a3,e4]@8 ~@4 a4@3 ~@13 e4@3 ~, [a2,c4] [g2,g4,b4], ~@8 a3@7 ~@7 e4@4 d4@5 ~, ~@10 e4@5 ~ d4@8 g3@7 ~", // A5 Am G
  F: "[~@6 c4@2 [g2,b3,d4]@4 [f2,a3,c4]@4 ~@4 e3@4 ~@7 c5, [f2,f4,a4]@15 ~@17 [e2,b3,e4]@14 ~@2 a2@10 [a3,e4]@2 a4@4, c4@10 a3@5 ~ g4@34 ~@2 c4@12, ~@4 f3@4 ~@8 d4@5 ~@3 e4@3 e4 e3@4, ~@19 g3@3 ~@3 b3@7]/2", // G F E5 A5
  G: "[f4,a4] [f3,a4] [g2,b3,d4,g4] [e3,ab3,b3,d4,e4], f2@15 ~@9 e2@4 ~@4, c4@3 ~@5", // F G E7
  H: "a3@8 ~@4 e4@2 a4 ~ [e4,g4]@6 ~@6 [e4,d5]@4, a2 [g2,b4], [c4,e4]@10 c4@5 ~@7 [g4,c5]@10, ~@8 a3@7 ~@7 e4@6 ~@4, ~@3 g3", // Em E7 G C C5
  I: "[g4,a4] [f3,a4] [g2,d4] [f2,a3,c4], [f2,f4] ~, c4@12 ~@4 g4@15 ~", // Gsus2 F G5 F
  J: "d4@4 g3@2 ~@6 g3@3 ~ b3@6 ~@6 e4@3 ~, e2@15 ~ a2@15 ~, ~@6 [b3,d4,g4]@10 [c4,e4]@10 c4@5 ~, ~@10 e3@6 ~@6 b3@9 ~, ~@24 e3@7 ~", // G C
  K: "[a3,c4,f4]@6 [a3,c4,f4]@9 ~ [g3,c4,g4]@6 [g3,c4,g4]@10, [f2,f3]@15 ~ [e2,e3]@16", // F C5 F E
  L: "[a3,c4,f4]@6 [a3,c4,f4]@10 ~@4 e4@2 ~@4 c4@2 [c4,c5]@3 ~, [d2,d3]@16 a2@15 ~, ~@18 c4@4 a4@9 ~, ~@22 [c4,e4]@4 [e4,b4]@5 ~, ~@24 a3@7 ~", // F C D C E5
  M: "[c4,f4,a4]@3 [f4,a4]@5 [c4,e4,g4]@3 [c4,e4,g4]@5, [f2,f3]@16 [g2,g3]@15 ~", // F C F G
  N: "[c4,d4,g4]@6 [d4,g4]@6 [d4,g4]@6 [c4,d4,g4]@5 ~@3 d4@2 [f3,a3,d4]@4, d3, g2@23 ~ [g2,c4,f4]@8, ~@3 c4@6 ~@4 [g3,b3,e4]@3, ~@12 b3@11 ~ a3@4 ~@4", // Csus2 G5 Csus2 Dm Csus4 Em
  O: "[[g3,c4]@6 ~@6 e4@4 [a3,c4,f4]@6 [b3,d4,g4]@6 [a3,c4,f4]@3 ~@11 [f4,a4]@4 [f4,a4,c5]@8 ~@4 [a3,f4,a4,d5]@4 ~@14 c4@4 [f2,f3,a3,c4,f4]@6 [g2,b3,g4]@6 [e2,ab3,b3,e4]@4, [c2,c3]@8 [c2,c3]@19 ~@9 g3@4 ~@8, e4@6 ~@13 [g4,b4,e5]@8 ~@4 [e4,g4,c5]@9 ~@3 d4@5, ~@6 [g3,c4,g4]@10 ~@16 [g3,e4]@22 [b3,g4,b4,e5]@9 ~ c3@16 ~@16, ~@21 d5@6 ~@8 c4@3 ~@10]/3", // C5 F G F Dm F G E …
  P: "[a3,c4]@4 ~ [c4,e4] [c4,e4,b4]@2 [c4,e4]@3 [c4,e4]@3 [c4,e4,b4]@2, a2 [g2,g3], ~ a3 ~@2, ~@5 a4@3 ~@3 c5@5", // Am C Cmaj7 C Cmaj7 G
  Q: "[[f4,a4]@8 ~@4 c4@4 [g2,d4,g4]@7 ~ [f2,d4,g4]@8 [e2,g4]@6 ~@6 b3@3 ~ [e4,a4]@8 ~@2 e4@2 [e4,g4,b4]@4, [f2,f3]@16 ~@24 e2@7 ~ a2@16, c4@12 ~@4 b3 ~@7 b3@14 b3@6 ~@4 c4@6 ~@2 a3@8, ~@8 [f4,a4]@8 ~@16 e4@5 ~ [e4,g4,b4]@9 ~@11 [a4,c5]@6]/2", // F G5 G7 Em A5 Em F Em …
  R: "[c4,f4,a4]@8 [f3,c4,f4,a4]@8 ~@4 b3@4 [e2,ab3,b3,d4,e4]@7 ~, f2@2 [g2,d4,g4] ~", // F E7 G5
  S: "~@6 c4@2 [g3,b3,d4,e4,g4]@3 [e4,g4]@2 [e4,g4] [e4,g4,c5]@2, [a2,a3,e4] g2, c4@5 b3@3 ~@5 b4@3, ~@4 e3@4 ~@3 [g3,b3,d4]@5", // Em7 Em C A5 G
  T: "[f4,a4]@8 [f3,f4,a4]@8 [d4,g4]@8 ~@4 [f2,f3]@3 ~, f2@16 g2@15 ~, c4@12 ~@12 [g3,b3,d4,g4]@7 ~", // F G5 F G
  U: "[e4,g4]@8 [e4,g4,b4]@8 [a2,c4,e4,a4]@6 ~@6 [c4,c5]@3 ~, e2@15 ~@7 [c4,e4]@4 [a3,b4]@5 ~, b3@12 ~@10 a4@9 ~, ~@8 e3@23 ~, ~@24 a2@7 ~", // Em Am C Asus2
  V: "[c4,f4,a4]@6 [c4,f4,a4,c5]@9 ~ c5@6 ~@6 g4@3 ~, f2@15 ~ [e2,c4]@15 ~, ~@16 g4@10 e5@5 ~, ~@22 [c5,g5]@9 ~", // F C C5
  W: "[d4,f4,a4]@6 [d4,f4,a4]@9 ~ [c4,e4]@6 ~@6 [c4,e4,c5]@3 ~, d2@15 ~ [a2,a4]@15 ~, ~@22 b4@9 ~, ~@11 [c4,e4]@3 ~@2, ~@24 a3@7 ~", // Dm C A C
  X: "[f4,a4]@6 a4@4 ~@2 a4@4 [c4,g4,c5]@6 [c4,g4,c5]@9 ~, c4@5 c4@3 ~@8, ~@3 f4@5 ~@8", // F C5
  Y: "[d4,g4,c5]@4 [d4,g4,c5]@4 [d4,g4,c5]@4 [d4,g4,c5]@4 [d4,g4,b4]@3 ~ [d4,g4,b4]@3 ~ [c4,f4,a4]@3 ~ [d4,g4,b4]@4", // Csus2 G F G
  Z: "[g3,c4,e4,g4]@5 [g3,c4,e4,g4]@3 [c4,e4]@4 [c4,e4,c5]@4, c3@16 [bb2,g3,g4]@15 ~", // C Eb
  AA: "[c4,f4]@10 [f4,c5]@6 [f4,ab4]@6 [f4,ab4]@4 [f4,ab4,c5]@5 ~, [a2,a4] [ab2,c4], ~@10 c4 ~@5 c5@10 ~@6, ~@11 d5@5", // F5 Fm A Ab
  AB: "[e4,g4,c5]@8 [c3,e4,g4,c5]@8 [d3,d4,gb4,a4,c5]@8 [d4,gb4,a4,c5]@7 ~, g2@15 ~@17", // C D7
  AC: "[d4,g4,c5]!4 [d4,g4,b4]!2 [c4,a4] [d4,b4]", // Csus2 G F G
  AD: "[e4,g4,c5]@10 c4 c4@5 ~@8 [c4,e4,g4]@6 [c4,e4,g4,c5]@2, ~@5 [e4,g4,c5]@3 [d4,f4,bb4]@8", // C Bb
  AE: "[c4,f4,a4,c5]@12 [c4,f4,a4,c5]@3 ~ [c4,f4]@10 [ab3,c4,d4,f4]@6, ~ [ab4,c5]", // F F5 Dm7b5 Ab
  AF: "[g3,c4]@8 [g3,c4,g4]@8 [a3,c4,gb4]@8 [a3,c4,gb4]@7 ~, e4@17 ~@15", // C5 Gbdim
  AG: "[g3,c4,d4,g4]@10 [g3,c4,d4,g4]@6 [d4,g4]@10 ~@2 d4@2 b3 ~, ~@16 [g3,b3]@15 ~, ~@26 g4@5 ~", // Gsus4 G5 G
  AH: "[c4,f4]@2 ~ a3 [d4,a4]@2 [d4,a4]@2, f2@15 ~ gb2@16, ~ [c4,f4] ~@2", // F5 D5 F5
  AI: "[[c4,e4]@3 [g3,c4,e4]@2 ~ [c4,e4]@6 g3!2 [g3,e4,g4]@2 ~@5 [a3,c4,f4]@3 [b3,d4]@3 [b3,d4,g4]@5, g2, g4@4 ~@2 e4 ~@9, ~@5 [d4,f4]@3 ~@4 c4@4 b3@8 g3@8, ~@13 [d4,f4]@3 ~@16]/2", // C F Bm G Dm
  AJ: "[g3,c4,e4]@6 g3@3 ~@3 [c4,e4,g4]@6 [c4,e4,g4]@6 [c4,g4]@8, ~@3 [c4,e4]@2 [d4,f4]@11, ~@9 g3@22 ~, ~@9 c5@7", // C C5 C Dm
  AK: "[c4,f4]@10 [a3,c4,f4]@6 [d4,a4]@8 ~@4 a3@3 ~, [f2,a4] gb2, ~@4 a3@3 ~, ~@24 [d4,a4]@7 ~", // F5 F D5 F D5
  AL: "[c4,e4,g4]@3 [c4,e4,g4]@3 e4 ~@4 [g3,e4,g4]@5, g2, ~@6 g4@5 ~@5, ~@12 d4 ~ d4@18, ~ c4", // C
  AM: "[c4,f4]@3 ~@3 a3@2 [b3,d4]@4 [b3,d4,g4]@4, d3 ~, a3@5 c4@3 ~@8, ~@3 f4@5 ~@8, ~ d2 g2@2", // F5 Bm G
  AN: "[g3,c4]@2 [g3,c4,e4]@14 [a3,c4,f4] ~ [a3,c4,f4]@13 ~, c2@31 ~, e4 ~@31", // C5 C F
  AO: "[b3,d4,g4] ~ [b3,d4,g4]@14 [a3,c4,f4] ~ [a3,c4,f4]@13 ~, c2@31 ~", // G F
  AP: "[g3,bb3,eb4]@5 [g3,bb3,eb4]@3 [ab3,c4,eb4]@3 [ab3,c4,eb4]@2 [ab3,eb4,ab4]@2 ab3, [c2,c3]!2", // Eb Ab Ab5 C
  AQ: "[ab3,db4,f4]@3 [db4,f4]@5 [bb3,db4,gb4]@3 [c4,eb4,ab4]@3 [bb3,db4,gb4]@2, [db2,db3]!2, ~@3 ab3@2 ~@11", // Db Gb Ab Gb Db
  AR: "[ab3,db4,f4]@6 ab3@4 ~@4 f4@2 [bb3,db4,gb4]@6 [c4,eb4,ab4]@5 ~ [bb3,db4,gb4]@3 ~, [db2,db3]@16 [db2,db3]@15 ~, ~@3 [db4,f4]@5 ~@8, ~@5 ab3@3 ~@8, ~@3 ab4 ~@4", // Db Gb Ab Gb Db
  AS: "[ab3,db4]@6 ~@6 f4@3 ~ [db2,db3,bb3,db4,gb4]@6 [db2,db3,c4,eb4,ab4]@5 ~ [c2,c3,ab3,eb4,ab4]@4, [db2,db3]@15 ~@17, f4@3 ~@5, ~@6 [ab3,db4,ab4]@9 ~@17", // Db5 Gb Ab Db Db5
  AT: "[f3,bb3,db4,f4]@10 [f3,bb3,db4,f4]@5 ~ [f3,c4,f4]@6 ~@6 f3@3 ~, ~@16 [ab1,ab2]@15 ~, ~@22 f4@9 ~, ~@22 f3@4 ab3@5 ~, ~@24 c4@7 ~", // Bbm F5 Ab
  AU: "[[gb4,bb4]@8 ~@4 db4@4 [ab2,eb4,ab4]@7 ~ [gb2,eb4,ab4]@8 [f2,ab4]@6 ~@6 c4@3 ~ [f4,bb4]@8 ~@2 f4@2 [f4,ab4,c5]@4, [gb2,gb3]@17 ~@23 f2@7 ~ bb2@16, db4@12 ~@4 c4 ~@7 c4@14 c4@6 ~@4 db4@6 ~@2 bb3@8, ~@8 [gb4,bb4]@9 ~@15 f4@5 ~ [f4,ab4,c5]@9 ~@11 [bb4,db5]@6]/2", // Gb Ab5 Ab7 Fm Bb5 Fm Gb Fm …
  AV: "[db4,gb4,bb4]@8 [gb3,db4,gb4,bb4]@8 ~@4 c4@4 [f2,a3,c4,eb4,f4]@7 ~, gb2@2 [ab2,eb4,ab4] ~", // Gb F7 Ab5
  AW: "~@6 db4@2 [ab3,c4,eb4,f4,ab4]@3 [f4,ab4]@2 [f4,ab4] [f4,ab4,db5]@2, [bb2,bb3,f4] ab2, db4@5 c4@3 ~@5 c5@3, ~@4 f3@4 ~@3 [ab3,c4,eb4]@5", // Fm7 Fm Db Bb5 Ab
  AX: "[gb4,bb4]@8 [gb3,gb4,bb4]@8 [eb4,ab4]@8 ~@4 [gb2,gb3]@3 ~, gb2@16 ab2@15 ~, db4@12 ~@12 [ab3,c4,eb4,ab4]@7 ~", // Gb Ab5 Gb Ab
  AY: "[f4,ab4]@8 [f4,ab4,c5]@8 [bb2,db4,f4,bb4]@6 ~@6 [db4,db5]@3 ~, f2@15 ~@7 [db4,f4]@4 [bb3,c5]@5 ~, c4@12 ~@10 bb4@9 ~, ~@8 f3@23 ~, ~@24 bb2@7 ~", // Fm Bbm Db Bbsus2
  AZ: "[db4,gb4,bb4]@6 [db4,gb4,bb4,db5]@9 ~ db5@6 ~@6 ab4@2 ~@2, [gb2,gb3]@15 ~ [f2,f3,db4,ab4]@14 ~@2, ~@11 [db5,ab5]@4 ~, ~@13 f5@2 ~", // Gb Db Db5
  BA: "[eb4,gb4,bb4]@6 [eb4,gb4,bb4]@9 ~ [db4,f4,bb4]@5 ~@3 bb3@3 ~ [db4,f4,db5] ~@3, ~@4 [bb2,f3]@3 ~, ~@11 [db4,f4,c5]@3 ~@2", // Ebm Bbm Db Bb5 Dbmaj7
  BB: "[gb4,bb4]@3 bb4@2 ~ bb4@2 [db4,ab4,db5]@3 [db4,ab4,db5]@5, db4@5 db4@3 [f2,f3]@8, ~@3 gb4@5 ~@8", // Gb Db5 F
  BC: "[eb4,ab4,db5]@4 [eb4,ab4,db5]@4 [eb4,ab4,db5]@4 [eb4,ab4,db5]@4 [eb4,ab4,c5]@4 [eb4,ab4,c5]@4 [db4,gb4,bb4]@3 ~ [eb4,ab4,c5]@4, ab2@13 ~@3", // Dbsus2 Ab Gb Ab
  BD: "[ab3,db4,f4,ab4]@5 [ab3,db4,f4,ab4]@3 [db4,f4]@4 [db4,f4,db5]@4, ~@16 [ab3,ab4]@15 ~", // Db Ab
  BE: "[db4,gb4]@5 [gb4,db5]@3 [gb4,a4]@3 [gb4,a4]@2 [gb4,a4,db5]@3, bb4@8 db5@5 ~@3, ~@10 db4 ~@5 db4@16, ~@11 eb5@5", // Gb5 Gbm
  BF: "[f4,ab4,db5]!2 [eb4,g4,bb4,db5]!2", // Db Eb7
  BG: "[eb4,ab4,db5]!3 [eb4,ab4] [eb4,ab4,c5]!2 [db4,bb4] [eb4,c5], ~@12 db5@11 ~@9", // Dbsus2 Ab5 Ab Gb Cm
  BH: "[f4,ab4,db5]@10 db4 db4@5 ~@8 [db4,f4,ab4]@6 [db4,f4,ab4,db5]@2, ~@5 [f4,ab4,db5]@3 [eb4,gb4,b4]@8", // Db B
  BI: "[db4,gb4,bb4,db5]@6 [db4,gb4,bb4,db5]@2 [db4,gb4]@5 [a3,db4,eb4,gb4]@3, ~ [a4,db5]", // Gb Gb5 Ebm7b5 A
  BJ: "[ab3,db4] [ab3,db4,ab4] [bb3,db4,g4]!2, f4@17 ~@15", // Db5 Gdim
  BK: "[ab3,db4,eb4,ab4]@5 [ab3,db4,eb4,ab4]@3 [eb4,ab4]@5 ~ eb4 c4, ~@16 [ab3,c4]@15 ~, ~@26 ab4@5 ~", // Absus4 Ab5 Ab
  BL: "[db4,gb4]@8 ~@4 bb3@4 [eb4,bb4]@8 [eb4,bb4]@7 ~, gb2@15 ~ g2@16, ~ [db4,gb4] ~@2", // Gb5 Eb5 Gb5
  BM: "[[db4,f4]@3 [ab3,db4,f4]@2 ~ [db4,f4]@6 ab3!2 [ab3,f4,ab4]@2 ~@5 [bb3,db4,gb4]@3 [c4,eb4]@3 [c4,eb4,ab4]@5, ab2, ab4@4 ~@2 f4 ~@9, ~@5 [eb4,gb4]@3 ~@4 db4@4 c4@8 ab3@8, ~@13 [eb4,gb4]@3 ~@16]/2", // Db Gb Cm Ab Ebm
  BN: "[ab3,db4,f4]@6 ab3@3 ~@3 [db4,f4,ab4]@6 [db4,f4,ab4]@6 [db4,ab4]@4 [db4,f4,ab4,db5]@4, db3, ~@3 [db4,f4]@2 [eb4,gb4]@11, ~@9 ab3@22 ~, ~@9 db5@3 c5@4", // Db Db5 Db Ebm
  BO: "[db4,gb4]@10 [bb3,db4,gb4]@6 [eb4,bb4]@8 ~@4 bb3@3 ~, [gb2,bb4] g2, ~@4 bb3@3 ~, ~@24 [eb4,bb4]@7 ~", // Gb5 Gb Eb5 Gb Eb5
  BP: "[db4,f4,ab4]@3 [db4,f4,ab4]@3 f4 ~@4 [ab3,f4,ab4]@5, ab2, ~@6 ab4@5 ~@5, ~@12 eb4 ~ eb4@18, ~ db4", // Db
  BQ: "[db4,gb4]@3 ~@3 bb3@2 [c4,eb4]@4 [c4,eb4,ab4]@4, eb3 ~, bb3@5 db4@3 ~@8, ~@3 gb4@5 ~@8, ~ eb2 ab2@2", // Gb5 Cm Ab
  BR: "e5 [f5,ab6]@10 ~@5 c5 [db5,db6,gb6]@8 [db5,db6]@2 c6@2 [bb4,bb5]@3, f6@10 ~ [f5,f6,ab6]@7 ~@7 gb6@4 ~@3, ~@13 [eb5,eb6]@5 ~@7 c6 ~@6", // Fm Gb5 Db Bb Fm Eb
  BS: "[[g4,g5] [ab4,ab5]@9 gb4@2 [f4,f5]@3 f4 [gb4,gb5]@9 db4@2 [eb4,eb5]@8 ~ [eb4,f4]@28, c6@4 bb5@5 ~@7, ~@10 gb5@6 f5 ~@8 db5 ~@9 db4@29]/2", // G Ab F Gb Eb Ebsus2
})).s("gm_piano").gain(0.4)

// chords · piano · "A.PIANO" · soft notes
const piano_soft = note(`<
  ~@3 A ~ B ~@2 C D E ~ F G ~ H I ~@2 J ~ K L M N ~ O P ~@5 Q ~@6 R S T U ~@2 V ~@2 W X ~@3 Y Z AA ~ AB AC ~@5 AD ~@6 AE
  AF AG AH ~@2 AI AJ ~ AK@2
>`.pickRestart({
  A: "[d4,g4] ~", B: "c4@14 g3 ~@17", C: "~@14 f4@2 ~@4 g3@3 ~@5 f3@4", D: "~@6 g3 ~@9, ~@5 d4@3 ~@8",
  E: "~@12 c4@3 ~@17, ~ f4 ~@2", F: "~@12 c4@4 ~@4 b3@3 ~@9, ~ g4 d3 ~", G: "[b3,g4]@3 g3@3 ~@10",
  H: "~@9 e4 ~@6, ~@16 e3@15 ~", I: "~@3 c4@5 ~@8", J: "c4@11 ~@5", K: "e4@5 ~@3 b4@6 ~@2", L: "~@20 b3@3 ~@5 f3@4",
  M: "~@5 e3@3 ~@3 c4@5, ~@5 e3@3", N: "~@3 a3 ~@4", O: "~@3 c4 ~@4", P: "~@12 b3@3 ~@11 c4@2 f4@3 ~, ~@26 e4@5 ~",
  Q: "~@11 c4@5 ~@16", R: "~ a3@2 ~@2 a3@2 a3", S: "~@2 g3 ~@2 g3 g3@6 ~@4", T: "[g3,d4] ~", U: "~@3 e4",
  V: "~@3 c4@2 ~@11", W: "~@13 c4@3", X: "~@5 ab3@3 ~@8", Y: "~@20 c4@2 c4 ~@5 gb3@4",
  Z: "~@5 f3@3 ~@3 db4@5, ~@5 f3@3", AA: "~@3 bb3 ~@4", AB: "~@3 db4 ~@4",
  AC: "~@12 c4@3 ~@11 db4@2 gb4@3 ~, ~@26 f4@5 ~", AD: "~@11 db4@5 ~@16", AE: "~@4 bb3@8 ~@8 bb3@8 bb3@3 ~",
  AF: "~@2 ab3 ~@2 ab3 ab3@6 ~@4", AG: "[ab3,eb4] ~", AH: "~@6 f4 ~", AI: "~@3 db4@2 ~@11",
  AJ: "e6@2 e5 ~@13 c6 ~@7 c5 ~@2 c5@2 ~@3", AK: "[~@2 [db3,ab3]@33 ~@29, ~ db2@31 ~@32]/2",
})).s("gm_piano").gain(0.24)

// drums · kick
const kick = s("bd").struct(`<
  ~@32
  [x ~ x ~@6 x!3 ~@3 x]!7
  [x!2 ~@2 x ~@3]
  ~@23
  [~@3 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@10]
  [x ~ x ~@6 x!3 ~@3 x]!7
  [x!2 ~@2 x ~@3]
  ~@11
>`).gain(0.29)

// drums · snare
const snare = s("sd").struct("<~@32 [~ x ~ x]!7 [~ x ~@2] ~@23 [~@16 x ~@2 x ~ x ~@10] [~ x ~ x]!7 [~ x ~@2] ~@11>")
  .gain(0.29)

// … 34 more lines

More by Baglioni Claudio