Strudelify
I Have a Dream cover art

1979 · Voulez-Vous

I Have a Dream

ABBA

KeyB♭ majorTempo105 bpm
0:00/0:00
// I Have a Dream — ABBA
// 105 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 5, 4/4 at bar 6, 2/4 at bar 53, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 125 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(105/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, A@4 for four bars: edit a riff to change every repeat.

// bass · fretless bass
const bass = note(`<
  ~@23 A B C D E F G H I J K L M B@2 L N B@2 N O F@2 L P J@2 L Q R S T U V W X Y Z S AA AB AC AD@2 AE AF J L@2 P J F L O
  F@2 L@2 F@2 L O F@2 L AG J F L AH@2 W X Y AI AJ X Y Z S AK AE Z AL@2 AM AN J L@2 AO AP AQ AR L Z AS AT AE Z AU AV
>`.pickRestart({
  A: "~ bb2 a2 g2", B: "f2@7 ~ c2@7 ~", C: "f2@7 ~ c2@2 ~@2 f2@2 c2@2", D: "eb2@7 ~ bb1@6 ~@2",
  E: "bb1@5 ~ bb1@2 d2@4 eb2@4", F: "f2@3 ~ c2@3 ~", G: "f2@7 ~ c2@3 ~ f2@4", H: "eb2@8 bb1@5 ~ eb2@2",
  I: "bb1@5 ~ bb1@2 a1@4 g1@4", J: "f1@3 ~ c2@3 ~", K: "f2@15 ~", L: "bb1@3 ~ f1@3 ~", M: "bb1@2 d2 eb2",
  N: "bb1@7 ~ f1@7 ~", O: "bb1@6 ~@2 d2@3 ~ eb2@3 ~", P: "bb1@5 ~@3 a1@3 ~ g1@3 ~", Q: "bb1@5 ~@3 bb2@8",
  R: "~@2 bb1@2 f1@3 ~", S: "c2@7 ~ f2@7 ~", T: "c2@3 ~ f2@2 c2@2 eb2@8", U: "bb1@4 ~@2 bb1 ~ bb1@7 ~",
  V: "d2@4 eb2@4 f2@7 ~", W: "c2@5 ~@3 f2@7 ~", X: "c2@3 ~ f2@2 c2@2 eb2@7 ~", Y: "bb1@3 ~ bb1@3 ~",
  Z: "a1@3 ~ g1@3 ~ f1@6 ~@2", AA: "c2@5 ~ c2@2 bb1@8", AB: "f1 bb1", AC: "a1@4 g1@4 f1@7 ~",
  AD: "[c2@8 f2@15 ~ bb1@7 ~]/2", AE: "f1@6 ~@2 bb1@7 ~", AF: "f1@6 ~@2 a1@3 ~ g1@3 ~", AG: "bb1@7 ~ a1@2 ~@2 g1@2 ~@2",
  AH: "[bb1@3 ~ bb2@5 ~ bb1@2 f1@3 ~]/2", AI: "d2@3 ~ eb2@3 ~ f2@7 ~", AJ: "c2@4 f2@3 ~", AK: "c2@3 ~ bb1@4",
  AL: "[c2@5 ~@3 f2@14 ~@2 bb1@7 ~]/2", AM: "f1@5 ~ f1@2 bb1@8", AN: "f1@7 ~ a1@3 ~ g1@3 ~",
  AO: "bb1@6 ~@2 a1@3 ~ g1@3 ~", AP: "f1@7 ~ c2@6 ~@2", AQ: "f2@7 ~ c2@3 ~ eb2@2 f2@2", AR: "bb1@7 ~ f1@5 ~ f1@2",
  AS: "c2@3 ~ bb1@3 ~", AT: "f1@7 ~ bb1@5 ~@3", AU: "c2@3 ~ f2@3 ~", AV: "c2@3 ~ eb2@2 ~@10",
})).s("gm_fretless_bass").gain(0.33)

// chords · acoustic guitar steel · "Steel Guitar"
const acoustic_guitar_steel = note(`<
  ~ A B C D@2 E@2 D F G E D@2 E@2 D@2 E H D@2 E G D@2 I J D@2 I G D K L@2 M@2 L N M@2 L@2 M@2 L@2 M@2 L O@2 M P Q R M P
  Q S M T L S U@2 V W M X V W M@2 E@2 D@2 E@2 D@2 E@2 D@2 E Y Z@2 AA AB@2 Z AC AD AE Z AF AD AE Z AG Y AE AH@2 AI AA AJ
  AK AI AA AJ@2 AK AL AM AN AO AL AM AJ AP
>`.pickRestart({
  A: "~@12 [bb2,f3,bb3,eb4,f4,bb4]@3 ~", // Bbsus4
  B: "[bb2,f3,bb3,eb4,f4]@3 ~ [bb2,f3,bb3,eb4,f4,bb4]@3 ~ [bb2,f3,bb3,eb4,f4,bb4]@3 ~ [bb2,f3,bb3,d4,f4,bb4]@3 ~", // Bbsus4 Bb
  C: "[bb2,f3,bb3,d4,f4]@3 ~ [bb2,f3,bb3,d4,f4,bb4]@3 ~ [bb2,f3,bb3,eb4,f4,bb4]@3 ~ [bb2,f3,bb3,eb4,f4,bb4]@3 ~", // Bb Bbsus4
  D: "[c3,f3,c4,eb4,a4]@3 ~ [c3,f3,c4,eb4,a4]@3 ~ [c3,f3,c4,eb4,a4]@3 ~ [c3,f3,c4,eb4,a4]@3 ~", // F7
  E: "[bb2,f3,bb3,d4,bb4]@3 ~ [bb2,f3,bb3,d4,bb4]@3 ~ [bb2,f3,bb3,d4,bb4]@3 ~ [bb2,f3,bb3,d4,bb4]@3 ~", // Bb
  F: "[c3,f3,c4,eb4,a4]@3 ~ [c3,f3,c4,eb4,a4]@3 ~ [c3,f3,c4,eb4,a4]@3 ~ [f3,c4,eb4,a4]@3 ~", // F7
  G: "[bb2,f3,bb3,d4,bb4]@3 ~ [bb2,f3,bb3,d4,bb4]@3 ~ [bb2,f3,bb3,d4]@3 ~ [bb2,f3,bb3,d4,bb4]@3 ~", // Bb
  H: "[bb2,f3,bb3,d4,bb4]@3 ~ [bb2,f3,bb3,d4,bb4]@3 ~ [bb2,f3,bb3,d4,bb4]@3 ~ [bb2,f3,bb3,d4]@3 ~", // Bb
  I: "[bb2,g3,bb3,eb4,g4]@3 ~ [bb2,g3,bb3,eb4,g4]@3 ~ [bb2,g3,bb3,eb4,g4]@3 ~ [bb2,g3,bb3,eb4,g4]@3 ~", // Eb
  J: "[bb2,f3,bb3,d4,f4]@3 ~ [bb2,f3,bb3,d4,f4]@3 ~ [bb2,f3,bb3,d4,f4,bb4]@3 ~ [bb2,f3,bb3,d4,f4,bb4]@3 ~", // Bb
  K: "[c3,f3,c4,eb4,a4]@13 ~@3", // F7
  L: "[bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4] ~", // Bb
  M: "[c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4] ~", // F7
  N: "[bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4] ~", // Bb
  O: "[[bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4]@4 ~@2 [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4] ~]/2", // Bb F7
  P: "[c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4] ~ [bb2,g3,bb3,eb4,g4] ~ [bb2,g3,bb3,eb4,g4] ~", // F7 Eb
  Q: "[bb2,g3,bb3,eb4,g4] ~ [bb2,g3,bb3,eb4,g4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4] ~", // Eb Bb
  R: "[bb2,f3,bb3,d4] ~ [bb2,f3,bb3,d4,bb4] ~ [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4] ~", // Bb F7
  S: "[bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4] ~ [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4] ~", // Bb F7
  T: "[c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4] ~", // F7 Bb
  U: "[[c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4]@6 ~@2 [bb2,f3,bb3,f4,bb4] ~ [bb2,f3,bb3,eb4,f4,bb4] ~]/2", // F7 Bb5 Bbsus4
  V: "[bb2,f3,bb3,eb4,f4,bb4] ~ [bb2,f3,bb3,eb4,f4,bb4] ~ [bb2,f3,bb3,eb4,f4,bb4] ~ [bb2,f3,bb3,d4,f4,bb4] ~", // Bbsus4 Bb
  W: "[bb2,f3,bb3,d4,f4,bb4] ~ [bb2,f3,bb3,d4,f4,bb4] ~ [bb2,f3,bb3,d4,f4,bb4] ~ [bb2,f3,bb3,d4,f4,bb4] ~", // Bb
  X: "[bb2,f3,bb3,f4,bb4] ~ [bb2,f3,bb3,f4,bb4] ~ [bb2,f3,bb3,f4,bb4] ~ [bb2,f3,bb3,eb4,f4,bb4] ~", // Bb5 Bbsus4
  Y: "[f3,bb3,d4,bb4]@3 ~ [f3,bb3,d4,bb4]@3 ~ [f3,bb3,d4,bb4]@3 ~ [f3,bb3,d4,bb4]@3 ~", // Bb
  Z: "[f3,c4,eb4,a4]@3 ~ [f3,c4,eb4,a4]@3 ~ [f3,c4,eb4,a4]@3 ~ [f3,c4,eb4,a4]@3 ~", // F7
  AA: "[f3,bb3,d4,bb4] ~ [f3,bb3,d4] ~ [f3,bb3,d4,bb4] ~ [f3,bb3,d4,bb4] ~", // Bb
  AB: "[[f3,bb3,d4,bb4]@3 ~ [f3,bb3,d4,bb4]@3 ~ [f3,bb3,d4,bb4]@3 ~ [f3,bb3,f4,a4]@9 ~@3 [f3,c4,eb4,a4]@3 ~ [f3,c4,eb4,a4]@3 ~]/2", // Bb Bbmaj7 F7
  AC: "[f3,c4,eb4,a4]@3 ~ [f3,c4,eb4,a4]@3 ~ [g3,bb3,eb4,g4]@3 ~ [g3,bb3,eb4,g4]@3 ~", // F7 Eb
  AD: "[g3,bb3,eb4,g4]@3 ~ [g3,bb3,eb4,g4]@3 ~ [f3,bb3,d4,bb4]@3 ~ [f3,bb3,d4,bb4]@3 ~", // Eb Bb
  AE: "[f3,bb3,d4,bb4]@3 ~ [f3,bb3,d4,bb4]@3 ~ [f3,c4,eb4,a4]@3 ~ [f3,c4,eb4,a4]@3 ~", // Bb F7
  AF: "[f3,c4,eb4,a4]@3 ~ [f3,c4,eb4,a4]@3 ~ [g3,bb3,eb4,g4,bb4]@3 ~ [g3,bb3,eb4,g4,bb4]@3 ~", // F7 Eb
  AG: "[f3,c4,eb4,a4]@3 ~ [f3,c4,eb4,a4]@3 ~ [f3,bb3,d4,bb4]@3 ~ [f3,bb3,d4,bb4]@3 ~", // F7 Bb
  AH: "[[f3,c4,eb4,a4]@3 ~ [f3,c4,eb4,a4]@3 ~ [f3,c4,eb4,a4]@13 ~@3 [f3,bb3,eb4,bb4]@2 ~@2 [f3,bb3,eb4,bb4]@2 ~@2]/2", // F7 Ebsus2
  AI: "[f3,bb3,eb4,bb4] ~ [f3,bb3,eb4,bb4] ~ [f3,bb3,eb4,bb4] ~ [f3,bb3,d4,bb4] ~", // Ebsus2 Bb
  AJ: "[f3,c4,eb4,a4] ~ [f3,c4,eb4,a4] ~ [f3,c4,eb4,a4] ~ [f3,c4,eb4,a4] ~", // F7
  AK: "[f3,bb3,d4,bb4] ~ [f3,bb3,d4,bb4] ~ [f3,bb3,eb4,bb4] ~ [f3,bb3,eb4,bb4] ~", // Bb Ebsus2
  AL: "[f3,bb3,eb4,bb4] ~ [f3,bb3,d4,bb4] ~ [f3,bb3,d4,bb4] ~ [f3,bb3,d4,bb4] ~", // Ebsus2 Bb
  AM: "[f3,bb3,d4,bb4] ~ [f3,bb3,d4,bb4] ~ [f3,c4,eb4,a4] ~ [f3,c4,eb4,a4] ~", // Bb F7
  AN: "[f3,c4,eb4,a4] ~ [f3,c4,eb4,a4] ~ [f3,bb3,f4,bb4] ~ [f3,bb3,f4,bb4] ~", // F7 Bb5
  AO: "[f3,bb3,f4,bb4] ~ [f3,bb3,eb4,bb4] ~ [f3,bb3,eb4,bb4] ~ [f3,bb3,eb4,bb4] ~", // Bb5 Ebsus2
  AP: "[f3,c4,eb4,a4] ~ [f3,c4,eb4,a4] ~@5", // F7
})).s("gm_acoustic_guitar_steel").gain(0.08)

// chords · acoustic guitar steel · "Steel Guitar"
const acoustic_guitar_steel_2 = note(`<
  ~ A B C D@2 E@2 D F G E D@2 E@2 D@2 E H D@2 E G D@2 I J D@2 I G D ~ E@2 D@2 E K D@2 E@2 D@2 E@2 D@2 E L M D N O P D N
  O Q D R E Q S T U V D W U V D@2 ~@32 X Y Z D AA Y Z D@2 AA AB Q AC AD AB Q D AE
>`.pickRestart({
  A: "~@10 [bb2,f3,bb3,eb4,f4,bb4]@3 ~ [bb2,f3,bb3,eb4,f4,bb4]@2", // Bbsus4
  B: "~@2 [bb2,f3,bb3,eb4,f4]@3 ~ [bb2,f3,bb3,eb4,f4,bb4]@3 ~ [bb2,f3,bb3,eb4,f4,bb4]@3 ~ [bb2,f3,bb3,d4,f4,bb4]@2", // Bbsus4 Bb
  C: "~@2 [bb2,f3,bb3,d4,f4]@3 ~ [bb2,f3,bb3,d4,f4,bb4]@3 ~ [bb2,f3,bb3,eb4,f4,bb4]@3 ~ [bb2,f3,bb3,eb4,f4,bb4]@2", // Bb Bbsus4
  D: "~ [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4]", // F7
  E: "~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4]", // Bb
  F: "~@2 [c3,f3,c4,eb4,a4]@3 ~ [c3,f3,c4,eb4,a4]@3 ~ [c3,f3,c4,eb4,a4]@3 ~ [f3,c4,eb4,a4]@2", // F7
  G: "~@2 [bb2,f3,bb3,d4,bb4]@3 ~ [bb2,f3,bb3,d4,bb4]@3 ~ [bb2,f3,bb3,d4]@3 ~ [bb2,f3,bb3,d4,bb4]@2", // Bb
  H: "~@2 [bb2,f3,bb3,d4,bb4]@3 ~ [bb2,f3,bb3,d4,bb4]@3 ~ [bb2,f3,bb3,d4,bb4]@3 ~ [bb2,f3,bb3,d4]@2", // Bb
  I: "~@2 [bb2,g3,bb3,eb4,g4]@3 ~ [bb2,g3,bb3,eb4,g4]@3 ~ [bb2,g3,bb3,eb4,g4]@3 ~ [bb2,g3,bb3,eb4,g4]@2", // Eb
  J: "~@2 [bb2,f3,bb3,d4,f4]@3 ~ [bb2,f3,bb3,d4,f4]@3 ~ [bb2,f3,bb3,d4,f4,bb4]@3 ~ [bb2,f3,bb3,d4,f4,bb4]@2", // Bb
  K: "~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4]", // Bb
  L: "~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4] ~ [bb2,f3,bb3,d4,bb4] ~@2", // Bb
  M: "~@5 [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4]", // F7
  N: "~ [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4] ~ [bb2,g3,bb3,eb4,g4] ~ [bb2,g3,bb3,eb4,g4]", // F7 Eb
  O: "~ [bb2,g3,bb3,eb4,g4] ~ [bb2,g3,bb3,eb4,g4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4]", // Eb Bb
  P: "~ [bb2,f3,bb3,d4] ~ [bb2,f3,bb3,d4,bb4] ~ [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4]", // Bb F7
  Q: "~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4] ~ [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4]", // Bb F7
  R: "~ [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4]", // F7 Bb
  S: "~ [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4] ~@2", // F7
  T: "~@5 [bb2,f3,bb3,f4,bb4] ~ [bb2,f3,bb3,eb4,f4,bb4]", // Bb5 Bbsus4
  U: "~ [bb2,f3,bb3,eb4,f4,bb4] ~ [bb2,f3,bb3,eb4,f4,bb4] ~ [bb2,f3,bb3,eb4,f4,bb4] ~ [bb2,f3,bb3,d4,f4,bb4]", // Bbsus4 Bb
  V: "~ [bb2,f3,bb3,d4,f4,bb4] ~ [bb2,f3,bb3,d4,f4,bb4] ~ [bb2,f3,bb3,d4,f4,bb4] ~ [bb2,f3,bb3,d4,f4,bb4]", // Bb
  W: "~ [bb2,f3,bb3,f4,bb4] ~ [bb2,f3,bb3,f4,bb4] ~ [bb2,f3,bb3,f4,bb4] ~ [bb2,f3,bb3,eb4,f4,bb4]", // Bb5 Bbsus4
  X: "~@5 [bb2,f3,bb3,eb4,bb4] ~ [bb2,f3,bb3,eb4,bb4]", // Bbsus4
  Y: "~ [bb2,f3,bb3,eb4,bb4] ~ [bb2,f3,bb3,eb4,bb4] ~ [bb2,f3,bb3,eb4,bb4] ~ [bb2,f3,bb3,d4,bb4]", // Bbsus4 Bb
  Z: "~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4]", // Bb
  AA: "~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,eb4,bb4] ~ [bb2,f3,bb3,eb4,bb4]", // Bb Bbsus4
  AB: "~ [bb2,f3,bb3,eb4,bb4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4] ~ [bb2,f3,bb3,d4,bb4]", // Bbsus4 Bb
  AC: "~ [c3,f3,c4,eb4,a4] ~ [c3,f3,c4,eb4,a4] ~ [bb2,f3,bb3,f4,bb4] ~ [bb2,f3,bb3,f4,bb4]", // F7 Bb5
  AD: "~ [bb2,f3,bb3,f4,bb4] ~ [bb2,f3,bb3,eb4,bb4] ~ [bb2,f3,bb3,eb4,bb4] ~ [bb2,f3,bb3,eb4,bb4]", // Bb5 Bbsus4
  AE: "~ [c3,f3,c4,eb4,a4] ~@6", // F7
})).s("gm_acoustic_guitar_steel").gain(0.06)

// chords · sitar
const sitar = note(`<
  ~ A B C D@2 E ~@17 F G ~@2 F H ~@14 I J K L M N K O@2 P@2 ~@2 Q ~@8 A R S T U V S W X Y@2 ~@8 I N K Z I N K AA@2 AB@2
  ~@2 AC@2 ~@7 AD AE AF T AG B C AH AI AJ AK AL AM AN AO AP AQ AR
>`.pickRestart({
  A: "~@10 [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~", // Ebsus2
  B: "[eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ eb5@2 [d5,f5] ~ [eb5,f5] ~ [c5,eb5] ~, ~@8 f5 ~@3 d5@2 ~@2", // Ebsus2 Dm Ebsus2 Cm
  C: "[d5,eb5] ~ [bb4,d5] ~ [c5,d5] ~ [a4,c5] ~ [bb4,c5] ~ [g4,bb4] ~ [a4,bb4] ~ [f4,a4] ~, c5 ~ bb4 ~ a4 ~ g4 ~", // Ebmaj7 Bb Csus2 Am Bbsus2 Gm Bbmaj7 F
  D: "[[f4,a4]@19 ~@5 [g4,bb4]@2 [bb4,d5]@2 [a4,c5] ~ [a4,c5] [bb4,eb5]]/2", E: "bb4, d5@13 ~@3",
  F: "~@8 [f4,a4] ~ [g4,bb4] ~ [a4,c5] ~ [a4,c5] [bb4,d5]", G: "[a4,c5] ~", H: "[a4,c5]@3 ~@5",
  I: "~@2 [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~", // Am Gm
  J: "[g4,bb4] ~ [f4,a4] ~ [f4,a4]@9 ~@3", // Gm F
  K: "~@2 [bb4,d5] ~ [bb4,d5] ~ [bb4,d5] ~ [bb4,d5] ~ [bb4,d5] ~ [bb4,d5] ~ [bb4,d5] ~", // Bb
  L: "d5@2 [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~, f5 ~@15", // Dm
  M: "~@8 [a4,c5] ~ [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~", N: "[g4,bb4] ~ [f4,a4] ~ [f4,a4]@5 ~@7",
  O: "[d5@2 [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [eb5,g5] ~ [f5,a5]@9 ~@11, f5 ~@31]/2", // Dm Eb F
  P: "[[f4,a4] ~ [g4,bb4] ~ [a4,c5] ~ [a4,c5] [bb4,d5] [a4,c5]@12 ~@12]/2", // F Gm Am Bb Am
  Q: "[f4,a4] ~ [g4,bb4] ~ [a4,c5] ~ [a4,c5] [bb4,d5] [a4,c5]@8", // F Gm Am Bb Am
  R: "[eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ [eb5,f5]@2 d5 ~ [d5,eb5,f5] ~ [c5,eb5] ~", // Ebsus2 Dm Cm
  S: "[d5,eb5] ~ [bb4,d5] ~ [bb4,d5]@2 [a4,c5] ~ [a4,bb4,c5] ~ [g4,bb4] ~ [g4,a4,bb4] ~ [f4,a4] ~, c5@2 ~@2 c5 ~@11", // Ebmaj7 Bb Am Gm F
  T: "[f4,a4]@6 ~@2 f4@2 [eb4,g4] ~ g4@2 [d4,f4] ~, ~@8 a4 ~@3 eb4 ~@3", // F Eb Dm
  U: "[d4,f4]@6 ~@4 [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~", // Dm Ebsus2
  V: "[eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ [d5,f5] ~ [d5,eb5,f5] ~ [c5,eb5] ~", // Ebsus2 Dm Cm
  W: "[f4,a4]@6 ~@2 [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] [a4,c5]", // F Gm Am
  X: "[a4,c5]@6 ~@2 [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] [bb4,eb5]", Y: "[[bb4,d5]@19 ~@13]/2",
  Z: "[d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~", // Dm
  AA: "[[d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [eb5,g5] ~ [f5,a5]@10 ~@10]/2", // Dm Eb F
  AB: "[[f4,a4] ~ bb4@2 [a4,c5] ~ [a4,c5] [bb4,d5] [a4,c5]@15 ~@9, ~@2 g4 ~@29]/2", // F Am Bb Am
  AC: "[[f4,a4] ~ [g4,bb4] ~ [a4,c5] ~ [a4,c5] [bb4,d5] [a4,c5]@14 ~@10]/2", AD: "~@10 eb5 ~ [eb5,f5] ~ [eb5,f5] ~",
  AE: "[eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ eb5@2 [d5,f5] ~ [eb5,f5] ~ c5 ~, ~@8 f5 ~@3 d5@2 ~@2", // Ebsus2 Dm Ebsus2
  AF: "[d5,eb5] ~ [bb4,d5] ~ [c5,d5] ~ [a4,c5] ~ [bb4,c5] ~ [g4,bb4] ~ g4@2 [f4,a4] ~, c5@2 ~@2 bb4@2 ~@2 a4@2 ~@2 bb4 ~@3", // Ebmaj7 Bb Csus2 Am Bbsus2 Gm F
  AG: "f4@8 ~@2 [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~, d4@3 ~@5", // Ebsus2
  AH: "[f4,a4]@5 ~@3 [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~ g4@2, ~@14 bb4 ~", // F Gm
  AI: "[a4,c5]@6 ~@2 [a4,c5] ~ [a4,c5] ~ c5@2 [a4,d5] [bb4,eb5], ~@12 a4 ~@3", // Am D5 Eb5
  AJ: "[bb4,d5] ~ [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~", // Bb Ebsus2
  AK: "eb5@2 [d5,f5] ~ [eb5,f5] ~ [c5,eb5] ~ [d5,eb5] ~ [bb4,d5] ~ [c5,d5] ~ [a4,c5] ~, f5 ~@3 d5@2 ~@2 c5@2 ~@2 bb4@2 ~@2", // Dm Ebsus2 Cm Ebmaj7 Bb Csus2 Am
  AL: "[bb4,c5] ~ [g4,bb4] ~ [a4,bb4] ~ [f4,a4] ~ [f4,a4]@7 ~, a4 ~ g4 ~@5", // Bbsus2 Gm Bbmaj7 F
  AM: "a4@2 [eb4,g4] ~ [eb4,g4]@2 [d4,f4] ~ [d4,f4]@7 ~, f4 ~@15", // Eb Dm
  AN: "~@2 [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~ [eb5,f5] ~", // Ebsus2
  AO: "eb5@2 d5 ~ d5@2 [c5,eb5] ~ [d5,eb5] ~ [bb4,d5] ~ [bb4,d5]@2 [a4,c5] ~, f5 ~@3 eb5 ~@3 c5@2 ~@2 c5 ~@3", // Cm Ebmaj7 Bb Am
  AP: "[bb4,c5] ~ [g4,bb4] ~ [a4,bb4] ~ [f4,a4] ~ f4@7 ~, a4 ~ g4 ~ a4@2 ~@2", // Bbsus2 Gm Bbmaj7 F
  AQ: "[g4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~ [g4,bb4] c5 a4@6 ~@2, ~@2 c5 ~", AR: "[a4,c5] ~ [a4,c5] ~ [a4,c5] ~@11",
})).s("gm_sitar").gain(0.2).pan(0.4)

// chords · string ensemble 2 · "Strings"
const string_ensemble_2 = note(`<
  ~@34 A@2 B@2 A@2 C@2 A@2 C@2 A@2 C@2 D@2 E@8 F@6 G@8 H I@2 J@2 K@2 L@2 K@2 M@2 K@2 M@2 N@6 O@8 P@3 Q R S T Q R U V@2 W
  X Y@2 W X Z AA
>`.pickRestart({
  A: "[[bb3,d4,f4]@31 ~]/2", B: "[[a3,eb4,f4]@29 ~@3]/2", C: "[[a3,eb4,f4]@31 ~]/2", D: "[[bb3,d4,f4]@3 ~]/2",
  E: "[~@8 [a3,eb4,f4]@30 ~@2 [eb4,g4,bb4]@16 [f4,bb4,d5]@15 ~ [eb4,a4,c5]@31 ~ [eb4,g4,bb4]@15 ~ [f4,bb4,d5]@8]/8", // F7 Eb Bb Adim Eb Bb
  F: "[~@8 [eb4,f4,a4]@32 [bb3,d4,f4]@31 ~ [a3,eb4,f4]@24]/6", // F7 Bb F7
  G: "[~@10 eb5 ~ eb5 ~ eb5@2 eb5 ~ eb5 ~ eb5 ~ eb5 ~ eb5@2 d5 ~ d5@2 c5 ~ c5@2 bb4 ~ bb4@2 a4 ~ a4@2 g4 ~ g4@2 f4 ~ f4@8 a4@2 g4 ~ g4@2 f4 ~ f4@9 ~ eb5 ~ eb5 ~ eb5 ~ eb5 ~ eb5 ~ eb5 ~ eb5 ~ eb5@2 d5 ~ d5@2 c5 ~ c5@2 bb4 ~ bb4@2 a4 ~ a4@2 g4 ~ g4@2 f4 ~ f4@8 g4 ~ g4 ~ g4 ~ g4@2, ~ f3@15]/8",
  H: "a4@7 ~ a4 ~ a4 ~ a4@2 bb4 ~", I: "[[d4,f4,bb4]@15 ~]/2", J: "[[a4,c5], eb4@15 ~]/2", K: "[[f4,bb4,d5]@31 ~]/2",
  L: "[eb4,a4,c5]/2", M: "[f4,c5,eb5]/2",
  N: "[[f4,bb4,d5]@23 ~ [d5,f5]@2 [eb5,g5]@2 [f5,a5]@12 [a4,f5]@32 [g4,eb5]@16 [f4,d5]@8]/6", // Bb Dm Eb F Dm Cm Dm
  O: "[~@4 [a4,f5]@8 [f4,c5]@8 [eb4,g4]@8 d4@7 ~ [eb4,c5]@16 [d4,bb4]@12, ~@5 bb4@4 ~@7, ~@56 f4@47 ~@25]/8", // Dm F5 Eb Cm Gm
  P: "[~@8 [eb4,f4,c5]@32 ~@2 eb5 ~ eb5 ~ eb5 ~]/3", Q: "eb5 ~ eb5 ~ eb5 ~ eb5 ~ eb5@2 d5 ~ d5@2 c5 ~",
  R: "c5@2 bb4 ~ bb4@2 a4 ~ a4@2 g4 ~ g4@2 f4 ~", S: "f4@7 ~ a4@2 g4 ~ g4@2 f4 ~", T: "f4@9 ~ eb5 ~ eb5 ~ eb5 ~",
  U: "f4@8 g4 ~ g4 ~ g4 ~ g4@2", V: "[a4@7 ~ a4 ~ a4 ~ a4@2 bb4@4 eb5 ~ eb5 ~ eb5 ~ eb5 ~ eb5 ~ eb5 ~ eb5 ~]/2",
  W: "eb5@2 d5 ~ d5@2 c5 ~ c5@2 bb4 ~ bb4@2 a4 ~", X: "a4@2 g4 ~ g4@2 f4 ~ f4@8",
  Y: "[a4@2 g4 ~ g4@2 f4 ~ f4@10 eb5 ~ eb5 ~ eb5 ~ eb5 ~ eb5 ~ eb5 ~ eb5 ~]/2", Z: "g4 ~ g4 ~ g4 ~ g4@2 a4@7 ~",
  AA: "a4 ~ a4 ~ a4@2 bb4@2 ~@8",
})).s("gm_string_ensemble_2").gain(0.15).pan(0.3)

// chords · pad poly · "Polysynth"
const pad_poly = note("<~@75 A@2 B C A@2 B@2 A@2 B@2 A@2 B@2 A D@2 E F G H E F G H E I J K L@2 ~@17>".pickRestart({
  A: "[bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // Bb
  B: "[c4,eb4,f4] ~ [c4,eb4,f4] ~@3 [c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~", // F7
  C: "[c4,eb4,f4] ~ [c4,eb4,f4] ~@3 [c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~@3 [c4,eb4,f4] ~", // F7
  D: "[[bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [bb3,d4,f4] ~ [bb2,f3]@15 ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~@3 [c4,eb4,f4] ~]/2", // Bb Bb5 F7
  E: "[c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~@3 [c4,eb4,f4] ~", // F7
  F: "[c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~", // F7 Eb
  G: "[g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~@3 [f3,bb3,d4] ~", // Eb Bb
  H: "[f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~@3 [c4,eb4,f4] ~", // Bb F7
  I: "[c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [bb3,d4,f4] ~", // F7 Bb
  J: "[bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [bb3,d4,f4] ~", // Bb
  K: "[bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~@3 [c4,eb4,f4] ~", // Bb F7
  L: "[[c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4] ~ [c4,eb4,f4]@14 ~@10]/2", // F7
})).s("gm_pad_poly").gain(0.25)

// chords · acoustic guitar steel · "Steel Guitar"
// … 50 more lines

More by ABBA