Strudelify

At This Moment

Marco Borsato

KeyD♭ majorTempo85 bpm
0:00/0:00
// At This Moment — Marco Borsato
// 85 bpm, 6/4, key C# 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 52 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(85/6)

// 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.

// chords · piano · "A.PIANO 1"
const piano = note(`<
  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@4 AP AQ@2 AR AS AT
  AU@2
>`.pickRestart({
  A: "bb3@4 ~ bb3@5 ~ [eb3,gb3,bb3,db4,gb4]@3 [gb3,bb3,db4,gb4]@2 db4@3 ~@2 db5@5 ~@4 bb2@2, [eb2,eb3,gb3,db4,gb4]@10 eb2@3 ~ [bb1,bb2] ~ [bb1,bb2,f3,ab3,f4]@14 ~@2, ~@5 db4@3, ~@7 gb4", // Ebm7 Gb Ebm7 Bb Bb7
  B: "[gb3,eb4]@11 eb4@3 b3 ~ [gb3,b3,db4,eb4]@11 ~@3 gb4@2, [b2,db4]@16 ab2@9 ~@2 [db2,db3,gb3,b3,eb4]@5, b3@13 ~@19", // Ebm B Bsus2 B
  C: "[bb3,db4]@5 db4@8 ~@8 [db4,gb4]@4 ~@2 [db4,gb4,bb4]@5, gb1@7 bb3@5 ~@4, gb2@13 ~ gb2@14 ~@4, ~@7 db4@3 ~@6, ~@16 gb1@13 ~@3", // Bbm Gb5 Gb
  D: "~@5 db4@5 ~@4 f2@2 [db4,f4,bb4]@5 ~@4 db3@2 ~@3 [f1,f2]@2, f1@15 ~ [f1,f2]@13 ~@3, f2@13 db4@2 ~@6 [f4,bb4,db5]@10 ~, [f4,bb4,db5]@10 ~ db5@4 ~@12 db4@5", // Bbm F Bbm
  E: "[db4,e4]@5 [e4,ab4,db5]@4 ~@2 e4@5 db4@4 ~ db4@4 e4 ~@4 [e1,e2]@2, [e1,e2]@15 ~ e2@11 [db4,db5]@5, ~@16 e4@8 ~@2 e4@5 ~", // Dbm E Db
  F: "ab3@5 [e4,ab4,db5]@10 ~ [eb1,eb2,g3,bb3,eb4]@5 [f1,ab3,eb4,ab4]@4 f2 ~ [g1,g2,bb3,eb4,bb4]@5, [eb1,eb2]@15 ~@6 f2@3 ~@8", // Dbm Eb Fm7 Eb
  G: "[b3,eb4,ab4,b4]@10 ~ b3@5 f3@4 ~ f3@4 ~@2 [f3,bb3,db4]@5, [ab1,ab2]@16 db2@15 ~, ~@10 gb3@5 ~ [bb3,db4]@10 ~@6", // Abm Bbm Ab Bbm
  H: "[ab2,gb3,b3,eb4]@10 gb3 ~ [ab2,gb3,b3,eb4]@4 ~@5 [bb4,f5]@3 ~@3 f5@3 f4@2, ~ [db2,db3,f3,db4]", // Abm7 Bb5 Db
  I: "eb4@5 ~ [gb4,b4,eb5,gb5]@5 ~@3 ab2@2 ~@11 f4@5, ab2@14 ~@2 [db2,db3,f3,bb3]@15 ~, [gb3,b3]@11 [gb3,b3,db4,eb4]@5 db4@11 ~@5, eb3@3 ~@2 db5@5 ~@11 db5@10 ~", // B Bbm B5 B
  J: "[gb3,bb3,db4,gb4]@5 [gb3,bb3,db4,gb4]@5 ~ [gb3,bb3,db4,gb4]@5 [eb4,gb4,eb5]@4 db4 db4@4 ~@2 db4@5, gb2@16 bb2@15 ~, ~@21 [eb4,ab4,db5]@10 ~", // Gb Ebm Dbsus2
  K: "[gb3,b3,eb4,gb4]@5 [b3,gb4,b4]@5 ~ [gb3,eb4]@5 [gb3,ab3,b3,eb4]@9 ~@2 [db3,ab3,b3,db4,eb4,gb4]@5, b2@16 ab2@8 ~ ab2@2 ~@5, ~@13 db2@3", // B B5 Ebm Abm7
  L: "[gb3,bb3,db4,gb4]@16 [bb3,db4,gb4]@5 db4@3 ~ db4@3 [gb4,db5]@2 db4@2, ~@21 [ab3,bb3,gb4]@8 ~@3", // Gb Gb5 Ebm
  M: "[db4,f4,ab4,db5]@16 [f3,ab3,eb4]@5 [f3,ab3,db4]@4 ab3@2 ~ [ab3,f4]@2 f3@2", // Db Fm7 Db
  N: "~@5 b3@5 ~ [e4,ab4,db5]@5 [ab3,db4,e4]@10 ~@4 [e4,ab4] ~, [e3,ab3,db4,e4]@11 ~@16 ab3@5", // Dbm E Dbm
  O: "[e3,ab3,db4,e4]@5 [e4,ab4,db5]@11 [eb3,g3,eb4]@4 ~ [f3,ab3,eb4]@5 ~ [g3,bb3,eb4]@5", // Dbm Eb Fm7 Eb
  P: "[gb3,ab3,b3,eb4]@14 ~@2 db4@3 ~@2 [bb4,db5]@9 ~@2, ~@8 [f3,ab3,bb3]@7 ~, ~@20 db4@11 ~", // Abm7 Bbm Bb7
  Q: "[gb3,ab3,b3,eb4]@5 [gb4,ab4,db5,eb5]@10 ~ [f3,ab3,bb3,db4]@15 ~", // Abm7 Gbsus2 Bbm7
  R: "[gb3,ab3,b3,eb4]@9 ~@2 [gb4,ab4,b4,eb5]@5 [f4,db5,f5]@5 [f4,bb4,db5]@5 ~ [db4,f4,bb4]@5", // Abm7 Db Bbm
  S: "gb4@3 ~ gb4 [gb4,db5,gb5]@4 ~@2 b4@5 [gb4,bb4,gb5]@5 [bb3,db4,gb4]@4 ~@2 [bb3,gb4,bb4]@5, [gb3,bb3,db4] ~, ~@10 [gb4,gb5]@5 ~@11 db4@5 ~", // Gb5 Gb Ebm Gb
  T: "[gb4,bb4,db5,eb5]@5 [bb4,db5,eb5]@3 ~ gb4@2 ~@3 gb4@2 [f4,ab4,bb4,db5]@5 db5@5 ~ [f4,ab4,bb4,db5]@5, ~@11 [bb4,db5,eb5]@5 ~@16", // Ebm7 Eb7 Bbm7 Eb7
  U: "[eb4,gb4,b4]@9 b3 ~ [b3,eb4,gb4,b4]@5 [bb3,db4,gb4,bb4]@10 ~ [db4,gb4]@5, b3@7 ~@19 bb3@5 ~", // B Gb Gb5
  V: "gb4@5 gb4@4 ~ [eb4,gb4,db5]@6 [f3,ab3,bb3,db4]@16, [b3,eb4,ab4]@11 ~@21", // Ebm7 Bbm7 Abm
  W: "[gb3,bb3,db4,gb4]@15 ~ [bb3,db4,gb4]@4 ~ [db4,gb4,bb4]@5 ~ [gb4,bb4,db5]@5", // Gb
  X: "[eb4,gb4,bb4,db5]@12 ~@2 db5 ~ [f4,ab4,bb4,db5]@10 ~ [f4,ab4,bb4,db5]@5", // Ebm7 Bbm7
  Y: "~@5 [b5,eb6]@5 ~ [eb6,gb6]@5 [db5,bb5,db6]@9 ~@2 [bb4,db5,ab5,bb5]@5, [b3,eb4,gb4,b4]@15 ~@17", // B Ebm Gb Bbm7 B
  Z: "~@11 [gb4,ab4,b4,eb5]@10 ~ b4@10, [gb3,ab3,b3,eb4]@16 ~@5 [ab4,eb5,gb5]@10 ~, ~@21 db5@2 ~@9", // Abm7 Ab7
  AA: "[db4,f4,bb4]@5 f4@4 ~@2 [db4,f4,ab4]@5 [db4,f4,bb4]@5 [db4,f4,bb4]@5 ~ [db4,f4,bb4]@5, ab3 ~", // Bbm Db Bbm
  AB: "[gb3,bb3,db4,gb4] ~@15 [db5,bb5]@11 ~@5, ~@14 [ab6,bb6]@13 ~@5, ~@15 [db6,gb6]@12 ~@5", // Gb Absus2 Gb5
  AC: "db4@13 ~@3 db3@11 [f3,ab3,db4,f4]@5, [f3,ab3,f4]@13 ~@3, ~@7 db4@6 ~@3", // Db Fm
  AD: "db4@14 db4@2 ~@3 eb5@2 [e4,ab4,db5]@10 ~, [e3,ab3,e4]@21 ~@11", // Dbm E
  AE: "~@9 eb3 ~ [eb3,ab3,db4]@5 [eb3,g3,db4]@5 [f3,ab3,db4]@5 ~ [g3,bb3,db4]@5, [eb4,ab4,db5]@11 ~@21", // Dbsus2 Eb7 Db Gdim Dbsus2
  AF: "~@5 [db5,eb5,gb5]@3 ~ b4@2 ~@3 b4@2 [db4,f4,ab4,bb4]@10 [f4,ab4,bb4,db5]@5 ~, [gb3,ab3,b3,eb4]@15 ~@17, ~@11 [b5,db6,gb6]@5 ~@16", // Ebm7 Bbm7 Abm7 Bsus2
  AG: "[gb4,ab4,b4,eb5]@5 [db5,eb5,gb5]@3 ~ b4@2 ~@3 b4@2 [db4,f4,ab4,bb4]@10 ~ [f4,ab4,bb4,db5]@5, ~@11 [b5,db6,gb6]@5 ~@16", // Abm7 Ebm7 Bbm7 Bsus2
  AH: "[gb4,ab4,b4,eb5]@10 ~ [b5,db6,gb6]@5 ~@6 db5@10, ~@16 [db4,f4,ab4,bb4]@15 ~", // Abm7 Bsus2 Bbm7
  AI: "[bb4,db5,gb5,bb5]@7 [bb6,db7] ~ [gb6,bb6] ~ [db6,eb6] ~@4 ab3 ~@3 ab3 gb3@5 ~ [bb3,db4,gb4]@5, ~@11 gb6@2 ~@3 [db4,gb4]@9 ~@7, ~@17 bb3@9 ~ ab3 ~@4", // Gb Bbm Gb Dbsus2 Gb Gb5
  AJ: "[bb3,db4,f4,ab4]@10 ~ db5@4 ~ [f4,ab4,bb4,db5]@5 bb3@5 ~ bb3@5, ab3 ~@9 [f4,ab4,bb4]@5 ~@6 [f3,f4]@10 ~", // Bbm7 Bb7 F
  AK: "[e4,ab4]@5 [e4,ab4,db5]@5 ~ [ab4,bb4,e5]@3 [ab4,eb5] ~ [e4,ab4,db5]@5 [db4,e4,ab4]@5 ~ [db4,e4,ab4]@5, [ab3,db4]@5 ~@11", // E Dbm Bbm7b5 Ab5 Dbm Db5
  AL: "[eb4,ab4,db5,eb5]@2 ~@2 [eb4,db5,eb5] ~@11 [eb3,g3,db4]@4 ~ [f3,ab3,db4]@5 ~ [g3,bb3,db4]@5, ~@2 ab4 ~@13", // Dbsus2 Eb7 Db Gdim
  AM: "~@5 [gb4,b4,db5,eb5]@5 ~ [gb4,b4,db5,eb5]@5 [f4,ab4,bb4,db5]@9 ~@2 [ab3,bb3,db4,f4]@4 ~, [gb3,ab3,b3,eb4] ~", // B Bbm7 Abm7
  AN: "~@5 [gb4,ab4,b4,eb5]@5 db6 [eb6,gb6]@5 ~@5 [f4,ab4,bb4,db5]@4 ~@2 [f4,bb4,db5]@5, [gb3,ab3,b3,eb4]@15 ~ [f3,ab3,bb3,db4]@16, ~@26 ab4@5 ~", // Abm7 Ebm Bbm7 Bbm Abm7 Bbm7
  AO: "[~@6 [b4,db5,eb5]@9 ~ db3@24 ~@24 db7@30 ~@13 db5@21, [gb3,ab3,b3,eb4]@15 ~ db2@27 [bb3,db4]@3 db5 [eb5,f5]@48 ~@10 [b4,gb5]@22 ~, ~@5 gb4@9 ~@2 [f3,bb3,db4]@26 f3@53 ab2@32 ~, ~@40 db3@4 eb4@51 ~ [b3,db4,eb4]@31 ~, ~@41 eb3@4 [f4,bb4]@50 ~ ab3@11 ~@21]/4", // B Abm7 Bbm Ebsus2 B5 Bbm B Bb5
  AP: "~@29 eb2 ~ db2, [eb4,gb4]@31 ~, ~ [b3,db4]@30 ~, ~@2 gb3@29 ~", // Ebm Bsus2
  AQ: "[~@58 [b3,b4,b5]@5 ~, [db2,db3,f3,f4]@53 [db4,db5,db6]@11, b3@3 [gb4,gb6], db4@15 db6@32 gb5@16 ~, ~@7 db5 db7@24]/2", // B Db Gb
  AR: "[db4,bb4]@5 [db4,gb4,bb4]@5 ~ [db4,bb4]@5 [gb4,db5]@3 [gb4,eb5] ~ [bb4,db5]@9 [gb1,gb2,db4]@2, [gb1,gb2]@29 ~@3, ~@21 gb4@8 ~ [gb3,bb3,gb4] ~", // Gb Gb5 Ebm Bbm Gb5 Gb
  AS: "[f3,bb3,db4,f4]@5 [db4,f4,bb4]@5 [f4,bb4,db5]@5 ~ [db4,f4,bb4]@4 ~ [f4,bb4,db5]@3 ~ [f4,bb4,eb5] ~ [bb2,f4,bb4,db5]@5, [f1,f2]@13 ~@3", // Bbm Ebsus2 Bbm F
  AT: "[gb3,b3,eb4]@5 [eb4,gb4,b4]@4 ~@2 [gb4,b4,eb5]@5 [db2,db3]@9 ~@2 [db2,db3]@5, [b1,b2] [f4,ab4,db5,f5]", // B Db B Db
  AU: "[[gb1,gb2,db4,gb4,bb4,db5]@9 ~@2 [eb4,gb4,b4,eb5]@5 [gb1,gb2,db4,gb4,bb4,db5]@32 ~@16, ~@10 [gb1,gb2]@5 ~@49]/2", // Gb B Gb
})).s("gm_piano").gain(0.48)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note("<A B C ~ D E F G H I ~@2 J ~@6 K ~@6 L M ~@13 N@3 O ~@2 P ~@4>".pickRestart({
  A: "~@26 gb3@3 ~@3", B: "~@12 gb3@3 ~@17", C: "~@5 bb3@6 ~@10 bb4@4 bb3@2 ~@3 [gb1,gb2]@2, gb3@10 ~ gb3@20 ~",
  D: "[ab4,db5]@5 ~@6 [db4,ab4]@5 e1@12 ~@4, ~@8 ab4@5 ~@3", E: "db4@5 ~@27", F: "~@3 ab3@2 gb3@5 ~ eb4@5 f4@10 ~ f4@5",
  G: "ab1@14 ~@5 f4@2 db5@3 ~ f4@2 [bb4,db5]@4 ~, ~ bb3", // Bbm
  H: "~@3 db3@2 ~@20 ab3@3 db4@2 gb3@2, db4@5 ~@16 [bb4,f5]@10 ~", I: "~@15 bb3", J: "~@14 f3 ~@12 f3 ~@4",
  K: "~@21 [f4,ab4,bb4]@5 ~@6", L: "~@5 [db4,ab4]@5 ~@22", M: "~@16 [bb4,gb5]@11 ~@5",
  N: "[~@30 db6@4 db6@29 ~@15 ab4@17 ~, ~@28 db5@34 ~ gb3@32 ~, ~@25 gb4@7, ~@77 ab3@19]/3", O: "~@3 ab2@28 ~",
  P: "~@11 gb4@5 ~@16",
})).s("gm_piano").gain(0.24)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@9 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@2 ~@5 AG AH AI AJ@2
>`.pickRestart({
  A: "gb1@15 ~ bb1@16", B: "b1@11 gb1@5 ab1@10 ~ db2@5", C: "gb1@14 ~@2 gb1@9 ~@2 gb1@5", D: "f1@13 ~@3 f1@9 ~@2 f2@5",
  E: "e2@7 b1 e2@7 ~", F: "eb2@15 ~ eb2@4 ~ f2@5 ~ g2@5", G: "ab1@12 ~@2 ab1 ~ db2@14 ~@2",
  H: "ab1@12 ~@2 ab1 ~ db2@10 ~@2 ab2 ~ eb2@2", I: "ab1@12 ~@2 ab1@2 db2@10 ~ db2@5",
  J: "gb1@9 ~@2 gb1@4 ~ gb1@5 bb1@5 ~ db2@4 ~", K: "eb2@15 ~ bb1@15 ~", L: "b1@11 ~@3 b1@2 gb2@10 ~@4 gb1@2",
  M: "ab1@11 ~ ab2@2 b1@2 db2@10 ~ ab1@2 ~ ab1@2", N: "gb1@10 ~ gb1@4 ~ gb1@4 ~ bb1@4 ~@2 db2@4 ~",
  O: "eb2@16 bb1@11 ~@3 bb1 ~", P: "b1@13 ~ db2@2 gb2@5 bb1@4 ~@2 db2@4 ~",
  Q: "ab1@12 ~@2 ab2@2 ab1@10 ~ ab1@2 ~ ab1@2", R: "db2@11 ~@3 ab1@2 db2@5 eb2@4 ~@2 f2@4 ~", S: "gb2 ~@29 gb2@2",
  T: "f1@15 ~ f1@11 ~ f2@2 f1@2", U: "e1@12 ~@4 e1@11 ~@3 e2@2", V: "eb2@14 ~@2 eb2@5 f1@5 ~ g1@5",
  W: "ab1@5 ~ ab2 ab1 db2@6 ~ db2", X: "ab1@11 ~ ab2@2 ab1@2 db2@11 ~ eb2@2 db2@2",
  Y: "ab1@8 ~ ab1@2 ab2@2 ~ ab2@2 db2@4 ~ eb2@4 ~@2 db2@4 ~", Z: "gb2@15 ~ gb2@8 ~ bb1@2 db2@2 ~ gb2@2",
  AA: "f2@14 f1 ~ f1@11 ~ f2@2 f1@2", AB: "e2@11 ~@3 e2@2 e1@3 ~@2 b1@2 ~@2 b1@2 e2@3 e2@2, ~@10 e1 ~@5",
  AC: "eb2@2 ~@2 eb2@2 ~@6 bb1 ~ eb2@2 eb1@5 f1@4 ~@2 g1@5", AD: "ab1@11 ~ ab2@2 ab1@2 db2@11 f1@4 ~",
  AE: "ab1@8 ~ ab1@2 eb2@5 db2@10 ~@4 f1@2", AF: "[ab1 db2@3]/2", AG: "gb1@15 ~ gb2@12 ~@2 gb2@2",
  AH: "f2@9 ~@2 f2@2 ~ f1 ~ f1@11 ~@3 bb1@2", AI: "b1@8 ~@3 b1@5 db2@9 ~@2 db2@5",
  AJ: "[gb1@9 ~@2 gb1@4 ~ gb1@33 ~@15]/2",
})).s("gm_electric_bass_finger").gain(0.35)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@11 A B C D E F E G H I E G H I J K L B C D E F E A B C M E F N ~@6 A B O P@2
>`.pickRestart({
  A: "[gb3,bb3,db4,gb4]@5 [bb3,db4,gb4]@5 [bb3,db4,gb4]@4 [db4,gb4] ~ [gb3,bb3,db4,gb4]@3 bb3 ~ [bb3,db4,gb4]@3 ~ db4@2 [bb3,db4]@3 db4 ~, ~@20 [gb3,db4]@2 ~@5 gb4@5", // Gb Gb5 Gb Bbm Gb5
  B: "[f3,ab3,db4,f4]@5 [ab3,db4,f4]@5 [ab3,db4,f4]@4 db4 ~ [f3,ab3,db4,f4]@3 ab3 ~ [ab3,db4,f4]@3 ~ db4@2 [ab3,db4]@3 db4 ~, ~@20 [f3,db4]@2 ~@5 f4@5", // Db Db5 Db
  C: "[e3,ab3,db4,e4]@5 [ab3,db4,e4]@5 [ab3,db4,e4]@4 [db4,e4] ~ [e3,ab3,db4,e4]@3 ab3 ~ [ab3,db4,e4]@3 ~ db4@2 [ab3,db4]@3 db4 ~, ~@20 [e3,db4]@2 ~@5 e4@5", // Dbm Db5 Dbm
  D: "[g3,bb3,db4,e4]@5 [g3,db4,e4]@5 [g3,db4,e4]@4 db4 ~ [g3,bb3,db4,eb4]@5 [ab3,db4,f4]@5 ~ [bb3,db4]@3 db4@2, ~@27 g4@5", // Gdim Dbdim Eb7 Db Bbm
  E: "[ab3,b3,eb4,ab4]@5 [b3,eb4,ab4]@5 [b3,eb4,ab4]@4 [eb4,ab4] ~ [bb3,db4,f4,bb4]@3 db4 ~ [db4,f4,bb4]@3 ~ f4@2 [db4,f4]@3 f4 ~, ~@20 [bb3,f4]@2 ~@5 bb4@5", // Abm Ab5 Bbm Db Bb5
  F: "[ab3,b3,eb4,ab4]@5 [b3,eb4,ab4]@5 [b3,eb4,ab4]@4 eb4 ~ [bb3,db4,f4,bb4]@3 db4 ~ [db4,f4,bb4]@3 ~ f4@2 [db4,f4]@3 f4 ~, ~@20 [bb3,f4]@2 ~@5 bb4@5", // Abm Bbm Db Bb5
  G: "[gb3,bb3,db4,gb4]@5 [bb3,db4,gb4]@5 [bb3,db4,gb4]@4 db4 ~ [gb3,bb3,db4,gb4]@5 [bb3,db4,gb4]@5 ~ [db4,gb4]@3 gb4@2, ~@27 bb3@5", // Gb Gb5
  H: "[bb3,eb4,gb4,bb4]@5 [eb4,gb4,bb4]@5 [eb4,gb4,bb4]@4 [gb4,bb4] ~ [bb3,db4,f4,bb4]@3 db4 ~ [db4,f4,bb4]@3 ~ f4@2 [db4,f4]@3 f4 ~, ~@20 [bb3,f4]@2 ~@5 bb4@5", // Ebm Gb Bbm Db Bb5
  I: "[b3,eb4,gb4,b4]@5 [eb4,gb4,b4]@5 [eb4,gb4,b4]@4 gb4 ~ [bb3,db4,gb4,bb4]@3 db4 ~ [db4,gb4,bb4]@3 ~ gb4@2 [db4,gb4]@3 gb4 ~, ~@20 [bb3,gb4]@2 ~@5 bb4@5", // B Gb Gb5 Ebm
  J: "[ab3,b3,eb4,ab4]@5 [b3,eb4,ab4]@5 [b3,eb4,ab4]@4 [eb4,ab4] ~ [ab3,b3,eb4,ab4]@3 b3 ~ [b3,eb4,ab4]@3 ~ eb4@2 [b3,eb4]@3 eb4 ~, ~@20 [ab3,eb4]@2 ~@5 ab4@5", // Abm Ab5 Abm B Ab5
  K: "[bb3,db4,f4,ab4]@5 [db4,f4,ab4]@5 [db4,f4,ab4]@4 f4 ~ [b3,db4,f4,ab4]@5 [b3,db4,eb4]@5 ~ [db4,f4]@3 f4@2, ~@27 b3@5", // Bbm7 Db Db7 B Db
  L: "[gb3,bb3,db4,gb4]@2 ~@28 db4 ~", // Gb
  M: "[g3,bb3,db4,eb4]@3 eb4 [g3,bb3,db4] ~@11 [g3,bb3,db4,eb4]@5 [ab3,db4,f4]@5 ~ [bb3,db4]@3 db4@2, ~@27 g4@5", // Eb7 Gdim Eb7 Db Bbm
  N: "[ab3,b3,eb4,ab4]@5 [b3,eb4,ab4]@5 [b3,eb4,ab4]@6 ~@16", // Abm
  O: "[gb3,b3,eb4,gb4]@5 [b3,eb4,gb4]@5 [b3,eb4,gb4]@4 [eb4,gb4] ~ [bb3,db4,f4,ab4]@16", // B Ebm Bbm7
  P: "[[gb3,bb3,db4,gb4]@10 [gb3,b3,eb4,gb4]@5 ~ [gb3,bb3,db4,gb4]@37 ~@11]/2", // Gb B Gb
})).s("gm_acoustic_guitar_steel").gain(0.18).pan(0.8)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@11 A B C D E F E G H I E G H I J K L B C D E F E A B C M E F ~@7 A B N ~@2
>`.pickRestart({
  A: "~@14 [gb3,bb3] ~@10 [gb3,bb3,gb4]@2 ~@3 [gb3,bb3] ~", B: "~@14 [f3,ab3,f4] ~@10 [f3,ab3,f4]@2 ~@3 [f3,ab3] ~",
  C: "~@14 [e3,ab3] ~@10 [e3,ab3,e4]@2 ~@3 [e3,ab3] ~", D: "~@14 [g3,bb3,e4] ~@15 bb3@2",
  E: "~@14 [ab3,b3] ~@10 [bb3,db4,bb4]@2 ~@3 [bb3,db4] ~", F: "~@14 [ab3,b3,ab4] ~@10 [bb3,db4,bb4]@2 ~@3 [bb3,db4] ~",
  G: "~@14 [gb3,bb3,gb4] ~@15 db4@2", H: "~@14 [bb3,eb4] ~@10 [bb3,db4,bb4]@2 ~@3 [bb3,db4] ~",
  I: "~@14 [b3,eb4,b4] ~@10 [bb3,db4,bb4]@2 ~@3 [bb3,db4] ~", J: "~@14 [ab3,b3] ~@10 [ab3,b3,ab4]@2 ~@3 [ab3,b3] ~",
  K: "~@14 [db4,ab4] ~@15 db4@2", L: "~@30 [gb3,bb3] ~", M: "~@15 bb3", N: "~@14 [gb3,b3] ~@17",
})).s("gm_acoustic_guitar_steel").gain(0.09).pan(0.8)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@11 A@4 B C D@2 E@4 F@2 G H I@4 B J K L@3 M N O P@2 ~@3 Q@4 R S@2>".pickRestart({
  A: "[[gb3,bb3]@31 ~@33 e4@31 ~@17 [eb3,g4]@5 [f3,ab3,db4,ab4]@5 ~ bb4@5, db4@95 [db4,e4]@16 bb3@6 ~@11, ~@31 f3@33 e3@48 ~@16, ~@16 [ab3,bb3]@32 g3@11 ~@2 [g3,bb3,eb4]@3]/4", // Gb Eb Db Dbm Absus2 Eb
  B: "[gb3,b3,eb4,gb4,b4] [f3,bb3,db4,ab4,db5]", C: "[gb3,b3,eb4,gb4,eb5]@15 ~ [ab4,f5]@16, ~@15 [f3,bb3,db4]@17",
  D: "[[gb3,b3,eb4,gb4,eb5]@15 ~ ab4@16 ~@10 [b3,b5]@6 [gb2,bb3,db4]@5 [bb2,db4,gb4]@5 ~ [gb4,bb4]@5, ~@15 db4@32 ~ bb5@16, ~@15 f3@17 gb4@20 ~@12, ~@16 [bb3,db6]@27 ~@21, ~@32 gb3@15 ~@11 db3@6]/2", // B Gb Bbm
  E: "[gb4@15 ~ [ab4,ab5]@15 ~@17 db4@15 ~@17 [f4,ab4,bb4]@16 [bb3,db5]@10 [b3,b4]@6 [gb2,db3,bb3]@5 [bb2,gb3,db4]@5 ~ gb4@5, [eb4,bb4,gb5]@17 ~@14 gb4@32 ~ [gb4,ab4,b4]@17 ~@31 bb4@16, ~@15 [db4,f4]@16 [b3,eb4]@16 bb3@16 [b3,eb4]@16 db4@27 ~@22, ~@32 gb5@32 ~@15 [bb3,db5]@17 [gb3,gb4]@16 ~@10 [db3,bb3]@5 ~]/4", // Ab Bb7 Bbm B Gb Ebm Abm7 Db …
  F: "[[bb3,eb4,gb4,gb5]@15 ~ [db4,ab4,bb5]@15 [b3,eb4,b5]@16 ~ [db4,db6]@16, ~@15 [bb3,f4]@16 gb4@32 ~, ~@47 bb3@16 ~]/2", // Ebm Bbm7 B Db Bb5
  G: "[gb3,ab3,b3,eb4]", H: "[f3,ab3,bb3,db4]",
  I: "[[gb3,bb3,db4]@2 ~@30 f6@26 ~ f6@5 e6@14 ~@34 [eb3,g4]@5 [f3,ab3,db4,ab4,ab5]@5 ~ bb4@5, ~@31 f4@33 e4@14 db6 ab5 db5@33 ~@15, ~@16 [ab3,ab4]@32 g3@11 ~@2 [g3,bb3,eb4,bb5,eb6]@3, ~@32 db4@63 [db4,e4,e5]@16 bb3@6 ~@11, ~@16 f3@16 e3@24 eb5@5 ~@3]/4", // Gb Eb Db Ab Eb Dbm
  J: "[gb3,b3,eb4,gb4,eb5]@15 ~@6 ab5@5 ~ ab5@5, ~@15 [f3,bb3,db4]@17, ~ ab4, ~@16 f5@10 db6@5 ~", // B Bbm
  K: "[gb3,b3,eb4,gb4,b5,eb6]@15 ~ [bb3,ab4,db6]@16, ~@15 [f3,db4,f6]@17", // B Bbm7 Db
  L: "[[gb4,gb6]@32 f6@21 db6@5 bb5@5 ~ [ab3,e4,ab4,e6]@32, [bb3,db4], bb4@2 ~, ~ f4 ~]/3", // Gb Dbm Bbm
  M: "[ab3,db4,eb4,ab4,eb6]@3 [ab3,db4,eb4,ab4,eb6]@2 ~@11 [eb3,g4,g5]@5 [f3,ab3,db4,ab4,ab5]@5 ~ [bb4,g5,bb5]@5, ~@15 bb3@6 ~@5 [g3,bb3,eb4]@6", // Absus4 Eb Db Eb
  N: "[gb3,b3,eb4,gb4,b4,gb5,b5] [f3,bb3,db4,ab4,db5,bb5]", // B Bbm7
  O: "[gb3,b3,eb4,gb4,b4,b5,eb6]@15 ~ [ab4,bb4,db6,f6]@16, ~@15 [f3,bb3,db4]@17", // B Bbm7 Bbm
  P: "[[gb3,b3,eb4,gb4,b4,gb6] [db3,f3,ab3,bb3,db4]@3, ~@16 db6@27 ~@21]/2", // B Bbm7
  Q: "[~@3 db6@56 ~@5 [gb3,gb4,bb5]@32 [f3,f4,db6]@32, [db3,f3,ab3,b3]@56 ~@7 db4@64 ~, ~ bb4]/4", // Gb Db Db7
  R: "[gb3,eb4,gb4,b4,eb6]@8 [ab3,db4,f4,ab4,f6]@7 ~", // B Db
  S: "[[db4,bb4]@10 ~ b4@5 [db4,bb4]@32 ~@16, [gb3,gb4,gb6]@3 ~, ~@5 eb4@3 ~@24]/2", // Gb
})).s("gm_string_ensemble_2").gain(0.32)

// other · alto sax
const alto_sax = note("<~@14 A B C D E F G ~ E F G ~ H I ~@2 A B D J K L M N O ~@8 P Q R S@2>".pickRestart({
  A: "~@16 [eb3,g3]@5 [f3,ab3]@5 [g3,bb3]@6", B: "[gb3,b3]@12 ~@4 [f3,bb3]@15 ~", C: "[gb3,b3]@16 [f3,bb3]@15 ~",
  D: "[gb3,b3]@16 [f3,bb3]@11 ~@5", E: "~@16 [gb2,gb3]@5 [bb2,bb3]@5 [db3,db4]@6", F: "[eb3,eb4] bb2", G: "b2 gb2",
  H: "~@16 [f4,bb4]@5 [db4,bb4]@5 ~ bb4@5, ~@13 db4@3", I: "[bb3,gb4] ~@31",
  J: "[gb3,b3]@16 [f3,bb3]@9 ~@2 eb4 gb4 ~ ab4 ~", K: "bb4@3 db5@9 ~@2 bb4 ~ db5@11 ~@2 bb4 db5 ~",
  L: "eb5@12 db5 ~ bb4 ~ bb4@11 ~@2 bb4 db5 ~", M: "e5@8 db5 ~@2 db5 ab4 ~ ab4 ~ b4 b4@2 db5 ~@4 ab4@3 bb4 ~@2 bb4@2",
  N: "db5@2 c5 b4 bb4@6 ~ ab4 bb4 ~ g4@6 f4 g3 ~ g3 ~ g3@2 bb3 bb3@2 b3@2", O: "b3@15 ~@17",
  P: "~@5 db4 ~@2 eb4@3 ~@2 gb4 ab4 ~@2 db5 ~ bb4@8 ~@3 bb4 ~, ~@8 bb4 ~@7",
  Q: "bb4@2 ~ db5@8 ~ eb5@4 bb4@10 ~@4 bb4@2", R: "b4@15 ~ bb4@2 ~ db5@8 gb5@5", S: "[ab5@3 ~]/2",
})).s("gm_alto_sax").gain(0.48).pan(0.6)

// chords · electric guitar jazz · "+HAWAI GTR"
const electric_guitar_jazz = note("<~@9 A B C ~@3 D@2 E ~ F G H I D J ~ K L M N O P Q R ~@4 S T U@2 ~@10>".pickRestart({
  A: "[bb3,gb4]@5 [db4,ab4]@5 ~ [db4,bb4]@5 eb5@5 db5@9 [eb4,b4]@2, ~@8 gb4@7 ~", // Ebm Db5 Gb Abm
  B: "[gb4,eb5]@2 ~ [eb4,b4]@2 [gb4,eb5]@6 [eb4,b4]@5 [b3,ab4]@10 ~ [b3,gb4]@5, ~ [f4,db5] ~@14", C: "[gb3,db4] ~",
  D: "[eb5,gb5] [db5,f5]", E: "[eb5,gb5]@16 [db5,f5]@5 [bb4,db5]@11", F: "~@27 [f5,db6] eb5@2 db5@2, ~@7 b5",
  G: "[eb5,b5]@16 [db5,bb5]@3 bb4@7 bb4@5 ~, ~@19 gb5@13", H: "ab4 ~",
  I: "[gb4,bb4]@5 [ab4,b4]@5 ~ [bb4,db5]@5 [eb5,gb5]@5 [db5,gb5]@5 ~ bb4@3 b4@2, ~@26 gb5@5 ~", // Gb Abm Bbm Ebm Gb5
  J: "[b4,eb5]@16 [bb4,db5]@15 ~", K: "[db4,f4,ab4]@15 ~@17", L: "~@27 gb6@5", M: "f6@25 ~@2 f6@5", N: "e6@13 e6@3",
  O: "eb6 ~", P: "~@27 [bb5,db6]@5", Q: "[ab5,b5]@16 [eb6,gb6]@5 [db6,f6]@6 bb5@5", R: "ab5 ~",
  S: "[gb5,b5]@16 [f5,bb5]@11 ~ [eb5,b5]@2 db5@2, ~@27 [f5,db6]@2 ~@3", T: "[eb5,b5] [db5,bb5]",
  U: "[[eb5,gb5]@16 [db5,f5]@11 [bb4,db5]@17 ~@20]/2", // Ebm Db Bbm
})).s("gm_electric_guitar_jazz").gain(0.64).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~@11 A@7 B A@3 B A@10 C A@3 D A@3 ~@6 A@3 E ~>".pickRestart({
  A: "x", B: "x ~@13 x ~@6 x ~@3 x ~ x!2 ~ x ~", C: "x ~@6 x ~@8", D: "x!2 ~@2 x ~@3", E: "x ~@10 x ~@4 x ~@15",
})).gain(0.56)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@20 A B ~@2 C ~@10 C B ~ A@2 ~@8 A ~@3>".pickRestart({
  A: "~@15 x", B: "~@25 x ~@6", C: "~@25 x ~@4 x ~",
})).gain(0.32)

// drums · rim
const rim = s("rim").struct("<~@11 [~ x]!7 ~@10 [~ x]!5 ~@19>").gain(0.56)

// drums · snare
const snare = s("sd").struct("<~@18 A B@3 A B@2 C A ~@6 B@4 D B@2 ~@7 E B F ~@2>".pickRestart({
  A: "~@4 x!2 ~@2", B: "~ x", C: "~@16 x ~@8 x ~ x ~@4", D: "x ~ x ~@6 x!2 ~@5", E: "~@16 x ~@8 x ~@6",
  F: "~@21 x ~@10",
})).gain(0.56)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@14 [~@15 x] ~@5 [~@27 x ~@4] ~@28 [~@5 x ~@5 x ~@20] ~@2>").gain(0.32)

// drums · hihat
// … 33 more lines

More by Marco Borsato