Strudelify

Luck Be a Lady

Barbra Streisand

KeyB majorTempo132 bpm
0:00/0:00
// Luck Be a Lady — Barbra Streisand
// 132 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 104 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(132/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 · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
  A@3 B@6 C@2 D E F G@3 H@2 I@2 J@6 K@7 ~@4 L ~ M N ~@2 O@2 P Q ~@4 R S T U ~@4 V ~ V ~@21 W ~@19
>`.pickRestart({
  A: "[~@5 [b3,e4,f#4]@5 [a#3,d#4,f#4]@5 [a3,d4,f#4]@5 [a#3,d#4,f#4]@4]/3", // Bsus4 D#m D D#m
  B: "[~@2 [b3,e4,f#4]@11 ~ [a#3,d#4,f#4]@11 ~ [a3,d4,f#4]@13 [a#3,d#4,f#4]@13 [e3,a#3,d4,e4]@25 [b2,a3,c#4,d#4,f#4]@6 ~@13, ~@52 f#2@23 ~@2 b1@4 ~@15]/6", // Bsus4 D#m D D#m Em7b5 B7
  C: "[~@5 [f#3,b3,e4]@7 [e3,a#3,d#4]@20, ~@5 f#2@27]/2", D: "[b2,f#3,a3,c#4,d#4]@5 ~@11",
  E: "~@5 [e2,d3,g#3,c#4]@6 [f2,g#3,b3,d4]@5", // C#m Fdim
  F: "~@2 [f#2,f#3,b3,d#4]@2 [e2,g3,b3,c#4,e4]@2 [d#2,a#3,c#4,d#4,f#4]@2 [c#2,c#3,b3,e4]@2 ~ [d2,d3,c4,f4]@3 [d#2,d#3,c#4,f#4]@2", // B C#m7b5 D#m7 C#m7 Dm7 D#m7
  G: "[[e2,d4,f#4,g#4,c#5]@7 ~@3 c#4@37 ~, ~@7 e2@39 ~@2, ~@4 d3@19 ~, ~@9 [f#3,g#3]@38 ~]/3", // C#m F#sus2
  H: "[~@2 [d#2,g3,b3,c#4,f#4]@6 [f#2,e3,a#3,d4,f#4]@7 [b2,a3,c#4,d#4,f#4]@16 ~]/2", // B F#aug B7
  I: "[[f3,b3,e4]@7 [e3,a#3,d#4]@8 [f#3,a3,c#4,d#4]@9 ~@8]/2", // E D# D#m7b5
  J: "[~@2 [e2,d3,f#3,g#3,c#4]@6 [f2,f3,g#3,b3,d4]@6 ~ [f#2,f#3,b3,d#4]@7 [f2,a3,c#4,d#4,g#4]@8 ~ [e2,d3,g#3,c#4,d4,f#4,g#4]@42 [d#4,f4,g4,a#4]@12 ~@2 [a3,c#4,d#4,g#4]@9]/6", // C#m Fdim B C# C#m D# Amaj7
  K: "[~@5 [d#4,f4,g4,a#4]@18 [f3,a3,b3,e4]@24 [b3,d#4,f#4,b4]@29 [f#3,g#3,b3,e4]@18 [e3,g3,a#3,c4,d#4]@18]/7", // D# Fmaj7 B E C7
  L: "g4@2 ~ g4@3 ~@10, [e4,a#4,e5,a5,d6]@5 ~@11", M: "[e4,a4,d5,e5,a5,d6]@4 ~@4 [f4,a#4,d#5,f5,a#5,d#6]@5 ~@3",
  N: "[g4,b4,e5,g5,b5,e6]@4 ~@4 [f4,a#4,d#5,f5,a#5,d#6]@5 ~@3", // Em D#sus2
  O: "[[b3,d#4,f4,g#4]@7 ~ [c4,e4,f#4,a4]@5 ~ [b3,d#4,f4,g#4]@9 ~ [g3,c#4,f#4]@4 [f#3,c4,f4]@3 ~]/2", // Fm7b5 F#m7b5 Fm7b5 F# F
  P: "[f3,b3,d#4]@7 ~ [g3,b3,c#4,e4]@3 ~ [f#3,a#3,c4,d#4]@3 ~", // Fm7b5 C#m7b5 Cm7b5
  Q: "[f3,b3,d#4]@3 ~ [e3,a#3,d#4]@3 ~ [d3,g#3,c#4,e4]@3 ~ [c3,f#3,b3,d4]@3 ~", // Fm7b5 D# C#m Bm
  R: "[f#3,b3,c#4,e4,f#4] [g3,a#3,c#4,e4,f#4]", S: "[f#3,b3,c#4,e4,f#4] [f#3,a#3,c4,f4]",
  T: "[f3,b3,e4]@2 [e3,a#3,d4,f#4] [d#3,a3,d4,g4]", U: "[d3,g#3,c4,e4,g#4]",
  V: "~@3 [a#3,d4,e4,g4]@5 ~@3 [f3,b3,d#4,g4]@5", W: "[g3,c4,e4], f3@7 ~",
})).s("gm_epiano2").gain(0.38)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~@2 A B@6 C@2 D E F G@5 H@2 I@7 J@6 K L M N O P Q R@2 S T U V W X@2 Y@2 Z@2 AA AB AC AD AE AF AG AH AI AJ AK AL AM ~@2
  AN AO AP AQ@2 AR AS ~@8 AT AU AV AW AX@2 AY AZ BA BB BC BD BE BF@2 BG@4 ~
>`.pickRestart({
  A: "~@8 b2@7 ~, ~@8 a#2 ~@7", B: "[a2 [b1,e2] f#1@49 ~ f#1@24 ~ b1@6 ~@13]/6", C: "[~@5 f#1@27]/2", D: "b1@5 ~@11",
  E: "~@5 e1@6 f1@5", F: "~@2 f#1@2 e1@2 d#1@2 c#1@2 ~ d1@2 ~ d#1@2", G: "[e1@8 e2@41 ~ d#1@6 f#1@7 b1@16 ~]/5",
  H: "[f#1@14 ~ b1@11 ~@6]/2",
  I: "[~@2 e1@6 f1@6 ~ f#1@5 ~@2 f1@8 ~ e1@20 g#1 a1 a#1@20 d#2@11 ~ c#2 c2 b1@13 ~ a#1@11]/7",
  J: "[~@4 a1 g#1 ~ g1@24 f#1@29 f#2@18 f#1@18]/6", K: "b1@3 f#2@2 f#2 b1@2 c2@3 g2@2 g2 c2@2",
  L: "c2@3 g2@2 g2 c2@2 c#2 g2 c#3 b2 a#2 g2 c#2 g2", M: "c2@3 g2@2 g2 c2@2 c#2@3 g#2 ~ g#2 a#2 g#2",
  N: "c2@3 g2 ~ g2 c2 g2 c#2@2 g2 c#3 g2 a#2 g2 b2", O: "c3 ~ c2 g2 ~ g2 c2 ~ c#2@2 c#2 g#2@2 g#2 c#2 g#2",
  P: "c2 g2 c3 f3 e3 c#3 g#3 c#3 g3 f3 d#3 a#2 g#2 c#3 g2 c3", Q: "c2@2 c2 g2@2 g2 c2 g2 c#2@2 c#2 g#2@2 g#2 c#2 g#2",
  R: "c2@2 c2 g2@2 g2 c2 g2 c#2 g2 a#2 a2 g#2 g2 c#3 g2",
  S: "c2 f2 g2 c3 d#2 [f1,f2] ~ [f#1,f#2]!2 f#1 g1 g#1 [g#1,g#2] g#1 [g#1,g#2] ~", // F F# G#
  T: "c#2@3 c#2 g#2@2 c#2 ~ a2@3 a1@3 c#2 ~", U: "c#2@3 ~ f2@4 d#2@3 ~ d2@4",
  V: "c#2@3 ~ g#2@2 c#2@2 a1@3 ~ g#2@2 g#1@2", W: "c#2@3 ~ f#2 ~ f#1@2 e2!2 e1 d#2 d#1 d2 d1!2",
  X: "[~@2 g#1 g#1@2 ~ g#1@3 ~ g#1 g#1@2 ~ g#1@3 ~ g#1 g#1@2 ~ g#1@3 ~ g#1 g#2 g#1 g2 g1 f#2, ~@5 g#2@5 ~@3 g#2@6 ~@2 g#2@5 ~@6]/2",
  Y: "[f2@2 ~@2 e2@2 ~@2 d#2@2 ~ d2 ~@2 c#2@5 ~ a2@7 a1 a2@3 g2, ~@20 g#2 ~@11]/2",
  Z: "[d2@6 a2@8 d3@7 ~ a2 ~ f3@3 d3 e3@2 d3 b2, ~@24 e3 ~@7]/2", AA: "d3@7 ~ f#2@3 ~ f2@3 ~", AB: "e2@7 ~ a#1@7 ~",
  AC: "a2@4 a1@4 g#2@4 g#1@3 ~", AD: "g2@4 g1@4 f#2@3 ~ b1@4, ~@12 a#1 ~@3", AE: "e2@5 f#2 ~ g2 g#2@2 ~ g#1@5",
  AF: "g1@4 d2@4 g2@7 ~", AG: "c3@2 c3 g2@2 g2 c2@2 c#2@2 c#2 g#2@2 g#2 c#2@2", AH: "c2@2 ~@6 f2@3 ~@2 f#2 g2 c#2",
  AI: "c2@3 g2 ~ g2 c3@2 c#2@3 g#2@2 g#2 c#2@2", AJ: "c2@2 ~@2 f3 f#3 f3 d#3 f3 d#3 c3 g3 f#2 f2 c#2@2",
  AK: "c2@3 g2@3 c2@2 c#2@3 g#2@3 c#2@2", AL: "a#1@3 a#2@3 a#1@2 a1@3 a2@3 a1@2",
  AM: "f2@2 ~@2 e2@2 ~@2 d#2@2 ~ d2@2 ~ c#2@2", AN: "c2@4 a1@3 ~ d2@4 g1@3 b1", AO: "c2@4 f1@3 ~ d2@3 ~ c#2@3 ~",
  AP: "c2@3 ~ a1@2 ~ c#2 d2@4 g1@4", AQ: "[c2@3 ~ a#1@3 ~ g#1@2 ~ g1 ~@2 c#2@5 ~ a#1@2 d#2 ~ c#2@4 d2@2 c#2 ~]/2",
  AR: "g#1@3 ~ c#2@2 b1 ~ a#1@6 ~ a#2", AS: "f1@3 ~ f#1@3 ~ g1@3 ~ g#1@3 ~", AT: "~@8 a#1@7 e2",
  AU: "f#2@4 d#2@5 ~ c#2@5 ~, f2 ~@15", AV: "c2@3 g2@3 c2@2 c#2@3 g#2@3 c#2 ~",
  AW: "c2@2 g2 ~ c3 ~ c#2@4 ~ g#2 c#3@2 g#2 c#2",
  AX: "[c2@2 ~ g2@3 c2 ~ c#2@2 g#2 ~ c#3 ~ c2@4 d2 ~ d#2@5 ~ a#2 ~ d3@3 a#2]/2", AY: "f2@3 ~ g2@4 g#2@3 ~ a#2@3 ~",
  AZ: "b1@3 ~ e2@4 g1 ~ a1@6", BA: "g#1@2 ~ d#2@3 g#1@2 c#2@2 ~ g#2@3 c#2 ~", BB: "c2@4 g2@3 c2 ~@2 f2@3 c#2!2 ~",
  BC: "a1@3 e2@3 a1@2 d2@3 a2@3 d2@2", BD: "c#2@3 c#2 g#2@3 c#2 f#2@6 c#2 ~", BE: "a#1@7 ~ g#1@7 ~",
  BF: "[f#1@3 ~ f1@18 c2@2 f2@6 ~ [d#2,e2]]/2", // Emaj7
  BG: "[d2@6 a1 ~ a1@5 ~ d1@7 ~ a1@7 ~ c#2@7 ~ g#1 ~ g#1@6 c#1@9 ~ c#1@5 ~ c1@2]/4",
})).s("gm_fretless_bass").gain(0.44)

// chords · trombone
const trombone = note(`<
  ~@34 A B C@7 D E@4 F@2 G@2 ~@4 H I J K ~ L ~ M N O P Q@2 R S@2 T@2 U V W ~@7 X Y Z AA AB@2 AC AD AE AF AG AH AI AJ AK
  AL AM AN AO ~
>`.pickRestart({
  A: "~@3 [d#3,g#3]@3 [d#3,g#3] ~@4 [e3,a3]@3 [e3,a3] ~", B: "~@3 [e3,a3]@3 a3 ~@4 [f3,a#3]@3 [f3,a#3] ~",
  C: "~@3 [e3,a3]@2 ~ [e3,a3] ~@4 [f3,a#3]@5", D: "~@3 [e3,a3]@2 ~ [e3,a3] ~@3 [f#3,b3]@4 [f#3,a3] ~",
  E: "[~@11 [f#3,c4] ~@2 [f3,b3]@6 ~@4 [g3,c#4] ~@2 [f#3,c4] ~@2 [f3,b3]@6 ~@7 [f#3,c4] ~@2 [f3,d#4]@6 ~@6 e4 b3 g3 f#3 e3 [f3,b3]]/4", // F#dim Fdim Gdim F#dim Fdim F#dim F7 Fdim
  F: "~@2 [f#3,c4] ~@7 [f#3,c4] ~@5", // F#dim
  G: "[[d#3,a3] ~@3 d3@2 ~@2 [c#3,g3]@2 ~ [c3,f#3] ~@2 [b2,f3]@4 ~@14, ~@4 g#3 ~@27]/2", // D#dim C#dim Cdim Bdim
  H: "~@4 [a3,c4]@2 ~@2 [g#3,c4]@5 ~ e3 ~", I: "[g3,b3]@5 ~ [a3,c4]@5 ~ [a3,d#4]@4",
  J: "~@2 [g3,b3,d4] ~@5 [f#3,b3,c#4]@7 ~", K: "~@2 [f3,c4,e4] ~@3 [f3,c4,e4] ~@3 [g2,f3,b3,e4]@6",
  L: "~@6 g2 [g#2,a2] a#2@6 ~@2", M: "~@2 c4 ~ d#4 c4 ~ [a3,d#4]@3 c4 ~@5", N: "~@2 [a#3,d4] ~@7 [b3,d#4] ~@5",
  O: "~@2 [g#3,c4,e4] ~@7 [g3,c#4,f4] ~@5", P: "[a3,d4] ~@3 [g#3,d4] ~@3 [g3,a#3,d4]@3 [f#3,c4] ~@2 [f3,g#3]@2",
  Q: "[~@2 [d3,g3] ~ [f3,a#3] ~ [g3,c4] ~ [a3,d4] ~ [a#3,d#4] ~ c4 d4 [f3,b3,d#4]@6 ~@2 [g3,c#4,f4]@5 ~ [f#3,c4,f4] ~ [f3,b3,e4] ~]/2", // G5 A#5 C5 D5 D#5 Fm7b5 Gm7b5 F …
  R: "[e3,a3,a#3,d4]@4 [d3,g#3,c4] [c#3,g3,b3]@3 [d3,g#3,c4]@3 [e3,a#3,d4]@3 [f3,b3,d#4] ~", // Dsus2 Dm7b5 C#m7b5 Dm7b5 Em7b5 Fm7b5
  S: "[[e3,a3,a#3,d4]@3 ~ [f3,a3,d#4,g#4]!2 ~@2 [f#3,c4,f4,a#4]@3 [f3,b3,d#4,g#4] ~@2 [e3,a#3,d4,g4]@6 [d3,g#3,c4] ~ [c#3,g3,b3] ~ [d3,g#3,c4]@3 [e3,a#3,d4]@3 [f3,b3,d#4]@2]/2", // Dsus2 F7 F#maj7 Fm7b5 Em7b5 Dm7b5 C#m7b5 Dm7b5 …
  T: "[[e3,a3,a#3,d4]@3 ~ [g#3,c4,d4,g4]@2 ~@2 [f#3,c4,d#4,f4]@3 [f3,g#3,b3,d#4] ~@2 [f3,b3,d#4]@5 ~ [d#3,a3,c#4] [d3,g#3,c4] ~ [d#3,a3,c#4] ~ [f3,b3,d#4]@3 [f#3,a3,c4,e4] ~ [f3,g#3,b3,d#4] ~]/2", // Dsus2 G#maj7 Cdim Fm7b5 D#m7b5 Dm7b5 D#m7b5 Fm7b5 …
  U: "[f#3,a3,c4,e4] ~ [a3,c4,e4,f#4] ~ [f#3,a3,c4,e4] [f3,g#3,b3,d#4] ~ [d#3,a3,c#4] ~@2 [d3,g#3,c4,d4]@5 ~", // F#m7b5 Fm7b5 D#m7b5 Dm7b5
  V: "[d#3,g3,a3] ~@3 [e3,g#3,a#3,d#4] ~@3 [f3,a3]@2 ~@2 [f#3,a#3,c4,f4] ~@3, d4@2 ~@6 [b3,e4] ~@7", // Am7b5 Emaj7 F F#maj7 E5
  W: "[g#2,f3,g#3]@11 ~@5", X: "~@12 [d3,f3,a3,c4] ~@3", Y: "~@2 [e3,g#3,a#3,c4] ~@2 [g3,a3,c4,d4] ~@4 [f3,b3,d#4]@5 ~",
  Z: "[e3,a3]@4 [e3,a3]@2 ~@5 [f3,a#3]@4 ~", AA: "[e3,a3]@3 [e3,a3] ~@2 [f3,a#3]@10",
  AB: "[[e3,a3]@3 [e3,a3] ~@4 [f3,a#3]@3 [f3,a#3] ~@2 [e3,a3]@5 ~ [d3,g3,c4]@10 ~@2]/2", // A5 A#5 A5 Csus2
  AC: "[d#3,g#3] ~@3 [f3,a#3,d4] ~@3 [f3,a#3,d4]@2 ~@2 [g3,c4,e4]@2 ~@2, c4 ~@7", // G#5 A# C
  AD: "[a3,d4,f4]@2 ~@2 [g#3,d4,e4]@2 ~@2 [f3,b3,d#4] ~ [g3,c#4,f4]@5 ~", AE: "[g3,c4] [f3,a#3], d#4",
  AF: "~@2 g3 ~ a#3 c4 ~ d4 ~@2 [d#3,a3,d4]@5 ~", AG: "[g#3,c#4] [f#3,b3], e4",
  AH: "~@2 c#4 ~ e4 f#4 g#4!2 ~ f#4 [e3,a#3,d#4]@4 c#4 ~", AI: "~@4 [a3,d4] ~@3 [g3,c4,f4]@6 ~@2",
  AJ: "[a#3,c4,d#4,f4] ~@3 [g#3,c4,d#4,f4]@5 a#3 d4 ~ d4@2 a#3 ~", AK: "f4@2 d4 ~ g4 f4 ~ a#4 ~@8",
  AL: "~@2 a3 ~ c4 d4 ~ [a3,c4,e4] ~@2 e4@3 [e4,f4] d4 ~", // Am Fmaj7
  AM: "g4@2 a4 [e4,g4] ~@2 [c4,e4,g4]@2 a4 [c4,d4,e4,f4,g4] [a3,c4,e4] ~ [f3,a3,c4] ~ [c4,f4]@2, ~@14 a#3 ~", // Em C Am F F5
  AN: "~@2 a#3 ~ f4 g4 g#4 [d#4,g4,a#4] ~@2 [d#4,g4,a#4]@3 [d#4,f4,g4,g#4,a#4,c5] [c4,d#4,g4] ~", // D# Cm7 Cm
  AO: "d#4 ~ c4 ~ a#3 g#3 ~ g3 ~@2 g4@3 [a#4,b4] c5@2", // Bmaj7
})).s("gm_trombone").gain(0.38).pan(0.3)

// other · alto sax
const alto_sax = note(`<
  ~@43 A B@2 C@2 D@2 E@2 F ~ G H I ~@2 J ~ K ~ L M N@2 O@2 ~@15 P Q ~@5 R ~ S ~ T ~ U ~ V W X Y ~
>`.pickRestart({
  A: "~@10 [b3,e4]@4 [a3,d4] ~", B: "[~@3 [f3,b3] ~@7 [a3,e4] ~@2 [a#3,d#4]@6 ~@12]/2",
  C: "[~@11 a#3 ~@2 b3@7 ~@6 b4 g4 f#4 e4 c#4, ~@13 e5 ~@2]/2", D: "~@2 a#3 ~@7 a#3 ~@5",
  E: "[c4 ~@3 b3 ~@3 a#3@2 ~ a3 ~@3 g#3@3 c#4 e4 f#4 g4 f#4 e4 d#4 e4 d#4 c#4 c4 c#4 c4 a#3]/2", F: "a3 ~@15",
  G: "~@3 b3@2 e4@3 d4@3 a4@2 [b4,c5] d5@2, ~@14 c#5 ~", H: "g#4@9 ~ c5 a#4 g4 f4 e4 d4", I: "e4@7 ~@9",
  J: "~@2 b3 c4 d4 e4 f4 g4 a4 b4 g4@6",
  K: "~@2 g3 ~ a#3 g3 ~ d#4 ~@2 [g3,d#4,g4]@3 [a3,d#4,f4,g4,a4] [f3,g3,c#4,f4] ~", L: "~@7 [f3,c4]@3 [f3,a3,d#4] ~@5",
  M: "~@2 e4@2 [c4,f4]@2 [d4,g4] ~@3 d#4 ~ [b3,f4]@2 [c#4,g4] ~", // F5 G5 Bdim C#dim
  N: "[~@2 e4@2 [c4,f4]@2 [c#4,g4]@4 c5@2 [f4,f#4] f4@5 ~@14]/2", // F5 C#dim F#maj7
  O: "[~@2 g3 ~ a#3 ~ c4 ~ d4 ~ d#4 ~ d#4 f4 g4@5 ~@3 a4@5 ~ a4 ~ g#4 ~]/2", P: "~@10 a#3 ~ e4 d4 ~ a4",
  Q: "e4 ~ a4 f4 ~ a4 g4 ~ c5 ~ g4@4 ~@2", R: "~@8 f4 ~ f4@5 ~", S: "~@2 g4 ~ a#4 c5 ~ d5 ~@2 g4@5 ~",
  T: "~@2 c#4 ~ e4 f#4 g#4!2 ~ f#4 g#4@4 f#4 ~", U: "~@4 g4@5 ~@7", V: "~@2 a3 ~ c4 d4 ~ g4 ~@8", W: "~@7 g4",
  X: "~@2 a#3 ~ f4 d#4 f4 g4 ~@2 g4@3 g#4 [f4,g4] ~", Y: "d#4 ~ c4 ~ c4 c#4 ~ c4 ~@2 g4@2 ~@2 c5@2",
})).s("gm_alto_sax").gain(0.33).pan(0.4)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  ~@15 A@2 ~ B ~ C ~@4 D@2 E@7 ~@10 F@4 G ~@2 H I J K L M N O P ~@3 Q R S T ~@9 U V W X@2 Y Z AA AB@2 AC AD AE@2 AF AG
  AH ~ AI ~@2 AJ@2 AK@4 ~
>`.pickRestart({
  A: "[~@7 [c#4,f#4]@8 ~]/2", B: "~ [c#4,d#4]@10 ~@5", C: "~@2 [c#4,d#4]@11 ~@3",
  D: "[~@9 [d#4,g4]@13 ~ [d#4,g#4]@9]/2", E: "[~@5 [g4,a#4]@17 [b3,e4]@24 ~ [b3,d#4]@29 [b3,e4]@18 [a#3,d#4]@18]/7",
  F: "[g#6@3 b6]/2", G: "g#6", H: "~@3 [c#4,f#4,a4]@12 ~", I: "[e4,f#4,a4]", J: "[e4,f#4,a4] [f4,a#4,d5]",
  K: "[b3,e4]@2 f#4 g4, ~ d4", L: "~ c5, [e4,g#4]", M: "e5@5 c6@3", N: "d6@3 e6@3 a6@2", O: "g6 b6", P: "e6 a6@3",
  Q: "~@13 [d#4,f4,g#4]@2 ~", R: "[d4,e4,g4] [d#4,g4]", S: "[c4,e4,g4]@7 [a#4,c#5,f5]@8 ~", T: "[c5,d5,g5]@3 ~",
  U: "~ [c#4,f#4]", V: "a3 [c#4,f#4]", W: "b4 e5 d5 a4, e4@15 ~, f#4 ~",
  X: "[[a3,c4,a5]@2 [g3,d4]@2 ~ b5 e6 g#6, ~@2 d6@3 ~ e4@2, ~ d4]/2", Y: "b6@8 ~ a6@7, ~ a4",
  Z: "[d5,g6]@8 ~ f6@7, a4, ~ c5", AA: "[g4,e6] [f#4,b5]", AB: "[c6@12 e6@3 c6@4 a5@7 g5@6]/2", AC: "g6",
  AD: "~@2 d6 b5 ~@2 d#6@9 ~", AE: "[g6@9 ~@7]/2", AF: "[c4,d#4,a#4] [d4,f4,c5] [d4,f4,d5] [e4,g4,e5]",
  AG: "[f4,a4,d5,f5] [g4,c5,e5] ~@2", AH: "f6 g6", AI: "f#5 g#5", AJ: "[~ [a#4,d5,f5]@7]/2",
  AK: "[[f4,c5,e5]@30 [g4,a#4,f5]@27 ~ g6@3 ~ c7@2]/4", // Fmaj7 Gm7
})).s("gm_string_ensemble_2").gain(0.33).pan(0.8)

// chords · string ensemble 2 · "SLOWSTRING" · soft notes
const string_ensemble_2_soft = note("<~@15 A@2 ~@61 B C D E F G ~@20>".pickRestart({
  A: "[~@7 d4@8 ~]/2", B: "~ f4", C: "~ b3", D: "g#3 ~", E: "c5, e5@7 ~@9", F: "g4 f4", G: "d5 c#5, b4",
})).s("gm_string_ensemble_2").gain(0.22).pan(0.8)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2_2 = note(`<
  ~@15 A@2 ~ B ~ C ~@4 D E@8 ~@17 F G H I J K@2 L M ~@3 N O P Q ~@9 R S T U V W X Y Z@2 AA AB AA ~ AC AD AE ~ AF ~@2
  AG@2 AH@4 ~
>`.pickRestart({
  A: "[~@7 [d3,g#3]@8 ~]/2", B: "~ [g#3,a3]@10 ~@5", C: "~@2 [g#3,a3]@11 ~@3", D: "~@9 a#3@7",
  E: "[~@7 [a3,c#4]@14 [a#3,d#4]@17 ~ f3@24 [d#3,f#3]@29 [e3,g#3]@18 [e3,g3]@18, ~@19 b3@12 ~@33]/8", // A D#5 D#m E Em
  F: "~@3 [a2,g3,b3]@12 ~", G: "[f#3,b3] [g3,a#3], c#4@15 ~", H: "[f#3,b3,c#4] [g#3,c4]",
  I: "[f3,a3]@2 [e3,a#3] [d#3,a3,b3]", J: "[d3,g#3,c4]", K: "[[c4,e4]@7 [d#4,f4]]/2", L: "d4@8 c#4@7 ~", M: "c4@5 b3@3",
  N: "~@13 [f3,b3]@2 ~", O: "[e3,a#3] [f3,b3]", P: "[d3,g#3] [g3,c#4,f4]", Q: "a3 g#3 ~@2, [d#4,g4] ~",
  R: "~ [a2,g3,b3]", S: "[d2,f#3,a3] [a2,g3,a#3]", T: "d2@2 b2 a2 [g2,f3,a3,b3]@4, [f#3,b3] ~",
  U: "[f#2,e3,f#3] [f2,d#3,a3]", V: "[e2,b2,f#3] [a#2,g#3]", W: "[b3,c4] [f#2,e3,a#3], e4",
  X: "[f2,d4] [b1,c4], [d#3,a3]", Y: "[e2,b2,g3,d4] [d#2,f#3,c#4]", Z: "[[d2,a2]@4 a#1@3 ~@9, c4@13 ~@3, f3@21 ~@11]/2",
  AA: "g6", AB: "~@2 d6 b5 ~@2 d#6@7 ~@3", AC: "[d#3,g#3] [f3,a#3]!2 [g3,c4]", AD: "[a3,d4]@4 [g#3,c4]@3 ~@9",
  AE: "[f4,f5] [g4,g5]", AF: "f#4 g#4", AG: "[~ [a#3,d#4,g4]@7]/2",
  AH: "[[a3,e4]@29 ~ [c4,d#4]@28 g5@2 ~ c6@3, ~@29 g#3@28 ~@7]/4", // A5 Cm
})).s("gm_string_ensemble_2").gain(0.33).pan(0.4)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note("<A@7 ~@7 B@4 ~@4 C@6 D@6 E F ~@13 G H ~ I J K L ~@4 M ~ N ~@41>".pickRestart({
  A: "[~@10 f#1@41 f#1@49 ~@12, ~@5 [c#5,f#5,g#5,b5,c#6,e6,f#6]@45 ~@6]/7", B: "[~@8 [e2,d3,f#3,g#3,c#4]@41 ~@15]/4",
  C: "[~@15 [d3,g#3,c#4]@41 ~ [a#3,d#4]@14 [a3,c#4,d#4]@14 [a#3,d#4]@11]/6", // C# D#5 D#m7b5 D#5
  D: "[~@7 [f3,b3,e4]@24 b3@29 b3@18 c4@18]/6", // E
  E: "~@3 [d#4,g#4,a4,c#5]@3 [d#4,g#4,a4,c#5] ~@4 [e4,a4,a#4,d5]@3 [e4,a4,a#4,d5] ~", // C#sus2 Dsus2
  F: "~@3 [e4,a4,a#4,d5]@2 ~ [e4,a4,a#4,d5] ~@4 [f4,a#4,b4,d#5]@2 ~ [f4,a#4,b4,d#5] ~", // Dsus2 D#sus2
  G: "[e5,a5] [d#5,g#5] [e5,a5] [f5,a#5] [f#5,b5] [f5,a#5] [f#5,b5] [g5,c6] [g#5,c#6] [a5,d6] [a#5,d#6] [b5,e6] [c6,f6] [c#6,f#6] [d6,g6] [d#6,g#6]", // A5 G#5 A5 A#5 B5 A#5 B5 C5 …
  H: "[d#6,g#6] ~@15", I: "d2 a2", J: "d3 g#2", K: "g2@7 ~@9", L: "e2@8 a#1@7 ~",
  M: "~@3 [a#3,d4,e4,g4]@4 ~@4 [b3,d#4,f4,g4]@4 ~", N: "~@2 [a#3,d4,e4,g4]@4 ~@5 [b3,d#4,f4,g4]@4 ~",
})).s("gm_synth_strings_1").gain(0.33)

// chords · trumpet
const trumpet = note(`<
  ~@34 A B C@7 D E@4 F@2 G@2 ~@4 H I J K ~@3 L M N O P@2 Q R@2 S@2 T U V ~@7 W X Y Z AA AB ~ AC AD AE AF AG AH AI AJ AK
  AL AM AN ~
>`.pickRestart({
  A: "~@3 [a3,c#4]@3 [a3,c#4] ~@4 [a#3,d4]@3 d4 ~", B: "~@3 [a#3,d4]@3 ~@5 [b3,d#4]@3 d#4 ~",
  C: "~@3 [a#3,d4]@3 a#3 ~@9", D: "~@3 [a#3,d4]@3 a#3 ~@3 [c4,e4]@3 ~ [c4,d4] ~",
  E: "[~@11 g#4 ~@2 g#4@5 ~ [b4,c5,c#5] ~@3 f4 ~@2 g#4 ~@2 g#4@6 ~@7 f#4 ~@2 g#4@5 c5 c#5 ~@5 e5 b4 g4 f#4 e4 [g#4,c#5]]/4", // C#5
  F: "~@2 [f4,g#4] ~@7 [f4,g#4] ~@5", G: "[g#4 ~@3 c#4 ~@3 d#4@2 ~ d4 ~@2 c#4@4 ~@14]/2", H: "~@10 c5@5 ~",
  I: "d5@5 ~ [c5,e5]@6 [d#5,a5]@3 ~, ~@12 d5 ~@3", J: "~@2 [e4,g4,b4] ~@5 [d#4,f#4,b4]@8",
  K: "~@2 [a4,c5,e5] ~@3 [a4,c5,e5] ~@3 [a4,c#5,e5]@6", L: "~@2 c5 ~ d#5 c5 ~ [d#5,f5]@2 g5 [c5,d#5,f5] ~@5",
  M: "~@2 g4 ~@7 g4 ~@5", N: "~@2 d5 ~@7 f5 ~@5", O: "g4@2 ~@2 f4 ~@3 g4@3 c4 ~@2 c4@2",
  P: "[~@2 c4 ~ d#4 ~ f4 ~ g4 ~ g#4 ~ c5 d5 d#5@4 f5 d#5 c5 ~ f5@3 [f5,g5] c5 ~ f5 ~ f#5 ~]/2", // Fsus2
  Q: "[d5,g5]@4 [c5,f5] [b4,e5]@3 [c5,f5]@3 [d5,g5]@3 [d#5,a#5]@2", // G5 F5 E5 F5 G5 D#5
  R: "[[d5,g5]@2 ~@2 [g#4,c5]!2 ~@2 [a#4,d5]@3 [c5,f5] ~@2 [d5,g5]@5 [d#5,g#5] [c5,f5]@2 [b4,e5] ~ [c5,f5]@3 [d5,g5]@3 [d#5,a#5] ~, ~@20 [d5,g5] ~@11]/2", // G5 G# A# F5 G5 G#5 F5 E5 …
  S: "[[d5,g5]@3 ~ [e5,c6]@3 ~ [d5,a#5]@3 [a#4,g5] ~@2 [d#5,g#5]@6 [c#5,f#5] [c5,f5] ~ [c#5,f#5] ~ [d#5,g#5]@3 [d5,f#5] ~ [c#5,f5] ~]/2", // G5 C Gm D# G#5 F#5 F5 F#5 …
  T: "[d5,f#5] ~ [e5,g#5] ~ [d5,f#5] [c#5,f5] ~ [c#5,f#5] ~@2 [c5,g#5]@5 [a#4,b4,a#5,b5]", // D E D C# F#5 Fm Bmaj7
  U: "[c#5,c#6]@4 [g#4,g#5]@2 [f#4,f#5] ~ [g#4,g#5]@2 [c#4,c#5] ~@2 [c#4,c#5]@2 ~, [c5,c6] ~@15", V: "[c#4,c#5]@11 ~@5",
  W: "~@12 e4 ~@3", X: "~@2 d#4 ~@2 f4 ~@4 [d#5,g5]@5 ~", Y: "[a#3,d4]@4 [a#3,d4] ~@6 [b3,d#4]@5",
  Z: "[a#3,d4]@2 d5 [a#3,d4,b4] ~@2 [b3,d#4,d#5]@9 ~", AA: "[a#3,d4]@3 [a#3,d4] ~@4 [b3,d#4]@3 [b3,d#4] ~@2 [a#3,d4]@2",
  AB: "~@2 [e4,g4] ~ [g4,c5] [a4,d5] ~ [c5,f5] ~@2 [c5,f5]@3 [d5,g5] [a4,c5,d5,f5] ~", // Em C5 D5 F5 G5 Dm7
  AC: "~@6 c5 ~ [c#5,f5] ~ [d#5,g5]@4 ~@2", AD: "[c5,f5] [c5,d#5,g5]",
  AE: "~@2 g4 ~ a#4 c5 ~ d5 ~@2 [d5,g5]@3 [e5,f5,g5,a5] [c5,d5] ~", AF: "[b4,c#5,f#5] [c#5,g#5]",
  AG: "~@2 c#5 ~ e5 f#5 g#5!2 ~ f#5 [d#5,a#5]@3 [e5,a#5,b5] [c#5,f#5] ~", // D#5 E F#5
// … 135 more lines

More by Barbra Streisand