Strudelify
Woman in Love cover art

1980 · Guilty

Woman in Love

Barbra Streisand

KeyG♭ majorTempo84 bpm
0:00/0:00
// Woman in Love — Barbra Streisand
// 84 bpm, 4/4, key Gb 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 82 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 · "Electric Piano"
const epiano1 = note(`<
  A@4 ~ B@3 C D E F G H@2 I J@2 K L M N O P Q R S T U V@4 W@4 X Y Z@3 AA@4 AB AC@3 AD AE@2 AF AG AH AI AJ AK AL AM AN@4
  AO AP AQ AR AS AT AU AV AW AX AY AZ BA@5
>`.pickRestart({
  A: "[[bb3,eb4,gb4]@7 ~@5 [b4,eb5,gb5]@3 ~, ~@15 [gb3,bb3,eb4]@15 ~@2]/4", // Ebm B Ebm
  B: "[~@5 eb4 ~ b3@6 ~ eb4@3 eb4@7, gb4@6 ~ gb4@16 ~, eb4@5 ~@2 eb4@7 ~@10, ~@4 bb3@2 ~@7 b3@11]/3",
  C: "~@2 bb3@2 ~@2 eb4 [eb4,ab4], gb4@4 ~ b3@3, ~ eb4@3 ab3@4", // Ab5
  D: "~@3 bb4 ~@3 b3, gb4 b4, ~ eb4@3 ~ ab4@3, ~ bb3 ~ eb4", E: "~@3 bb4 ~@2 db4@2, b3 ~, ~ eb4@3 ~ f4@3, ~ gb4 ab4@2",
  F: "~@7 eb4, bb3@3 db4, ~ db4@3 db5@4, ~ gb4@3, ~@3 bb4@5",
  G: "~@7 e4, e4@3 e4@2 e4@2 ~, ~ db4@2 db4@3 db4@2, ~ ab3@3, ~ ab4",
  H: "[~@4 gb4@4 [b3,eb4]@2 [db4,f4] ~@19 b3@2, b3@4 ~@3 eb4@4 eb4@2 ab4@3, ~ eb4@3 ~@3 gb4@9, ~@9 ab3@7, ~@5 b3!2 eb4]/2", // B Db
  I: "~@3 d4 [d4,f4,bb4]@4, bb3, ~ d4@2 ~@5, ~ f4 ~@2", // Bb
  J: "[~@11 gb4 ~@3 eb4, [eb5,eb6]@2 gb5 ~, ~@4 eb4@5 ~@7, ~@5 ab4@4 ~ bb4@2 ab4@2 ab4@2, ~@6 b4@3 eb5@3 ~ b4@3]/2", // Eb
  K: "~@3 bb4 ~@3 b4, b3@2 ~ db5, ~ eb4@3 ~ f4@3, ~ gb4 ab4@2",
  L: "~@7 gb4, bb4@3 bb4, ~ db5@4 db5@3, ~ gb5 gb5@2, ~@3 bb5@5",
  M: "~@7 ab4, db4, ~ e4@4 e4@3, ~@2 ab4@2 ab4@3 ~, ~@3 db5@3 db5@2",
  N: "~@3 bb4 ~@3 b3, db5@2 ~ eb4, ~ bb4@2 ~ b4@4, ~@2 gb4@2 ~ gb4@3",
  O: "~@3 db4 ~@3 b4, db5@2 ~ gb4, ~ bb4@3 ~ eb4@3, ~ gb4 b3@2",
  P: "~@7 bb5, d4@4 d5 f5 ab5@2, ~ f4@7, ~ ab4@3, ~@3 bb4@5",
  Q: "[eb4,gb4,bb4]@4 f4@2 ~ bb4, ~ d5, ~@4 bb4@3 ~, ~@3 f4", R: "eb5@3 eb5 ~@3 d5, [gb4,bb4] bb4, ~@4 d5@3 ~, ~@3 f4",
  S: "eb5@3 eb5 f5@3 f5, [gb4,bb4] [bb4,d5]", T: "eb5@3 eb5 [bb4,d5,f5]@4, [bb4,gb5] ~",
  U: "[gb4,bb4,eb5]@4 gb4 ~@3 [f4,ab4,db5]@6 [ab4,db5]@2, ~@14 f4 ~", // Ebm Db Db5
  V: "[~@2 db4@2 f4 ~ ab4 ~@15 b4@2 eb4@6 ~@8 eb4@2 db4@6 ~@6 db4@2 ~@10, ~@4 b4@7 ~ b4@6 b4@2 bb4@4 bb4@3 ~@5, ~@4 ab4@6 ab4@2 ab4@5 ab4@3 gb4@5 gb4@2 ~@5, ~@4 eb4@5 eb4@3 ~@3 eb4@4 ~@4 db4@3 ~@6, ~@7 b3@5 ~@20]/4",
  W: "[~@9 eb4 ~ b3@6 ~ eb4@3 eb4@7 ~@2 bb3@2, ~@4 gb4@6 ~ gb4@16 ~ gb4@4, ~@4 eb4@5 ~@2 eb4@7 ~@11 eb4@3, ~@8 bb3@2 ~@7 b3@11 ~@4]/4",
  X: "~@2 eb4 [eb4,ab4] ~@3 bb4, ab3@4 ~ eb4@3, ~ b3@3 gb4@4, ~@3 bb3", // Ab5
  Y: "~@3 b3 ~@3 bb4, b4@2 ~ gb4, ~ ab4@3 ~ eb4@3, ~ eb4 b3@2",
  Z: "[~@2 db4@2 ~@7 eb4 ~@7 e4 ~@2 gb4@2, ab4@4 ~ db4@3 db5@2 db4@2 ~ db4@2 db4@3 db4@2 b3@4, ~ f4@3 bb3@8 ~@2 ab3@6 ~@4, ~@6 gb4@6 e4@3 e4@2 e4@2 ~@2 eb4@3, ~@7 bb4@5 ~@4 ab4@4 ~@4]/3",
  AA: "[[b3,eb4]@2 [db4,f4] ~@19 b3@2 ~@6 d4@2 [d4,f4,bb4]@8 ~@22 gb4@2, ~@3 gb4@9 ~@2 f4@2 ~@9 ab4@3 gb5@4, ~@3 eb4@4 eb4@2 ab4@3 ~@8 [eb5,eb6]@9 eb5@3, ~@5 ab3@7 bb3@8 ~@6 b4@3 ~ bb4@2, ~@6 b3@2 b3@2 eb4@2 ~ d4@2 ~@9 eb4@5 ~@3]/4", // B Db Bb Eb
  AB: "~@3 eb4 ~@3 bb4, ab4!2 b3@2, ~ b4@3 ~ eb4@3, ~@3 gb4",
  AC: "[~@3 b4 ~@7 gb4 ~@7 ab4 ~@3 bb4, ab4@2 bb4@3 bb4 db4@4 ~@2, ~ f4@3 ~@2 gb5@2 gb5@4 ~@2 ab4@2 ab4@3 ~@2 bb4@2 ~, ~@2 db5@2 ~ db5@4 db5@3 ~ e4@4 e4@3 ~@2 gb4@2, ~@7 bb5@5 ~@3 db5@3 db5@2 db5@4]/3",
  AD: "~@3 b3 ~@3 db4, b4 db5, ~ gb4@3 ~ bb4@3, ~ eb4 ~ gb4",
  AE: "[~@3 b4 ~@7 bb5 [eb4,gb4,bb4]@4, b3@4 ~@2 ab4@2 d5 f5 ab5@2 ~@4, ~ eb4@3 d4@8 ~@4, ~@2 gb4@2 ~ f4@7 ~@4, ~@7 bb4@5 ~@4]/2", // Ebm
  AF: "f4@2 ~ bb4 eb5@3 eb5, d5 ~, bb4@3 ~@5, ~ f4 [gb4,bb4]@2", // Gb
  AG: "~@3 d5 eb5@3 eb5, bb4 ~, d5@3 ~@5, ~ f4 [gb4,bb4]@2", AH: "f5@3 f5 eb5@3 eb5, [bb4,d5] [bb4,gb5]",
  AI: "[bb4,d5,f5]@8 [gb4,bb4,eb5]@4 gb4 ~@3", AJ: "[f4,ab4,db5]@6 [ab4,db5]@3 ~ db4@2 f4 ~ ab4 ~, ~@6 f4 ~@9",
  AK: "~@7 b4, b4@7 ~, ab4@3 ab4, eb4@5 eb4@3, ~@3 b3@5", AL: "eb4@3 ~@4 eb4, b4@3 b4, ab4@5 ab4@3, ~@3 eb4@4 ~",
  AM: "db4@3 ~@3 db4 ~, gb4@5 gb4@2 ~, bb4@4 bb4@3 ~, ~@3 db4@3 ~@2",
  AN: "[[bb3,eb4,gb4]@14 ~ [gb3,a3,eb4]@13 [b3,e4,g4]@4]/4", AO: "b3@3 b3 [b3,e4,g4]@4, [eb4,gb4]@9 ~@7",
  AP: "~@2 b3@2 b3@2 ~ e4, [eb4,gb4,a4] g4, ~@4 e4@3 ~, ~@3 b3", AQ: "~@3 gb4 [b3,e4,g4]@4, [b3,eb4]@9 ~@7",
  AR: "[b3,eb4,gb4]@8 [b3,e4,g4]@5 ~@3", AS: "~@7 gb4, [a3,d4], gb4@7 ~, ~@5 d5@3",
  AT: "~@7 e4, c5, e4@7 ~, a4@3 a4, ~@5 e5@3", AU: "~@3 c5, a4, c5@3 ~, e4@5 e4@3, ~@3 a3@5", AV: "[b3,eb4,gb4,b4]@7 ~",
  AW: "~@2 b3!2, ~ [eb4,gb4]", AX: "[b3,e4,g4]@2 ~ b4, ~ [b3,eb4,gb4]", AY: "g4@3 g4 b3@2 b3@2, [b3,e4] [eb4,gb4]",
  AZ: "g4@3 g4 [b3,eb4,gb4]@4, [b3,e4] ~", // B E5
  BA: "[[b3,e4,g4]@7 ~ d4@6 ~@6 d5@4 ~@6 [e5,g5]@10 e4@10 ~@2 c5@4 [eb4,gb4,b4]@14 ~@10, ~@8 a4@16 [a3,e4,a4,c5]@17 ~@39, ~@2 d5@3 ~@5 c5@3 ~@7, ~@8 gb4@10 gb4@7 ~@15 a4@16 ~@24, ~@14 d4@11 ~@25 e4@6 ~@24]/5", // Em B Am
})).s("gm_epiano1").gain(0.22).pan(0.2)

// bass · synth bass 2 · "Bass"
const bass = note(`<
  A@8 B@2 C D E F@2 G B@2 C D H I J K L M@2 N O P Q R S@5 T U V W X Y Z AA T U V AB AC AD AE@2 AF AG AH AI AJ AK AL D AM
  AN AO@2 AP AQ AR AS AT AU AV AW AX AY AX AZ BA BB BC BD BE
>`.pickRestart({
  A: "[eb1@28 ~@2 b1@27 ~ db2@2 ~@2 eb1@30 ~@2 b1@32 ~@2]/8", B: "eb2@2 ~ eb2 ab1@2 ~ ab1", C: "b1@7 ~ db2@3 ~ db2@4",
  D: "gb1@4 ~ gb1 ~ gb1", E: "db2@2 ~ db2 ab1@2 db2@2", F: "[b1@3 ~ b1 eb2 ~ ab1@3 ~ ab1 eb2@2 ab1@2]/2",
  G: "bb1@8 ~@3 bb1 f2@2 bb1@2", H: "db2@5 ~ db2@2 ab1@2 db2@3 ~ db2@2", I: "gb1@4 ~@2 gb1@2 b1@5 ~ b1@2",
  J: "gb1@2 ~ gb1 b1@2 ~ b1", K: "bb1@11 ~ bb1 f1 f1@2", L: "eb1@4 ~@2 eb1@2 bb1@3 bb1 ~@2 bb1@2",
  M: "eb2 ~ eb2@3 ~ eb2@2 bb1@4 ~@2 bb1@2", N: "~@2 eb2@3 ~ eb2@2 bb1@3 ~ bb1 ~ bb1@2",
  O: "eb2 ~ eb2@3 ~ bb1 b1 db2@4 ~@2 db2 ~", P: "db2 ~ db2@3 ~ db2@2 ab1@4 ~@2 ab1@2",
  Q: "eb2@4 ab1@4 ab2 ~ eb2@2 ~@2 eb2@2", R: "ab1 eb2@2 ab1 gb1@4",
  S: "[~@2 gb1@2 ~@2 gb1@2 eb1@12 ~@2 bb1@2 eb2@12 ~@2 b1@14 ~@2 b1 ~ b1@16 eb2@4 ~@2 eb2@2]/5",
  T: "ab1@2 ~ ab1 eb2@2 ~ eb2", U: "ab1@4 ~@2 ab1@2 b1@7 ~", V: "db2@3 ~ db2@4 gb1@8", W: "~ gb1 ~ gb1 db2@2 ~ db2",
  X: "ab1@2 db2@2 b1@3 ~", Y: "b1 eb2 ~ ab1@3 ~ ab1", Z: "eb2 ab1 bb1@2", AA: "~@3 bb1 f2@2 bb1@2 eb2@4 ~@2 eb2@2",
  AB: "~@2 gb1@2 ~@2 gb1@2 db2@5 ~ db2@2", AC: "ab1@2 db2@3 ~ db2@2 gb1@4 ~@2 gb1@2", AD: "b1@5 ~ b1@2 gb1@4 ~@2 gb1@2",
  AE: "[b1@4 ~@2 b1@2 bb1@11 ~ bb1 f1 f1@2 eb1@4 ~@2 eb1@2]/2", AF: "bb1@3 bb1 ~@2 bb1@2 eb2 ~ eb2@3 ~ eb2@2",
  AG: "bb1@4 ~@2 bb1@2 eb2 ~ eb2@3 ~ eb2@2", AH: "bb1@4 ~@2 bb1@2 ~@2 eb2@3 ~ eb2@2",
  AI: "bb1@3 ~ bb1 ~ bb1@2 eb2 ~ eb2@3 ~ bb1 b1", AJ: "db2@4 ~@2 db2 ~ db2 ~ db2@3 ~ db2@2",
  AK: "ab1@2 ~ ab1 eb2@2 ab1@2", AL: "ab2 ~ eb2@2 ~@2 eb2@2 ab1@2 eb2@4 ab1@2", AM: "eb1@6 ~ bb1", AN: "eb1@6 ~ b1",
  AO: "[~@2 b1 ~ b1@2 ~@2 b1@16 e2 ~ e2@3 ~ e2 ~]/2", AP: "b1@2 ~ b1!2 ~ b1@2 e2 ~ e1@2 ~@2 e1@2",
  AQ: "b1@2 ~ b1!2 ~ b1@2 e2 ~ e2@3 ~ e2 ~", AR: "b1@2 ~ b1!2 ~ b1 ~ e2 ~ e1@4 e2 ~",
  AS: "b1@2 ~ b1!2 ~ b1 ~ e2 ~ e2@3 ~ b1 c2", AT: "d2@4 ~ d2 ~ d2", AU: "a1@2 ~ a1 e2@2 a2@2",
  AV: "~@2 e2@4 a1 ~ a2@2 e2@3 ~ a1@2", AW: "b1 ~ b1@3 ~ b1@3 ~ b1 ~ b1 gb1 b1@2",
  AX: "e2 ~ e2@3 ~ e2@2 b1@2 ~ b1!2 ~ b1@2", AY: "e2 ~ e1@4 e2@2 b1@2 ~ b1!2 ~ b1@2",
  AZ: "e2@2 e1@3 ~ e1 ~ b1@4 b1@3 ~", BA: "e2 ~ e2@3 ~ b1 c2 d2@4 ~@2 d2@2", BB: "~ d2 ~ d2 a1@4",
  BC: "~@2 e2@2 ~@2 e2@2 a2@5 ~ a2@2", BD: "e2@2 a1@2 b1@2 ~ b1", BE: "~@2 b1@3 ~ b1@2 ~@8",
})).s("gm_synth_bass_2").gain(0.35).pan(0.6)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  A@4 B@4 ~@16 C D C E F@4 G@7 H@3 I@4 J@4 K L@4 M N O P@2 Q R@5 S@2 T U V@2 W@3 X@2 Y@5
>`.pickRestart({
  A: "[eb5@16 f5@8 db5@4 ~@2 [gb4,bb4,eb5]@28 [f4,db5] ~@5, eb6@59 ~@5, [gb4,bb4]@14 ~@15 ab4 ~@2]/4", // Ebm Db Gb
  B: "[eb5@8 f5@4 db5@2 ~ [eb4,gb4,bb4,eb5]@17, eb6, gb4@7 ~@9, bb4@3 ~@5]/4", C: "[bb3,eb4,gb4] [bb3,d4,f4]",
  D: "[eb4,gb4,bb4] [d4,f4,ab4]", E: "[bb3,eb4,gb4] [d4,f4,ab4]",
  F: "[[eb4,gb4,bb4] [f4,ab4,db5]@2 [eb4,ab4,b4]@4 [db4,gb4,bb4]]/4", // Ebm Db Abm Gb
  G: "[~@8 bb4@24 db5@4 ~@2 [eb4,gb4,bb4,eb5]@33 ~ [gb4,bb4]@8 [ab4,b4]@8 ~@16 [b3,ab4]@8, ~@8 eb6@63 ~@17 bb4@16 ~@8, ~@2 gb4@7 ~@9 eb4@10, ~ eb5@2 ~@8 gb4@3, ~@96 eb5@15 ~]/7", // Ebm Gb Abm E
  H: "[f4@8 [bb3,gb4,bb4]@15 ~ [db4,e4,ab4]@16 [b3,eb4,gb4]@8, [db4,db5]@11 ~ b3@7 ~@5]/3", // Ebm Dbm B Db
  I: "[~ [bb3,gb4] ~ [eb4,ab4]@9 [bb3,d4,f4]@7 ~ [bb3,gb4]@4 [b3,ab4]@4 [bb3,gb4]@4, ~@2 db4 ~@3 b3@16 ~@18 eb4@22 ~@2]/4", // Ebm Ab5 Bb Ebm E Ebm
  J: "[[ab3,b3,eb4]@8 bb3@8 b3@7 ~@13 eb4@4 [ab3,e4]@16 [gb3,bb3,db4]@8, ~ gb3@4 ~@3, ~@4 db4@14 ~@2 db4@7 ~@5, ~@3 bb3@2 ~@3]/4", // Abm Dbm Gb
  K: "[gb3,b3,eb4] [gb3,bb3,db4]", // B Gb
  L: "[[gb3,b3,eb4]@8 [f3,bb3,d4]@15 ~ [gb3,eb4,gb4]@8 [f3,d4,f4]@8 [gb3,eb4,bb4]@8 [ab3,d4,ab4]@8 [gb3,eb4,gb4]@8, ~@3 bb3@5]/4", // B Bb Ebm Dm Ebm Abdim Ebm
  M: "~ bb3 [gb3,bb3,eb4,gb4]@2, [f3,d4,f4] ~", N: "[ab3,d4,ab4] [gb3,bb3,eb4,bb4]", O: "[db3,ab3,f4,db5]",
  P: "[ab3,eb4,b4]/2", Q: "[db4,gb4,bb4]@15 ~",
  R: "[eb5@16 f5@8 db5@4 ~@2 eb5@22 b4 [db5,eb5] [e5,gb5] [g5,a5] [b3,e4,g4]@8 [eb4,gb4]@8 ~@4 g5@4, eb6@8 ~@6 b5@5 ~, [gb4,bb4]@28 ~@2 [b3,gb4,a4]@25 ~@9 b3@16, ~@9 [e4,g4]]/5", // Dbsus2 Esus2 Gsus2 Em Ebm Gb B7 Em
  S: "[[eb4,gb4,a4,gb5]@8 ~@8 [eb4,gb4]@7 ~@5 e5@4, ~@8 [b3,e4,g4,e5]@8 b3@6 ~ g4@9, ~@14 b4@13 ~@5, ~@23 b3@7 ~@2, ~@3 e4]/2", // Ebdim Ebm Em
  T: "[b3,eb4,gb4,gb5]@7 ~ [b3,e4,g4]@8, ~@7 g5@8 ~", U: "[a3,d4,gb4,a5]", V: "[~@2 c6 d6 e6@3 g6@9, [a3,c4,e4]]/2",
  W: "[[a3,b3,eb4,gb6]@11 ~ [b4,db5] [eb5,e5] [gb5,g5] a5 [g3,b3,e4]@8 [gb3,b3,eb4]@8 ~@4 g5@4 ~@4 gb3@4, ~@15 b5@20 ~@13, ~@8 g3@3 ~, ~@32 e4@9 ~@7, ~@32 b3@7 ~ [b3,gb4,gb5]@8]/3", // B7 Bsus2 Emaj7 Gmaj7 Em B B5
  X: "[[g3,b3,g4,e5]@8 [gb3,eb4,a4]@8 ~@3 e5@4 ~ [a3,eb4,gb4,gb5]@8, ~@2 b4@3 ~@3, ~@2 [g3,e4,g4] ~, ~@8 b3@3 ~ b3@3 ~]/2", // Em Ebdim C
  Y: "[[g3,b3,e4,g5]@4 gb5@3 g5 a5@4 ~@2 c6 d6 e6@3 ~ [a3,c4,e4]@8 [gb3,b3,eb4,gb6]@8 ~@4, ~@8 [gb3,d4]@16 [e3,a3,c4]@15 ~@41, ~@4 a3@7 ~@8 g6@9 ~@12]/5", // Em Am B D Am
})).s("gm_string_ensemble_1").gain(0.14).pan(0.2)

// chords · acoustic guitar steel · "Acoustic Guitar"
const acoustic_guitar_steel = note(`<
  A@7 B C D E F G H@3 I J K L M N O P Q R S@2 T U@5 V@3 W@2 X@6 Y Z AA@3 AB AC@3 AD AE@2 AF AG AH AI AJ@4 AK AL AM AN AO
  AP AQ AR AS AT AU AV AW AX AY@2 AZ
>`.pickRestart({
  A: "[[bb2,eb3,gb3,bb3]@28 ~@2 gb3@16 gb3@2 [gb3,bb3,eb4]@3 gb3@3 gb3@2 [b2,gb3,bb3,eb4] ~ [db3,gb3,db4,eb4] ~@3 gb3@4 gb3@2 [gb3,bb3]@8 bb3@2 bb3@6 bb3@2 ~@4 [gb3,bb3,eb4]@2 bb2 ~ [f3,bb3] ab3@13 [ab3,eb4]!2 [ab3,eb4]@2, eb2@17 ~@13 b2@26 ~@6 eb2@31 ~@19, ~@30 [bb3,eb4]@18 ~@3 [bb3,eb4]@5 ~@6 eb4@16 eb4@8 ~@8 eb4@14 ~@4, ~@31 eb3@7 ~ gb3@2 ~@2 [gb3,bb3,eb4]@2 ~@11, ~@62 bb3@6 ~@20 eb3@5 ~ b2@18]/7", // Ebm Bmaj7 Ebm7 Gb Ebm Bb5 Ab5 Eb5 …
  B: "[b2,ab3,eb4]", C: "[eb3,bb3,eb4]@3 bb3@3 [gb3,bb3,eb4]@2 [ab2,b3]@6 [ab2,b3]@2, ~@2 ab3 ~",
  D: "[bb2,bb3,eb4]@7 ~@7 [ab2,ab3,b3,eb4]@2, gb3@4 ~@3 eb4@7 ~@2, ~@7 bb3@2 ~@3 eb3@4, ~@4 [ab2,ab3,b3]@3 ~", // Eb5 Abm
  E: "[gb3,bb3,eb4]@2 ~ b2 db4@2 ~ db3, b2@3 ~ db3@3 ~, ~@4 [gb3,bb3,eb4]@5 ~@3 db4@4", // Ebm
  F: "[gb3,bb3,db4]@3 ~@3 [bb3,db4]@3 [gb3,bb3,db4] ~@4 db3@2, ~@3 [gb3,bb3,db4]@3 ~@6 [gb3,bb3,db4]@4, ~@2 db3@3 db3@2 ~", // Gb Bbm Gb
  G: "[e3,ab3,db4]@4 [ab3,db4]@3 ab3@2 [e3,ab3] ab3@2 [ab3,db4]@4, ~@9 db4@3 e3@2 ~@2", // Dbm Db5 E Db5
  H: "[[gb3,b3]@4 eb3@3 eb3 eb3@2 [eb3,gb3,bb3] ~@3 eb3@4 eb3@2 ab3@6 [eb3,ab3]@4 [f3,bb3]@6 [f3,bb3,d4]@3 ~@7 bb2@2, ~@4 [gb3,b3]@7 ~@3 [ab3,b3]@6 b3@11 ~@9 bb2@2 bb2@4 ~@2, ~@20 eb3@2 ~@17 [f3,bb3,d4]@2 d4@7, ~@41 [f3,bb3]@3 [f3,bb3]@4]/3", // B5 Ebm Ab5 Bb5 Bb B5 Abm Bb …
  I: "[gb3,bb3]@2 ~ eb3 [eb3,ab3,b3]@2 ~ ab2, eb3@3 ~@3 [eb3,ab3]@2, ~@4 [gb3,bb3]@5 ~@7", // Gb Abm Ab5 Gb
  J: "[gb3,bb3]@2 [eb3,gb3,bb3]@2 [ab3,b3]@2 ~ eb3, bb2@4 eb3@3 ~, ~@3 [ab3,b3]", // Gb Ebm Abm
  K: "[gb3,bb3]@4 ~@2 b2@2 ~ [f3,ab3,db4]@2 ~@3 db3@2, db4 ~, b2@6 ~@2 db3@3 db3@3 ~@2, ~ [gb3,bb3] ~ [ab3,db4]", // Gb Db Gb Db5
  L: "[db3,gb3,bb3]@3 ~@3 bb3@4 ~@4 db3@2, gb2, ~@3 [gb3,bb3]@3 gb3@3 ~@3 [gb3,bb3]@4, ~@2 db3@3 db3@2 ~", // Gb
  M: "[e3,ab3]@4 [e3,ab3]@3 ~@7 db3@2, db3@4 db3 db3@2 ~, b3 ~@6 ab3@2 [e3,ab3]@3 [e3,ab3]@4", // E
  N: "[gb3,bb3]@2 db3!2 [gb3,b3]@2 ~ b2, gb2 ~@3 [gb3,bb3]@4 eb3@8, ~@4 b2@3 ~, ~@3 [gb3,b3]", // Gb B5 Gb B5
  O: "gb3@2 ~ bb2 [eb3,gb3]@2 ~ b2, db4 b3, bb2@3 ~ b2@3 ~, ~ gb3 ~ [eb3,gb3]", // Ebm
  P: "[f3,bb3]@2 [f3,bb3] ~@4 bb2, bb2@3 bb2!2 bb2@2 ~, ~@7 bb3@2 d4@7, ~@9 [f3,bb3]@3 [f3,bb3]@4", // Bb5
  Q: "[gb3,bb3]@2 [gb3,bb3] ~@4 bb2, eb3@3 eb3 bb2 bb2@2 ~, ~@7 [gb3,bb3]@2 d3@7, ~@9 [f3,bb3]@3 [f3,bb3]@4", // Gb Bb5
  R: "[gb3,bb3]@4 ~@3 gb3 bb2 ~@5 bb2@2, eb3@3 eb3 ~ bb2@2 ~, ~@4 [gb3,bb3,eb4]@4 ~ bb3@3 [f3,bb3,d4]@4", // Gb Ebm Bb
  S: "[[gb3,bb3]@4 ~@3 bb3 ~@6 bb2@2 gb3@4 ~@3 [f3,bb3] bb2 ~@5 bb2@2, eb3@3 eb3 bb2 bb2@2 ~@6 bb2@2 ~, ~@4 [gb3,bb3]@4 ~ [f3,bb3]@3 bb3@8 [gb3,bb3]@4 ~ [f3,bb3]@3 [f3,bb3,d4]@4, ~@6 f3@2 eb3@3 eb3@5]/2", // Gb Bb5 Gb Bb5 Gb Bb5 Bb
  T: "[gb3,bb3]@4 ~@2 eb3@2 [f3,ab3]@4 [f3,ab3]@2 ~ [f3,ab3], eb3@3 ~ db3@3 db3, ~ [gb3,bb3] db4@2", // Gb Fm Gb
  U: "[~@6 ab2@2 [ab3,b3]@4 [eb3,ab3,b3]@3 ~@2 eb3 eb3@2 eb3@2 eb3@2 [eb3,ab3,b3]@4 [eb3,ab3,b3]@3 [eb3,b3]@2 [eb3,b3]@3 ~@2 ab2@2 [gb3,bb3]@4 [gb3,bb3]@2 ~@6 [gb3,bb3]@3 ~ gb3 ~ gb3 ~ bb3@6 ~@2 bb3 ~ eb4@6 bb3 ~ [gb3,bb3,eb4]@2, db3@2 db3@6 ab2@8 ab2@8 ~@16 gb2@10 gb2@5 ~ [eb2,bb3]@4 ~@20, ~ [f3,ab3,db4]@3 [f3,ab3,db4]@4 ~@7 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@4 ~@7 ab3@5 [eb3,ab3,b3]@4 db3@6 db3@2 db3@2 ~@6 [eb3,eb4]@11 ~@3 gb3@2 ~@8, ~@47 [gb3,bb3]@2 [gb3,bb3]@3 ~@8 gb3@4 ~@6 bb3@4 ~@6]/5", // Abm Gb Ebm Eb5 Db Abm Eb Gb
  V: "[eb3@2 [gb3,bb3,eb4] ~ bb2 ~ [f3,bb3] ab3@13 [ab3,eb4]!2 [ab3,eb4]@2 [b2,ab3,eb4]@16 [eb3,bb3,eb4]@3 bb3@3 [gb3,bb3,eb4]@2, ~ b2@3 ~@4, ~@3 eb4@7 ~@14]/3", // Ebm Bb5 Ab5 Abm Eb5 Ebm
  W: "[[ab2,b3]@6 [ab2,b3]@2 [bb2,bb3,eb4]@7 ~@7 [ab2,ab3,b3,eb4]@2 [gb3,bb3,eb4]@4 ~@2 b2@2, ab3@4 ~@4 gb3@4 ~@3 eb4@7 ~@10, ~@15 bb3@2 ~@3 eb3@5 ~@3 [gb3,bb3,eb4]@4, ~@8 [ab2,ab3,b3]@3 ~ b2@3 ~]/2", // Abm Eb5 Abm Ebm Abm
  X: "[db4@4 ~@2 db3@2 [gb3,bb3,db4]@3 ~@3 [bb3,db4]@3 [gb3,bb3,db4] ~@4 db3@2 [e3,ab3,db4]@4 [ab3,db4]@3 ab3@2 [e3,ab3] ab3@2 [ab3,db4]@4 [gb3,b3]@4 eb3@3 eb3 eb3@2 [eb3,gb3,bb3] ~@3 eb3@4 eb3@2 ab3@6 [eb3,ab3]@4 [f3,bb3]@6 [f3,bb3,d4]@3 ~@7 bb2@2 [gb3,bb3]@4 ~@2 eb3@2, db3@6 ~@5 [gb3,bb3,db4]@3 ~@6 [gb3,bb3,db4]@4 ~@9 db4@3 ~@24 b3@11 ~@9 bb2@2 bb2@4 ~@2 eb3@6 ~@2, ~@4 db4@4 ~@4 db3@6 db3@4 ~@14 e3@2 ~@6 [gb3,b3]@7 ~@3 [ab3,b3]@6 eb3@2 ~@17 [f3,bb3,d4]@2 d4@8 ~@7, ~@81 [f3,bb3]@3 [f3,bb3]@5 ~@3 [gb3,bb3]@4]/6", // Gb Bbm Gb Dbm Db5 E Db5 B5 …
  Y: "[eb3,ab3,b3]@2 ~ ab2 [gb3,bb3]@2 [eb3,gb3,bb3]@2, ~ [eb3,ab3] bb2@2", // Abm Gb Ebm Ab5
  Z: "[ab3,b3]@2 ~ eb3 [gb3,bb3]@2 ~ b2, eb3@3 ~ db4@4, ~@2 [ab3,b3]@2 b2@3 ~, ~@3 [gb3,bb3]", // Abm Gb Abm Gb
  AA: "[~ [f3,ab3,db4]@2 ~@3 db3@2 [db3,gb3,bb3]@3 ~@3 bb3@4 ~@4 db3@2 [e3,ab3]@4 [e3,ab3]@3 ~@7 db3@2 [gb3,bb3]@4 db3@2 db3@2, db3@3 db3@3 ~@2 gb2@16 ~@16 gb2 ~@7, ~@4 [ab3,db4]@4 ~@3 [gb3,bb3]@3 gb3@3 ~@3 [gb3,bb3]@4 b3 ~@6 ab3@2 [e3,ab3]@3 [e3,ab3]@4 ~@4 [gb3,bb3]@4, ~@6 db3@3 db3@2 ~ db3@4 db3 db3@2 ~@5]/3", // Db Gb E Gb Db5 Gb E Gb
  AB: "[gb3,b3]@2 ~ b2 gb3@2 ~ bb2, eb3@2 ~ gb3, b2@3 ~ bb2@3 ~, ~ [gb3,b3] db4@2", // B5
  AC: "[[eb3,gb3]@4 ~@2 b2@2 [f3,bb3]@4 [f3,bb3]@2 ~@8 bb2@2 [gb3,bb3]@4 [gb3,bb3]@2 ~@8 bb2@2 [gb3,bb3]@4 ~@3 gb3, b3@8 ~@7 bb3@2 d4@7 ~@7 [gb3,bb3]@2 [f3,bb3]@3 [f3,bb3]@4 ~@4 [gb3,bb3,eb4]@4, b2@3 ~ bb2@3 bb2 bb2 bb2@2 ~@5 bb2 bb2@2 ~@5, ~@4 [eb3,gb3]@4 ~@9 [f3,bb3]@3 [f3,bb3]@4 eb3@6 eb3@2 ~ d3@7 eb3@6 eb3@2]/3", // Ebm Bb5 Gb Bb5 Ebm Bb5
  AD: "bb2 ~@5 bb2@2 [gb3,bb3]@4 ~@3 bb3, ~ bb3@3 [f3,bb3,d4]@4 eb3@6 eb3@2, ~ bb2@2 ~@3 [gb3,bb3]@2", // Gb Bb Gb
  AE: "[~@6 bb2@2 gb3@4 ~@3 [f3,bb3] bb2 ~@5 bb2@2 [gb3,bb3]@4 [gb3,bb3]@2 eb3 ~, bb2 bb2@2 ~@6 bb2@2 ~@5, ~ [f3,bb3]@3 bb3@8 [gb3,bb3]@4 ~ [f3,bb3]@3 [f3,bb3,d4]@5 ~@7, ~@2 f3@2 eb3@3 eb3@5 eb3@3 ~]/2", // Bb5 Gb Bb5 Gb Bb5 Bb
  AF: "[f3,ab3]@4 [f3,ab3]@2 ~ [f3,ab3] ~@6 ab2@2, db4@8 ~ [f3,ab3,db4]@3 [f3,ab3,db4]@4, db3@3 db3!2 db3@3", // Fm Db
  AG: "[ab3,b3]@4 [eb3,ab3,b3]@3 ~@2 eb3 eb3@2 eb3@2 eb3@2, ab2@7 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@4, ~ ab2", // Abm
  AH: "[eb3,ab3,b3]@4 [eb3,ab3,b3]@3 [eb3,b3]@2 [eb3,b3]@3 ~@2 ab2@2, ~@7 ab3@5 [eb3,ab3,b3]@4", // Abm
  AI: "[gb3,bb3]@4 [gb3,bb3]@2 ~@6 [gb3,bb3]@3 ~, gb2@10 gb2@5 ~, db3@3 db3!2 ~@3, ~@7 [gb3,bb3]@2 [gb3,bb3]@3 ~@4", // Gb
  AJ: "[gb3 ~ gb3 ~ bb3@6 ~@2 bb3 ~ eb4@6 bb3 ~ [gb3,bb3,eb4]@2 eb3@2 [gb3,bb3,eb4] ~ bb2 ~ [a3,eb4]@4 [a3,eb4]@2 [gb3,a3,eb4]@2 ~@3 [a3,eb4] ~ gb3 [gb3,a3,eb4]@2 [gb3,a3,eb4] ~@2 [gb3,a3,eb4] [gb3,a3,eb4]@2 [gb3,a3,eb4]@2 [gb3,a3,eb4]!2 ~@4 [g3,b3,e4]@3 [g3,b3,e4], [eb3,eb4]@11 ~@3 gb3@2 ~@14 gb3 ~@7 b2@10 b2@8 ~@8, [eb2,bb3]@4 gb3@4 ~@6 bb3@4 ~@21 [gb3,a3,eb4]@2 ~ [a3,eb4]@2 ~@20, ~@40 gb3@3 ~@4 [gb3,a3,eb4]@2 ~@7 e3@8]/4", // Ebm Adim Ebdim Adim Ebdim Em Eb Eb5 …
  AK: "~ gb3 gb3@2 [b3,eb4]@4 [g3,b3,e4] ~ g3 ~ [g3,b3,e4]@2 ~ [g3,b3,e4], b2@9 ~@7, ~@2 gb3 ~ e3@3 e3", // B Em
  AL: "~ [gb3,b3] gb3@2 [b3,eb4]@4 ~@2 e4@2 [g3,b3,e4]@2 ~ [g3,b3,e4], b2 ~, ~@2 gb3 ~ e3@3 e3", // B5 B Em
  AM: "~ [gb3,b3,eb4] [gb3,b3,eb4]@2 gb3@2 ~@2 e3@2 e3@2 e3 ~ e3!2, b2@3 ~, ~ eb4@2 ~, ~ b3 [g3,b3,e4]!2, ~@3 gb3@3 ~@2", // B Em
  AN: "~ gb3 [gb3,b3,eb4]@2 gb3@2 gb3@2 [b3,e4]@4 [g3,b3,e4]@3 ~, ~@2 [b3,eb4]@2 g3 ~@3", // B E5 Em B
  AO: "[gb3,a3,d4]@4 [gb3,a3,d4]@3 [gb3,a3,d4]@2 ~@5 a2@2, ~@9 [gb3,a3,d4]@3 [gb3,a3,d4]@4, ~@5 d3@3", // D
  AP: "e3@2 ~@2 [e3,a3,c4]@2 a2 [e3,a3,c4] ~ [e3,a3] [e3,a3]@2 [e3,a3,c4]@2 [a2,e3] ~, [a3,c4]@4 ~@5 c4@3 ~@4, ~ a2@2 ~ a2@2 ~@2", // Am A5 Am A5 Am
  AQ: "[e3,a3,c4]@4 [e3,a3,c4]@2 ~ [e3,a3,c4] ~@6 a2@2, a2@3 a2!2 a2@2 ~, ~@9 [e3,a3,c4]@3 [e3,a3,c4]@4", // Am
  AR: "gb3 ~ gb3@2 [gb3,b3,eb4]@2 ~ [gb3,b3] ~ gb3 ~@2 [gb3,b3]!2 ~ [gb3,b3], b2@6 b2@2 b2@3 b2@2 ~ b2@2, b3@2 ~@3 [gb3,b3] ~@2", // B B5
  AS: "~@7 [gb3,b3] ~ gb3 ~@4 [b2,g3]@2, e3@6 e3@2 b2@3 b2@3 ~@2, ~@2 [g3,b3]@2 ~ [gb3,b3] [gb3,b3,eb4]@2", // B5 Em G B5 B
  AT: "[g3,b3,e4] ~ [g3,b3] ~@4 [gb3,b3] ~@6 b2@2, e3@3 e3 b2 b2@2 ~, ~@4 [g3,b3]@4 ~ [gb3,b3]@3 [eb3,gb3,b3]@4", // Em G B5 G B5 B
  AU: "[g3,b3] ~@3 [g3,b3]@2 ~ [g3,b3] b2 ~@3 gb3@2 [b2,gb3]@2, e3 b3 ~@3 b2@2 ~, ~@3 e3@3 e3@2 ~ [gb3,b3]@3 [b3,eb4]@4", // G B5 B
  AV: "[g3,b3] ~ [g3,b3]@2 [g3,b3,e4]@2 ~ [g3,b3] ~@2 b2@2 ~@2 b2@2, e3@3 e3 b2 ~@3, ~@9 [gb3,b3]@3 [gb3,b3,eb4]@4", // G Em G B5 B
  AW: "[g3,b3,e4] ~ g3@2 ~@2 e3@2 ~@2 gb3@2 [gb3,a3,d4]@2 ~ [a3,d4], e3@2 [g3,b3,e4]@2 d3@3 d3", // Em D D5 Em
  AX: "~@4 [gb3,a3,d4]@2 d3 ~ [a3,c4] ~ [e3,a3]@2 [a3,c4]@2 ~ [a3,c4], d3 d3@2 ~ a2@2 ~@2, ~ [a3,d4]@3 ~@10 e3@2", // D Am A5 Am D5
  AY: "[e3 ~ e3@2 ~@3 a3 ~@2 e3@2 [a3,c4]@2 ~@4 e3@2 ~@2 a2@2 ~@2 gb3@2 gb3@2 gb3 [gb3,b3], ~ [a3,c4]@3 [a3,c4]@4 ~@6 e3@2 e3@2 ~@2 [e3,a3,c4]@4 b2@8, ~@6 e3@2 a2@4 ~@3 [a3,c4]@2 [a3,c4]@3 ~@8 [b3,eb4]@4]/2", // Am B5 Am B
  AZ: "~@4 [gb3,b3,eb4]!2 b2 [gb3,b3,eb4] ~@8, b2 b2@2 ~@5, ~ [gb3,b3,eb4]@3 ~@12", // B
})).s("gm_acoustic_guitar_steel").gain(0.17).pan(0.8)

// chords · acoustic guitar steel · "Acoustic Guitar" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@4 A@2 ~@2 B C D E F G H ~ I G J K L ~@2 M ~ N ~@3 O@2 P Q R@2 ~ S@2 ~ T@3 U V ~ W X Y Z@2 ~ AA@2 ~ AB ~@3 AC AD AE
  AF@2 AG ~ AH AI ~ AJ ~@3 AK AL ~ AM ~@2 AN AO@2 ~
>`.pickRestart({
  A: "[~@6 eb3@2 ~ gb3@2 ~@5, ~@5 bb2@9 ~@2, ~@6 gb3 ~ eb3@4 ~@4]/2",
  B: "gb3@3 ~@9 [eb3,ab3]@4, ~@3 [gb3,eb4]@3 ~@2 eb4@8, ~ eb3@2 ~", C: "~@2 gb3!2 ~@4", D: "~@2 f3 [f3,b3]",
  E: "~@6 gb3@3 ~@7, gb2", F: "~@4 e3@3 [e3,db4]@2 ~ e3@2 ~@2 e3@2", G: "eb3 ~@3", H: "~@3 eb3!2 ~@3", I: "~@3 b3",
  J: "~@7 f3 ~@4 f3@4", K: "~@9 gb3@2 ~@5", L: "~@7 e3@2 ~@7", M: "~@5 d4@2 [f3,d4]@2 ~@7", N: "~@9 f3@3 ~@4",
  O: "[~@15 eb3@2 ~@15]/2", P: "~ ab2@2 ~@5", Q: "~@2 db3@5 ~@9",
  R: "[~@4 [eb3,gb3] ~@5 gb3@2 ~@20, ~ bb2@8 ~@7, ~@8 eb3@7 ~@17]/2", // Ebm
  S: "[~@8 gb3@3 ~@9 [eb3,ab3]@5 ~@3 gb3@2 gb3@2, ~@11 [gb3,eb4]@3 ~@2 eb4@8 ~@8, ~@3 eb3@2 ~@3]/2", // Ab5 Ebm
  T: "[f3@4 [f3,b3]@4 ~@6 gb3@3 ~@11 e3@3 [e3,db4]@2 ~ e3@2 ~@2 e3@2 eb3@4 ~@4, ~ gb2@2 ~@3]/3", U: "~@7 eb3",
  V: "eb3 ~@7", W: "~ b3 eb3 ~", X: "~@15 f3", Y: "~ f3 ~@2", Z: "[~ gb3@2 ~@12 e3@2 ~@15]/2",
  AA: "[~@13 d4@2 [f3,d4]@2 ~@15]/2", AB: "~ f3@3 ~@12", AC: "~@7 eb3@2 ~@7", AD: "~@5 ab2@2 ~", AE: "~@10 db3@5 ~",
  AF: "[~@12 [eb3,gb3] ~@5 gb3@2 ~@12, ~@5 bb2@8 ~@3, ~@16 eb3@7 ~@9]/2", AG: "~ gb3 ~@6", AH: "~@6 gb3@3 ~ b3 ~@5",
  AI: "~ [b3,eb4] ~ gb3 ~ [g3,b3] ~@2", AJ: "~@5 g3 ~@2", AK: "~@9 b3 ~@6", AL: "~ [g3,b3] ~@6", AM: "~ g3 ~@6",
  AN: "~@8 e3 ~@7", AO: "[~@15 e4@9 ~@8]/2",
})).s("gm_acoustic_guitar_steel").gain(0.08).pan(0.8)

// bass · piano
const bass_2 = note("<A@8 ~@24 B@5 ~@24 C@4 ~@17>".pickRestart({
  A: "[[eb1,eb2]@28 ~@2 [b0,b1]@25 ~ [b0,b1]@2 [db1,db2] ~@3 [eb1,eb2]@30 ~@2 [b0,b1]@32 ~@2]/8", // Eb B Db Eb B
  B: "[~@4 [eb1,eb2]@14 ~ [b0,b1]@16 ~@5]/5", C: "[[eb1,eb2]@14 ~ [b0,b1]@13 ~@4]/4",
})).s("gm_piano").gain(0.33)

// chords · lead 5 charang · "Electric Guiatar"
const lead_5_charang = note("<A B C@2 D E F@2 ~@24 G H I J@2 ~@24 A K@2 L ~@17>".pickRestart({
  A: "~@2 [eb4,bb4,eb5]@2 [db4,ab4,db5] ~ [bb3,gb4,bb4] ~ [eb4,bb4,eb5]@2 [db4,ab4,db5] ~ [bb3,gb4,bb4] ~ [ab3,eb4,ab4] ~", // Eb5 Db5 Ebm Eb5 Db5 Ebm Ab5
  B: "[bb3,gb4,bb4]@2 [ab3,eb4,ab4] ~ [gb3,db4,gb4]@2 [ab3,eb4,ab4] ~ [bb3,gb4,bb4]@2 [ab3,eb4,ab4] ~ [gb3,db4,gb4] ~ [f3,bb3,f4] ~", // Ebm Ab5 Gb5 Ab5 Ebm Ab5 Gb5 Bb5
  C: "[[gb3,db4,gb4]@2 [ab3,eb4,ab4] ~ [bb3,gb4,bb4] ~ [gb3,eb4,gb4]@19 ~@7]/2", // Gb5 Ab5 Ebm
// … 69 more lines

More by Barbra Streisand