Strudelify

Come Rain or Come Shine

Sinatra

KeyB minorTempo59 bpm
0:00/0:00
// Come Rain or Come Shine — Sinatra
// 59 bpm, 4/4, key B minor. 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: duplicate parts dropped: ch 8 "TREMOLOSTR" tremolo strings (copy of ch 9 "TREMOLOSTR" tremolo strings, 0.281 beats late)
// note: Full arrangement: all 59 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(59/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 · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  A@2 B@2 C@3 ~@2 D@2 ~ E F ~@5 G@6 H I J K L M@2 N@2 O P Q R@3 S T@3 U V W@8 X@3 ~@2
>`.pickRestart({
  A: "[~@24 d4@3 ~ [d2,f#3,c4,f4,a#4]@6 ~ g2 ~ [g#2,c4,f4,a4]@9 [g2,b3,e4,a4]@9 ~ [f2,d4]@8, ~@34 [f#2,d5]@3 f#3@6 ~@3 f3@6 ~@3 [a3,g4]@9, ~@55 d#3@6 ~@3]/2", // A# F Em Dm D A7
  B: "[~ [e2,g#3,c#4,f#4]@9 [a1,f4,a4]@18 [d2,f#3,e4,b4]@3 ~ [e3,d4]@15 [b1,d#3,c4,a4]@17, ~ d3@6 ~@3 [g3,b3]@15 ~@6 [c2,a4]@15 ~@18]/2", // C#m Dm Bm E7 Adim G F
  C: "[~@2 [c4,a4]@18 [a1,b3]@19 ~@16 g2@2 g#2@18 [c#2,e3]@19 ~@2, ~ a#1@19 ~@76, ~@2 d3@37 ~@57]/3", // F Asus2 C#m
  D: "[~@19 [e2,g#3]@33 ~@12]/2", E: "~@13 [g#2,f#3,g#3,b3]@5 [a2,g3,a3,c4]@2 [a#2,g#3,a#3,d#4]@7 [a#2,g3,a#3,c#4]@5",
  F: "~@3 [a2,c4]@8 ~@21", // Am
  G: "[~@29 [f4,a4,d#5,g5]@8 [e4,g#4,d5,f#5]@8 [d#4,g4,c#5,e5]@8 [a#3,e4,f#4,a#4]@8 [b2,a3,d#4,f#4,a4]@8 [d4,e4,g#4]@8 [d4,g4]@8 ~ c#4@8 ~@49 [g3,a#3]@16 d3@33, ~@77 a2@16 ~ e4@32 e3@33 ~@33, ~@110 b3@33 ~@49]/6", // F7 E7 C#dim F#7 B7 E7 G5 Gm
  H: "c4 [f#3,d4]", I: "f#4@19 ~ g#3@4 e4@4 d4@4", J: "c#4@4 d#4@4 c#4@4 g#4@4 [c4,f4]@8 ~ b3@7, ~@3 e4",
  K: "~ [a#3,g#4]@15 [a3,d4,a4]@15 ~, d#4 ~", L: "[g#3,c#4,f#4,a#4] [g3,c4,a4,d5]",
  M: "[g#4@16 g4@15 ~ f#4@16 f4@16, [a3,d#4,d#5]]/2", // Adim
  N: "[[f#4,b4]@2 [f4,c5]@2 e4@2 [a3,f4] [g#3,c#4,e4], d4@7 ~, g#3@3 ~, ~ b4]/2", // B5 F5 Dm C#m
  O: "~@17 g#3@14 ~, [b3,f#4]@31 ~, f#3 ~, ~ d4@31", P: "f#4@8 f4@8 ~ g3@8 [f#3,a#4]@7, b4@3 ~, g#3 e4",
  Q: "~ [a3,d5]@15 ~ [a3,g4]@15, [b2,d#4,a4] [f3,d#4,c5]", // D5 A7 B7 F7
  R: "[[e3,g#3,d4,f#4,b4]@16 ~ [f4,b4]@16 ~@33 d#4@16 [e3,g3,a#3,d4]@14, ~@16 [a2,g3]@16 ~ [d3,f#3,e4,a4]@32 [e3,g#3]@16 ~@15, ~@17 c#4@32 b3@33 ~@14]/3", // E7 Fdim Em7b5 A7 D E
  S: "~@2 [d3,f#3,a3,c#4]@12 ~ [f#3,a3,d4]@17, ~@15 d3@14 ~@3", // Dmaj7 D
  T: "[~@3 [d4,d5]@16 [c#4,c#5]@5 d5@11 b4@32 [c#4,f4,a#4]@16 ~ [c4,e4,g#4]@11 ~, ~@2 [g4,b4]@16 ~ g#4@65 ~@12, ~@19 f#4@49 ~@28, ~@6 d4@11 ~@7]/3", // D C# A#m Caug G
  U: "~@4 [a#3,d#4]@24 f#4@3 g#4, ~@2 f#4@11 ~@3", V: "~@2 f#4@3 [f4,b4,e5]@16 [e4,a#4,d#5]@11",
  W: "[~@5 g#5@16 ~ g5@16 f#5@16 f5@15 ~ f#5@16 ~ f5@16 e5@16 [g4,c#5,e5,b5]@16 ~ [b3,f#4,a4,d6]@16 [e3,d4,g#4,c#5,e6]@16 [g#3,g#4,d#5,d#6,f#6]@16 [g3,f4,g5,g6]@8 [f#3,e4,a#4,f#5,g#5,g#6]@8 ~ [b2,d#5,a5,d6,b6]@32 [e4,g#4,d5,f#5,b5]@23, ~@5 [d#4,a4,c#5]@65 [g#4,b4,d5]@49 ~@16 f#5@49 [c#5,e5,c#6,e6]@16 ~@56, ~@135 d5@33 b4@24 ~@64, ~@135 a5@16 ~ b5@33 ~@71]/8", // C#m7b5 Bm7 C#m G#7 G7 F#7 B7 E7 …
  X: "[~@2 [d4,f#4,b4,e5]@8 [b3,a4,d5,b5]@24 [b2,a3,d4,b4]@8 [g#3,d4,f#4,d5]@33 ~@21, ~@7 g#4@5 ~@4]/3", // Bm Bm7 G#m7b5
})).s("gm_string_ensemble_2").gain(0.36).pan(0.4)

// chords · string ensemble 2 · "SLOWSTRING" · soft notes
const string_ensemble_2_soft = note("<~@4 A B@8 C@2 ~@5 D E@5 F ~@32>".pickRestart({
  A: "~@5 g4@3",
  B: "[~@22 f#2@2 ~ c4@18 [b3,g#4]@19 [f#2,e3,a#3,e4,g4]@18 ~ a#3@15 ~ [f#2,b3]@16 [b1,c#4]@17 b3@8 a3@8 ~ c#5@16 c5@16 ~ b4@16 a#4@17 [d2,f#3,c4,e4,b4]@24 ~@19, ~@6 f#3@37 ~@38 f#3@65 ~ f#3@33 ~@76, ~@6 [e3,c#4]@19 d#4@37 ~@18 [d4,f#4]@66 ~@110, ~@6 d2@16 ~@58 b1@17 ~@33 f#2@17 ~@33 [a2,g3,c#4]@33 ~@43, ~@7 e4@19 ~@230]/8", // E Edim B5 Bsus2 Bm C#m D A7
  C: "[~@2 [f#3,a3]@8 [g#2,f3,g#3,c4]@9 [d3,g3]@35 ~@10, ~@19 a#3@31 ~@14, ~@19 g2@16 ~@29]/2", D: "~@21 c3@8 ~@3",
  E: "[~@5 [a#2,g#3]@9 [g3,e4]@8 [g3,f#4]@8 [d3,f#3,f#4]@32 g#3@16 ~@17 [f#3,a3]@32 [g3,a#3]@16 ~ a3@16]/5", // A#7 C Gmaj7 D F#m Gm
  F: "[f#3,b3,d4]@5 ~@3", // Bm
})).s("gm_string_ensemble_2").gain(0.18).pan(0.4)

// bass · acoustic bass · "ACOU BASS"
const bass = note("<~@13 A@8 B@4 C D E F G H I J K L M N O P@3 Q R S T@2 U V W@4 X Y@2 Z AA ~@2>".pickRestart({
  A: "[~@19 g2@16 ~ f2@8 e2@8 d2@17 c2@14 d2@3 a#1@17 e2@17 a1@17 d#2@16 d2@16 ~ d2@17 d#2@15 ~@2 d#2@16 ~ f2@5 ~@30]/8",
  B: "[~@13 a1@3 f#3@2 ~ d3@2 a2@3 f#2@3 a1@3 d2@16 d2@10 ~ b1@3 c2@2 c#2@16 ~ c2@16 b1@11 f#2 b2@3 f#2 a2@8 ~ b2@4 f#2@3 ~]/4",
  C: "a#1@11 a#2@4 ~ a2@8 a1@8", D: "g#1@16 ~ d2@15", E: "d#2@16 g#2@8 ~ g2@7", F: "f#2@15 ~@2 f#2@7 a2@3 c#2@4 ~",
  G: "f#2@12 ~ c#3@3 c3@8 c2@4 ~ f#2@3", H: "b1@16 b2@12 ~ f#2@3", I: "b1@2 b2 f2", J: "e2@15 ~ e2@15 ~",
  K: "e2@12 ~ b2@3 d2@8 c#2@8", L: "~ b1@15 e2@10 ~ f#2@2 ~ g2@2", M: "g#2@16 ~ g2@8 f#2@7",
  N: "~ b1@8 b1@4 ~ b1@2 f2@13 ~ f2@2", O: "~ e2@15 a1@10 ~ a1 ~@2 a1@2",
  P: "[~ d2@8 a2@8 f#2@8 d2@3 a2@2 ~ f#2@2 c#2@7 ~@2 c#2@8 f#2@7 ~ f#2@2 ~ c#2@2 c2@3 b1@8 c#2@8 d2@8 f#2@6]/3",
  Q: "~@2 g2@8 ~ d2@8 b1@8 d2@3 e2@2", R: "f#2@3 g#2@8 f#2@8 d2@8 b1@3 d2@2",
  S: "~ d2@3 d#2@7 ~ d#2@5 g2@3 g#2@7 ~ g#2@4",
  T: "[~ g2@3 f#2@8 c#2@8 f#1@8 ~ f#2@2 g#2@2 ~ f#2@3 g2@7 ~ g2@8 f#2@5 g#2@2 ~ f#2@3]/2",
  U: "g#2@2 f#2@3 b1@6 ~@2 b1@6 f#2@3 b2@5 a2@3 f#2@2", V: "~@3 f#2@3 b1@7 ~ b1@6 ~@2 b1@3 b2@2 a2@3 f#2@2",
  W: "[~ c2@2 b1@2 ~ e2@8 ~ e2@4 ~ b1@2 ~ e1@8 b1@4 ~ b1@3 e1@8 e2@5 ~ b1@2 e1@8 e2@3 d2@2 ~ c#2@2 b1@16 ~ e2@13 f#2@3 g#2@16 g2@8]/4",
  X: "~ f#2@7 b1@6 f#2@3 b2@5 d2@3 f#2@3 b1 ~ b1 ~",
  Y: "[~ b1@2 b1 ~@2 b1@3 e2@5 b1@3 d2@3 f#3@3 g3@3 g#3@2 f#3@3 e3@3 d#3@2 d3@3 b2@3 b1@5 f#2@2 ~@7 d2@2 f#2@5 ~]/2",
  Z: "d2@2 b2@5 ~ f#2@3 e2@5 b2@3 e3@2 b2@3 d3@2 b2@3 g#2@3", AA: "e2@2 d2@3 c#2@3 c2@3 b1@17 ~@4",
})).s("gm_acoustic_bass").gain(0.26)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note("<~@13 A B@3 C@4 D@4 E F G H I J K L M N O P Q ~@21>".pickRestart({
  A: "~@19 [a#3,d4,g4]@7 ~ [a#3,d4,g4]@4 ~", // Gm
  B: "[~ d4 ~@2 [a#3,d4,f4]@7 ~ [a#3,d4,e4]@6 ~@3 [d3,f3,a3,b3,d4]@6 ~@2 [d3,f3,a3,b3,d4]@5 ~ b3 ~ [c3,f3,a3,d4]@7 ~@2 [c3,f3,a3,d4]@7 ~ [a#3,d4]@7 ~@2 [a#3,d4]@5 ~@3 [a#3,d4,g4]@7 ~@2 [a#3,d4,g4]@8 [c#4,f4,a#4]@8, ~@54 [e3,g3]@14 e3@19 ~@9, ~@71 g3@16 ~@9]/3", // A# Em7b5 Bm7b5 Dm7 A# Gm A#m Em
  C: "[~ [g3,c#4,f4,a#4]@7 ~ [g3,c#4,e4,a4]@7 ~ [g3,c#4,e4,a4]@8 ~ [b3,e4]@7 ~ [b3,e4]@6 ~@3 [b3,e4]@7 ~ [b3,e4]@6 ~@2 [c4,d#4]@7 ~@2 [c4,d#4]@5 ~@3 [d#3,c4,d#4]@7 ~@2 [d#3,g3,c4,d#4]@7 ~ [d#3,a3,d4,g4]@7 ~@28, ~@26 f3@12 ~@2 f3@18 ~ [d#3,g3]@13 ~ g3@11 ~@44]/4", // Gm7b5 A7 E5 Cm D#maj7 D#
  D: "[~@30 [c#4,e4]@8 [c#4,e4]@5 ~@3 [d3,f#3,c#4,e4]@8 [f#3,c#4,e4]@4 ~@5 [g#3,b3]@8 [c#3,g#3,b3]@4 ~@4 [e3,a#3,d4]@8 [e3,a#3,d4]@5 ~@3 [f#3,b3]@8 [f#3,b3,d4]@6 ~@11 [b3,d4]@6 ~@2, ~@30 [d3,f#3]@14 ~@18 c#3@8 ~@9 c3@13 ~@27 f#3@6 ~@3]/4", // C#m Dmaj7 F#7 G#m C#7 Em7b5 B5 Bm …
  E: "[g3,c4,e4]@2 [g3,c4] ~ a3@2 [a3,d4,f#4] ~", F: "[d4,f#4]@8 [d4,f#4]@3 ~@5 [b3,d4]@8 ~ [b3,d4]@3 ~@4, g#3@11 ~@21",
  G: "~ [a#3,c#4]@7 [a#3,c#4,f#4]@5 ~@4 [c4,f4]@7 ~ [f3,b3,e4]@5 ~@2, ~@16 f#3@7 ~@9", // A#m F# F5 E
  H: "~ [a#3,d#4]@8 [f#3,a#3,d#4]@4 ~@4 [a3,d4]@8 [a3,d4]@4 ~@3, ~@17 e3@13 ~@2", // D#5 D#m D5
  I: "a#3@7 ~ [f#3,a#3,d#4]@5 ~@3 [e3,a#3]@8 [e3,a#3,d4]@4 ~@4", J: "[a3,d#4]@8 [a3,d#4,g#4]@5 ~@11 [d#4,g4]@5 ~@3",
  K: "[d#4,f#4]@8 [a3,d#4,f#4]@5 ~@3 [a3,d#4]@8 [a3,d#4,f4]@4 ~@4", // D#m D#dim Adim F7
  L: "[g#3,d4]@8 [g#3,d4,f#4]@5 ~@11 [g#3,d4,f4]@5 ~@3, e3@7 ~@9", // G#dim G#m7b5 Ddim
  M: "e3@5 ~@3 [g#3,d4,e4]@4 ~@4 [a3,d4]@5 ~@3 [g#3,c#4,e4]@5 ~@3", // E7 D5 C#m
  N: "~ [f#3,b3,d4]@8 [f#3,a3,d4]@4 ~@4 [e3,b3]@7 ~ g#4@5 ~@2, ~@24 [e3,b3,d4]@5 ~@3", // Bm D E5 E7
  O: "~ [f#3,b3]@7 ~ [f#3,b3]@4 ~@4 [g3,b3,e4]@6 ~@2 [f#3,a#3,e4]@5 ~@2, d#3@2 d#3 ~@5", // B5 Em F#7
  P: "~ [d#3,a3,d4]@8 [d#3,a3,d4]@4 ~@3 [a3,c4]@8 ~ [d#3,a3,c4]@3 ~@4, ~ b2@12 ~@19", // D Am Adim
  Q: "~ [d4,f#4]@8 [e3,g#3,d4,f#4]@5 ~@3 [g3,c#4]@8 [g3,c#4]@4 ~@3, [e3,g#3] ~@3", // D E7 Gdim E
})).s("gm_electric_guitar_jazz").gain(0.12)

// chords · electric guitar jazz · "JAZZ GTR" · soft notes
const electric_guitar_jazz_2 = note("<~@16 A ~@5 B@2 C D E F G H ~ I J K ~ L ~@23>".pickRestart({
  A: "~@3 g3", B: "[~@31 e4@8 ~@25]/2", C: "~@15 [f#3,b3]@8 ~@9", D: "~@2 e4 ~ d4@2 ~@2", E: "~@16 f#3@13 ~@3",
  F: "~ d#3@12 ~@19", G: "~ f#3@8 ~@23", H: "[f#3,d#4]@7 ~@9 c3@12 ~@4", I: "~@2 f4 ~", J: "~@16 [e3,g#3]@7 ~@9",
  K: "~@16 f4@5 ~@11", L: "~@9 d#4@4 ~@19",
})).s("gm_electric_guitar_jazz").gain(0.06)

// chords · french horn · "FR.HORN"
const french_horn = note("<~@14 A@3 B@4 ~@13 C D E F ~@4 G H I J K ~@3 L@5 M N ~@2>".pickRestart({
  A: "[~@21 [f3,b3,d4]@16 f3@17 [e3,a#3,d4]@34 ~@8]/3", // Bdim Em7b5
  B: "[~@9 e4@17 [a3,b3]@30 ~@3 [c4,d#4,g4]@21 ~@2 b3@2 ~ c4@2 d4@2 ~@2 f4@2 g4@7 ~@28]/4", C: "d4@16 ~ d4@15, ~ g#3",
  D: "f#4@8 ~ f4@7 ~@9 a#3@7, b3@3 ~, ~ e4", E: "~ d#3@15 ~@6 [a3,c4,d#4,g4]@10, [a3,d4]@17 ~@15",
  F: "[g#3,d4,f#4]@16 ~ [c#4,f4]@15, b3, ~ g3", G: "~@30 [g#3,b3,d4,f#4] ~",
  H: "~ [g#3,b3,d4,f#4] ~@2 [g#3,a#3,c#4,f4]@7 ~@21", I: "~@28 f#4@2 ~ g#4",
  J: "~@2 f#4 ~@2 c#5@6 ~@2 c#5@4 ~@4 c5 b4 a4 f#4@7 ~", K: "f#4 ~@2 g4 ~ g#4@3 ~@24",
  L: "[~@8 [a3,d#4]@16 [d4,f#4]@16 d#4@16 g3@8 [f#3,a#3]@8 ~ [d#3,a3,d4]@12 ~ [d#3,a3,d4]@2 ~ [d#3,a3,d4]@11 ~@5 [g#3,d4]@8 [g#3,d4]@7 ~ d4@15 ~@2 [a3,d4]@9 ~@2 b3@2 b2@2 ~ [b2,b3]@2 ~ [b2,b3] ~ b2, ~@24 g#3@32 c#4@16 ~@79 b3 ~@8, ~@40 b3@24 ~@57 g#3@12 ~@16 b2 ~@10]/5", // Adim D F# D G#dim D5 B
  M: "b3 ~ [b2,b3]@2 ~ [d3,d4]@3 [e3,e4] ~ [e3,e4] [f#3,f#4]@7 e3 [f#3,f#4]@5 ~@3 [e3,e4] [d3,d4] [b2,b3]@2 ~, ~@19 e4 ~@6 f4@2 ~@4", // B D E F# E D B
  N: "[b2,b3] ~@2 b3@2 [a2,a3]@2 ~ [f#2,f#3]@2 ~ [d#2,d#3]@6 ~@15, ~@2 b2@3 ~@27", // B A F# D#
})).s("gm_french_horn").gain(0.22)

// chords · french horn · "FR.HORN" · soft notes
const french_horn_soft = note("<~@15 A ~ B@2 C ~@13 D E ~@20 F ~@3>".pickRestart({
  A: "~@5 [a3,d4]@17 ~@10", B: "[~@9 [g3,a#3,c#4]@17 [f3,d4]@32 ~@6]/2", C: "~@25 d#4@2 ~@5",
  D: "~@2 [f3,b3] [g#3,c#4]", E: "~ a3@16 ~@15", F: "~@26 f3 ~@5",
})).s("gm_french_horn").gain(0.13)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2_2 = note("<A@2 B@6 C@2 ~@6 D E@2 F@4 G ~ H I J K L ~ M N ~@23 O P Q>".pickRestart({
  A: "[~@4 a4@5 b4@5 d5@4 f5@22 ~@2 d6@4 e5@4 d5@5 f5@5 d6@4]/2",
  B: "[~ e5@5 d5@4 d6@19 b5@2 a5@71 ~ a4@18 a#4@18 b4@19 c5@18 c#5@16]/6", C: "[~ b4@16 c#5@17 b4@16 ~@14]/2",
  D: "~@7 a4", E: "[c6@2 b5@2 a#5@2 ~ c#5@2 a5@10 g#5@2 g5@2 a4@2 ~ f5@34 ~@4]/2",
  F: "[~@6 g5@2 d6@2 d#6@2 g5@16 ~ c6@8 b5@8 a5@8 d5@8 c#5@8 c5@8 b4@8 a#4@8 a4@32 ~@3]/4", G: "~@7 d4@8 ~",
  H: "e4@15 f#4@17", I: "b4", J: "c#5@2 d5 c#5", K: "~ c#5@15 d5@16", L: "d#5 f#5", M: "~@20 c6@6 b5@3 b4@3",
  N: "f#5 f5",
  O: "~@12 [f#3,d4] [d#3,f#4] [d#3,f#3,d4,f#4] [f#3,d4] [d#3,f#3,d4,f#4] [d#3,f#4] [d#3,f#3,d4,f#4] [f#3,d4] [d#3,f#3,d4,f#4] [d#3,f#4] [d#3,f#3,d4,f#4] [f#3,d4] [d#3,f#3,d4,f#4] [d#3,f#4] [d#3,f#3,d4,f#4] [f#3,d4] [d#3,f#4] [d#3,f#3,d4,f#4] [f#3,d4] [d#3,f#3,d4,f#4]", // D D#m D D#m D D#m D D#m …
  P: "[d#3,f#4] [d#3,f#3,d4,f#4] [f#3,d4] [d#3,f#3,d4,f#4] [d#3,f#4] [d#3,f#3,d4,f#4] [f#3,d4] [d#3,f#3,d4,f#4] [d#3,f#4] [f#3,d4] [d#3,f#3,d4,f#4] [d#3,f#4] [d#3,f#3,d4,f#4] [f#3,d4] [d#3,f#3,d4,f#4] [d#3,f#4] [d#3,f#3,d4,f#4] [f#3,d4] [d#3,f#3,d4,f#4] [d#3,f#4] [f#3,d4] [d#3,f#3,d4,f#4] [d#3,f#4] [d#3,f#3,d4,f#4] [f#3,d4] [d#3,f#3,d4,f#4] [d#3,f#4] [d#3,f#3,d4,f#4] [f#3,d4] [d#3,f#3,d4,f#4] [d#3,f#4] [d#3,f#3,d4,f#4]", // D#m D D#m D D#m D D#m D …
  Q: "[f#3,d4] [d#3,f#4] [d#3,f#3,d4,f#4] [f#3,d4] [d#3,f#3,d4,f#4] [d#3,f#4] [d#3,f#3,d4,f#4] [f#3,d4] [d#3,f#3,d4,f#4] [d#3,f#4] [d#3,f#3,d4,f#4] [f#3,d4] [d#3,f#4] ~@19", // D D#m D D#m D D#m D D#m
})).s("gm_string_ensemble_2").gain(0.3).pan(0.6)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@30 A B ~ C D E F G H I@2 J@3 K@2 L@3 ~@10>".pickRestart({
  A: "~@8 g#5 [g#5,a5] a5 [g#5,a5] g#5 [g#5,a5] a5 g#5 g5@12 g#5 [g5,g#5] g5 [g5,g#5]", // Amaj7 G#maj7
  B: "f#5@12 g5 [f#5,g5] f#5 [f#5,g5] f5@4 ~@12", // Gmaj7
  C: "e5@7 ~ f5 [e5,f5] e5 [e5,f5] f5 [e5,f5] e5 [c#5,d5] d5@4 b5@6 ~ b4@2 c#5@3", // Fmaj7 Dmaj7
  D: "[d5,f#5]@16 ~ d5@9 b5@2 f#6@2 e6@2, ~@8 g#5@5 ~@3", E: "~ d#6@26 d#6@2 ~ e6@2",
  F: "f#6@26 ~ [b4,b5]@2 ~ [d5,d6]@2", // B D
  G: "[f5,f6] [f#5,f#6]@7 [f5,f6] [f#5,f#6]@7 [f5,f6] [e5,e6] [d5,d6] [b4,b5]@12 ~", // F F# F F# F E D B
  H: "~ [c#5,c#6]@7 ~ [c#5,c#6]@5 [c#5,c#6]@3 [b4,b5]@6 [b4,b5]@2 [f#5,f#6]@7", // C# B F#
  I: "[~ [b4,b5]@8 ~ [b4,b5]@5 [b4,b5]@3 [a#4,a#5]@5 [a#4,a#5]@3 [f#5,f#6]@5 [a#4,a#5]@3 [a4,a5]@5 [g#4,g#5]@3 [g4,g5]@5 [f#4,f#5]@8 ~ [e4,e5]@2 [a4,a5]@2 [a#4,a#5]@2 [c#5,c#6]@2]/2", // B A# F# A# A G# G F# …
  J: "[[b4,b5]@2 [g4,g5]@11 [a4,a5]@2 ~ [b4,b5]@2 ~ [c#5,c#6]@5 [d5,d6]@11 [g#4,g#5]@7 ~ [g#4,g#5]@4 ~ [g#4,g#5]@3 [f#5,f#6]@8 [b5,b6]@8 [f5,f6]@8 ~ [f5,f6]@5 [f5,f6]@3 [e5,e6]@5 [e5,e6]@2 ~ [e5,e6]@4]/3", // B G A B C# D G# F# …
  K: "[~ [e5,e6]@2 ~ [d#5,d#6]@24 ~ [f#4,f#5]@2 [g#4,g#5]@3 [f#4,f#5] ~ [c5,c6] [c#5,c#6]@7 ~ [c#5,c#6]@6 ~@2 [c5,c6] [b4,b5] [a4,a5] [f#4,f#5]@6 ~@2, ~@45 [c5,c6] ~@18]/2", // E D# F# G# F# C C# C …
  L: "[[f#4,f#5]@2 ~ [g4,g5] ~ [g#4,g#5]@16 ~ g5@16 f#5@16 f5@16 ~@26]/3", // F# G G#
})).s("gm_string_ensemble_1").gain(0.35).pan(0.7)

// chords · tremolo strings · "TREMOLOSTR" · D#m B7
const tremolo_strings = note("<~@56 [~@11 [d#3,f#3,d4] [b2,a3] ~@19, ~@11 f#4@2 ~@19] ~@2>")
  .s("gm_tremolo_strings").gain(0.42).pan(0.4)

// chords · tuba
const tuba = note("<~@37 A B C@2 D E F G H I J K@2 ~@2 L M N@3 ~@2>".pickRestart({
  A: "~@27 g4 ~@2 g4 ~", B: "~ [d4,f#4]@7 ~ [d4,f#4]@5 d4@2 ~ [d4,f#4]@4 ~@2 [d4,f#4]@3 ~@5 [d4,f#4], ~@14 f#4 ~@17",
  C: "[~ [c#4,g#4]@7 ~@2 [c#4,g#4]@4 ~ g#4@3 [e4,g4]@5 [e4,g4]@2 ~@6 g4@2 ~ [d4,f#4]@5 [f4,g#4]@2 ~ [e4,g4]@3 ~@2 [d4,f#4]@12 ~@5, ~@15 c#4 ~@15 e4 ~@32]/2", // C#5 Em D Fm Em D
  D: "~@8 [g3,b3,g4] ~@2 [g3,b3,g4]@4 [a3,c#4,a4] [g3,b3,g4]@3 [g#3,c#4,g#4]@5 [b3,b4]@8", // G A G C#5 B
  E: "~@3 [b3,d4,g#4,b4]@8 [b3,d4,g#4,b4]@5 ~ [b3,d4,g#4,b4]@2 [b3,d4,g#4,b4]@5 ~ [b3,d4,g#4,b4]@4 ~@3", // G#dim
  F: "~@9 [a#3,c#4,g#4,a#4]@3 [a#3,c#4,g#4,a#4]@4 ~ [a#3,c#4,g#4,a#4]@3 [a3,c4,e4,g#4]@5 [a3,c4,e4,g#4]@5 ~ g#4", // A#m7 Am
  G: "~ [b3,a4] ~@2 [d#4,f#4]@7 ~ [d#4,f#4]@4 ~@2 [d#4,f#4]@2 [d#4,f#4]@5 ~@7, ~ e4@3 ~@28", // B7 D#m
  H: "~@5 [f3,b3,c#4]@16 [e3,a#3,c4]@10 ~", // C#7 C7
  I: "[e3,a#3,c4] ~@2 [e3,a#3] ~ [d#3,a3,b3]@8 ~@14 [b3,d#4]@3 [b3,d#4]@2, ~@3 c4@2 ~@27", // C7 Edim B7 B
  J: "~@11 [b3,d#4]@2 ~ [b3,d#4]@2 ~@9 [b3,a4] ~@2 b4@2 c5@2, ~@28 c#4 ~ d4 ~", // B B7
  K: "[~ [c#4,b4] ~@2 [b3,a4] ~ [g#3,d4]@7 ~@2 [g#3,d4]@2 ~@11 [g#3,d4]@2 ~ [g#3,d4]@2 ~@11 [g#3,d4]@2 ~ [g#3,d4]@2 ~@15]/2", // C#7 B7 G#dim
  L: "~@14 d#4@2 ~ d#4@2 ~@9 d#4@2 d#4@2",
  M: "~ d#4 ~@2 d4 ~ e4 ~ e4 f#4@5 ~@3 f#4@5 ~@3 f4 e4 d4 b3 ~@2 b3, ~@17 e4 ~@14",
  N: "[~@2 b3 ~ d4@5 ~ a3@32 g#3@32 ~@22]/3",
})).s("gm_tuba").gain(0.41)

// chords · trombone
const trombone = note("<~@37 A B@3 C D E@2 F G H I@3 ~ J K L@3 ~@2>".pickRestart({
  A: "~@27 [b4,d5]@2 ~ [b4,e5] ~", // Bm E5
  B: "[~ [a4,c#5]@7 ~ [a4,c#5]@5 [a4,c#5] ~@2 [a4,b4,d5]@4 ~@2 [a4,d5]@3 ~@5 [b4,d5] ~ [b4,d#5]@7 ~@2 [b4,d#5]@4 ~ d#5@3 [a#4,d5]@5 [a#4,d5]@3 ~@5 d5@2 ~ [a4,c#5]@5 [b4,d5]@2 ~ [a#4,d5]@3 ~@3 a4@11 ~@5, ~@23 b4 ~@7 a4@2 ~@14 b4 ~@15 a#4 ~@15 d5@12 ~@5]/3", // A Bm7 D5 Bm B A# A Bm …
  C: "~@8 d5@2 ~ [b4,d5]@4 c#5 [b4,d5]@3 [c#5,e5]@5 [d5,f#5]@5 ~ e5 ~, ~@8 b4 ~@6 e5@2 ~@15", // Bm C#m D
  D: "f#5 ~@2 [d5,g#5]@8 [d5,g#5]@5 ~ [d5,g#5]@2 [d5,g#5]@5 ~ [d5,g#5]@4 ~@3", // Ddim
  E: "[~@9 [c#5,g#5]@3 [c#5,g#5]@4 ~ [c#5,g#5]@2 ~ [c5,g#5]@4 ~ [c5,g#5]@4 ~@2 g#5@2 a5@2 ~ [a#4,f#5]@7 ~ [a#4,f#5]@5 ~ [a#4,f#5]@2 [a#4,f#5]@5 ~@7, ~@33 c#5 ~@30]/2", // C#5 Fm D#m
  F: "~@5 [e4,g4]@16 [d#4,f#4]@9 ~@2", G: "[d#4,f#4] ~@2 d4@2 [d#4,g#4]@8 ~@14 [g4,b4]@3 [g4,d5]@2, ~@3 g4 ~@28",
  H: "~@11 [f#4,b4]@3 [f#4,b4]@3 ~@8 [f#4,d5] ~@2 [g#4,e5]@2 [a4,f5]@2", // B5 D C#m Dm
  I: "[~ [g#4,e5]@2 ~ f4@2 [f#4,b4]@7 ~@2 [f#4,b4]@3 ~@10 [f4,b4]@3 [f4,b4]@2 ~@11 [e4,b4]@2 ~ [e4,b4]@3 ~@8 [b3,b4]@2 ~ b3@2 [b3,b4]@3 [d4,d5]@3 [e4,c#5]@2 [f#4,b4]@6 ~@19, ~@4 d5 ~@56 b4 ~@34]/3", // C#m B5 Fdim E5 B D C#m B5
  J: "~@14 d5@2 ~ [a4,d5]@3 ~@8 [a4,d5]@2 a4@2, ~@14 a4 ~@15 d5 ~", // D5
  K: "~ [a4,d5]@2 ~ d5 ~ e5 ~@2 f#5@6 ~@2 f#5@5 ~@3 f5 e5 d5 b4@2 ~ b4, ~@9 e5 ~@7 e5 ~@14", // D5
  L: "[~@2 b4@2 d5@5 ~ [d4,f#4]@31 ~@2 f#4@32 ~@21, ~@42 d4@31 ~@23]/3", // D
})).s("gm_trombone").gain(0.54).pan(0.4)

// other · muted trumpet · "MT TRUMPET"
const muted_trumpet = note("<~@3 A B C ~@2 D E@2 F G H ~@10 I J K ~ L M ~@26 N O P>".pickRestart({
  A: "~@6 d5@5 ~@4 d5@6 ~@3 f5@2 ~ d5@4 ~", B: "~@2 c5@2 a4@5 ~@2 a4@7 ~@2 g4@2 ~ a4@9",
  C: "~@3 a4 ~ g4 f#4@5 a3@13 ~@8, ~ g4 ~@14", D: "~@6 f4@2 ~ f#4 b4 ~ d5 ~ e5@13 ~ d5@2 b4 ~",
  E: "[f#4 ~ e4@19 d4@2 e4 ~@2 f#4@2 ~@2 g#3@14 ~@5 b4 ~ c#5 d5@6 ~@2 d5@3 b4, ~@60 c#5 ~@3]/2",
  F: "~@2 g4 ~ f#4@3 e4 ~@2 a4@8 ~ a4 ~ b4@2 ~ d5 b4@2 d5 a4 d5@2 ~",
  G: "b4@4 ~@16 c5@2 ~ d#5 ~ d#5 a#4 d#5@2 ~ a#4@2, ~@12 c5 ~@3", H: "~@3 b4@2 d5 b4 ~ d5 a4 ~ d5@2 d4@3 ~@3 g4@12 ~",
  I: "~@24 f#4@4 b4 ~@3", J: "f4@2 ~@2 e4@5 ~ e4 ~@2 d4 ~ e4 ~ d4@7 ~@2 d4 ~@2 b3 ~@2", K: "d4@3 ~@5",
  L: "~@20 f#4 ~@4 f#4 ~@4 f#4 ~", M: "f#3 ~@2 f#4 ~@3 f#4 ~@11 f#4 e4 ~@2 g4 ~ f#4@4 ~@3",
  N: "~@19 b4@2 d5 f#5 ~@3 f#5@2 g5 ~ g#5 ~",
  O: "~ b5@5 ~@2 f#5@2 ~ f5 e5@2 ~@2 a4@3 g#4@2 ~ b4 ~ d5 ~ f#5 e5 ~ f5 e5 d5", P: "b4@2 a4 ~ b4@9 ~@19",
})).s("gm_muted_trumpet").gain(0.15).pan(0.9)

// other · orchestral harp · "HARP"
const orchestral_harp = note("<~@2 A B C@2 ~ D E@3 ~@2 F ~@6 G H I ~@28 J ~@7>".pickRestart({
  A: "~@5 g3 c4 [d4,e4] [f4,g4] [a4,b4,c5] [d5,e5] [f5,g5] a5@3 ~@17", B: "~@15 d5@9 ~ d5@7",
  C: "[~@2 a4@9 f4@9 d4@16 ~@3 a4@8 ~@17, ~@18 c#4@5 ~@9, ~@37 e4@2 ~@25, ~@19 f#4@3 ~@10]/2", D: "~@17 c#5@15",
  E: "[~ b4@17 a#4@16 b4@8 ~@9 c#5@15 ~@30, ~@8 e4@3 ~@5, ~@49 f#4@17 ~@30, ~@50 [g#4,b4]@17 ~@29]/3", // G#m
  F: "~@13 [d3,e3] [f3,g3,a3] [b3,c4] [d4,e4,f4] [g4,a4,b4] ~ g5 ~@12", G: "~@21 d5 ~@7 f#5 ~@2",
  H: "~@14 [g5,b5] ~@4 d4 ~@2 d#6@2 a#4 ~@2 d5 ~ [f#5,a5,c#6] e6@2, ~@14 d6@2 ~@5 a#5@2 ~@9, ~@22 f#4 ~@9", // G F#m
  I: "a5 ~@31", J: "~@3 g#3 [a#3,b3,c#4] [d#4,f4,f#4] [g#4,a#4,b4,c#5] d#5 ~@24",
})).s("gm_orchestral_harp").gain(0.2).pan(0.3)

// other · orchestral harp · "HARP" · soft notes
const orchestral_harp_soft = note("<~@2 A ~@10 B ~@7 C ~@29 D ~@7>".pickRestart({
  A: "~@5 a3 b3 ~@25", B: "~@10 [g2,a2] b2 c3 ~@19", C: "~@21 g5 ~@10", D: "~ [c#3,d#3] f3 f#3 ~@28",
})).s("gm_orchestral_harp").gain(0.08).pan(0.3)
// … 102 more lines

More by Sinatra