Strudelify

Ol' Man River

Sinatra

KeyC majorTempo92 bpm
0:00/0:00
// Ol' Man River — Sinatra
// 92 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 6/4 at bar 23, 4/4 at bar 26, 2/4 at bar 34, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 81 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(92/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.

// other · string ensemble 2 · "SLOWSTIRNG"
const string_ensemble_2 = note(`<
  ~ A B C D@2 E@3 F ~@5 G@2 H I ~@4 J@8 K L@3 M@3 ~@22 N O@2 P@4 ~ Q R@3 ~ S@2 T@3 ~@3
>`.pickRestart({
  A: "~@23 a5@6 b5@6 c6@6 ~ f#6@5 ~, ~@41 d#6@6 ~",
  B: "[e6,g6]@3 [d6,f6]@3 c6@8 g6@2 [d6,f6]@2 [c6,e6]@3 [a5,c6]@3, ~@3 e6@5 ~@4", C: "~ [f5,a5]@11 [e5,g5]@33 ~@3",
  D: "[g5@47 e5@12 g5@12 c5@25]/2", E: "[g5@71 ~ f5@23 g5@49]/3", F: "f5@25 ~@23",
  G: "[~@31 b5@6 c6@7 a5@7 ~ f#5@15 e5@8 ~@15 b4@6]/2", H: "~ a4@4 ~@4 f#5@8 e5@4 ~@3", I: "~ b4@8 a4@4 ~@11",
  J: "[~@20 g5@48 e5@13 g5@11 c5@25 g5@59 c#5@12 d5@26 ~ [d4,f4,g#4]@78 ~ c4@17 ~@9 g#4@30 c5@17 d5@17, ~@117 c#5@55 ~@43 a#3@75 ~@3 [e4,g4]@18 ~@73]/8", // Ddim Em
  K: "~ g5@41 ~@6",
  L: "[~@10 g5@15 a5@15 b5@7 c6@7 e6@7 d6@7 f6@7 ~ g6@8 a#6@30 ~@18 [g#3,f#4,c5]@10 a6@2, ~@131 a#6@12 ~]/3", // G#7
  M: "[g#6@2 ~ c#5@40 d5@60 ~@41, ~ g3@36 ~@11, ~ [f4,b4,g6]@34 ~@13]/3", N: "~@19 g5@17 a5@12",
  O: "[~@2 c6@14 ~ b5@7 a5@6 c6@7 e6@6 g6@14 ~@2 f#6@15 e6@22]/2",
  P: "[d#6@23 c#6@23 d#6@22 e6@24 f#6@23 g6@23 f#6@23 b6@8 ~@23]/4",
  Q: "~@14 [b4,b5]@11 [a#4,a#5]@12 [c4,d#4,f#4,a4,a5]@11, ~@14 [e4,g4]@23 ~@11", // B A# Cdim Em
  R: "[~@12 f#5@11 e5@12 d5@23 c5@22 b4@37 ~@27]/3", S: "[~@9 g5@19 e5@4]/2",
  T: "[b5@6 a5@6 b5@5 c6@3 d6@3 e6@22 d6@7 c6@17 g6@47 ~@28]/3",
})).s("gm_string_ensemble_2").gain(0.33).pan(0.4)

// bass · pizzicato strings · "PIZZICATO"
const bass = note("<~@4 A B C D E B F G H I J K L M N ~@2 O P Q R S T U ~@34 V W X Y Z AA ~@10 AB ~@2>".pickRestart({
  A: "~@6 [c2,c3]@3 ~@9 [c2,c3]@2 ~@4", B: "~@4 [c2,c3] ~@7 [c2,c3] ~@3", C: "~@12 [c2,c3]@4 ~@20 [c2,c3]@3 ~@9",
  D: "~@12 [c2,c3]@2 ~@22 [c2,c3]@3 ~@9", E: "~@12 [c2,c3]@3 ~@21 [c2,c3]@2 ~@10",
  F: "~@6 [c2,c3] ~@11 c2 ~@5, ~@36 c3 ~@11", G: "~@6 [c2,c3] ~@17", H: "~@12 e2@16 ~@9 e2@7 ~@4",
  I: "~@12 e2@3 ~@21 e2@5 ~@7", J: "~@12 e2@8 ~@16 a1@9 ~@3", K: "~@12 e2@7 ~@18 b1@9 ~@2", L: "~@2 e2@5 ~@10 a1@6 ~",
  M: "~@19 e2@9 ~@20", N: "~@2 a1@11 ~@21 e2@14", O: "~@13 d2@17 ~@18", P: "~@13 g1@34 ~", Q: "~@8 [c2,c3] ~@3",
  R: "~@8 [c2,c3]@4 ~@20 [c2,c3]@3 ~@13", S: "~@8 [c2,c3]@3 ~@21 [a1,a2]@3 ~@13",
  T: "~@8 [a1,a2]@2 ~@22 [a1,a2]@3 ~@13", U: "~@9 [d2,d3]@4 ~@10 [a#1,a#2]@5 ~@20", V: "~@37 e2@4 ~@7",
  W: "~@12 b1@5 ~@18 e2@4 ~@9", X: "~@10 b1@5 ~@18 e2@4 ~@11", Y: "~@8 b1@4 ~@19 e2@3 ~@14",
  Z: "~@6 b1@3 ~@9 e2@4 ~@19 e2@4 ~@3", AA: "~@16 e2@3 ~@20 e2@3 ~@6",
  AB: "~@17 f2@3 ~@3 e2@2 ~@3 d#2@2 ~@4 d2@2 ~@4 c#2@4 ~@4",
})).s("gm_pizzicato_strings").gain(0.38)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~ A B C D@2 E@4 F G@2 H ~ I@2 J K@5 L@5 ~ M@5 ~@13 N@2 O@2 ~@4 P Q@7 R@4 S ~@4 T@3 U@3 V W@2
>`.pickRestart({
  A: "~@23 a4@6 b4@6 ~ a4@3 [c5,d#5]@4 ~ d#5@4, ~@35 c5@4 ~@4 f#5@5", // Cm
  B: "[e5,g5]@6 ~ [d5,f5]@5 [c5,e5]@10 ~@2 [c5,e5]@4 [e5,g5]@4 [d5,f5]@4 [c5,e5]@7 c5@5, ~@43 a4@3 ~@2", // Em Dm C Em Dm C
  C: "~ [f4,a4]@5 [e4,g4]@15 ~@3", D: "[[e4,g4]@47 [d4,f4]@24 [c4,e4]@13 [d4,f4]@12]/2",
  E: "[~ e4@70 ~ f4@22 ~@2 e4@47 [d4,f4]@49, g4@69 ~@2 d4@24 g4@48 ~@49]/4", F: "e4",
  G: "[~@36 b3@2 ~@2 d4@2 e4 f#4@2 g4@2 a4@2 b4@23 c5@24, ~@39 c4@2 ~@55]/2", H: "c#5@25 c5@22 ~",
  I: "[~@31 b4@7 c5@8 a4@6 f#4@15 e4@6 ~@10 b4@13]/2", J: "~@2 a4@4 ~@13 f#4@16 e4@5 ~@8",
  K: "[~@3 b4@15 ~ a4@5 ~@10 b4@40 ~@21 d#5@21 ~ g4@40 [a4,c5]@48 [g4,b4]@35, ~@34 e5@61 ~@145, ~@37 a4@21 [b4,d5]@21 ~@41]/5", // Am G Bm
  L: "[~@21 g5@47 e5@12 g5@12 ~@12 d4@6 c4@5 ~@25 a#3@47 ~ a3@25 ~@27, ~@20 [e4,g4]@72 [c4,e4]@13 ~@11 c#4@71 [d4,f4,a4]@28 ~@25, ~@93 c5@23 [b3,b4]@23 a#4@48 ~@53, ~@117 [e4,g4]@71 ~@52]/5", // Em C Dm B Em
  M: "[~@62 c5@17 d5@18 ~@21 b3@20 [c4,e4]@57 ~@45, ~@32 d4@107 ~@101, ~@32 a#3@65 g5@70 ~@73, ~@62 g#4@35 g4@101 ~@42, ~@97 c4 f4@41 ~@101]/5", // C
  N: "[~@19 [e5,g5]@6 [d5,f5]@7 [c5,e5]@7 ~ [c5,e5]@13 ~ [e5,g5]@7 [d5,f5]@7 [c5,e5]@17 [d5,f5]@11]/2", // Em Dm C Em Dm C Dm
  O: "[~@2 [e5,g5]@14 [e4,g4]@55 ~@25]/2", P: "~@22 b5@9 a5@9 d5@8",
  Q: "[~ c5@9 g5@18 f#5@19 f5@38 ~@9 a4@9 b4@10 f5@9 ~ c5@8 [b4,d5]@8 ~ c5@9 [b4,d5]@9 [a4,c5]@19 [g4,b4]@18 c5@16 ~@31 c5@15 b4@7 ~@13 e5@7 g5@15 f#5@14 ~ [g4,b4,c#5,e5]@22, ~@122 e5@10 ~@7 e5@9 ~@63 g4@41 ~@19 c5@43 ~@22, ~@227 a4@29 ~@8 a4@16 ~@4 [a4,d#5]@29 ~@23, ~@271 f#4@12 ~@53]/7", // Bm Am G C#m7b5 Adim
  R: "[~ [f#4,a4,c5,d#5]@23 [e4,g4,b4,c#5]@23 [f#4,a4,c5,d#5]@23 [g4,b4,e5]@23 [a4,c5,f#5]@23 [b4,e5,g5]@23 [a4,c5]@23 [c#5,e5,g5,b5]@6 ~@17 [c4,d#4,f#4,a4,c5,d#5,f#5,a5]@5 ~@2, ~@70 c#5@17 ~@6 d#5@17 ~@6 c#5@11 ~@12 [d#5,f#5]@17 ~@36]/4", // F#dim C#m7b5 F#dim Em F#dim Em Am C#m7b5 …
  S: "~@16 [b3,c#4,e4,g4,b4,c#5,e5,g5]@4 ~@19 [a3,c4]@5 ~@4, ~@38 [d#4,f#4,a4,c5,d#5,f#5]@5 ~@5", // C#m7b5 Am D#dim
  T: "[~@14 e4@4 b4@7 a4@4 e5@16 ~ b4@6 e5@6 d5@5 b5@8 ~ a5@4 g5@46 ~@11 e4@11]/3",
  U: "[b4@6 a4@6 b4@5 c5@2 ~ d5@3 e5@23 d5@6 c5@17 g5@46 ~@29]/3",
  V: "~@17 [f4,a4,c5,d5]@3 ~@2 [g4,b4,d5,e5]@2 ~@4 [a4,c5,d5,f5]@2 ~@4 [b4,d5,e5,g5]@2 ~@4 [b4,d#5,f5,g#5]@8", // Dm7 Em7 Dm7 Em7 Fm7b5
  W: "[~@7 [c5,e5,g5,a5]@23 ~@18]/2", // Am7
})).s("gm_string_ensemble_1").gain(0.33).pan(0.4)

// other · flute
const flute = note("<~@11 A B C D ~@17 E@3 ~@43 F ~@2>".pickRestart({
  A: "~@37 a4@2 b4@2 ~ d5@2 e5@2 f#5@2, ~@36 g4@2 ~@3 c5@2 ~@5", B: "g5@24 a5@5 f#5@6 ~ d#5@5 f#5@7",
  C: "e5@27 ~ f#5@4 g5@3 ~ a5@3 ~ g5@3 f#5@5", D: "[g5,b5] ~",
  E: "[~@41 e4@13 [d4,f4]@14 [a#4,d5]@8 [a4,c#5]@8 [g#4,c5]@33 ~@27, ~@20 g4@7 ~@45]/3", // Dm A# A G#
  F: "~@17 d6@3 ~@3 e6@2 ~@3 f6@2 ~@4 g6@2 ~@4 g#6@8",
})).s("gm_flute").gain(0.33).pan(0.7)

// chords · clarinet
const clarinet = note("<A@2 B@2 ~@23 C@3 ~@32 D E@4 ~@14>".pickRestart({
  A: "[e4@23 ~ d#4@23 e4@36 ~ d#4@12]/2", B: "[~@12 e4@59 ~@25]/2",
  C: "[~@23 [a#3,d4]@78 ~ c4@13 ~@29, ~@101 e4@14 ~@29]/3", D: "~@13 [e4,g4]@11",
  E: "[[d#4,f#4]@23 [e4,g4]@23 ~ a4@22 [e4,g4]@23 ~ [f#4,a4]@22 [g4,b4]@23 [a4,c5]@24 [c#5,e5]@6 ~@24, ~@46 f#4@23 ~@123]/4", // D#m Em F#m G Am C#m
})).s("gm_clarinet").gain(0.33).pan(0.6)

// other · oboe
const oboe = note("<A B ~@18 C@4 ~@3 D@3 ~@8 E@5 F@4 G@3 ~ H@5 I@4 J@2 K L@4 ~@14>".pickRestart({
  A: "b4@11 g4@11 ~ a4@6 b4@6 ~ c5@5 d#5@6 ~", B: "f#5 e5@2 ~", C: "[~@20 e4@40 ~ f4@47 ~ g4@47 ~@36]/4",
  D: "[~@23 g#4@78 g4@14 ~@29]/3", E: "[~@37 b4@10 a4@10 e5@60 d5@9 c5@9 ~ g5@29 c5@10 a5@30 c5@10 g5@25]/5",
  F: "[~@4 c5@10 a5@29 ~ g5@10 e5@19 d5@9 ~ c5@30 b4@20 c5@8 ~ e5@9 ~ d5@10 c5@30]/4", G: "[b4@20 g4@93 ~@31]/3",
  H: "[~@47 b4@10 a4@9 ~ e5@55 d5@9 c5@9 g5@27 c5@10 a5@28 c5@9 b5@9 a5@9 d5@8]/5",
  I: "[~ c5@9 g5@18 ~ f#5@18 f5@37 ~@10 a4@9 b4@8 ~ f5@7 e5@2 ~@2 e5@8 ~ d5@8 e5@9 d5@9 c5@17 b4@17, ~@61 f5 ~@34]/4",
  J: "[~@3 c5@64 ~@29]/2", K: "~@9 e5@7", L: "[~ f#5@22 g5@24 f#5@22 g5@24 a5@22 b5@24 c6@23 c#6@7 ~@23]/4",
})).s("gm_oboe").gain(0.33).pan(0.3)

// chords · french horn · "FR.HORN"
const french_horn = note(`<
  A@2 B@2 ~@10 C@3 ~@3 D@4 ~@8 E@3 ~@2 F@3 G@4 H@8 I@8 J K@2 ~@4 L@2 M@6 N@3 ~@3
>`.pickRestart({
  A: "[[g3,e4]@2 [a3,d#4]@2 g3@2 a3 [f#3,d#4], b3@72 c4@23 ~, ~@4 e4@3 ~]/2", // C Adim D#m
  B: "[~@4 a#3@2 ~@2 c4@2 [g3,b3]@5 ~, [g3,e4]@8 f3@7 ~, ~@3 a3@2 ~@3]/2", // G C
  C: "[[g3,b3]@6 [f#3,a3,c4]@6 [g3,b3,c#4]@6 [f#3,a3,c4,d#4]@7 ~@11, e4 ~]/3", D: "[~@20 e4@39 ~@2 f4@92 ~@39]/4",
  E: "[~@40 [e4,g4]@15 [d4,f4]@13 [a#4,d5]@7 ~ [a4,c#5]@8 [g#4,c5]@32 ~@28, ~@17 f5@12 ~@7]/3", // Em Dm A# A G#
  F: "[~@13 e4@19 c4@20 e4@20]/3", G: "[c4@39 b3@40 c4@39 ~ d4@39 e4@34]/4",
  H: "[~@7 f4@37 ~ g4@39 ~ a4@39 g4@185 ~@20 e4@35 ~ c4@19]/8",
  I: "[~@18 e4@36 ~ c4@36 b3@37 c4@38 d4@36 d#4@37 f4@37 g4@108]/8", J: "~@19 g4@15 ~ a4@13",
  K: "[~@2 c5@15 b4@6 ~ a4@6 c5@6 ~ e5@6 g5@15 ~ f#5@15 ~@22]/2", L: "[~@4 b4@2 ~@2 b4@2 ~@2 b4@2 ~ b4@70 ~@11]/2",
  M: "[~@12 c4@11 b3@35 a3@22 g3@39 ~@8 e4@22 c4@25 e4@68 g4@23 a4@23]/6",
  N: "[b4@12 c5@5 d5@6 e5@45 c5@24 g4@23 ~@29]/3",
})).s("gm_french_horn").gain(0.27).pan(0.6)

// chords · trumpet
const trumpet = note("<~@32 A@3 ~@25 B C@2 ~@12 D@3 E F ~>".pickRestart({
  A: "[~@10 g4@15 a4@15 b4@7 c5@7 e5@6 ~ d5@7 f5@7 ~ g5@8 a#5@31 ~@29]/3", B: "~@19 [e4,g4]@11 ~@5 [e4,g4,a4]@10 ~@3",
  C: "[~@2 [e4,g4,a4,c5]@10 ~@5 [e4,f#4,b4]@5 ~@2 [e4,f#4,a4]@4 ~@2 [a4,c5]@4 ~@3 [f#4,a4,c5,e5]@3 ~@4 [a4,c5,d#5,g5]@12 ~@3 [a4,c5,d#5,f#5]@15 [g4,b4,c#5,e5]@10 ~@12, ~@15 f#4 ~@32]/2", // Am7 Esus2 F#m7 Am F#m7b5 Am7b5 Adim C#m7b5
  D: "[~@24 [g4,e5]@21 [a4,c5,e5]@21 ~@3 [a4,d5,f5]@17 ~@6 [b4,d5,g5]@25 ~@27, ~@23 c5@19 ~@102]/3", // C Am Dm G
  E: "~@17 [f4,c5,d5]@2 ~@4 [g4,b4,d5,e5]@2 ~@3 [a4,c5,f5]@2 ~@4 [b4,d5,g5]@2 ~@4 [d#5,f5,g#5]@8, ~@17 a4 ~@30", // Dm7 Em7 F G Fm7
  F: "~@5 [c5,e5,g5,a5]@11", // Am7
})).s("gm_trumpet").gain(0.55).pan(0.4)

// other · trombone
const trombone = note("<~@32 A@3 ~@39 B C@3 ~@3>".pickRestart({
  A: "[~@40 [b3,d4]@14 [a3,c4]@13 ~ g#4@8 g4@8 [g#3,c4,f#4]@33 ~@27]/3", B: "~@2 e3 g3",
  C: "[f#3@18 ~@6 [g2,g3]@22 [a2,a3]@14 ~ b3@2 ~@2 [c3,c4]@2 ~ [d3,d4]@15 ~ [e3,e4]@2 ~@2 [f3,f4]@2 ~@2 [g3,g4]@23 ~@29, ~@61 b2 ~@82]/3", // G A C D E F G
})).s("gm_trombone").gain(0.49)

// other · orchestral harp · "HARP"
const orchestral_harp = note("<~@3 A ~@18 B ~@13 C ~@33 D E ~@9>".pickRestart({
  A: "~@23 f3 a3 b3 e4 [f4,a4] b4 [f4,e5] ~ a4 b4 [e5,f5] a5 b5 e6 ~@11", // F Fmaj7
  B: "~@9 f3@2 ~ a3@2 ~@2 e4@2 ~@2 a4@2 ~ e5@2 ~ f4@2 ~@2 b4@2 e5@2 ~ a5@2 b5@2 e6@2 ~@7, ~@15 b3@2 ~@2 f4@2 ~ b4@2 ~@5 a4@2 ~@3 f5@2 ~@12",
  C: "~@7 f3 ~@2 g3 ~@2 b3 ~ d4 ~ f4 ~@2 g4 ~ b4 ~ d5 ~@2 g5 ~@20", D: "~@36 g3 ~@2 b3 ~@2 d4 ~@2 f4 ~@2",
  E: "g4 ~@2 b4 ~ d5 ~ f5 ~@4 g5 ~@35",
})).s("gm_orchestral_harp").gain(0.27)

// other · timpani
const timpani = note("<~@27 A B C ~@36 D E ~@7 F G H ~ I J>".pickRestart({
  A: "~@23 a#2 ~ a#2 ~@3 a#2!2 ~@2 a#2 ~ a#2 ~@3 a#2 ~@2 a#2!2 ~@4",
  B: "~ a#2 ~@2 a#2 ~@7 a#2 ~ a#2!2 ~ a#2 ~@2 a#2 ~ a#2!2 ~@3 a#2 ~@5 a#2 ~@2 a#2 ~@3 a#2 ~@4 a#2 ~@2",
  C: "~@2 a#2 ~@2 a#2 ~@42", D: "~@18 f2 ~@22 f2 ~@6", E: "~@16 f2 ~@22 f2 ~@8",
  F: "~@24 g2!2 ~ g2!4 ~ g2!3 ~ g2 ~ g2!5 ~ g2!4", G: "g2 ~ g2!7 ~ g2!4 ~ g2!4 ~ g2!5 ~ g2!4 ~ g2!5 ~ g2!4 ~ g2!4 ~ g2",
  H: "g2!4 ~ g2!6 ~ g2!5 ~ g2!2 ~@28",
  I: "~@5 c3 ~ b2 ~ c3 ~ c3 ~ b2 c3 b2 c3 b2 c3 b2 c3 b2 c3 b2 c3 b2 c3 ~ b2 c3 b2 c3 b2 c3 ~ b2 c3 b2 c3 b2 c3 b2 c3 ~ b2 c3 b2 c3",
  J: "b2 c3 b2 c3 ~ b2 c3 b2 c3 b2 c3 ~ b2 c3 ~@34",
})).s("gm_timpani").gain(0.33)

// other · timpani · soft notes
const timpani_soft = note(`<
  ~@27
  [~@24 a#2 ~@2 a#2 ~@4 a#2 ~@4 a#2 ~@2 a#2 ~@4 a#2 ~ a#2]
  [~@2 a#2 ~@2 a#2 ~ a#2 ~ a#2!2 ~@7 a#2 ~@6 a#2 ~@2 a#2 ~ a#2!2 ~@3 a#2 ~@2 a#2 ~@2 a#2 ~ a#2 ~@2 a#2 ~]
  [a#2 ~@2 a#2 ~@44]
  ~@49
  [~@10 b2 ~@37]
  ~
>`).s("gm_timpani").gain(0.22)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note(`<
  ~@2 A@2 B C D E F@2 D G@3 H@2 I@2 J@7 K@3 ~@9 L@6 M@6 N O@6 P@4 Q@3 R@4 ~@2 S T@8 U V@2
>`.pickRestart({
  A: "[c4@23 a#3@13 a3@24 b3@33 ~@3]/2", B: "b3@23 ~ a#3@24", C: "a3 g#3", D: "b3@11 ~ a#3@12", E: "a3@4 g#3@3 c4",
  F: "[b3@22 ~@2 a#3@23 a3@24 ~ g#3@18 c4@6]/2",
  G: "[a3@12 g#3@12 ~@24 b3@23 ~ [a3,c4]@24 ~ g3@23 ~ a3@22 ~, ~@24 g3@47 f#3@25 [b3,c#4]@24 [f#3,c4]@24, ~ e3@2]/3", // Am Bsus2 F#dim
  H: "[~ b3@22 ~@2 a3@22 ~ b3@24 [a3,c4,d#4]@24, ~ e4@70 ~@25, ~@24 c4@23 c#4@25 ~@24]/2", // Adim
  I: "[~@4 [e3,g3,b3]@19 ~@12 [e3,f#3,a3,c4]@19 ~@12 [e3,g3,b3]@20 ~@10]/2", // Em F#m7b5 Em
  J: "[~@2 [e3,f#3,a3,c4]@22 ~@11 e4@18 ~@2 d4@20 c#4@20 [f#3,c4,d#4]@20 ~ d4@21 b3@20 [a3,c4]@45 ~@3 [g3,b3]@47 ~@9 b3@22 a#3@24 ~ a3@23 g#3@5, ~@35 g3@58 ~@23 [e3,g3]@41 [d3,f3]@95 ~@84, ~@35 b3@36 ~@4 a3@41 b3@14 ~@206]/7", // F#m7b5 Cdim Am G Em Dm
  K: "[~@19 g3@73 f3@27 ~@25]/3",
  L: "[~@26 b3@39 ~ c4@39 b3@39 [a3,c4]@39 ~ [g3,b3]@39 [f3,a3,c4]@39 ~ [g3,b3,d4]@25, ~@13 e4@131, ~@13 g3@59 ~@72]/6", // Am G F G
  M: "[~@113 [g3,b3]@19 [a3,c4]@59 ~ g3@19 ~@21 a#3@27 a3@17 ~ g#3@11, ~@7 [a3,c4]@49 ~@40 b3@20 ~@28, ~@54 [d4,f4]@157 [e4,g4]@77]/6", // G Am Dm Em
  N: "~ g3@14 [f3,b3]@33", // Fdim
  O: "[~@41 b3@37 [a3,c4]@36 b3@37 [a3,c4]@37 [g3,b3,d4]@37 [a3,c4]@37 [b3,d4,g4]@26, ~@41 e4@247, ~@41 g3@110 ~@137]/6", // Am G Am G
  P: "[~@29 f#4@18 ~@37 b3@36 ~ c4@55 b3@16, ~@10 [a3,c4]@73 ~ f3@106 ~@2, ~@10 d#4@37 [d4,f4]@73 e4@72, ~@121 a3@71]/4", // Am Dm
  Q: "[~@3 a3@61 ~ [f#3,a3,c4,e4]@26 g4@15 ~ f#4@15 [g3,b3,c#4,e4]@22, ~@2 [e3,g3,c4]@62 ~@27 [a3,d#4]@31 ~@22]/3", // F#m7b5 C#m7b5 C Adim
  R: "[[f#3,a3,c4,d#4]@23 ~ b3@22 ~ f#3@22 [g3,b3,c#4,e4]@23 [a3,c4,f#4]@23 [b3,c#4,e4,g4]@23 [a3,c4,d#4]@23 [c#4,e4,g4,b4]@8 ~@23, ~@23 [e3,g3,c#4]@23 [a3,c4,d#4]@23 ~@23 d#4@20 ~@26 f#4@16 ~@38]/4", // F#dim C#m7b5 F#dim C#m7b5 Adim C#m7b5 C#dim Adim
  S: "~@12 [a3,c4,d#4,f#4]@11 e4@12 d4@13, ~@23 [g3,b3]@25", // Adim G
  T: "[~@10 c4@23 b3@35 ~@11 b3@23 [a3,c4]@23 [b3,d4]@23 [a3,c4]@23 ~@23 [f3,a3]@17 ~@6 [e3,a3]@23 [f#3,b3]@23 g3@23 a3@23 [c4,f4,a4]@23 [f3,a3,b3,d4,g4]@23 ~@29, ~@10 [f3,a3]@58 ~@11 [g3,e4]@115 ~@23 c4@86 ~@6 d4@17 ~@58, ~@171 [b3,d4]@46 e4@92 ~@75, ~@263 g4@46 ~@75]/8", // Am Bm Am F A5 B5 F G7 …
  U: "~@17 [f3,a3,c4,d4]@2 ~@4 [g3,b3,d4,e4]@2 ~@3 [a3,c4,f4]@2 ~@4 [b3,e4,g4]@2 ~@4 [b3,d#4,f4,g#4]@8, ~@34 d4 ~@13", // Dm7 Em7 F Em Fm7b5
  V: "[~@15 e4@47 ~@34, ~@14 [d4,g4,a4]@47 ~@35]/2", // Dsus4
})).s("gm_string_ensemble_1").gain(0.27)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1_3 = note(`<
  A@2 B@2 C@8 D@3 E ~@2 F@6 ~@3 G@8 ~@2 H@3 I@4 J@8 K@8 L M@2 ~@6 N@5 O P@3 ~ Q@2
>`.pickRestart({
  A: "[e3@23 b2@24 e3@24 ~ a2@11 g#2@12 ~]/2", B: "[g2@11 ~]/2", C: "[c2@63 ~]/4",
  D: "[~@12 e2@86 ~@10 e2@5 ~@19 a1@6 ~@6]/3", E: "~@12 e2@5 ~@20 b1@6 ~@5", F: "[~@34 e2@121 ~@2 d2@48 g1@45 ~@38]/6",
  G: "[~@23 a#2@78 c3@15 ~@12 a#2@65 g2@41 c3@31 a2@15 e3@14 d3@14 a#2@8 a2@8 g#2@32 ~@28]/8",
  H: "[~@26 c3@39 ~ a2@39 e2@39]/3", I: "[f2@39 ~ c3@39 d3@39 ~ e2@39 f2@34]/4",
  J: "[~@6 d2@39 g2@39 d2@39 ~ g2@39 [c2,c3]@92 g2@55 ~@19 c3@37 a2@18]/8", // C
  K: "[~@18 c3@37 f2@37 e2@37 f2@37 e2@36 d#2@37 d2@37 g2@37 d3@37 g2@34]/8", L: "~@2 c3@33 a2@13",
  M: "[~@2 g2@14 ~ f#2@26 b2@31 ~@22]/2", N: "[~@12 e3@46 d3@22 g2@35 ~@12 c3@23 a2@23 e2@23 f2@23 e2@21]/5",
  O: "~@2 d2@23 a2@23", P: "[d2@23 g2@23 a2@23 d2@23 g2@23 ~@29]/3", Q: "[~@15 c2@46 ~@35]/2",
})).s("gm_string_ensemble_1").gain(0.27)

stack(
  string_ensemble_2, bass, string_ensemble_1, flute, clarinet, oboe, french_horn, trumpet, trombone, orchestral_harp,
  timpani, timpani_soft, string_ensemble_1_2, string_ensemble_1_3
)

More by Sinatra