Strudelify
Too Much Heaven cover art

Spirits Having Flown

Too Much Heaven

Bee Gees

KeyD♭ majorTempo84 bpm
0:00/0:00
// Too Much Heaven — Bee Gees
// 84 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 11, 4/4 at bar 12, 2/4 at bar 16, ...) are rendered on a constant 4/4 grid of one bar per cycle
// 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(84/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.

// chords · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
  A@5 B C D E F G@6 H@2 I J K@2 L M N O P Q@2 R@2 S T U V@8 W X ~@4 N Y P Q@2 Z@2 AA AB AC AD@6 AE AF AG AH AI AJ@3 AK
  AL AM AN AO AP AQ@6 AR AS AN AO AP AQ@6 AN AO AP AQ@6 AT
>`.pickRestart({
  A: "[~@16 [bb3,db4,f4]@6 [gb3,bb3,db4,f4]@2 [gb3,bb3,db4,f4]@22 ~@2 [bb3,db4,f4]@7 ~ [gb3,bb3,db4,f4]@4 [gb3,bb3,db4,f4]@11 ~ [gb3,bb3,db4]@3 ~ [gb3,bb3,db4]@4, ~@15 gb3@6 ~@26 gb3@7 ~@26]/5", // Bbm Gbmaj7 Bbm Gbmaj7 Gb
  B: "[ab3,c4,f4,ab4]@15 ~", C: "[ab3,c4,f4,ab4]@4 ~@2 [gb3,bb3,db4]@9 ~", D: "~@3 ab4@5, db3, ~ db4@7, ~ f4@3",
  E: "~@2 f4 [eb4,ab4]@5, f3, ~@2 c4@13 ~", F: "~@2 gb4 [f4,bb4]@4 ~, gb3@15 ~, ~ db4@6 ~",
  G: "[~@2 [f4,ab4]@2 ~@2 [gb3,bb3,db4,eb4]@2 [gb3,bb3,db4,eb4]@8 [gb4,bb4,db5]@4 [gb4,bb4]@4 ~@6 ab4@10 ~@4 f4@2 [eb4,ab4]@9 ~@5 gb4@2 [f4,bb4]@8 ~@4 [db4,f4,ab4]@2 ~@2 [gb3,bb3,db4,eb4]@2 [gb3,bb3,db4,eb4]@15 ~, [db3,db4]@2 ~ ab2@8 ~ db3@8 f3@8 gb3@7 ~ db3@2 ~ ab2@9, ~@26 db4@14 ~@2 c4@13 ~@3 db4@12 ~@26, ~@7 f4@3 ~@14]/6", // Fm Ebm7 Gb Ab5 Bb5 Db Ebm7 Db
  H: "[~@6 [gb3,ab3,db4] ~ [gb3,ab3,db4]@3 ~ [gb3,ab3,db4] ~ [gb3,ab3,db4]@10 ~@2 [gb3,ab3,db4] ~ [gb3,ab3,db4]@2 ~ [gb3,ab3,db4]]/2", // Gbsus2
  I: "[gb3,ab3,db4] ~ [gb3,ab3,db4]@5 ~ [gb3,ab3,db4]@5 ~ [gb3,ab3,db4] ~", // Gbsus2
  J: "[gb3,ab3,db4]@3 [gb3,ab3,db4]!2 ~ [gb3,ab3,db4]@3 ~ [gb3,ab3,db4]@3 ~ [gb3,ab3,db4] ~", // Gbsus2
  K: "[~@5 bb4@2 ab4@6 ~@3, [ab3,c4,f4]]/2", // Fm
  L: "~@2 [ab3,c4,f4] ~@3 [ab3,c4,f4] ~ ab3@2 c4@2 ab3@2 f3 ~, ~@4 f4@3 ~, ~@8 c4 ~@7", M: "[gb3,bb3,db4]",
  N: "[db4,gb4,bb4] [eb4,ab4,c5]", O: "[c4,f4,ab4]", P: "[db4,f4,bb4]@15 ~",
  Q: "[ab2,gb3,ab3,db4] ~@5 [ab2,gb3,ab3,db4]@9 ~", R: "[[ab2,gb3,ab3,db4] ~@9 [ab2,gb3,ab3,db4]@22]/2",
  S: "~@6 db4@6 [db4,f4]@3 ~, db3, ~ db4@2 ab4@5, ~@4 f4@7 ~@5", T: "~ f4 ab4 [f4,ab4]@3 [f4,ab4]@2, f3, ~@3 c5@5",
  U: "~@3 db5@3 [gb4,bb4] ~, gb3, ~@2 gb4@4 gb4@5 ~@5, ~@4 bb4@7 ~@5", // Gb
  V: "[ab4@2 db4@2 ab4 ~@13 [gb4,bb4]@5 ~@5 f4@2 [db4,f4]@5 ~ [db4,f4]@3 ~@3 f4@2 ab4@2 [f4,ab4]@5 ~ [f4,ab4]@4 ~@2 gb4@2 bb4@2 [gb4,db5]@6 gb4@2 ~@4 f4@2 ab4 ~@15 bb4@5 ~@5 [ab2,gb3,ab3,db4] ~ [ab2,gb3,ab3,db4]@2 ~ [ab2,gb3,ab3,db4] [gb3,ab3,db4] ~ [ab2,gb3,ab3,db4]@10 ~@2 [ab2,gb3,ab3,db4] ~ [ab2,gb3,ab3,db4]@2 ~ [ab2,gb3,ab3,db4], [db3,f4]@5 ~ [gb4,bb4]@12 ~@8 db4@4 ~@48 [ab3,gb4]@19 ~@31, db4 ~@5 ab3@18 db3@16 f3@16 gb3@16 [db3,db4]@5 ~@9 db5@10 ~@32, ~@14 db5@8 ~@8 ab4@9 ~@7 c5@9 ~@7 bb4@4 ~@2 bb4 ~@5 ab4 ~@3 bb4@14 ~@36]/8", // Gb Db Fm Gb5 Dbsus4 Gbsus2 Dbsus4 Db …
  W: "[ab2,gb3,ab3,db4] ~ [ab2,gb3,ab3,db4]@10 ~@2 [ab2,gb3,ab3,db4] ~", // Dbsus4
  X: "[ab2,gb3,ab3,db4]@2 ~ [ab2,gb3,ab3,db4]!2 ~ [ab2,gb3,ab3,db4]@3 ~ [ab2,gb3,ab3,db4]@2 ~@2 [ab2,gb3,ab3,db4] ~", // Dbsus4
  Y: "[c4,f4,ab4]@6 eb5 c5", Z: "[[ab2,gb3,ab3,db4] ~@9 [ab2,gb3,ab3,db4]@21 ~]/2",
  AA: "~@3 ab4@5, db3@15 ~, ~@2 db4@13 ~, ~@4 f4@11 ~", AB: "~@3 c5@5, f3, ~@2 f4@13 ~, ~@4 ab4@11 ~",
  AC: "~@6 db5@7 ~@3, gb3@7 ~, ~@2 gb4@11 ~@3, ~@4 bb4@9 ~@3",
  AD: "[[db3,db4,f4,ab4]@4 ~@2 [ab3,db4,gb4]@17 ~@7 ab4@9 ~@7 c5@10 ~@6 db5@6 ~@4 [db3,db4,f4,ab4]@4 ~@2 [ab3,db4,gb4]@17 ~, ~@12 db3@8 f3@8 gb3@7 ~@13, ~@26 db4@13 ~@5 ab4@12 ~@4 bb4@8 ~@28, ~@28 f4@11 ~@3 f4@14 ~@2 gb4@10 ~@28]/6", // Db Dbsus4 Db Dbsus4
  AE: "~@4 ab4 bb4 c5@2 ab4@3 ~ bb4 ab4 ~ f4", AF: "ab4@10 ~@2 bb4@3 ~, f4 ~@15", AG: "bb4@2 ab4@2 gb4@2 f4 ~",
  AH: "[db4,gb4,bb4]@8 [eb4,ab4,c5]@7 ~", AI: "[c4,f4]@10 ~@3 [f4,ab4]@3, ab4@13 ~@3, ~@5 c4@3",
  AJ: "[gb3,ab3,db4] ~@5 [gb3,ab3,db4]@8 ~@2", AK: "[gb3,ab3,db4] ~@5 [gb3,ab3,db4]@6 [gb3,ab3,db4] ~@3",
  AL: "[a3,b3,e4] ~@5 [a3,b3,e4]@7 ~@3", AM: "[a4,b4,e5] ~@5 [b4,e5]@4 db5@2 ~@2 db5@2, ~@3 a4@5, ~@3 e5",
  AN: "~@6 e4@6 [e4,ab4]@3 ~, ~ e4@2 b4@5, ~@4 ab4@7 ~@5", AO: "~ ab4 b4 [ab4,b4]@3 [ab4,b4]@2, ab3, ~@3 eb5@5",
  AP: "~@3 e5@3 [a4,db5] ~, a3, ~@2 a4@4 a4@5 ~@5, ~@4 db5@7 ~@5", // A
  AQ: "[b4@2 e4@2 b4 ~@13 [a4,db5]@5 ~@5 ab4@2 [e4,ab4]@5 ~ [e4,ab4]@3 ~@3 ab4@2 b4@2 [ab4,b4]@5 ~ [ab4,b4]@4 ~@2 a4@2 db5@2 [a4,e5]@6 a4@2 ~@4 ab4@2 b4 ~@15 db5@4, [e3,ab4]@5 ~ [a4,db5]@12 ~@8 e4@4 ~@48 [b3,a4]@18, e4 ~@5 b3@18 e3@16 ab3@16 a3@16 [e3,e4]@5 ~@9 e5@10, ~@14 e5@8 ~@8 b4@9 ~@7 eb5@9 ~@7 db5@4 ~@2 db5 ~@5 b4 ~@3 db5@14 ~@4]/6", // A E Abm A5 E A B7 E
  AR: "[a3,b3,e4] ~@5 [a3,b3,e4]@8 b4@2", AS: "[a4,b4,e5]@5 ~ [a4,b4,e5]@4 [a4,b4,e5]@3 ~ [a4,b4,e5] ~", AT: "ab4",
})).s("gm_epiano1").gain(0.33).pan(0.6)

// bass · fretless bass · "FRETLESS"
const bass = 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 AP AQ T U AR AS AT
  AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX@2 BY BZ CA CB CC CD CE CF CG
  CH CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV ~
>`.pickRestart({
  A: "ab1@3 ab1 ab1@4", B: "ab1@5 ~ ab1@2 ab1@6 eb1 f1", C: "ab1@5 ~ ab1@2 ab1@4 eb2 ~@2 eb2",
  D: "ab1@2 ab1@6 ab1@6 ab1 a1", E: "bb1@4 bb1@3 f1", F: "bb1@4 ~@2 ab1@9 ~", G: "db1@6 db1@2 db1@5 ~ db1@2",
  H: "f1@3 f1 f1@3 f1", I: "gb1@6 db1 ~ db1@2 gb1@3 ~ gb1@2", J: "db2@6 ab1@2 ab1@7 ~",
  K: "ab1@5 ~ ab1@2 db1@5 ~ db1@2", L: "db1@3 db1 f1@3 f1", M: "f1@5 ~ f1@2 gb1@6 db1@2", N: "db1!2 gb1 ~ db2@3 ab1",
  O: "ab1@8 ab1@6 eb1 f1", P: "ab1@5 ~ ab1 ~ ab1@3 ab1!2 ~ ab1 ~", Q: "ab1@9 ~ ab1 ~ ab1@2 ~ ab1",
  R: "ab1 ~ ab1@4 eb1 f1 ab1@5 ~ ab1 ~", S: "ab1@2 ~ ab1!2 ~ ab1@2 ab1@2 ab1@3 ~ ab1 ~", T: "db2@6 ab2 ~ ab2@4 ab1@3 ~",
  U: "db2@3 ab2!3 ab1 ~", V: "db2@6 ab2 ~ ab2@2 db2 ~ db2@2 ~@2", W: "gb1@6 db2 ~ db2@4 ~@2 db2@2",
  X: "gb2@4 gb2 gb2@2 gb2", Y: "f2@7 ~ f2@2 c2@4 f1@2", Z: "bb1@3 bb1@2 bb1 ~ bb1",
  AA: "ab1@2 ~@4 ab1@2 ab1@2 ab1@4 eb1 f1", AB: "ab1@3 ~@3 ab1@2 ab1 ~ ab1@2 f2 ab2@2 db2",
  AC: "ab1@2 ~@8 ab1@3 ~ ab1!2", AD: "ab1 ~ ab1@3 ~ ab1@9 ~", AE: "db2@5 ~ db2@2 db2@5 ~ db2@2",
  AF: "f1@6 f1@2 f1@5 ~ f1 ~", AG: "gb1@2 gb1@4 db2@2 gb1 db2 gb2@4 gb2 ~", AH: "db2@4 ~@2 ab1 ~ ab1@7 ~",
  AI: "ab1@2 ab1@3 ~ ab1 ~ db2@5 ~ db2 ~", AJ: "db2@4 db2@2 ~@2 f1@5 ~ f1@2", AK: "f1@2 f1@2 ~@2 f1@2 gb1@5 ~ gb1@2",
  AL: "db2@4 gb1@3 ~ db2@5 ~ ab1 ~", AM: "ab1@7 ~ ab1 ~ ab1@4 eb1 f1", AN: "ab1@6 ~@2 ab1@3 ab1!2 ~ ab1@2",
  AO: "ab1@8 ~@2 ab1 ~ ab1@3 ab1", AP: "ab1 ~ ab1@4 eb1 f1 ab1@6 ~@2", AQ: "ab1@3 ab1!2 ~ ab1 ~ ab1@3 ~ ab1@3 ~",
  AR: "db2@6 ab2 ~ ab2@4 db2@3 ~", AS: "gb1@6 db2 ~ db2@6 gb2 ~", AT: "gb2@6 gb2@2 gb2@4 gb2@3 ~",
  AU: "f2@6 f2@4 c2@4 f1 ab1", AV: "bb1@5 ~ bb1@4 bb1 ~@3 bb1@2", AW: "ab1@2 ab1@3 ~ ab1 ~ ab1@5 ~ eb1 f1",
  AX: "ab1@2 ab1@3 ~ ab1 ~ ab1@4 ~@2 eb1@2", AY: "ab1@2 ~@5 ab1 ab1@2 ab1@4 eb1 f1", AZ: "ab1@3 ab1",
  BA: "db2@4 db1@2 db1 ~ db1@5 ~ db1@2", BB: "f1@6 f1@2 f1@5 ~ f1@2", BC: "gb1@2 gb1@3 ~ gb1@2 gb1@2 db2 ~@3 gb1 ~",
  BD: "db2@2 db2@3 ~ ab1@2 ab1@7 ~", BE: "ab1 ~ ab1@4 ab1 bb1 db2@5 ~ db2@2", BF: "db2@4 f1@3 f1",
  BG: "f1@4 gb1 gb1@2 db2", BH: "db2@2 db2@2 gb1@3 ~ db2@2 ~@4 ab1@2", BI: "ab1@8 ab1 ~ ab1@3 ~ ab1@2",
  BJ: "db2@6 ab2 ~ ab2@4 ab1@2 ~ ab1", BK: "db2@3 ab2!3 ab1!2", BL: "gb1@2 gb1@4 db2 ~ db2@7 ~",
  BM: "gb2@3 gb2!2 gb2@2 gb2", BN: "f2@5 ~ f2@2 f2@2 c2@3 ~ f1@2", BO: "ab1@3 ~@3 ab1@2 ab1@2 ab1@4 eb1 f1",
  BP: "ab1@2 ~@4 ab1 ~ ab1@3 ~ eb2 ab2 ab1 eb2", BQ: "ab1@2 ~@4 ab1 ~ ab1@4 ~@2 eb1 f1",
  BR: "ab1@2 ~@4 ab1@2 ab1@2 ab1 ~ ab1@2 ~@2", BS: "b1@2 ~@4 b1@2 b1@4 ~@2 gb1 ab1",
  BT: "b1@2 ~@4 b1 ~ b1@3 ~ gb1 ~ ab1 ~", BU: "e1@2 e1@3 ~ e1 ~ e1@5 ~ e1 gb1", BV: "ab1 ab1@2 ab1 ab1@4",
  BW: "a1@2 a1@4 e2 ~ e2@2 e2@2 a1@2 a1@2", BX: "[e1 ~@5 b1@2 b1@14 gb1 b1 e1@2 e1@3 ~ e1 ~]/2",
  BY: "e1@5 ~ e1 gb1 ab1@2 ab1@3 ~ ab1 ~", BZ: "ab1@4 ab1@4 a1@6 e2 ~", CA: "e2 ~ e2@2 a1 ~ a1@2 e1 ~@5 b1 ~",
  CB: "b1@5 ~ b1 ~ b1 ~ b1@4 gb1 ab1", CC: "b1@5 ~ b1 ~ b1@5 ~ gb1 ab1", CD: "b1@2 ~@4 b1 ~ b1 b2@3 a1 b1 ~ b1",
  CE: "e1@2 e1@3 ~ e1@2 e2@4 ~@2 e1 gb1", CF: "ab1@2 ab1@3 ~ ab1 ~ ab1@4 ab1@4", CG: "a1 ~ a1@2 ~@2 a1@2 e2@4 a1@4",
  CH: "e1 ~ e1@2 ~@2 b1 ~ b1@2 b1@4 ~@2", CI: "b1@2 ~@2 gb2 ~ b1 ~ e1 ~ e1@3 ~ e1@2",
  CJ: "e2@6 b1@2 ab1 ~ ab1@3 ~ ab1@2", CK: "eb2@4 ab1@3 ~ a1 ~ a1@4 a1@2", CL: "e2@2 a1@2 ~@2 a1@2 e1 ~ e1@2 ~@2 b1 ~",
  CM: "b1@8 b1@2 b1 gb1 a1 b1!2 ~", CN: "e1 ~ e1@3 ~ e1 ~ e1@5 ~ e1 gb1", CO: "ab1 ~ ab1@4 ab1@2 ab2@4 ab1@4",
  CP: "a1@5 ~ a1@2 e2@2 a1@3 ~ a1@2", CQ: "e1@2 ab1@2 a1@2 b1 ~ b1@8", CR: "b1@2 b1@3 ~ b1@2 e1@2 e1@3 ~ e1 ~",
  CS: "e1@5 ~ e1 gb1 ab1@2 ab1@3 ~ ab1@2", CT: "ab2@2 ab1@2 a1@2 ~ a1", CU: "e2@2 a1@3 ~ a1@2 e1@2 ab1@2 a1@2 b1 ~",
  CV: "b1@7 ~ b1 ~ b1@3 ~ b1 ~",
})).s("gm_fretless_bass").gain(0.49)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~ A B C D E F G H I J K L@3 M N O P@2 Q R S T U V W X Y Z@2 G H I J K L@3 M N O P@2 Q R S T U V W AA AB Z@2 G H I J K
  L@3 M AC S T U V X Y Z@2 AD@2 AE AF AG AH AI AJ@3 AK AL AM AE AF AG AH AI AJ@3 AK AE AF AG AH AI AJ@3 AK ~
>`.pickRestart({
  A: "[gb3,db4,gb4]@3 gb4!2 gb4@3 [db4,gb4] [db4,gb4]@2 gb4 [db4,gb4] [db4,gb4]@2 [bb3,db4,gb4], bb3 ~, ~@3 db4@5 ~@8, ~ gb3 [gb3,bb3]!2", // Gb5 Gb
  B: "[bb3,db4,gb4]@4 [bb3,gb4] [bb3,db4,gb4]@3 [db4,gb4] [db4,gb4]@3 gb4 gb4@2 [gb3,bb3,db4,gb4], gb3@8 [gb3,bb3]@4 [gb3,bb3,db4]@3 ~", // Gb Ebm Gb Gb5 Gb
  C: "[gb3,bb3,db4,gb4]@3 [bb3,db4,gb4]!2 [bb3,db4,gb4]@3 [db4,gb4] [db4,gb4]@3 [bb3,db4,gb4] [bb3,db4,gb4]@2 [bb3,db4,gb4], ~ gb3 [gb3,bb3] gb3", // Gb Gb5 Gb
  D: "[gb3,bb3,db4,gb4]@3 ~ [bb3,gb4] [bb3,db4,gb4]@3 [bb3,db4] [bb3,db4,gb4]@3 [bb3,db4,gb4] [bb3,db4,gb4]@2 [db4,gb4], ~@3 [db4,gb4]@2 ~@11, ~ gb3!3", // Gb Ebm Gb Bbm Gb Gb5
  E: "[ab3,c4,eb4,ab4]@3 [c4,eb4,ab4] [eb4,ab4] [eb4,ab4]@3 [eb4,ab4] [eb4,ab4]@3 [c4,eb4,ab4] [c4,eb4,ab4]@2 [eb4,ab4], ~ [ab3,c4]!2 ab3", // Ab Ab5 Ab Ab5 Ab
  F: "[ab3,c4,eb4,ab4]@5 ~ [gb3,bb3,db4,gb4]@9 ~", // Ab Gb
  G: "[ab3,db4,f4]@2 ~ f4 ab3@2 ab3@2 [ab3,db4,f4]@2 f4!2 ab3@2 [f3,ab3]@2, ~ [ab3,db4,f4] [db4,f4]@2 ~ [ab3,db4] [db4,f4]@2", // Db Fm Db Db5 Db
  H: "[f3,c4]@2 ~ f4 [ab3,c4,f4]@2 [ab3,c4]@2 [f3,ab3,c4]@2 [c4,f4]!2 [ab3,c4,f4]@2 [ab3,c4] ~, [ab3,f4]@2 ~@3 ab3 ~@2, ~ c4 ~ f4@2 ~@3", // F5 Fm Ab Fm F5 Fm Ab Db
  I: "[gb3,bb3,db4,gb4]@2 ~ [db4,gb4] [bb3,db4,gb4]@2 [bb3,db4]@2 [bb3,db4]@2 [db4,gb4]!2 [bb3,db4,gb4]@2 [bb3,db4] ~, ~ [bb3,db4] ~ gb4@2 bb3 ~@2", // Gb Gb5 Gb Bbm Gb5 Gb Bbm
  J: "[ab3,db4]@3 ~ db4@4 [eb3,db4]@4 [eb3,ab3,db4]@3 [ab3,db4], f3@3 ~@5, ~@3 f4@3 ~@10, ~@2 ab3 ~ ab3 ~@3", // Db5 Eb7 Dbsus2 Db5
  K: "[eb3,ab3,db4]@2 [ab3,db4]@2 ~ db4 [eb3,ab3,db4] ~ [ab3,db4,f4]@3 [ab3,f4] [ab3,db4,f4]@2 [f3,ab3,db4,f4]@2, ~ eb3@2 ~ f3@3 ~, ~@2 [ab3,db4] ~@5", // Dbsus2 Db5 Dbsus2 Db Db5
  L: "[db4 [db4,f4] [ab3,db4,f4]@2 [f3,ab3,db4]@2 [f3,ab3,db4]@2 ab3@2 ~ f4 [ab3,c4]@2 [ab3,c4]@2 ~ f4 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,f4] ~ [bb3,db4,gb4]@2 [bb3,db4] [bb3,db4,gb4] [bb3,db4]@2 [bb3,db4]@2 ~ [db4,gb4] [bb3,db4,gb4]@2 [bb3,db4,gb4]@2 [bb3,db4] ~ [db4,f4]@3 [db4,f4] [ab3,f4] ~ eb3@2, ab3@2 ~@2 f4@4 [f3,c4,f4]@4 ~@2 f3@8 ~@2 gb3@5 ~ gb3@4 gb3@4 ~@2 [f3,ab3]@5 ~@3, ~@5 ab3 f4@2 [ab3,c4] ~@5 gb4@2 [bb3,db4] ~@5 db4@2]/3", // Db Ab Fm Db Gb Bbm Gb Bbm …
  M: "[eb3,ab3,db4]@3 [ab3,db4] [eb3,ab3]@2 [eb3,ab3]@2 [ab3,db4]@2 [ab3,db4]!2 ab3@2 [eb3,ab3]@2, ~@2 db4@2 eb3@3 ~, ~@3 db4", // Dbsus2 Db5 Ab5 Db5 Ab5
  N: "[db4,eb4,ab4]@4 [db4,eb4,ab4]@2 ~ [eb4,ab4] [db4,eb4,ab4]@2 ~ [eb4,ab4] ~ ab4 [db4,eb4,ab4]@2, ~@3 [db4,eb4] ~ [db4,eb4] [db4,eb4,ab4] ~", // Dbsus2 Ab5 Dbsus2 Ab5 Dbsus2
  O: "[db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [db4,eb4,ab4]@2 ~ [eb4,ab4] [db4,eb4,ab4]@2 [db4,eb4,ab4]@2 ab4!2 [db4,eb4,ab4]@2, ~@3 [db4,eb4,ab4] ~@2 [db4,eb4] ~", // Dbsus2 Ab5 Dbsus2
  P: "[[db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [db4,eb4,ab4]@2 ab4!2 [db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [eb4,ab4]!2 ab4@2 [db4,ab4]@2 [db4,eb4,ab4]@2 [db4,eb4,ab4]@2 ab4 [eb4,ab4] [db4,eb4,ab4] [eb4,ab4] [db4,eb4,ab4]@2 [eb4,ab4]!2 [db4,eb4,ab4]@2, ~@3 [db4,eb4] ~@2 db4@2 ~@3 db4 ~@2 ab3@2, ~@7 eb4@2 ~@5 db4 ~]/2", // Dbsus2 Ab5 Db5 Dbsus2 Ab5 Dbsus2 Ab5 Dbsus2 …
  Q: "[ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4]@2 [ab3,c4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [f3,ab3,c4,f4]@2 ~ [c4,f4], db3@11 ~@3 [f3,ab3,c4,f4]@2, ~ f4 ~@2", // Fm Ab Fm F5 Fm
  R: "[ab3,c4,f4]@2 [ab3,c4]@2 [ab3,c4,f4]@2 [ab3,c4]@2 [f3,ab3,c4,f4]@2 ~ [c4,f4] [ab3,c4,f4]@2 [ab3,c4]@2, ~ f3 db3 [db3,f3], ~@5 [f3,ab3,c4,f4] ~@2", // Fm Ab Fm Ab Fm F5 Fm Ab …
  S: "[c4,f4]@2 [c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [f3,ab3,c4,f4]@2 [db3,f3,ab3,c4,f4] [ab3,c4,f4] [ab3,c4]@2 [ab3,c4]@2, db3@5 ~ [db3,f3,f4]@2, [f3,ab3] f3 ~@2", // F5 Fm Dbmaj7 Fm Ab Db Fm
  T: "[gb3,bb3,db4,f4]@2 [bb3,db4,f4]@2 [gb3,bb3,db4,f4]@3 [bb3,db4,f4] [gb3,bb3,db4,f4]@3 [bb3,db4,f4] [db4,f4]!2 [bb3,db4,f4] ~, ~@6 bb3 ~", // Gbmaj7 Bbm Gbmaj7 Bbm Gbmaj7 Bbm Db Bbm
  U: "[bb3,db4,gb4]@3 [bb3,db4,gb4] [bb3,db4,gb4]@2 [db4,gb4] ~ [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [eb4,ab4] ~, gb3@7 ~@9", // Gb Gb5 Ab Ab5
  V: "[ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]!2 [ab3,c4,f4]@2 [c4,f4]@2 [c4,f4] ~, ~ f3!2 [f3,ab3]", // Fm F5 Fm
  W: "[bb2,db4,f4]@2 [db4,f4]!2 [ab3,db4,f4]@2 [ab3,db4,f4]@2 [db4,f4]!2 [ab3,db4,f4]@2 [ab3,db4,f4]@2 [ab3,db4,f4]@2, ab3 ~ f3@2, ~ bb2@7, ~@4 ab3 ~@3", // Bbm Db
  X: "[eb3,eb4,ab4]@2 [eb3,eb4,ab4]@2 [eb3,gb3,db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [eb3,gb3,db4,eb4,ab4] [eb4,ab4] [eb3,gb3,eb4,ab4]@2 [eb3,eb4,ab4] ab4 gb3@2, [gb3,db4]@4 ~@5 db4@3 db4@4, ~@6 gb3 ~, ~@13 [eb3,eb4]@3", // Ab5 Ebm7 Dbsus2 Ebm7 Ab5 Ab7 Ab5 Gb5 …
  Y: "[db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [eb4,ab4]@2 [eb4,ab4]@2 [eb3,gb3,db4,eb4,ab4] [gb3,db4,eb4,ab4] [eb3,gb3,db4,eb4,ab4]@2 [db4,eb4,ab4]!2 [gb3,db4,eb4,ab4]@2, [eb3,gb3] [eb3,gb3,db4] ~ eb3, ~@6 gb3 ~", // Dbsus2 Ab5 Ebm7 Gbsus2 Ebm7 Dbsus2 Gbsus2 Ebm …
  Z: "[[db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [db4,eb4,ab4]@2 ab4 ~ [eb3,gb3]@2 ~@2 [gb3,db4,eb4]@2 [gb3,db4,eb4,ab4]@2 [eb4,ab4] [db4,eb4,ab4] [eb4,ab4]@2 ~@2 eb4@2 [eb3,gb3,eb4,ab4]@2 [gb3,eb4,ab4]@2 [gb3,db4,eb4,ab4]@2, [eb3,gb3]@4 db4@2 ~@4 [gb3,db4]@3 db4@2 ~, ~@4 [eb3,gb3] ~ [eb3,gb3,db4,eb4,ab4] eb3@2 eb3@2 [eb3,ab4]@2 ~ eb3@2, ~@9 [eb4,ab4]@3 ~ ab4@3 ~@16]/2", // Dbsus2 Ebm Ebm7 Gbsus2 Ab5 Dbsus2 Ab5 Ab7 …
  AA: "[eb3,eb4,ab4]@2 [eb3,eb4,ab4]@2 [eb3,gb3,db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [eb3,gb3,db4,eb4,ab4] [eb4,ab4] [eb3,gb3,eb4,ab4]@2 [eb3,eb4,ab4] ab4 gb3@2, [gb3,db4]@4 ~@5 db4@3 db4@4, ~@13 [eb3,eb4]@3", // Ab5 Ebm7 Dbsus2 Ebm7 Ab5 Ab7 Ab5 Gb5 …
  AB: "[db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [eb4,ab4]@2 [eb4,ab4]@2 [eb3,gb3,db4,eb4,ab4] [gb3,db4,eb4,ab4] [eb3,gb3,db4,eb4,ab4]@2 [db4,eb4,ab4]!2 [gb3,db4,eb4,ab4]@2, [eb3,gb3] [eb3,gb3,db4] ~ eb3", // Dbsus2 Ab5 Ebm7 Gbsus2 Ebm7 Dbsus2 Gbsus2 Ebm …
  AC: "[c4,f4]@2 [ab3,c4]@2 [ab3,c4,f4]@2 [ab3,c4]@2 [f3,ab3,c4,f4]@2 ~ [c4,f4] [ab3,c4,f4]@2 [ab3,c4]@2, ~ f3 db3 [db3,f3], ~@5 [f3,ab3,c4,f4] ~@2", // F5 Ab Fm Ab Fm F5 Fm Ab …
  AD: "[b4@2 [e4,gb4,b4]@2 [e4,gb4,b4]@2 [e4,gb4,b4]@2 b4 ~ [gb3,a3]@2 ~@2 [a3,e4,gb4]@2 [a3,e4,gb4,b4]@2 [gb4,b4] [e4,gb4,b4] [gb4,b4]@2 ~@2 gb4@2 [gb3,a3,gb4,b4]@2 [a3,gb4,b4]@2 [a3,e4,gb4,b4]@2, ~@4 e4@2 ~@4 [a3,e4]@3 e4@2 ~, ~@4 [gb3,a3] ~ [gb3,a3,e4,gb4,b4] gb3@2 gb3@2 [gb3,b4]@2 ~ gb3@2, ~@9 [gb4,b4]@3 ~ b4@3 ~@16]/2", // Esus2 Gbm Gbm7 Asus2 B5 Esus2 B5 B7 …
  AE: "[b3,e4,ab4]@2 ~ ab4 b3@2 b3@2 [b3,e4,ab4]@2 ab4!2 b3@2 [ab3,b3]@2, ~ [b3,e4,ab4] [e4,ab4]@2 ~ [b3,e4] [e4,ab4]@2", // E Abm E E5 E
  AF: "[ab3,eb4]@2 ~ ab4 [b3,eb4,ab4]@2 [b3,eb4]@2 [ab3,b3,eb4]@2 [eb4,ab4]!2 [b3,eb4,ab4]@2 [b3,eb4] ~, [b3,ab4]@2 ~@3 b3 ~@2, ~ eb4 ~ ab4@2 ~@3", // Ab5 Abm B Abm Ab5 Abm B E
  AG: "[a3,db4,e4,a4]@2 ~ [e4,a4] [db4,e4,a4]@2 [db4,e4]@2 [db4,e4]@2 [e4,a4]!2 [db4,e4,a4]@2 [db4,e4] ~, ~ [db4,e4] ~ a4@2 db4 ~@2", // A A5 A Dbm A5 A Dbm
  AH: "[b3,e4]@3 ~ e4@4 [gb3,e4]@4 [gb3,b3,e4]@3 [b3,e4], ab3@3 ~@5, ~@3 ab4@3 ~@10, ~@2 b3 ~ b3 ~@3", // E5 Gb7 Esus2 E5
  AI: "[gb3,b3,e4]@2 [b3,e4]@2 ~ e4 [gb3,b3,e4] ~ [b3,e4,ab4]@3 [b3,ab4] [b3,e4,ab4]@2 [ab3,b3,e4,ab4]@2, ~ gb3@2 ~ ab3@3 ~, ~@2 [b3,e4] ~@5", // Esus2 E5 Esus2 E E5
  AJ: "[e4 [e4,ab4] [b3,e4,ab4]@2 [ab3,b3,e4]@2 [ab3,b3,e4]@2 b3@2 ~ ab4 [b3,eb4]@2 [b3,eb4]@2 ~ ab4 [b3,eb4,ab4]@2 [b3,eb4,ab4]@2 [b3,ab4] ~ [db4,e4,a4]@2 [db4,e4] [db4,e4,a4] [db4,e4]@2 [db4,e4]@2 ~ [e4,a4] [db4,e4,a4]@2 [db4,e4,a4]@2 [db4,e4] ~ [e4,ab4]@3 [e4,ab4] [b3,ab4] ~ gb3@2, b3@2 ~@2 ab4@4 [ab3,eb4,ab4]@4 ~@2 ab3@8 ~@2 a3@5 ~ a3@4 a3@4 ~@2 [ab3,b3]@5 ~@3, ~@5 b3 ab4@2 [b3,eb4] ~@5 a4@2 [db4,e4] ~@5 e4@2]/3", // E B Abm E A Dbm A Dbm …
  AK: "[gb3,b3,e4]@3 [b3,e4] [gb3,b3]@2 [gb3,b3]@2 [b3,e4]@2 [b3,e4]!2 b3@2 [gb3,b3]@2, ~@2 e4@2 gb3@3 ~, ~@3 e4", // Esus2 E5 B5 E5 B5
  AL: "[e4,gb4,b4]@4 [e4,gb4,b4]@2 ~ [gb4,b4] [e4,gb4,b4]@2 ~ [gb4,b4] ~ b4 [e4,gb4,b4]@2, ~@3 [e4,gb4] ~ [e4,gb4] [e4,gb4,b4] ~", // Esus2 B5 Esus2 B5 Esus2
  AM: "[e4,gb4,b4]@2 [e4,gb4,b4]@2 [e4,gb4,b4]@2 ~ [gb4,b4] [e4,gb4,b4]@2 [e4,gb4,b4]@2 b4!2 [e4,gb4,b4]@2, ~@3 [e4,gb4,b4] ~@2 [e4,gb4] ~", // Esus2 B5 Esus2
})).s("gm_acoustic_guitar_steel").gain(0.27)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@7 A B C D ~ E F G ~ H I J K L@2 ~ M N O P Q ~@2 R A B C D ~ E F G ~ H I J K L@2 ~ M N O P Q ~@2 R A B C D ~ E F G ~
  S ~ M N O Q ~@2 R ~ T U V W X ~ Y Z AA ~ AB AC U V W X ~ Y Z AA ~ U V W X ~ Y Z AA ~@2
>`.pickRestart({
  A: "f3@4 f3@3 ~ f3@2 f3@4 ~@2", B: "~@2 f3@2 f3@4 ~@2 f3@5 ~", C: "~@2 gb3@2 gb3@2 gb3@2 gb3@2 gb3@4 gb3 ~",
  D: "f4@3 ~@13", E: "f3@2 ~@4 f3 ~", F: "~@6 f3 ~@9", G: "~@6 gb3 ~@7 ab3@2", H: "ab3 ab3@3",
  I: "ab3@2 ab3!2 ab3@2 ab3@2", J: "ab3@2 ab3 ab3@3 ab3@2", K: "ab3@3 ab3@3 ~@2",
  L: "[f3@4 f3@2 ~@2 f3 [f3,f4] ~@5 f4, ~@12 db3@6 db3@5 ~@9]/2", M: "~@2 gb3@2 ~@8 gb3@3 ~",
  N: "~@8 ab3@2 ab3@2 ab3@3 ~", O: "f3 ~@3", P: "f3!2 ~@2", Q: "~@3 [eb3,gb3] ~@3 ab4", R: "~ gb3 ~@6",
  S: "~ [f3,f4] ~@5 f4, ~@2 db3@5 ~@9", T: "~ a3 ~@6", U: "ab3@4 ab3@3 ~ ab3@2 ab3@4 ~@2",
  V: "~@2 ab3@2 ab3@4 ~@2 ab3@5 ~", W: "~@2 a3@2 a3@2 a3@2 a3@2 a3@4 a3 ~", X: "ab4@3 ~@13", Y: "ab3@2 ~@4 ab3 ~",
  Z: "~@6 ab3 ~@9", AA: "~@6 a3 ~@7 b3@2", AB: "b3 b3@3", AC: "b3@2 b3!2 b3@2 b3@2",
})).s("gm_acoustic_guitar_steel").gain(0.16)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  ~@7 A B C D E F G@2 H ~@8 I J ~@4 K A L C D E F M@2 H ~@8 I J ~@4 K N O P Q R S T@2 U ~@3 I V ~@6 W X Y Z AA AB AC@2
  AD ~@2 W X Y Z AA AB AE@2 AD W X Y Z AA AB AC@2 AD ~
>`.pickRestart({
  A: "[ab3,db4]@2 [ab3,db4]@2 [ab3,db4]@2 [ab3,db4]@3 ~ [ab3,c4]@3 ~ [f3,ab3]@2", // Db5 Ab Fm
  B: "[c4,f4]@2 [c4,f4]@2 [c4,f4]@2 [c4,f4]@3 ~ eb4@3 ~ [c4,f4]@2", // F5
  C: "[db4,gb4]@2 [db4,gb4]@2 [db4,gb4]@2 [db4,gb4]@4 [db4,f4]@3 ~ [bb3,db4]@2", // Gb5 Db Bbm
  D: "[ab3,db4] [ab3,c4] [f3,bb3] [ab3,db4]@5", E: "~@4 [ab3,db4]!4",
  F: "~@2 [ab3,c4]@3 ~ [f3,ab3]@2 [c4,f4]@2 [c4,f4]@2 [c4,f4]@2 [c4,f4]@2", // Ab Fm F5
  G: "[~@2 eb4@3 ~ [c4,f4]@2 [db4,gb4]@2 [db4,gb4]@2 [db4,gb4]@2 [db4,gb4]@4 [db4,f4]@3 ~ [bb3,db4]@2 [ab3,db4]@2 [ab3,eb4]@2 [ab3,db4]@2 [ab3,db4]@2]/2", // F5 Gb5 Db Bbm Db5 Ab5 Db5
  H: "[ab3,db4] [ab3,db4]@4 ~@3", I: "[gb4,db5]!5 [f4,c5] [eb4,bb4] [gb4,db5]", J: "[gb4,db5] [f4,c5]@5 ~@2",
  K: "[db4,ab4]!2 [db4,ab4]@5 ~", L: "[c4,f4]@2 [c4,f4]@2 [c4,f4]@2 [c4,f4]@3 ~ [c4,eb4]@3 ~ [c4,f4]@2",
  M: "[~@2 [c4,eb4]@3 ~ [c4,f4]@2 [db4,gb4]@2 [db4,gb4]@2 [db4,gb4]@2 [db4,gb4]@4 [db4,f4]@3 ~ [bb3,db4]@2 [ab3,db4]@2 [ab3,eb4]@2 [ab3,db4]@2 [ab3,db4]@2]/2", // Cm F5 Gb5 Db Bbm Db5 Ab5 Db5
  N: "[db4,ab4]@2 [db4,ab4]@2 [db4,ab4]@2 [db4,ab4]@3 ~ [db4,gb4]@3 ~ [ab3,f4]@2", // Db5 Gb5 Db
  O: "[f4,c5]@2 [f4,c5]@2 [f4,c5]@2 [f4,c5]@3 ~ bb4@3 ~ [f4,c5]@2", // F5
  P: "[gb4,db5]@2 [gb4,db5]@2 [gb4,db5]@2 [gb4,db5]@4 [f4,c5]@3 ~ [db4,bb4]@2", // Gb5 F5 Gb
  Q: "[db4,ab4] [db4,gb4] [db4,f4] [db4,gb4]@5", R: "~@4 [db4,ab4]!4",
  S: "~@2 [f4,db5]@3 ~ [ab3,ab4]@2 [f4,c5]@2 [f4,c5]@2 [f4,c5]@2 [f4,c5]@2", // Db Ab F5
  T: "[~@2 [c4,ab4]@3 ~ [f4,c5]@2 [gb4,db5]@2 [gb4,db5]@2 [gb4,db5]@2 [gb4,db5]@4 [f4,c5]@3 ~ [bb3,db4]@2 [ab3,db4]@2 [bb3,eb4]@2 [ab3,db4]@2 [ab3,db4]@2]/2", // Fm F5 Gb5 F5 Bbm Db5 Eb5 Db5
  U: "[ab3,db4] [ab3,db4]@5 ~@2", V: "[gb4,db5] [f4,c5]@3 ~@4",
  W: "[e4,b4]@2 [e4,b4]@2 [e4,b4]@2 [e4,b4]@3 ~ [e4,a4]@3 ~ [b3,ab4]@2", // E5 A5 E
  X: "[ab4,eb5]@2 [ab4,eb5]@2 [ab4,eb5]@2 [ab4,eb5]@3 ~ db5@3 ~ [ab4,eb5]@2", // Ab5
  Y: "[a4,e5]@2 [a4,e5]@2 [a4,e5]@2 [a4,e5]@4 [ab4,eb5]@3 ~ [e4,db5]@2", Z: "[e4,b4] [e4,a4] [e4,ab4] [e4,a4]@3 ~@2",
  AA: "~@4 [e4,b4]!4", AB: "~ [ab4,e5]@2 [b3,b4] [ab4,eb5]!4",
  AC: "[~@2 [eb4,b4]@3 ~ [ab4,eb5]@2 [a4,e5]@2 [a4,e5]@2 [a4,e5]@2 [a4,e5]@4 [ab4,eb5]@3 ~ [db4,e4]@2 [b3,e4]@2 [db4,gb4]@2 [b3,e4]@2 [b3,e4]@2]/2", // Abm Ab5 A5 Ab5 Dbm E5 Gb5 E5
  AD: "[b3,e4] [b3,e4]@5 ~@2", // E5
  AE: "[~@2 [eb4,b4]@3 ~ [ab4,eb5]@2 [a4,e5]@2 [a4,e5]@2 [a4,e5]@2 [a4,e5]@4 [ab4,eb5]@2 ~@2 [db4,e4]@2 [b3,e4]@2 [db4,gb4]@2 [b3,e4]@2 [b3,e4]@2]/2", // Abm Ab5 A5 Ab5 Dbm E5 Gb5 E5
})).s("gm_acoustic_guitar_nylon").gain(0.25)

// chords · epiano1 · "E.PIANO 1"
const epiano1_2 = note(`<
  A@5 B@2 ~@16 C D E F ~@17 G@2 H I ~@7 J K L ~ M@3 N@2 ~@3 O P ~@21 Q@2 ~@2 R@2 ~@9
>`.pickRestart({
  A: "[~@14 eb5 db5@3 f5@4 db5@4 ~@4 db5@4 eb5@4 db5@4 eb5@4 ab4@4 db5 eb5@3 f5@2 db5@2 ~@2 ab4@6 f5 db5@11 ~@2, ~@26 f5@5 ~@49, ~@27 eb5@5 ~@26 [eb5,f5]@6 ~@16, ~@27 db5@2 ~@30 db5@4 ~@17, ~@14 ab4@9 ~@17]/5", // Ebsus2
  B: "[f5@10 ~@4 eb5@7 ~ [ab4,db5]@9 ~, ~@5 f4@2 ~@9, ~@12 bb4@9 ~@11]/2", C: "~@2 db5 gb5", D: "db5@9 ~@7",
  E: "~@2 ab5 eb5@5", F: "f5@7 ~", G: "[~@10 f5@2 ab5@2 f5@12 ab5@2 f5@2 c5 db5]/2",
  H: "c5@4 db5@2 c5@4 db5@2 c5@2 bb4 ~", I: "bb4@7 ~", J: "db5", K: "eb5", L: "db5@15 ~",
  M: "[eb6@2 db6@2 gb5@4 f5@15 ~ [eb5,f5]@16 ~@8, ~@23 c5@17 ~@8]/3", // Ebsus2
  N: "[~@8 [ab4,f5] ~@5 [gb4,ab4]@10 bb4@4 db4@4, ~@14 eb5@17 ~]/2", O: "[bb4,db5]@8 [c5,eb5]@7 ~",
  P: "c5@3 ~@2 c5@3, ab4, ~@3 f5@5", Q: "[~@4 e5@2 gb5@2 e5@11 ~@13, ~ db5@2 ~@13]/2",
  R: "[~ db5 e5 gb5 ab5 b5 db6 e6@3 ~@6]/2",
})).s("gm_epiano1").gain(0.33).pan(0.1)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~ A B C D E F G H I J@6 ~@11 K L M ~ N O ~@2 P Q R ~@13 K L M ~ N O ~@2 P Q R ~@13 S T ~@2 U V W ~@4 S T ~@2 U V W ~@2
  S T ~@2 U V W ~@3
>`.pickRestart({
  A: "~@2 [gb4,bb4,eb5] ~@2 [bb4,eb5] ~@2 [gb4,bb4,eb5] ~@2 [gb4,bb4,eb5] ~ [bb4,eb5]!2 [gb4,bb4,eb5], ~@3 [bb4,eb5]@2 ~@11, ~@2 [gb4,eb5] ~@5", // Ebm Eb5 Ebm Eb5 Ebm Eb5 Ebm
// … 160 more lines

More by Bee Gees