Strudelify

Love Over Gold

Dire Straits

KeyF majorTempo96 bpm
0:00/0:00
// Love Over Gold — Dire Straits
// 96 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 6/4 at bar 40, 4/4 at bar 41, 6/4 at bar 65, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 5 overdriven guitar (copy of ch 4 electric guitar jazz); ch 1 pad poly (copy of ch 6 lead 4 chiff); ch 16 synth choir (copy of ch 6 lead 4 chiff); ch 9 overdriven guitar (copy of ch 8 electric guitar jazz); ch 12 overdriven guitar (copy of ch 11 electric guitar jazz); ch 14 overdriven guitar (copy of ch 13 electric guitar jazz)
// note: Full arrangement: all 136 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(96/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 · piano
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@2 AC AD AE@4 AF AG AH AI@4 AJ@8 AK@4 AL@6 AM@4 AN AO AP AQ
  AR AS AT AU AV AW AX AY AZ BA BB BC BD@2 BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BU BV BU BV BU BV BU BV
  BU BV BU BV BU BV BU BV BU BV BU BV BU BV BU BV BU BV BU BV BU BW@2 ~@5
>`.pickRestart({
  A: "~@14 a6 bb6", B: "c7@2 [f5,bb6]@2 [f5,a5,a6]@2 ~@4 c4 d4 f4@2 a4@2, bb4@5 ~@3, ~@3 [f5,a5,c6,f6]@5",
  C: "[c6,g6]@2 g5@2 c6@2 [f4,bb4,d5,f5,bb5,d6]@6 ~@2 c6 d6, g4@3 ~@5", // C5 Bb
  D: "d6 e6 d6@2 c6@2 [a4,c5,e5]@4 g4 f4 g4@2 f4@2, [a4,c5,e5,a5]@3 [g5,c6,e6,g6]@5", // Am C
  E: "[d5,f5,d6,f6]@2 a5@2 d6@2 f6@2 e4@2 f4@2 e4@2 f5 [g5,a5], d4@4 [e5,a5,c6,e6]@2 ~ c4", // Dm Gsus2 Am
  F: "[bb3,a5,c6]@2 [d4,g5,bb5]@2 [f4,f5,a5]@2 bb4@4 c4 d4 f4@2 a4@2, bb5 ~@5 [d5,f5]@10", // F Gm F Dm
  G: "[g4,g5] g4 c5 c4 ~ g4 c5 d5, c4@3 d5@2 ~@3, ~ bb3", // G
  H: "d5 e5 d5@2 c5@2 [g4,g5]@2 ~@2 f4 e4 f4@2 e4@2, [a3,c4,e4] [g4,g5]", // G Am G
  I: "a4 f4 d5 [d3,a4,f5] ~ g4 a4 [c3,c5], [d3,f5]@3 ~ [c3,e5]@3 ~", // Dm C Dm C
  J: "[c5,f5,c6]@2 [d3,bb4,bb5]@2 [f3,a4,a5]@2 bb3@2 a3@2 bb3 a3 bb3@2 a3@2, bb2, ~@3 [f4,d5,f5]@5", // F5 Gm F Dm
  K: "~@2 g3@2 [c4,c5]@2 [c4,e4]@2 [e4,g4]@2 [c4,c5]@2 [g3,bb4,d5]@2 [e3,g4] [f3,a4], e3@7 ~, g4@3 ~@4 c4, d5@2 ~ d5@2 ~@3", // C Em C Gm Em F
  L: "bb4 d5 bb4 [f4,bb4,d5,f5]@5, g3", M: "[d5,f5,a5,d6]@6 c6@2 [a4,c5,e5,a5]@6 d5 e5, [d2,a3] [a1,g3]",
  N: "f5 [f4,bb4,d5,f5,bb5] [d4,d5,f5,bb5,d6] f4@2 d4@3, [bb1,d3], ~@3 [g5,bb5,d6,g6]@5", // Bb Gm
  O: "~@2 [e4,e5]@2 [g4,g5]@2 [c5,c6]@3 c6!3 [c6,c7] [bb5,bb6] [f4,a5,a6] [e4,g5,ab6], [c2,e3]@3 ~", // E G C Bb F E C
  P: "[d4,a5,a6] [f4,f5,f6] [d5,f5,bb5,d6] [g5,bb5,d6,g6]@5, bb2", // D5 F Bb Gm
  Q: "[g5,c6]@3 [g3,c6,g6,c7] d4@2 c4@2, [c2,g2,c3], ~ [g5,c6,g6]", // C5
  R: "[a2,f3,c4,f4]@3 c4!2 d4 f4 d4, ~@3 [bb2,f3]@5, ~ g3", S: "f4 g4 ~ c4 c4@4, [g2,f3,d4]@3 [c2,e3]@5, ~ g4@3",
  T: "[g2,f3,bb3,d4,f4]@3 [a2,f3,c4,f4,c5]@5", U: "[f4,bb4]@4 bb4 c5 bb4 g4, [d5,f5], [bb2,f3]@3 c3",
  V: "[c4,f4,a4]@2 [c4,f4,a4] [d4,f4,bb4]@2 [d4,f4,a4]@3, [f2,c3]@3 [g2,d3]@5", // F Bb Dm F5 G5
  W: "f4 ~ g3 [c3,e3,bb3]@5, [bb2,bb3,d4]@3 ~@5, f3 ~@3, ~ g4@7", // C7 Bb
  X: "[a2,g3,db4,f4,a4]@3 [db4,f4,a4]@2 g4 [db4,e4,g4] g4, ~@3 [a2,g3]@3 [db3,g3]@2", // Aaug Dbaug Dbdim A7 Dbdim
  Y: "g4 ~@2 d3!2 [c3,c4,e4]@2 [e2,g3,c4], [a3,d4] ~, d3@3 ~@5, ~ f4@5 ~@2", // C D5
  Z: "[f2,c3,a3,c4,f4]@3 c4!2 d4 f4 d4, ~@3 [g2,d3,g3,bb3]@5", // F Gm
  AA: "f4 ~@5 f4 g4, [bb2,f3,d4]@3 [c3,e3,c4]@5, ~ g4@5 ~@2", // Bb C
  AB: "[[db4,f4,a4]@2 ~@8 [db4,a4]@2 [db4,g4]@2 ~@6 [bb3,d4,f4,a4]@2 [bb2,f3,bb3,d4,f4,a4]@2 [bb3,d4,g4]@2 ~@4 g4 [a4,bb4], [a2,g3]@3 [a2,g3]@5 [bb2,f3]@3 ~ [g2,f3]@2 [bb2,f3]@2, ~ [db4,f4,a4]@3 ~@3 [d4,f4,a4]@3 ~@3 [bb3,d4,f4]@2 ~]/2", // Dbaug Gbm Dbdim Bbmaj7 Gm Bbmaj7 A7 Bb5 …
  AC: "c5@2 [c4,f4,a4] [d4,f4,bb4]@2 a4 [d4,g4] [a2,c4,f4], [f2,c3]@3 [g2,d3]@4 ~", // F Bb G5 F F5 G5
  AD: "[bb3,f4] [bb3,d4]@2 [f3,a3,c4]@2 [f3,a3,d4]@2 [f3,a3,d4], [bb2,f3]@3 [f2,c3]@5", // Bb5 Bb F Dm Bb5 F5
  AE: "[f4@2 d4@2 d4@2 f4 d4@7 a4 ab4 [d4,a4]@12 [c2,c4,e4,a4]@2 [b1,b3,d4,g4]@14 [bb1,bb3,d4,g4]@2 [a1,a3,c4,f4]@10 [g1,eb3,bb3,eb4]@8, [d2,a2,f3]@7 ~@9]/4", // D5 Am G Gm F Eb Dm
  AF: "[gb1,gb3,a3,d4]@6 [bb3,eb4] bb4, ~@3 g2", AG: "d3@3 a2 d3@2 [bb3,eb4] f4, [a3,d4]@3 ~, gb2@2 ~ [g2,eb3]",
  AH: "gb3 c3 d3 [g1,eb3,bb3,eb4], [gb2,a3,d4]@3 ~", // Eb D
  AI: "[[gb1,d3,a3,c4,d4]@4 [a1,d3,gb3,a3,c4]@4 ~@2 bb3@4 g3@2 bb3@3 c4 bb3@4 g4@2 bb4@4 g4@2 bb4@4 g4@2 [g2,bb4]@2 [c4,e4,g4,c5]@4 g4@2 [c4,e4,g4]@4 c4@2 g4@2 [g2,f4]@2 [c3,e4]@6 [c3,e4,g4,c5]@2, ~@2 [g2,g4,bb4]@4 [bb2,f3,g3]@3 ~ c3@3 ~@3, ~@5 d4@7 db4@8 ~@3 c5@8 ~]/4", // D7 Gm C G7 C Gm Gm7
  AJ: "[e4 d4 c4 [bb2,bb3] [a2,f3,c4,f4]@3 c4 c4 d4 f4 d4 f4 g4 ~ c4 c4@4 [g2,f3,bb3,d4,f4]@3 [a2,f3,c4,f4,c5]@5 [f4,bb4]@4 bb4 c5 bb4 g4 [c4,f4,a4]@2 [c4,f4,a4] [d4,f4,bb4]@2 [d4,f4,a4]@3 f4 ~ g3 [c3,e3,bb3]@5 [a2,g3,db4,f4,a4]@3 [db4,f4,a4]@2 g4 [db4,e4,g4] g4!2 ~@2 d3, g3@2 ~@2 g3@2 ~ g4@3 ~@4 [d5,f5]@4 ~@4 f3 ~@6 [db3,g3] [a3,d4]@2, bb2@3 ~@4 [bb2,f3]@5 [g2,f3,d4]@3 [c2,e3]@5 ~@8 [bb2,f3]@6 c3@2 [f2,c3]@3 [g2,d3]@5 [bb2,bb3,d4]@3 ~@8 [a2,g3]@3 ~@2 d3@3 ~, ~@45 g4@7 ~@9 f4@3]/8", // Bb F Gm7 F Bb5 F Bb Dm …
  AK: "[d3 [c3,c4,e4]@2 [e2,g3,c4] [f2,c3,a3,c4,f4]@3 c4 c4 d4 f4 d4 f4 ~@5 f4 g4 [db4,f4,a4] ~@4 [db4,a4] [db4,g4] ~@3 [bb3,d4,f4,a4] [bb2,f3,bb3,d4,f4,a4], ~@7 [g2,d3,g3,bb3]@5 [bb2,f3,d4]@3 [c3,e3,c4]@5 [a2,g3]@3 [a2,g3]@5 [bb2,f3]@3 ~, ~@13 g4@5 ~@3 [db4,f4,a4]@3 ~@3 [d4,f4,a4]@3 ~@2]/4", // C F Dbaug Gbm Dbdim Bbmaj7 Gm Bb …
  AL: "[[bb3,d4,g4]@2 ~@4 g4 [a4,bb4] c5@4 [c4,f4,a4]@2 [d4,f4,bb4]@4 a4@2 [d4,g4]@2 [a2,c4,f4]@2 [bb3,f4]@2 [bb3,d4]@4 [f3,a3,c4]@4 [f3,a3,d4]@4 [f3,a3,d4]@2 f4@2 d4@2 d4@2 f4 d4@7 a4 ab4 [d4,a4]@12 [c2,c4,e4,a4]@2 [b1,b3,d4,g4]@14 [bb1,bb3,d4,g4]@2 [a1,a3,c4,f4]@10, [g2,f3]@2 [bb2,f3]@2 [f2,c3]@3 [g2,d3]@4 ~ [bb2,f3]@3 [f2,c3]@5 [d2,a2,f3]@14 ~@14, ~ [bb3,d4,f4]@2 ~@45]/6", // Gm Bbmaj7 F Bb G5 F Bb5 Bb …
  AM: "[[g1,eb3,bb3,eb4]@4 [gb1,gb3,a3,d4]@6 [bb3,eb4] bb4 d3@3 a2 d3@2 [bb3,eb4] f4 gb3@2 c3@2 d3@2 [g1,eb3,bb3,eb4]@2 [gb1,d3,a3,c4,d4]@2 [a1,d3,gb3,a3,c4]@2, ~@5 g2 [a3,d4]@3 ~@7, ~@6 gb2@2 ~ [g2,eb3] [gb2,a3,d4]@3 ~@3]/4", // Eb D Eb5 Eb D7 D5 Cm D
  AN: "~@2 bb3@4 g3@2 bb3@3 c4 bb3@4, [g2,g4,bb4], ~ d4@7", AO: "g4 bb4@2 g4 bb4@2 g4 [g2,bb4], [bb2,f3,g3,db4]@3 ~",
  AP: "[bb1,db4,f4]@2 db2@2 f2@2 f4 g4, ~ [g3,bb3]@3, ~@3 bb1", // Bbm Gm
  AQ: "[c4,e4,a4] [c4,e4,g4]@2 [c2,c4,e4,g4] c2@2 c2 [g2,c4,e4,g4], c2@3 ~ [c4,e4,g4]@3 ~", // Am C
  AR: "[c4,e4,g4]@3 [c4,e4,a4]@3 [c2,c4,e4,bb4]@2 [c4,g4,bb4]@2 [c4,e4,g4]@4 [g2,c4,e4,g4]@2, c2@3 ~ g2@3 ~", // C Am C7 C
  AS: "[bb3,e4,g4]@3 a4@3 [c2,d4,e4,bb4]@2 [db4,f4,bb4]@3 [db4,f4,a4]@3 [bb1,db4,f4,g4]@2, c2@3 ~ bb1@3 ~", // Edim C7 Bbm Dbaug Gm7b5
  AT: "a3@2 a3 [d2,a3] [d2,a3]@2 g4 f4, [d4,f4]@3 ~, d2@3 ~@3 [bb1,bb3,d4]@2", // D5 Dm Bb
  AU: "[c4,e4,g4]@3 [c4,e4,g4]@3 [c2,c4,e4,g4]@2 [c4,e4]@2 [c4,e4]@2 ~@2 [c2,g4]@2, c2@3 ~ [c2,g4]@3 ~, ~@3 [c4,e4]", // C C5 C
  AV: "[bb3,eb4,g4]@3 a4@3 [eb2,bb4]@2 [d4,g4,bb4]@2 [bb3,d4,g4]@4 [bb3,d4,g4]@2, eb2@3 ~ g2@4, ~@3 [eb4,g4]@5 ~@8", // Eb Eb5 Gm Eb
  AW: "[bb3,db4,f4,g4]@3 [bb3,db4,f4,a4]@3 [db4,f4,g4,bb4]@2 [db4,e4,g4,bb4]@3 [db4,e4,a4]@3 [db4,e4,g4]@2, bb1 a1", // Gm7b5 Bbm Gm7b5 Dbdim A Dbdim
  AX: "[d4,f4] [f4,a4,d5] [a4,d5,f5] [a4,d5,f5,a5], [d2,a3], ~ d4@3, ~ f4", // Dm D5
  AY: "[e4,a4] [a4,db5] [db5,e5] [db5,e5,a5], [db2,db3,db4], ~ e4@3, ~ a4", // A5 A Dbm A Db
  AZ: "[a4,a5] [ab4,ab5] [g4,g5] [gb4,gb5], [c2,c3]", // A Ab G Gb C
  BA: "[f4,ab4,db5,f5]@3 [db4,f4,ab4,db5]@2 [ab3,db4,f4,ab4]@5 ~ [b1,b2,ab3,db4,f4]@5, [db2,db3]@11 ~@5", // Db Db7 Db
  BB: "[f3,f4] [f3,f4]@2 bb1 bb1@3 [bb1,f3,f4], [bb3,d4], bb1@3 [f3,f4]@4 ~", // F Bb5 Bb F
  BC: "[g3,g4] [g3,g4]@2 c2 bb1@3 [bb1,g3,g4], [c4,e4], c2@3 [g3,g4]@4 ~", // G Eb C G
  BD: "[[g3,g4]@2 [g3,g4]@4 a1@2 a1@6 a1@2 ~@3 a4 g4@2 [d2,f4]@2 e4@2 e4 f4 g4@2 [a2,e4]@2, [c4,e4]@12 ~@2 a4@5 ~@13, a1@3 [g3,g4]@4 a3@5 ~@4, ~@2 f3 [e3,c4], ~@8 d2@3 ~ a2@3 ~]/2", // G Dm A5 C G C
  BE: "[f3,d4] f3 a3 ~@2 a4 [a2,bb4] [bb2,c5], f4 ~, bb2@3 [f3,d4]@5, ~@3 bb2@3 ~@2", // Dm Bbmaj7 Bbsus2 Dm
  BF: "~ e4 g4 [c3,e4,a4] ~ e4 g4 [bb2,d4], [c3,bb4]@3 ~ bb2@3 ~, ~@2 g4 ~", // Am Bb C7
  BG: "~ e4 g4 [a2,e4] ~ c4 [c3,e4] [a2,c4], c4@5 ~@3, a2@3 ~ a2@2 ~@2", // A5 C Am
  BH: "~ [a4,f5] [g4,e5] [d2,a4,f5] [a4,e5] [a4,d5] [g4,c5] [c2,a4,d5], f3 e3, d2@3 ~ c2@3 ~", // Dm C Dm A5 D5 C5 D7
  BI: "d5!3 [bb1,f4,a4,d5] [f4,a4,d5]!2 [a1,f4,a4,d5] [bb1,f4,a4,d5], d3, [bb1,f4,a4]@3 ~ bb1@2 ~@2", // Bbmaj7 Dm Bbmaj7
  BJ: "a4 bb4 g4@4 f4@2 g4@4 g4 gb4 [c2,g4] [d2,a4], e2@7 ~, c4@3 c4", // C5 D5
  BK: "[d4,f4]@2 [d4,f4]!2 [d4,f4]@2 d5 [g2,d5], g2@7 ~, bb4@3 [f4,bb4]", // Dm G5 Bb5
  BL: "f4@4 g4@2 c5 d5 [e4,e5]@2 g5@4 g5@2, d3 a3, a4@3 f4 ~ c4@3", // E
  BM: "[d4,a4] f4 a4 bb4@2 a5 bb5 d6, d5@4 ~ [d5,f5]@3, [bb2,f3,bb3]@3 [bb2,f3,bb3]@5", // D5 Dm Bb5
  BN: "[c5,g5,c6]@4 c5@4 e5@2 c7@2 c7 bb6 a6 g6, [c3,g3,c4], ~@2 [g5,c6]@3 ~@3", // C5
  BO: "c7@2 [f6,f7]@2 c6 bb5 a5 bb5 a5 g5 f5@2 c5@4, [bb2,f3,bb3]", // F Bb5
  BP: "~@4 d5@4 c4@6 d5 e5, [c3,bb3]@7 ~, d4@2 c5 ~, ~@2 bb4@5 ~", // C7
  BQ: "f5 bb5 [d5,f5,bb5] [bb2,f3,d5,f5,bb5]@5, [bb2,f3]@3 ~@5, [bb4,d5] d6@3", // Bb Bb5 Bb
  BR: "[g4,c5]@4 e5@2 [g4,c5,e5,g5]@2 [c5,e5,g5,c6]@6 f5 e5, [c3,g3]@3 [c3,g3]@5", // C5 C C5
  BS: "d5 f5 [d5,f5,bb5] f3@2 bb3@3, [bb2,f3]@3 [bb2,d5,f5,bb5]@5, [f4,bb4] d6@3", // Bb Bb5 Bb Bb5
  BT: "[e5,g5,c6] g4 c5 [c3,g3,bb3]!4 a2, [c3,g3,bb3]@3 d5@5", // C C7
  BU: "[d4,f4,a4]@3 [d4,f4,a4] [d4,f4,a4]@2 [d4,f4,a4]@4 [d4,f4,a4]@2 a4 f4 d4 f4, bb2@3 bb2@5", // Dm
  BV: "~ e4 [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,g4] e4 [c4,g4] e4, c3@3 c3@5", // C C5
  BW: "[[bb1,bb2,bb3,d4,f4] [c2,c3,e4,g4,c5]@2 ~]/2", // Bb C
})).s("gm_piano").gain(0.18)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~ A B C D@2 B C E F@2 G H I J@2 K L M N O P Q R S T U V W X Y Z AA@4 AB AC AD AE@2 AF@5 AG@8 AH@7 AI@2 AJ AK AL AM AN
  AO AP AQ AR AS AT AU AV AW AX AY@2 AZ BA@2 BB@2 BC@2 BD BE BF BG BH BI@2 BJ BK BL BM BN BO BP BQ BR BS BT BU@2 BV BW
  BX BY BZ CA CB CC@2 CD CE CF CG CH BX CI CJ CK CL CM CN CO CP@2 CQ ~@4
>`.pickRestart({
  A: "~@5 d5 ~ a5, ~@3 f5", B: "g5 g5@2 g5@5", C: "~@5 g5@2 a5",
  D: "[f5@7 e5 e5@2 f5@2 e5@2 c5@10 ~@2 d5@2 ~@2 a5@2, ~@7 f5]/2", E: "f5@7 c5 a5@4 ~@4, ~@8 e5 ~@7",
  F: "[~@7 d5 [f5,a5]@2 bb5@2 a5@2 f5@4 g5@6 ~@4 g5 gb5 g5 a5]/2", G: "bb5@3 c6", H: "a5", I: "~@7 g5, ~@5 [a4,d5]@3",
  J: "[d5@4 e5@16 ~@2 [d5,f5]@5 d5 bb5@4, ~@28 f5 ~@3]/2", K: "e5@3 [g4,c5] ~ d5 c5 bb4, ~@3 e5@2 ~@3",
  L: "a4 f4@2 [bb4,d5]@2 bb4@3, a3@3 bb3@5", M: "~ f4 bb4 ~ g4 c5 e5 c5, g3@3 c4@5",
  N: "[g3,f4,bb4]@3 ~ f4 a4 c5 f5, ~@3 a3@5", O: "[bb3,f4,bb4,d5]@6 ~ f4 [bb4,d5]@2 c5@2 bb4@2 g4@2",
  P: "a4 ~ f3 bb4@2 ~ g3 a3, f3@2 ~ g3@3 ~@2, ~ c5@2 ~@2 bb4@3", Q: "~ f4@2 [g4,c5,e5] g4 c5 e5 c5, bb3@3 c4@5",
  R: "[db5,f5] g4 db5 ~@2 g4 db5 b4, a3@2 a3 db4, ~@3 [db5,e5]@2 ~@3", S: "d5 a4 d5 a4 f5 g4 c5 [e3,bb4], d4@5 c4@2 ~",
  T: "[f3,a4]@3 bb4@2 bb4 ~ a3, ~@3 g3@4 ~, ~@3 d5", U: "[bb3,f4,bb4,c5]@3 ~ g4 c5 e5 c5, ~@3 c4@5",
  V: "[g4,db5,f5]@3 [g4,db5,e5]@5, a3", W: "a5 a4 d5 a4 f3 ~ f5@2, bb3@2 g4 ~, ~@5 bb3@3",
  X: "[f3,a4,f5]@3 ~ f4 ~@2 a3, ~@3 g3@4 ~, ~@5 bb4@3", // F
  Y: "[bb3,f4,bb4]@6 a4@2 a4!2 a4@2 f4@2 e4@2, ~@3 f3@3 ~@2, ~@3 f4@2 ~@3", Z: "d4",
  AA: "[~@2 f5@10 [c5,e5,a5] ~ [b4,d5,g5]@14 [bb4,d5,g5] ~ [a4,c5,f5]@4 c5@2 c5@2 [g4,bb4,eb5]@4 bb4@2 eb5@2 [a4,d5]@5 ~@3 a4@2 d5@2 d4@2 eb5@2 d4@2, a4@12 ~@39 a4@3 ~@10, ~ [d5,e5]@11 ~@40 d4@4 gb3@4 g3@4]/4", // Am G Gm F Eb D5 Dsus2
  AB: "d5@2 d4 a4 d4@2 a4@2 d5@2 d4@2 eb5@2 d4@2, gb3@2 gb3 g3",
  AC: "d5@2 d4 g4 d4@2 g4@2 d5@2 d4@2 [g3,d4,bb4,eb5]@4, gb3@2 gb3 ~", // Ebmaj7
  AD: "[gb3,d4,a4,d5]@4 [a3,c5]@4 bb4@2 bb4!2 f4@2 bb4@2, ~@2 g3 ~", // D Am
  AE: "[c5@2 ~@9 f4 e4 g4 c5 g4, ~@2 g4 bb4 db5 bb4 ~@2, ~@5 f4@2 f4@2 f4@2 ~@5]/2",
  AF: "[e5@2 g4@2 c5@2 c5!2 ~@2 c5@4 e5@4 d5@2 c5@2 bb4@2 a4@6 [bb3,f4,bb4,d5]@8 a3!2 ~@2 f4@2 bb4@2 ~@2 g4@2 c5@2 e5@2 g4@2 ~@2 f4@2 bb4@2 ~@2 f4@2 a4@2 c5@2 f5@2 bb3@2 bb3@4 ~ f4, ~@4 g4@4 ~@12 bb3@3 c4@5 g3@3 a3@5 [f4,bb4,d5]@4, ~@39 bb3]/5", // Bb
  AG: "[[bb4,d5]@2 c5@2 bb4@2 g4@2 ~@2 c5 ~ a4@2 bb4@2 f4@6 a3@2 [f4,bb4,c5]@2 f4@4 [g4,c5]@2 g4@2 ~@2 c4@2 bb3@2 [g4,db5,f5]@2 g4@2 db5@2 ~@8 db4@2 [a4,d5,f5]@2 a4@4 a4@4 [c4,g4,c5,e5]@4 bb4@2 f3@4 f3@2 [bb4,d5]@2 f4@2 ~@2 g3@2 a3@2 [bb3,f4,bb4,c5]@6 [g4,c5,e5]@2 g4@2 ~@2 c4@2 bb3@2 ~@2 f5@4 ~@8 bb3@2 ~@2 a4@2 d5@2 a4@2, ~@8 a4@3 c5@13 bb3@6 c4@6 ~@4 a3@8 a3@6 ~@2 d4@10 ~@12 g3@6 ~@10 c4@6 ~@4 a3@14 ~@2 bb3@8, ~@34 c5@4 ~@8 f5@4 g4@6 ~@16 [a4,c5]@6 ~@4 bb4@6 ~@10 c5@4 ~@3 [g4,db5]@5 [g4,db5,e5]@10 ~@8]/8", // Bb Fsus4 C5 Gm7b5 Dm C Bb Bbsus2 …
  AH: "[~@4 f5@2 f5@2 [f3,a4,c5,f5]@6 [f4,bb4,d5]@2 f4@2 ~@2 g3@2 a3@2 [bb3,f4,bb4]@2 bb3@2 bb3 ~ c4@3 a4 a4@2 f4@2 e4@2 d4@16 ~@2 f5@10 [c5,e5,a5] ~ [b4,d5,g5]@14 [bb4,d5,g5] ~ [a4,c5,f5]@4 c5@2 c5@2 [g4,bb4,eb5]@4 bb4@2 eb5@2 [a4,d5]@5 ~@3 a4@2, g4@4 ~@14 bb4@6 ~@2 [f4,bb4]@4 ~@26 a4@12 ~@39 a4@3 ~@2, ~@2 bb3@6 ~@6 g3@6 ~@10 f3@6 ~@21 [d5,e5]@11 ~@40 d4@4]/7", // F Bb Bb5 Am G Gm F Eb …
  AI: "d5@2 d4@2 eb5@2 d4@2 d5@2 d4 a4 d4@2 a4@2, gb3 g3 gb3@2",
  AJ: "d5 d4 [g3,d4,bb4,eb5]@2 [gb3,d4,a4,d5]@2 [a3,c5]@2, gb3 ~@3", // Ebmaj7 D Am
  AK: "bb4@2 g4!2 g4@2 [d5,g5] c5@3 g4@2 ~@4, g3 ~@3", AL: "~ f4 bb4 f4 db5 f4 bb4 f4",
  AM: "~ g4 db5 g4 f5 g4 c5@2, a3",
  AN: "~@4 e3@2 ~@2 e4@2 g4@2 c5@2 e5 c5, c4@2 ~ c4@5, ~ [e4,g4]@7 ~@8, ~ [c5,e5]@3 ~@4", // Em C
  AO: "[c5,e5]@3 [d5,f5]@3 [e5,g5]@2 [e5,g5]@3 [d5,f5]@3 [c5,e5]@2", AP: "[c5,e5]@4 db5 g4 db5 [a3,d5], ~@4 bb3@3 ~",
  AQ: "~@3 d5 [f5,a5] a5@2 g5 a5 g5 f5 e5 e5@2 d5 c5, d4 ~", AR: "e5@4 ~ g4 c5@2, ~ c4",
  AS: "~ [bb4,d5]@2 g5@3 g5@2 f5@8, g4@3 ~@13", AT: "~ a3, bb3 ~, ~ [bb4,db5]@15, ~ f5@7", AU: "[a4,d5,f5,a5]",
  AV: "[a4,db5,e5]", AW: "~ [bb4,d5]@15, c4", AX: "[b3,ab4,db5]", AY: "[~@7 c5 [f5,a5]@2 bb5@2 a5@2 f5@4 g5@14]/2",
  AZ: "~@3 g5@4 a5", BA: "[f5@6 ~@2 e5@2 f5@2 e5@2 c5@11 d5 [f5,a5]@2 bb5@2 c6@2]/2",
  BB: "[bb5 a5 g5 f5 g5@3 bb5@2 c6@3 ~@3 c6]/2", BC: "[f5@4 f5@2 d6@2 c6@2 a5@2 g5@2 f5@11 d5 [f5,a5]@2 bb5@3 bb5]/2",
  BD: "bb5@2 a5@2 g5@2 f5@2 g5@2 g5!3 gb5 g5 a5", BE: "bb5@8 ~@3 g5 c6@4, ~@12 bb5 ~@3", BF: "a5 ~",
  BG: "~@4 [a4,d5]@3 g5", BH: "d5@4 e5@7 g4 [c5,e5] g5 ~ e5", BI: "[g5 e5 ~ f5@7 c6@4 bb5@4 e5@14]/2",
  BJ: "~@8 [a4,d5]@3 [a4,d5]@3 g5@2", BK: "f5@4 f5@4 ~ g4 [c5,e5]@2 g5@2 e5@2", BL: "f5@4 ~ a5@3", BM: "e5",
  BN: "~ a4 d5 ~@2 a4 d5 f5, bb3!2, ~@3 f5@2 ~@3", BO: "e5 c5 ~@2 g4 c5 d5 e5, ~ g4 ~@2, ~@3 e4@5",
  BP: "~ a4 d5 f5@2 a4 d5 f5, bb3", BQ: "e5@3 g4 c5 d5 ~ e5 f5@2 e5 d5 f5@2 e5 d5",
  BR: "c5@4 ~@3 [f5,a5] f6@3 a5 f5 d5 a4 ~, ~@8 d6 ~@7", BS: "~@3 a4 c5@3 f5@3 a5@2 g5 a5 f5@2",
  BT: "e5@2 d5 [d5,e5]@2 bb4 c5@2 ~ g4 c5@2 ~ g4 f4@2", BU: "[c4@8 a3@2 e4@2 g4@2 c5@10 a4@4 f4 c5@2 c5]/2",
  BV: "c5@3 bb4 c5 d5@2 bb4 c5 g4@3 g4!2 bb4 ~", BW: "c5!2 bb4 ~ c5@2 bb4 d5 ~ c5 bb4@2 c5@2 bb4@2",
  BX: "[g4,c5,e5]@3 [c5,e5,g5]@5", BY: "~ [d5,f5]@7, bb3, ~ [f4,a4]@15", BZ: "e5 f5@2 d5 e5 d5 c5 bb4 ~@2 bb4@5 ~",
  CA: "a5 ~@13 c4@2", CB: "[e4,g5]@3 ~ [g5,e6]@4, ~@3 c5@5", CC: "[~@5 d5 [f5,a5] c6 ~ b5@2 f5 c6 b5@2 f5@9 ~@8]/2",
  CD: "~@5 bb5 ~ f5 ~ bb5 ~@3 a5@2 f5", CE: "e5@2 d5@2 c5 c6 ~@3 c6!7",
  CF: "~@5 [bb4,f5] ~@3 [bb4,f5] ~ g4 c4 g4 f4 g4", CG: "~@2 e5@2 c5@2 c6 g5 c5 g5 c6 c5!2 bb4@3, c4@3 ~@5",
  CH: "a3@6 ~@3 g4 d5@2 ~ f5@3, ~@4 bb3@2 bb3 ~", CI: "d6 bb5 g5 f5, f5@3 ~",
  CJ: "~ [c5,e5]@3 [e5,g5]!2 ~ [c5,f5] ~ [c5,e5]@2 c5 d5 c5 ~@2, g4 ~@3", // C Em F5 C
  CK: "~@4 bb5 g5 [d5,c6]@2 g5@2 f5 g5 e5@2 c5@2", CL: "a5@2 g5@2 f5@2 e5@2 d5@2 c5 g4 bb4!2 g4@2",
  CM: "f4@2 g4@3 [bb4,d5] ~ [bb4,d5] ~ f4 [f4,bb4,d5]@6", // Bb
  CN: "~@2 [c5,e5]!2 ~ [c5,e5] ~ [c5,e5] [g4,c5]@2 e5!2 ~ d5@2 ~", CO: "~@3 [f4,bb4,d5]@5",
  CP: "[[f4,bb4,d5]@7 [g4,c5,e5] [g4,c5,e5]@16 ~ g4 bb4 ~ c5@2 c5 d4]/2", CQ: "bb4 ~ c5@6 ~@8",
})).s("gm_acoustic_guitar_nylon").gain(0.24)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@17 A B C D A B E F A G H I J K L M@4 N O P@2 ~@2 Q ~@2 R@2 ~@2 S@6 T@2 ~@8 U ~@10 V W X Y@2 Z X AA@2 Z X AB AC AD AE
  AF AE AG ~@12 X AH X AI X AH X AJ X AI AK AL AK AL AK AM AK AL AK AL AK AL AK AN@7
>`.pickRestart({
  A: "[a4,c5,f5]@3 [f4,bb4,d5]@5", B: "[bb4,d5,g5]@3 [g4,c5,e5]@5", C: "[g4,c5,f5]@3 [a4,c5,f5]@5", D: "[bb4,c5,f5]",
  E: "[g4,db5,f5]@3 [g4,db5,e5]@5", F: "[a4,d5]@5 [g4,c5]@2 e5", G: "[bb4,c5,f5]@3 [c5,e5]@5",
  H: "[a3,e4,g4,db5,f5]@3 [g4,db5,e5]@5", I: "[f4,a4,d5] [bb4,f5]", J: "[a4,f5]@3 [bb4,f5]@5",
  K: "~ [c5,f5] ~@2 bb4@2 a4@10, bb4 ~@3, ~ c5@7", L: "[a4,d5]",
  M: "[~@6 [c5,e5,a5] [b4,d5,g5]@7 [bb4,d5,g5] [a4,c5,f5]@2 c5!2 [g4,bb4,eb5]@2 bb4 eb5 [a4,d5]@7 eb5@2]/4", // Am G Gm F Eb D5
  N: "d5@3 eb5", O: "d5@3 [bb4,eb5]", P: "[[a4,d5] [c5,gb5] [bb4,d5]@3 ~@3]/2", Q: "[c5,d5,e5,g5] ~",
  R: "[~@7 f5@5 ~@4, ~ f4@2 ~, ~@9 [bb4,c5]@15 ~@8]/2", // Bbsus2
  S: "[~@4 [c5,f5]@8 ~@2 c5@6 [bb4,c5,f5]@8 [g4,db5,f5]@3 [g4,db5,e5]@5 [f4,a4,d5]@8 ~@4, ~@13 e5@7 ~@28]/6", // F5 Bbsus2 Gm7b5 Dbdim Dm
  T: "[~@5 f5 ~ a4@5 ~@4, ~@3 c5@3 ~@2]/2", U: "~ [bb4,db5]@15, f4", V: "[d5,e5]", W: "[ab4,db5]",
  X: "~ f4 a4 d5@5, bb3", Y: "[~ e4@2 d5@2 e4@2 d5@2 e4@2 d5@5, c4 ~]/2", Z: "~@2 f5@2 e5 c5 a4@2, d4",
  AA: "[~ e4@2 d5@2 e4@2 d5@2 e4@2 d5@5, c4 ~, ~@3 g5@5 ~@8]/2", AB: "~ e4@2 d5@5, c4", AC: "~ f4 bb4 d5@5",
  AD: "~ a4 f5@2 e5 c5 a4@2, d4", AE: "[bb3,f4,a4,d5]", AF: "[c4,e4,g4,c5,e5]", AG: "[e4,g4,c5]",
  AH: "~ e4 g4 c5@5, bb3", AI: "[e4,g4,c5,e5]@3 [g4,c5,e5,g5]@5", AJ: "~ g4 c5@6, e4", AK: "~ d5 f5 c6@5, bb4",
  AL: "~ e5 g5 c6@5, c5", AM: "[g4,c5,e5]@3 [c5,e5,g5]@5", AN: "[[bb4,d5,f5,bb5] [c5,e5,g5,c6]@12 ~]/7",
})).s("gm_electric_guitar_jazz").gain(0.18).pan(0.4)

// other · electric guitar jazz
const electric_guitar_jazz_2 = note(`<
  ~@31 A@2 ~@5 B@4 C D@3 E@3 F G@2 ~ H I ~@2 J@7 ~ K ~@2 L@2 M N O ~@2 P Q R S T U@2 ~ V ~ W X Y Z P AA AB AC AD ~@42
>`.pickRestart({
  A: "[~@7 g5@7 ~@2]/2", B: "[~@5 d5@7 db5@8 c5@8 ~@4]/4", C: "g5 f5", D: "[~@4 d5 e5 f5 e5@5 f5@8 ~@4]/3",
  E: "[a5@2 g5 f5@9 ~ e5 f5 g5@5 ~@4]/3", F: "~@5 a4 d5 f5", G: "[a5 g5 f5 e5 f5@8 ~@4]/2", H: "~@4 a5 e6@2 a5",
  I: "f5 g5@3 ~@4",
  J: "[~@3 g5@7 a5 g5@7 g5 f5@4 ~@2 eb5@2 ~@2 gb5@5 eb5@2 d5@6 eb5@2 d5@6 eb5@2 d5@2 ~@2, ~@23 g5@6 ~@27, ~@27 d5@7 ~@22]/7",
  K: "db5", L: "[[e5,c6]@3 ~ c6@2 bb5@2, ~@7 g5@5 ~@4]/2", M: "a5@3 bb5", N: "[e5,c6]", O: "g5", P: "a5",
  Q: "a5 ab5 g5 gb5", R: "f5", S: "f4", T: "~@3 c5@5, ~ e5@3", U: "[~@3 a5@3 ~@2]/2", V: "~@3 c6@5",
  W: "~ f6@2 f6@2 d6 c6 d6", X: "a5@7 d5 a5@3 bb5@4 bb5, ~@8 f5 ~@7", Y: "bb5@2 a5@2 g5@2 f5@2 g5@6 g5 a5",
  Z: "bb5@8 ~ c6@7", AA: "~@4 [a4,d5]@3 g5", AB: "e5 f5@3", AC: "[f4,bb4,d5]", AD: "e5",
})).s("gm_electric_guitar_jazz").gain(0.23).pan(0.6)

// other · vibraphone
const vibraphone = note(`<
  ~@131
  [~@12 g5 d5 f5@2]
  [g5 e5 c5@3 d5 bb4@3 g4 c4 f4 c5 a4@2 g4]
  [c4 f4 a4 bb4 c5 d5@2 c6@5 g5 d5 f5@2]
  [g5 e5 c5@3 d5 ~@10]
  ~
>`).s("gm_vibraphone").gain(0.16)

// other · vibraphone · soft notes
const vibraphone_soft = note("<~@134 [~@6 bb4@3 g4 c4 f4 c5 a4@2 g4] [c4 f4 a4 bb4 c5 d5@2 c6 ~@8]>")
  .s("gm_vibraphone").gain(0.05)

stack(piano, acoustic_guitar_nylon, electric_guitar_jazz, electric_guitar_jazz_2, vibraphone, vibraphone_soft)

More by Dire Straits