Strudelify
Andavo a cento all'ora cover art

Gianni Morandi

Andavo a cento all'ora

Morandi

KeyC minorTempo170 bpm
0:00/0:00
// Andavo a cento all'ora — Morandi
// 170 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 105 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(170/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 · "Bass"
const bass = note(`<
  ~@4 A B C@2 D E F G@8 H@8 I@4 J K L M N O P Q P O P Q R D E F E D E F S T U V U T U V W X Y Z Y X Y Z Y X Y Z Y X Y Z
  AA AB AC AD AE AF AG AH AI AJ AK AL@2 AJ AK AM@2 AN AO AP@2 AN AO AN AI ~@2 AO AQ@2
>`.pickRestart({
  A: "~ a2@4 ~@2 c3@2 ~@2 c3@2 d3@3", B: "~ g2@5 ~ b2@2 ~@2 b2@2 d3@3",
  C: "[~ a2@4 ~@2 c3@2 ~@2 d2@2 e2@2 gb2@2 g2@5 ~ b2@2 ~ b2@2 d3@3 ~]/2", D: "a2@4 ~@2 c3@2 ~@2 c3@2 d3@3 ~",
  E: "g2@5 ~ b2@2 ~@2 b2@2 d3@3 ~", F: "a2@2 ~ c3 ~ d2 e2 gb2",
  G: "[g2@2 ~@13 c3@4 ~@2 c3@2 d3@3 ~ d2@3 ~ g2@4 ~@2 b2@2 d3@3 ~ g2@3 ~ c3@4 ~@2 c3@2 d3@2 d2@2 e2@2 gb2@2 g2@4 ~@2 b2@2 d3@3 ~ g2@3 ~ c3@4 ~@2 c3@2 d3@3 ~ d2@3 ~ g2@4 ~@2 b2@2 d3@3 ~ g2@3 ~ c3@4 ~@2 c3@2 d3@2 d2@2 e2@2 gb2@2 g2]/8",
  H: "[~@5 b2@2 d3@3 ~ g2@3 ~ c3@4 ~@2 c3@2 d3@3 ~ d2@3 ~ g2@4 ~@2 b2@2 d3@3 ~ g2@3 ~ c3@4 ~@2 c3@2 d3@2 d2@2 e2@2 gb2@2 g2@4 ~@2 b2@2 d3@3 ~ g2@3 ~ c3@4 ~@2 c3@2 d3@3 ~ d2@3 ~ g2@4 ~@2 b2@2 d3@3 ~ g2@3 ~ c3@4 ~@2 c3@2 d3@2 d2@2 e2@2 gb2@2 g2]/8",
  I: "[~@15 c2@5 ~ e2@2 ~@2 e2@2 g2@3 ~ b1@5 ~ d2@2 ~@2 d2@2 gb2@3 ~ a1@5 ~ c2@2 ~@2 c2@2 ~ d2@3 ~]/4",
  J: "g2@3 ~ f2@3 ~ eb2@3 ~ d2@3 ~", K: "c2@5 ~ eb2@2 ~@2 eb2@2 f2@3 ~", L: "bb1@5 ~ d2@2 ~@2 d2@2 f2@3 ~",
  M: "a1@5 ~ c2@2 ~@2 c2@2 a1@3 ~", N: "d2 ~@7", O: "c3@4 ~@2 c3@2 d3@3 ~ d2@3 ~", P: "g2@4 ~@2 b2@2 d3@3 ~ g2@3 ~",
  Q: "c3@2 ~ c3 d3 d2 e2 gb2", R: "g2@3 ~@13", S: "g2 ~@7", T: "bb2@4 ~@2 db3@2 ~@2 db3@2 eb3@3 ~",
  U: "ab2@5 ~ c3@2 ~@2 c3@2 eb3@3 ~", V: "bb2@2 ~ db3 ~ eb2 f2 g2", W: "ab2 ~@7", X: "db3@4 ~@2 db3@2 eb3@3 ~ eb2@3 ~",
  Y: "ab2@4 ~@2 c3@2 eb3@3 ~ ab2@3 ~", Z: "db3@2 ~ db3 eb3 eb2 f2 g2", AA: "ab2@3 ~@13",
  AB: "db2@5 ~ f2@2 ~@2 f2@2 ab2@3 ~", AC: "c2@5 ~ eb2@2 ~@2 eb2@2 g2@3 ~", AD: "bb1@5 ~ db2@2 ~@2 db2@2 eb2@3 ~",
  AE: "ab2@3 ~ gb2@3 ~ e2@3 ~ eb2@3 ~", AF: "db2@5 ~ e2@2 ~@2 e2@2 gb2@3 ~", AG: "b1@5 ~@2 eb2@2 ~@2 eb2@2 gb2@3",
  AH: "~ bb1@5 ~ db2@2 ~@2 db2@2 bb1@3", AI: "~ eb2@2 ~@13", AJ: "~ db3@4 ~@2 db3@2 eb3@3 ~ eb2@3",
  AK: "~ ab2@4 ~@2 c3@2 eb3@3 ~ ab2@3", AL: "[~ db3@4 ~@2 db3@2 eb3@2 eb2@2 f2@2 g2@2 ab2@4 ~@2 c3@2 eb3@3 ~ ab2@3]/2",
  AM: "[~ db3@4 ~@2 db3@2 eb3@2 eb2@2 f2@2 g2@2 ab2@3 ~@12]/2", AN: "~ bb2@4 ~@2 db3@2 ~@2 db3@2 eb3@3",
  AO: "~ ab2@5 ~ c3@2 ~@2 c3@2 eb3@3", AP: "[~ bb2@4 ~@2 db3@2 ~@2 eb2@2 f2@2 g2@2 ab2@5 ~ c3@2 ~@2 c3@2 eb3@3]/2",
  AQ: "[~ bb2@4 ~@2 db3@2 ~@2 eb2@2 f2@2 g2@2 ab2@2 ~@13]/2",
})).s("gm_acoustic_bass").gain(0.29)

// chords · piano
const piano = note(`<
  A@5 B C D E F G H ~ I J ~@2 I J ~@2 I J ~@2 I K L@5 M N O P ~ Q R S ~ Q R T G F G F G F G U V W V W V W V X ~ Y Z AA ~
  Y Z AA ~ Y Z AA ~ Y Z AB AC AD AE AF AG AH AI AJ ~ AK AL AM ~ AK AL AN@2 AO AP AO AP AO AQ AR AS@2 AT AP AU
>`.pickRestart({
  A: "[~@6 b2@2 ~@6 d2@3 [g2,b3,d4,gb4]@8 ~@2 g2 ~ a2 ~ b2 ~@6 a3@2 ~@4 d2 ~ e2 ~ gb2 [g2,gb3,b3,d4,gb4]@8 ~@3 g2@2 a2@2 b2@2 [a4,c5,g5] ~ [a4,c5,g5] g5 [a4,c5] [a4,g5] c5 [a4,c5,gb5] ~ [a4,c5,gb5] ~ [a4,c5,gb5] ~ [a4,c5,gb5], ~ [c4,e4]@8 d3@8 ~@8 e2@8 [c3,c4,e4]@8 [d3,gb3]@8 ~@8 e2@8 ~@15, ~ c3@4 ~@3 c3@2 [a3,d4,gb4]@8 ~@8 [g3,b3,e4]@8 g4@8 ~@38, ~@2 g4@8 ~@23 g3@4 ~@3 g3@2 [a3,c4,gb4]@8 ~@8 [g3,b3,e4]@8 ~@14]/5", // Gmaj7 Am7 Am A7 Gbdim C D Em …
  B: "~ [g4,b4,gb5] ~ [g4,b4,gb5] ~ [g4,b4,gb5] ~ [g4,b4,gb5] ~ [g4,b4,e5] ~ [g4,b4,e5] ~ [g4,b4,e5] ~ [g4,b4,e5]", // Gmaj7 Em
  C: "~ [a4,c5,g5] ~ [a4,c5,g5] ~ [a4,c5,g5] ~ [a4,c5,g5] ~ [a4,c5,gb5] ~ [a4,c5,gb5] ~ [a4,c5,gb5] ~ [a4,c5,gb5]", // Am7 Gbdim
  D: "~ [g4,b4,gb5] ~ [g4,b4,gb5] ~ [g4,b4,gb5] ~ [g4,b4,gb5] ~ [g4,b4,e5] ~ [g4,b4,e5] ~ [g4,b4,e5]!2 ~", // Gmaj7 Em
  E: "a4 [c5,g5] [a4,g5] c5 [a4,c5,g5] ~ [a4,c5,g5] ~ [a4,c5,gb5] ~ [a4,c5,gb5] ~ [a4,c5,gb5] ~ [a4,c5,gb5] ~", // C5 A7 Am7 Gbdim
  F: "[g4,b4,gb5] ~ [g4,b4,gb5] ~ [g4,b4,gb5] ~ [g4,b4,gb5] ~ [g4,b4,e5] ~ [g4,b4,e5] ~ [g4,b4,e5] ~ [g4,b4,e5] ~", // Gmaj7 Em
  G: "[a4,c5,g5] ~ [a4,c5,g5] ~ [a4,c5,g5] ~ [a4,c5,g5] ~ [a4,c5,gb5] ~ [a4,c5,gb5] ~ [a4,c5,gb5] ~ [a4,c5,gb5] ~", // Am7 Gbdim
  H: "[g4,b4,g5] ~@7", // G
  I: "~@3 [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [c5,e5,g5]", // G C
  J: "~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [a4,d5,gb5] ~ [a4,d5,gb5] ~ [a4,d5,gb5] ~ [a4,d5,gb5] ~ [b4,d5,g5]", // C D G
  K: "~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [a4,d5,gb5] ~ [a4,d5,gb5] ~ [a4,d5,gb5] ~ [a4,d5,gb5] ~ [g2,b4,d5,g5]", // C D G
  L: "[~@3 [g2,d4,f4] ~ [g2,d4,f4] ~ [a2,c4,e4] ~ [a2,c4,e4] ~ [b2,b3,d4] ~ [b2,b3,d4] ~ [e4,g4]@4 c4 ~ [e4,g4]@4 ~@2 [c3,e4,g4]@4 [d4,gb4]@4 b3 ~ [d4,gb4]@4 b3 ~ d4@2 b3 ~ [c4,e4]@4 a3 ~ [a3,c4,d4]@4 gb3 ~@2 [d3,c4,gb4]@3 ~ [g2,b3]@2 ~@14, ~@15 c3@10 ~@6 b2@10 ~@2 [b2,gb4]@4 a2@12 ~@21, ~@15 c4@2 ~@4 g3@9 ~@7 gb3@6 ~@37, ~@21 c4@2 ~@2 c4@4 ~@2 b3 ~@5 b3 ~@5 b3 ~@3 a3 ~@15 [d4,g4]@2 ~@15]/5", // G7 Am Bm Em C D C D7 …
  M: "[eb4,g4]@4 c4 ~ [eb4,g4]@4 ~@2 [c3,eb4,g4]@4, c3@5 ~@3, c4@2 ~@4 g3@9 ~, ~@3 c4 ~ c4@2 ~", // Eb Cm
  N: "[d4,f4]@4 bb3 ~ [d4,f4]@4 bb3 ~ d4@2 bb3 ~, bb2@5 ~ [bb2,f4]@2, bb3 ~@5 f3@6 ~@4, ~@6 bb3 ~@5 bb3 ~@3", // Dm Bb5
  O: "[c4,eb4]@4 g3 ~ a3 ~ [c3,g3,a3,c4,eb4]@8, a2@3 ~, a3 ~@15", P: "[d3,gb3,c4,d4] ~@7",
  Q: "~@4 [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // G
  R: "[c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [a4,d5,gb5] ~ [a4,d5,gb5] ~ [a4,d5,gb5] ~ [a4,d5,gb5] ~", // C D
  S: "[b4,d5,g5] ~@15", T: "[g2,b4,d5,g5] ~@5 d3@2 [c4,e4]@2 e3@2 [c4,eb4]@2 gb3@2, ~ [d2,d4,gb4] e2 gb2",
  U: "[g4,b4,g5]@2 ~@2 [g3,d4,g4]@3 ~ [bb3,eb4,g4,bb4]@7 ~", // G G5 Eb
  V: "[bb4,db5,ab5] ~ [bb4,db5,ab5] ~ [bb4,db5,ab5] ~ [bb4,db5,ab5] ~ [bb4,db5,g5] ~ [bb4,db5,g5] ~ [bb4,db5,g5] ~ [bb4,db5,g5] ~", // Bbm7 Gdim
  W: "[ab4,c5,g5] ~ [ab4,c5,g5] ~ [ab4,c5,g5] ~ [ab4,c5,g5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~", // Abmaj7 Fm
  X: "[ab4,c5,ab5] ~@7", // Ab
  Y: "~@4 [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~", // Ab
  Z: "[db5,f5,ab5] ~ [db5,f5,ab5] ~ [db5,f5,ab5] ~ [db5,f5,ab5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~", // Db Eb
  AA: "[c5,eb5,ab5] ~@15", // Ab
  AB: "[ab2,c5,eb5,ab5] ~@3 [ab2,eb4,gb4] ~ [ab2,eb4,gb4] ~ [bb2,db4,f4] ~ [bb2,db4,f4] ~ [c3,c4,eb4] ~ [c3,c4,eb4] ~", // Ab Ab7 Bbm Cm
  AC: "[f4,ab4]@4 db4 ~ [f4,ab4]@4 ~@2 [db3,f4,ab4]@4, db3@5 ~@3, db4@2 ~@4 ab3@9 ~, ~@3 db4 ~ db4@2 ~", // Fm Db
  AD: "[eb4,g4]@4 c4 ~ [eb4,g4]@4 c4 ~ eb4@2 c4 ~, c3@5 ~ [c3,g4]@2, c4 ~@5 g3@6 ~@4, ~@6 c4 ~@5 c4 ~@3", // Eb C5
  AE: "[db4,f4]@4 bb3 ~ [bb3,db4,eb4]@4 g3 ~ [eb3,db4,g4]@4, bb2@3 ~, bb3 ~@15", AF: "[ab2,c4,eb4,ab4] ~@7",
  AG: "[e4,ab4]@4 db4 ~ [e4,ab4]@4 ~@2 [db3,e4,ab4]@4, db3@5 ~@3, db4@2 ~@4 ab3@9 ~, ~@3 db4 ~ db4@2 ~", // E Dbm
  AH: "[eb4,gb4]@4 b3 ~@2 eb4@3 b3 ~@2 eb4@2 b3, b2@5 ~ [b2,gb4]@2, b3 ~@5 gb4@4 ~@6, ~@7 gb3@6 ~@3, ~@7 b3 ~@5 b3 ~@2", // Ebm B5
  AI: "~ [db4,e4]@4 ab3 ~ bb3 ~ [db3,ab3,bb3,db4,e4]@7, ~ bb2@12 ~@3, ~ bb3 ~@14", AJ: "~ [eb3,g3,db4,eb4]@2 ~@13",
  AK: "~@5 [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5]", // Ab
  AL: "~ [db5,f5,ab5] ~ [db5,f5,ab5] ~ [db5,f5,ab5] ~ [db5,f5,ab5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5]", // Db Eb
  AM: "~ [c5,eb5,ab5] ~@14", // Ab
  AN: "[~ [ab2,c5,eb5,ab5] ~@5 eb3@2 [db4,f4,f5]@2 f3@2 [db4,e4,e5]@2 g3@2 [bb4,db5,ab5] ~ [bb4,db5,ab5] ~ [bb4,db5,ab5] ~ [bb4,db5,ab5] ~ [bb4,db5,g5] ~ [bb4,db5,g5] ~ [bb4,db5,g5] ~ [bb4,db5,g5], ~@5 [eb2,eb4,g4,g5]@4 f2@4 g2@4 ~@15]/2", // Ab Db Dbm Bbm7 Gdim Eb
  AO: "~ [ab4,c5,g5] ~ [ab4,c5,g5] ~ [ab4,c5,g5] ~ [ab4,c5,g5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5]", // Abmaj7 Fm
  AP: "~ [bb4,db5,ab5] ~ [bb4,db5,ab5] ~ [bb4,db5,ab5] ~ [bb4,db5,ab5] ~ [bb4,db5,g5] ~ [bb4,db5,g5] ~ [bb4,db5,g5] ~ [bb4,db5,g5]", // Bbm7 Gdim
  AQ: "~ [bb4,db5,ab5] ~ [bb4,db5,ab5] ~ [bb4,db5,ab5] ~ [bb4,db5,ab5] ~ [bb4,db5,ab5] ~ [bb4,db5,ab5] ~ [bb4,db5,ab5] ~ [bb4,db5,ab5]", // Bbm7
  AR: "~ [bb4,db5,g5]@2 ~@13", // Gdim
  AS: "[~ ab1@2 ab2@2 [ab1,c5]@2 [ab2,gb5]@2 db2@2 db3@2 db2@2 db3@2 eb2@2 eb3@2 eb2@2 eb3@2 [ab1,c4,eb4,ab4,c5]@7, ~ [eb4,ab4,eb5]@7 ~ [f4,ab4,db5,f5]@7 ~ [db4,g4,bb4,db5]@6 ~@9, ~ c5@4 ~@27]/2", // Ab Ab7 Ab Ab5 Db Gdim
  AT: "~ [ab4,c5,ab5] ~ [ab4,c5,ab5] ~ [ab4,c5,ab5] ~ [ab4,c5,ab5] ~ [ab4,c5,ab5] ~ [ab4,c5,ab5] ~ [ab4,c5,ab5] ~ [ab4,c5,ab5]", // Ab
  AU: "~ [ab4,c5,ab5]@2 ~@13", // Ab
})).s("gm_piano").gain(0.35).pan(0.2)

// chords · percussive organ · "Organ"
const percussive_organ = note(`<
  ~@4 A B C B D E F G@7 H@8 I@5 J K L M N O P O P O P O Q D E D E D E F R S T S T S T U V W X W X W X W X W X W X W X W
  Y Z AA AB AC AD AE AF AG AH AI AH AI AH AI AH AJ AK AL AK AL AK AL AM AN ~@2 AO AP AQ
>`.pickRestart({
  A: "~@2 [a3,g5,g6]@7 [d4,gb5,gb6]@7, ~ [a4,c5]@7", B: "~ [g3,gb5,gb6]@8 [e4,e5,e6]@7, ~ [g4,b4]@14 ~",
  C: "~ [a3,g5,g6]@8 [d4,gb5,gb6]@7, ~ [a4,c5]@14 ~", D: "[a3,g5,g6]@8 [d4,gb5,gb6]@7 ~, [a4,c5]@7 ~",
  E: "[g3,gb5,gb6]@8 [e4,e5,e6]@7 ~, [g4,b4]@7 ~", F: "[g5,g6]@8 [d4,gb5,gb6]@7 ~, [a4,c5]@15 ~, a3@7 ~@9",
  G: "[[g3,b4,d5,g5,g6]@2 ~@13 [e4,c5]@6 ~@2 [gb4,c5]@6 ~@2 [g4,b4]@13 ~@3 [e4,c5]@6 ~@2 [gb4,c5]@6 ~@2 [g4,b4]@13 ~@3 [e4,c5]@6 ~@2 [gb4,c5]@6 ~@2 [g4,b4]@13 ~@3 [e4,c5]]/7", // G C Gbdim G C Gbdim G C …
  H: "[~@7 [gb4,c5]@6 ~@2 [g4,b4]@13 ~@3 [e4,c5]@6 ~@2 [gb4,c5]@6 ~@2 [g4,b4]@13 ~@3 [e4,c5]@6 ~@2 [gb4,c5]@6 ~@2 [g4,b4]@13 ~@3 [e4,c5]@6 ~@2 [gb4,c5]@6 ~@2 [g4,b4]@13 ~@3 [e4,c5]]/8", // Gbdim G C Gbdim G C Gbdim G …
  I: "[~@7 [gb4,c5]@6 ~@2 [d4,g4,b4]@2 ~@14 [c5,e5,g5]@15 ~ [b4,d5,gb5]@14 ~@2 [a4,c5,e5]@7 ~ [a4,c5,gb5]@7 ~@2]/5", // Gbdim G C Bm Am Gbdim
  J: "[g4,b4,g5] ~@7", K: "[c5,eb5,g5]", L: "[bb4,d5,f5]@15 ~", M: "[a4,c5,eb5]@7 ~ [g4,c5,eb5]@7 ~",
  N: "[gb4,a4,d5] ~@7", O: "[e4,c5]@3 ~ [gb4,c5]@3 ~", P: "[g4,b4]@13 ~@3", Q: "[d4,g4,b4] ~@7",
  R: "[g3,b4,d5,g5,g6] ~@7", S: "[bb3,ab5,ab6]@8 [eb4,g5,g6]@7 ~, [bb4,db5]@7 ~",
  T: "[ab3,g5,g6]@8 [f4,f5,f6]@7 ~, [ab4,c5]@7 ~", U: "[ab5,ab6]@8 [eb4,g5,g6]@7 ~, [bb4,db5]@15 ~, bb3@7 ~@9",
  V: "[ab3,c5,eb5,ab5,ab6] ~@7", W: "[f4,db5]@3 ~ [g4,db5]@3 ~", X: "[ab4,c5]@13 ~@3", Y: "[eb4,ab4,c5] ~@7",
  Z: "[db5,f5,ab5]@15 ~", AA: "[c5,eb5,g5]@7 ~", AB: "[bb4,db5,f5]@7 ~ [bb4,db5,g5]@7 ~", AC: "[ab4,c5,ab5] ~@7",
  AD: "[db5,e5,ab5]", AE: "[b4,eb5,gb5]@15 ~", AF: "~ [bb4,db5,e5]@7 ~ [ab4,db5,e5]@7", AG: "~ [g4,bb4,eb5]@2 ~@13",
  AH: "~ [f4,db5]@6 ~@2 [g4,db5]@6 ~", AI: "~ [ab4,c5]@13 ~@2", AJ: "~ [eb4,ab4,c5]@2 ~@13",
  AK: "~ [bb3,ab5,ab6]@8 [eb4,g5,g6]@7, ~ [bb4,db5]@14 ~", AL: "~ [ab3,g5,g6]@8 [f4,f5,f6]@7, ~ [ab4,c5]@14 ~",
  AM: "~ [bb3,bb4,db5,ab5,ab6]@15", AN: "~ [eb3,bb4,eb5,g5,g6]@2 ~@13",
  AO: "~ [ab3,ab5,ab6]@8 [f4,f5,ab6]@7, ~ [ab4,c5]@14 ~", AP: "~ [bb3,bb4,db5,ab5,ab6]@7 ~ [eb4,bb4,db5,g5,g6]@7",
  AQ: "~ [ab3,c5,eb5,ab5,ab6]@2 ~@13", // Ab
})).s("gm_percussive_organ").gain(0.12).pan(0.8)

// chords · marimba
const marimba = note(`<
  ~@4 A B C D E F E G ~@15 H I J K L M N O P ~@8 Q R E S E F E G T U V W V X V Y ~@16 Z AA AB AC AD AE AF AG ~@8 AH AI
  AJ AK AJ AL AM AN ~@2 AO AJ AP
>`.pickRestart({
  A: "~ [c5,g5]@4 ~@8 [c5,gb5]@2 ~", B: "~ [b4,gb5]@4 ~@8 [b4,e5]@2 ~", C: "~ [c5,g5]@3 ~@9 [c5,gb5] ~@2",
  D: "~ [b4,gb5]@2 ~@9 [b4,e5]@2 ~@2", E: "[c5,g5]@3 ~@9 [c5,gb5]@2 ~@2", F: "[b4,gb5] ~@5 [b4,e5] ~", G: "[b4,g5] ~@7",
  H: "~@15 [c5,e5]", I: "~ e5 [c5,e5] g4@2 e5@2 ~ g4 [c5,e5] ~ c5 e5 g4 ~ d5, ~@3 c5 ~ c5 ~@10",
  J: "b4 ~ [b4,d5]!2 b4 d5@2 ~ gb4 ~ [b4,d5] ~ d5@2 gb4 ~, ~@2 gb4 ~@5, ~@5 b4 ~@6 b4 ~@3", // Bm
  K: "[a4,c5] ~ [a4,c5]!2 e4 ~ c5@2 gb4 ~ [a4,c5] ~ c5@2 gb4 ~, ~@6 a4 ~@5 a4 ~@3", L: "[g4,b4] ~@15",
  M: "eb4@2 ~@4 eb4 ~@5 eb4 ~@3", N: "d4@2 ~@4 d4 ~@5 [bb3,d4] ~@3", O: "[a3,c4] ~@5 c4 ~@5 a3 ~@3", P: "[a3,d4] ~@15",
  Q: "[c5,g5]@2 ~@4 [c5,gb5] ~", R: "[b4,gb5]@2 ~@4 [b4,e5] ~", S: "[b4,gb5]@3 ~@9 [b4,e5]@2 ~@2",
  T: "[db5,ab5]@2 ~@4 [db5,g5] ~", U: "[c5,g5]@2 ~@4 [c5,f5] ~", V: "[db5,ab5]@3 ~@9 [db5,g5]@2 ~@2",
  W: "[c5,g5]@3 ~@9 [c5,f5]@2 ~@2", X: "[c5,g5] ~@5 [c5,f5] ~", Y: "[c5,ab5] ~@7",
  Z: "[db5,f5] ~ [db5,f5]!2 ab4@2 f5@2 ab4 ~ [db5,f5] ~ [db5,f5] ~ ab4 ~, ~@6 db5 ~@9", // Db
  AA: "[c5,eb5] ~ [c5,eb5]!2 g4@2 eb5@2 g4 ~ [c5,eb5] ~ eb5@2 g4 ~, ~@4 c5 ~ c5 ~@5 c5 ~@3", // Cm
  AB: "[bb4,db5] ~ [bb4,db5]!2 f4 ~ db5@2 g4 ~ [bb4,db5] ~@2 bb4 g4 ~, ~@6 bb4 ~@5 db5@2 ~@2", AC: "[ab4,c5] ~@15",
  AD: "~ [db4,e4]@2 ~@4 [db4,e4] ~@5 e4 ~@2", AE: "~ eb4@2 ~@4 eb4 ~@5 [b3,eb4] ~@2",
  AF: "~ [bb3,db4] ~@5 db4 ~@5 [bb3,db4] ~@2", AG: "~ [bb3,eb4] ~@14", AH: "~ [db5,ab5]@4 ~@8 [db5,g5]@2 ~",
  AI: "~ [c5,g5]@4 ~@8 [c5,f5]@2 ~", AJ: "~ [db5,ab5]@3 ~@9 [db5,g5]@2 ~", AK: "~ [c5,g5]@3 ~@9 [c5,f5]@2 ~",
  AL: "~ [c5,g5]@2 ~@10 [c5,f5]@2 ~", AM: "~ [db5,ab5]@3 ~@9 [db5,ab5]@2 ~", AN: "~ [db5,g5]@2 ~@13",
  AO: "~ [c5,ab5]@2 ~@10 [c5,ab5]@2 ~", AP: "~ [c5,ab5]@2 ~@13",
})).s("gm_marimba").gain(0.32).pan(0.7)

// chords · marimba · soft notes
const marimba_soft = note("<~@32 A B C ~@45 D E F ~@22>".pickRestart({
  A: "c4@2 ~@4 c4 ~@3 c4 ~ c4 ~@3", B: "bb3@2 ~@2 bb3 ~ bb3 ~@3 bb3 ~@5", C: "~@4 a3 ~ a3 ~@3 a3 ~ c4 ~@3",
  D: "~@11 db4 ~ db4 ~@2", E: "~ b3@2 ~@2 b3 ~ b3 ~@3 b3 ~@4", F: "~@5 bb3 ~ bb3 ~@3 bb3 ~@4",
})).s("gm_marimba").gain(0.21).pan(0.7)

// chords · electric guitar clean · "Clean gt"
const electric_guitar_clean = note(`<
  ~@4 A B C D E F G H@8 I@8 J@4 K L M N O P Q P Q P Q P R S T E F E F E U V W X Y X Y X Z AA AB AC AD AA AB AC AD AA AB
  AC AD AA AB AC AE AF AG AH AI AJ AK@3 AL@8 AM AN AO AP AO AP AQ AR ~@2 AS AT AU
>`.pickRestart({
  A: "~@5 [g4,c5] ~ [g4,c5] ~@3 [gb4,c5] ~ [gb4,c5] ~ [gb4,c5]", // C5 Gbdim
  B: "~ [gb4,b4] ~@3 [gb4,b4] ~ [gb4,b4] ~@5 [e4,b4] ~ [e4,b4]", C: "~@5 [g4,c5] ~ [g4,c5] ~@5 [gb4,c5] ~ [gb4,c5]",
  D: "~@5 [gb4,b4] ~ [gb4,b4] ~@4 e4 b4 [e4,b4] ~", E: "~@4 [g4,c5] ~ [g4,c5] ~@5 [gb4,c5] ~ [gb4,c5] ~",
  F: "~@4 [gb4,b4] ~ [gb4,b4] ~@5 [e4,b4] ~ [e4,b4] ~", G: "~@4 [g4,c5] ~ [g4,c5] ~@5 [gb4,c5] ~ [gb4,c5] g4",
  H: "[d5 ~@16 [c4,e4] ~ [c4,e4] g4 c4@2 ~@2 [d4,gb4] ~ [d4,gb4] a4 d4@2 ~ g4 [b3,d4,g4]@2 ~ g4 [b3,d4,g4]@2 ~ g4 [b3,d4,g4]@2 [b3,d4] g4 b3@2 ~@2 [c4,e4] ~ [c4,e4] g4 c4@2 ~@2 [d4,gb4] ~ [d4,gb4] a4 d4@2 ~ g4 [b3,d4,g4]@2 ~ g4 [b3,d4,g4]@2 ~ g4 [b3,d4,g4]@2 [b3,d4] g4 b3@2 ~@2 [c4,e4] ~ [c4,e4] g4 c4@2 ~@2 [d4,gb4] ~ [d4,gb4] a4 d4@2 ~ g4 [b3,d4,g4]@2 ~ g4 [b3,d4,g4]@2 ~ g4 [b3,d4,g4]@2 [b3,d4] g4 b3@2 ~@2 [c4,e4] ~ [c4,e4] g4 c4@2 ~@2 [d4,gb4] ~ [d4,gb4] a4 d4@2 [b3,d4], ~@15 [c4,e4]@2 ~@6 [d4,gb4]@2 ~@6 [b3,d4]@2 ~@2 [b3,d4]@2 ~@2 [b3,d4]@2 ~@6 [c4,e4]@2 ~@6 [d4,gb4]@2 ~@6 [b3,d4]@2 ~@2 [b3,d4]@2 ~@2 [b3,d4]@2 ~@6 [c4,e4]@2 ~@6 [d4,gb4]@2 ~@6 [b3,d4]@2 ~@2 [b3,d4]@2 ~@2 [b3,d4]@2 ~@6 [c4,e4]@2 ~@6 [d4,gb4]@2 ~@7, ~@4 g4 ~ a4 ~@5 g4 ~ a4 ~@5 g4 ~ a4 ~@5 g4 ~ a4 ~]/8", // C D G Bm C D G Bm …
  I: "[g4 [b3,d4,g4]@2 ~ g4 [b3,d4,g4]@2 ~ g4 [b3,d4,g4]@2 [b3,d4] g4 b3@2 ~@2 [c4,e4] ~ [c4,e4] g4 c4@2 ~@2 [d4,gb4] ~ [d4,gb4] a4 d4@2 ~ g4 [b3,d4,g4]@2 ~ g4 [b3,d4,g4]@2 ~ g4 [b3,d4,g4]@2 [b3,d4] g4 b3@2 ~@2 [c4,e4] ~ [c4,e4] g4 c4@2 ~@2 [d4,gb4] ~ [d4,gb4] a4 d4@2 ~ g4 [b3,d4,g4]@2 ~ g4 [b3,d4,g4]@2 ~ g4 [b3,d4,g4]@2 [b3,d4] g4 b3@2 ~@2 [c4,e4] ~ [c4,e4] g4 c4@2 ~@2 [d4,gb4] ~ [d4,gb4] a4 d4@2 ~ g4 [b3,d4,g4]@2 ~ g4 [b3,d4,g4]@2 ~ g4 [b3,d4,g4]@2 [b3,d4] g4 b3@2 ~@2 [c4,e4] ~ [c4,e4] g4 c4@2 ~@2 [d4,gb4] ~ [d4,gb4] a4 d4@2 [b3,d4], ~@3 [b3,d4]@2 ~@2 [b3,d4]@2 ~@6 [c4,e4]@2 ~@6 [d4,gb4]@2 ~@6 [b3,d4]@2 ~@2 [b3,d4]@2 ~@2 [b3,d4]@2 ~@6 [c4,e4]@2 ~@6 [d4,gb4]@2 ~@6 [b3,d4]@2 ~@2 [b3,d4]@2 ~@2 [b3,d4]@2 ~@6 [c4,e4]@2 ~@6 [d4,gb4]@2 ~@6 [b3,d4]@2 ~@2 [b3,d4]@2 ~@2 [b3,d4]@2 ~@6 [c4,e4]@2 ~@6 [d4,gb4]@2 ~@7, ~@4 g4 ~ a4 ~@5 g4 ~ a4 ~@5 g4 ~ a4 ~@5 g4 ~ a4 ~]/8", // G Bm C D G Bm C D …
  J: "[g4@2 ~@14 g4 [c4,e4,g4]@2 ~ g4 [c4,e4]@2 ~@3 c4 [c4,e4] g4 c4@2 ~ gb4 ~ b3 ~ gb4 ~ b3@2 ~@2 b3!2 [d4,gb4] b3@2 ~@9 [gb4,a4] ~ d4 ~ [d4,gb4,a4] ~ d4@2, ~@15 [c4,e4]@2 ~@2 [c4,e4]@2 g4@4 [e4,g4]@2 ~@4 [b3,d4]@2 [d4,gb4]@2 [b3,d4]@2 gb4@4 ~@7 [e4,g4]@2 [c4,e4]@2 [e4,g4]@2 [c4,e4]@2 ~@8, ~@37 d4@2 ~@2 [d4,gb4]@2 ~@4 c4@2 g4@2 c4@2 g4@2 d4@2 [gb4,a4]@2 ~@5]/4", // C D Gbm D C Em Bm D …
  K: "[b3,d4,g4]@2 b3@2 a3 ~ a3@2 g3 ~ g3 ~ f3 ~ f3@2", // G
  L: "[eb3,c4,eb4,g4]@2 [c4,eb4,g4]@2 [c4,eb4,g4]@2 [c4,eb4]@2 ~@2 [c4,eb4,g4]@2 [c4,eb4,g4] ~ c4@2, ~@3 g4@2 ~@3", // Cm
  M: "[bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4]@2 ~@2 [bb3,d4,f4]@2 [bb3,d4,f4] ~ bb3@2, ~@3 f4@2 ~@3", // Bb
  N: "[a3,c4,eb4]@2 [a3,c4,eb4]@2 [a3,c4,eb4]@2 [a3,c4,eb4]@2 [a3,c4,eb4]@2 [a3,c4,eb4] ~ [a3,c4,eb4]@2 a3@2", // Adim
  O: "[gb3,a3,d4] ~@7", P: "[c4,e4]@2 [c4,e4] ~ [c4,e4,g4] ~ c4@2 [d4,gb4]@2 [d4,gb4] ~ [d4,gb4,a4] ~ d4@2, g4 ~ a4 ~",
  Q: "[b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4] ~ b3@2", // G
  R: "[b3,d4,g4] ~@7", S: "~@4 [g4,c5] ~ [g4,c5] ~@3 [gb4,c5] ~ [gb4,c5] ~ [gb4,c5] ~",
  T: "[gb4,b4] ~@3 [gb4,b4] ~ [gb4,b4] ~@5 [e4,b4] ~ [e4,b4] ~", U: "[g4,d5] ~@15",
  V: "~@4 [ab4,db5] ~ [ab4,db5] ~@3 [g4,db5] ~ [g4,db5] ~ [g4,db5] ~", // Db5 Gdim
  W: "[g4,c5] ~@3 [g4,c5] ~ [g4,c5] ~@5 [f4,c5] ~ [f4,c5] ~", X: "~@4 [ab4,db5] ~ [ab4,db5] ~@5 [g4,db5] ~ [g4,db5] ~",
  Y: "~@4 [g4,c5] ~ [g4,c5] ~@5 [f4,c5] ~ [f4,c5] ~", Z: "[ab4,eb5] ~@3 ab3 ~ c4@2 eb4 ~ eb4 ~ eb4 ~ eb4 ~",
  AA: "f4@4 f4@2 f4@2 eb4@2 db4@2 c4@2 bb3 ~",
  AB: "ab3@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4] ~ c4@2", // Ab
  AC: "[db4,f4]@2 [db4,f4] ~ [db4,f4,ab4] ~ db4@2 [eb4,g4]@2 [eb4,g4] ~ [eb4,g4,bb4] ~ eb4@2, ab4 ~ bb4 ~", // Db Eb
  AD: "[c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 eb4@2 eb4 ~ eb4 ~ eb4 ~ eb4 ~", AE: "[c4,eb4,ab4] ~@7",
  AF: "[db4,f4,ab4]@2 [db4,f4,ab4]@2 [db4,f4,ab4]@2 [db4,f4]@2 ~@2 [db4,f4,ab4]@2 [db4,f4,ab4] ~ db4@2, ~@3 ab4@2 ~@3", // Db
  AG: "[c4,eb4,g4]@2 [c4,eb4,g4]@2 [c4,eb4,g4]@2 [c4,eb4]@2 ~@2 [c4,eb4,g4]@2 [c4,eb4,g4] ~ c4@2, ~@3 g4@2 ~@3", // Cm
  AH: "[db4,f4,ab4]@2 [db4,f4,ab4]@2 ~ ab4 [db4,f4,ab4]@2 ~ bb4 [eb4,g4,bb4] ~ [eb4,g4] bb4 eb4@2, ~@2 [db4,f4] ~ [eb4,g4] ~@3", // Db Eb Db Eb
  AI: "[c4,eb4,ab4]@2 c4@2 bb3 ~ bb3@2 ab3 ~ ab3 ~ gb3 ~ gb3@2", // Ab
  AJ: "~ [e4,ab4] ~ db4 ~ [e4,ab4] ~ db4@2 ~@3 db4 [e4,ab4] db4@2, [e3,db4] [e4,ab4] db4 ab4@2 ab4 ~@2, ~@6 e4@2 ~@3 [db4,e4]@2 ~@3", // E Dbm E Dbm
  AK: "[~@5 [eb4,gb4]@2 [b3,eb4]@2 ~@2 [b3,eb4,gb4]@2 [b3,eb4,gb4] ~ b3@2 [bb3,db4,e4]@2 [bb3,db4,e4]@2 [bb3,db4,e4]@2 [bb3,db4,e4]@2 [bb3,db4,e4]@2 [bb3,db4,e4] ~ [bb3,db4,e4]@2 bb3@2 [g3,bb3,eb4]@2 ~@13, b3@2 gb4@2 b3@2 ~ gb4@4 ~@37, ~ [eb4,gb4]@2 [b3,eb4]@2 ~@43]/3", // Ebm B Bbdim Eb Ebm B
  AL: "[~ [db4,f4]@2 [db4,f4] ~ [db4,f4,ab4] ~ db4@2 [eb4,g4]@2 [eb4,g4] ~ [eb4,g4,bb4] ~ eb4@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4] ~ c4@2 [db4,f4]@2 [db4,f4] ~ [db4,f4,ab4] ~ db4@2 [eb4,g4]@2 [eb4,g4] ~ [eb4,g4,bb4] ~ eb4@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4] ~ c4@2 [db4,f4]@2 [db4,f4] ~ [db4,f4,ab4] ~ db4@2 [eb4,g4]@2 [eb4,g4] ~ [eb4,g4,bb4] ~ eb4@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4] ~ c4@2 [db4,f4]@2 [db4,f4] ~ [db4,f4,ab4] ~ db4@2 [eb4,g4]@2 [eb4,g4] ~ [eb4,g4,bb4] ~ eb4@2 [c4,eb4,ab4]@2 ~@13, ~ ab4@4 ~@4 bb4@4 ~@20 ab4@4 ~@4 bb4@4 ~@20 ab4@4 ~@4 bb4@4 ~@20 ab4@4 ~@4 bb4@4 ~@19]/8", // Db Eb Ab Db Eb Ab Db Eb …
  AM: "~@5 [ab4,db5] ~ [ab4,db5] ~@3 [g4,db5] ~ [g4,db5] ~ [g4,db5]", // Db5 Gdim
  AN: "~ [g4,c5] ~@3 [g4,c5] ~ [g4,c5] ~@5 [f4,c5] ~ [f4,c5]", AO: "~@5 [ab4,db5] ~ [ab4,db5] ~@5 [g4,db5] ~ [g4,db5]",
  AP: "~@5 [g4,c5] ~ [g4,c5] ~@5 [f4,c5] ~ [f4,c5]", AQ: "~@5 [ab4,db5] ~ [ab4,db5] ~@5 [ab4,db5] ~ [ab4,db5]",
  AR: "~ [g4,eb5] ~@14", AS: "~ eb4@2 ~@2 eb4@2 c4@2 ~@2 eb4@2 c4@2 ~", AT: "~ eb4@2 ~@2 eb4@2 db4@2 ~@2 c4 ~ bb3@2 ~",
  AU: "~ ab3@2 ~@13",
})).s("gm_electric_guitar_clean").gain(0.15).pan(0.8)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 A B@3 C@3 D E@15 F E@2 G C@4 H C@7 H C@7 H C@7 H C@15 H I@5 J K L K@7 L K@7 L ~@2 K@2 L
>`.pickRestart({
  A: "~@7 x ~@8", B: "~ x ~@5 x ~@8", C: "x ~@2 x ~@4", D: "x ~@14 x", E: "~@5 x ~@9 x", F: "~@15 x", G: "~@5 x ~@10",
  H: "x", I: "x ~@2 x ~@2 x ~", J: "x ~@6 x ~@5 x ~@2", K: "~ x ~@5 x ~@5 x ~@2", L: "~ x ~@14",
})).gain(0.42)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@4 A B@2 C@4 ~ D@15 ~ D@2 C@5 ~ C@7 ~ C@7 ~ C@7 ~ C@15 ~@30>".pickRestart({
  A: "~ x ~@11 x ~@2", B: "~@13 x ~@2", C: "~@3 x", D: "~@11 x ~@4",
})).gain(0.3)

// drums · rim
const rim = s("rim").struct(`<
  ~@4 A@2 B C D@3 E F@2 B F@3 B F@3 B F@3 B E F@2 G ~ H@2 I ~ J H K J H@2 K ~ D@2 L D@3 L ~ D@2 L D@4 ~ H@2 K J H@2 K J
  H@2 K J H@2 K ~ H@3 ~ H M N ~ O P Q O P@2 Q ~ A@2 B A@4 ~@3 A@2 ~
>`.pickRestart({
  A: "~@5 x ~@5 x ~@4", B: "~@5 x ~@10", C: "~@5 x ~@4 x ~@5", D: "~@2 x ~@2 x ~@2", E: "~@15 x",
// … 53 more lines

More by Morandi