Strudelify

Never Will I Marry

Loesser

KeyA minorTempo88 bpm
0:00/0:00
// Never Will I Marry — Loesser
// 88 bpm, 4/4, key A 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: Full arrangement: all 66 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(88/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 1 · "STRINGS"
const string_ensemble_1 = note("<~@11 A@3 B@2 C@7 D@5 E@3 F@7 G H@3 I J@2 K L@6 M@3 N@5 O@6>".pickRestart({
  A: "[~@22 d4@47 e4@39 ~@10 a4@26]/3", B: "[~@8 b4@13 c5@12 b4@39 g4@24]/2",
  C: "[~@10 e4@12 g4@6 e4@38 ~@5 a4@35 b4@12 c5@12 ~ b4@36 g4@23 e4@27 c4@53 d4@32 ~ e4@11 f4@22]/7",
  D: "[a4@24 g#4@34 e4@34 ~ d4@6 e4@7 f4@5 ~ g4@6 a4@34 g#4@12 b3@48 e4@14 d#4@14]/5",
  E: "[~ c#4@16 c4@17 b3@26 [d4,d5]@5 [e4,e5]@7 [f4,f5]@6 [g4,g5]@7 [a4,a5]@34 [b4,b5]@13 [c5,c6]@12]/3", // D E F G A B C
  F: "[[b4,b5]@35 ~ g4@35 ~ e4@11 ~ b4@51 [c4,c5]@36 [d4,d5]@13 [e4,e5]@23 [c4,c5]@26 [a3,a4]@25 ~@28 c6@50, ~@35 g5@36 e5@12 b3@52 ~@123 [c4,c5]@78]/7", // B C D E C A C
  G: "[b4,b5]@47 ~", H: "[[a4,a5]@35 ~ [b4,b5]@11 [c5,c6]@7 [b4,b5]@29 [a4,a5]@12 [g4,g5]@36 [e4,e5]@13]/3",
  I: "[g4,g5]@6 [e4,e5]@41 ~", J: "[[a4,a5]@35 [b4,b5]@12 c6@7 [b4,b5]@42, ~@47 c5@5 ~@44]/2", K: "[g4,g5] [e4,e5]",
  L: "[~ [c4,c5]@54 d4@36 e4@12 f4@24 a4@24 g#4@24 b4@21 ~@3 b4@6 a4@43 ~ b3@13 c#4@13 d#4@13]/6", // C
  M: "[~ e4@13 f#4@13 e4@13 d#4@14 c#4@13 b3@13 c4@13 c#4@13 c4@14 b3@13 [e4,e5]@11]/3", // E
  N: "[~@2 [d4,d5]@7 [e4,e5]@6 [f4,f5]@7 [g4,g5]@7 [a4,a5]@39 [b4,b5]@13 [c5,c6]@7 [b4,b5]@46 [g4,g5]@39 [e4,e5]@14 [g5,g6]@52 ~, ~@187 [b3,b4]@42 ~@11]/5", // D E F G A B C B …
  O: "[[c5,c6]@38 ~ [d5,d6]@13 [e5,e6]@27 [c5,c6]@26 [a4,a5]@27 [c5,c6]@21 ~@5 [c5,c6]@106 ~@24]/6", // C D E C A C
})).s("gm_string_ensemble_1").gain(0.25)

// other · trombone
const trombone = note("<A@4 B@5 C@2 D@5 E@4 F@7 G@2 H I@8 ~@9 J K@2 L@5 M@5 N O P@2 ~@2>".pickRestart({
  A: "[~@21 a3@51 ~@8 a3@50 ~@9 a3@48 ~@5]/4", B: "[~@5 a3@50 ~@9 a3@50 ~@8 a3@49 ~@10 a3@51 ~@8]/5", C: "[a3@5 ~@3]/2",
  D: "[~@21 f2@37 ~@12 f2@38 ~@9 f2@39 ~@9 f2@39 ~@12 e2@24]/5", E: "[~@22 e2@39 ~@10 f2@38 ~@10 f2@42 ~@6 e2@25]/4",
  F: "[~@25 a2@45 ~@8 a#2@36 ~@8 a#2@46 b2@38 ~@8 f2@44 ~@4 b1@46 b2@28]/7", G: "[~@10 b2@26 ~@5 e2@7]/2",
  H: "~@12 d2@5 ~@7 c2@10 ~@2 f2@12",
  I: "[~@36 f2@42 ~@6 e2@43 ~@5 e2@42 ~@10 f2@39 ~@9 a2@40 ~@9 g2@44 ~@9 c2@44 ~@6]/8", J: "~@7 a#2@39 ~@2",
  K: "[~@7 a#2@48 b2@40 ~]/2", L: "[~@7 f2@46 ~@5 b1@53 b2@43 ~@9 b2@45 ~@8 e2@24]/5",
  M: "[~@2 d2@6 ~@8 c2@11 ~@2 f2@42 ~@11 f2@46 ~@6 e2@47 ~@6 e2@43 ~@10]/5", N: "f2@7 ~", O: "~@5 a2@43",
  P: "[~@9 g2@44 ~@43]/2",
})).s("gm_trombone").gain(0.33).pan(0.2)

// other · piano · "A.PIANO 1"
const piano = note("<~@39 A B C D E F G ~@20>".pickRestart({
  A: "~@12 a2 [b2,c3] [d3,e3] f3 [g3,a3] b3 [c4,d4] e4 [f4,g4] a4 [b4,c5] d5 f5 e5 d5 c5 b4 a4 g4 f4 e4 d4 c4 b3 a3 g3 ~@2 d3 c3 b2 a2 ~@4, ~@19 f3 ~@4, ~@39 e3@2 ~@7", // Cmaj7 Dsus2 Gsus2 Csus2 Fsus2 Cmaj7
  B: "~@13 [g2,a2] [b2,c3] d3 [e3,f3] g3 a3 [b3,c4] d4 [e4,f4] [g4,a4] [b4,c5] d5 e5 e5@2 d5 c5 [a4,b4] g4 f4 e4 d4 c4 [a3,b3] ~ f3 e3 ~@8, ~@25 f5@2 ~@10 g3@2 ~@9", // Gsus2 Cmaj7 Fmaj7 Cmaj7 Fmaj7 Gsus2 Cmaj7 Asus2
  C: "~@12 [g2,a2,b2] c3 d3 [e3,f3] [g3,a3] [b3,c4] d4 [e4,f4] g4 [a4,b4] c5 [d5,e5] [f5,g5]@2 [d5,e5] c5 b4 [g4,a4] f4 e4 d4 c4 [a3,b3] g3 f3 ~@11", // G Fmaj7 Gsus2 Cmaj7 Fmaj7 Asus2 Dsus2 Fsus2 …
  D: "~@12 a2 [b2,c3] ~ [d3,e3,f3] g3 a3 [b3,c4] [d4,e4] f4 [g4,a4] [b4,c5] d5 e5 [f5,g5] ~ [d5,e5] c5 b4 a4 g4 f4 e4 [c4,d4] b3 a3 g3 f3 e3 ~@8", // Cmaj7 Dm Cmaj7 Dsus2 Gsus2 Cmaj7 Fsus2 Dsus2 …
  E: "~@12 [f2,g2] a2 b2 [c3,d3] [e3,f3] g3 [a3,b3] c4 [d4,e4] [f4,g4] a4 [b4,c5] [d5,e5] f5 [d5,e5] c5 b4 a4 g4 f4 e4 d4 c4 b3 a3 ~@3 d3@2 c3 ~@5, ~@37 g3@2 e3@2 ~@7, ~@19 f3 ~@4", // Fsus2 Csus2 Fmaj7 Asus2 Dsus2 Fsus2 Cmaj7 Dsus2
  F: "~@11 g2 a2 [b2,c3] d3 e3 [f3,g3] a3 [b3,c4] d4 [e4,f4] g4 [a4,b4] [c5,d5] ~ f5 d5 c5 b4 ~ g4 f4 e4 d4@2 ~@4 f3@2 e3@2 ~@5, ~@24 e5@2 ~@3 a4@2 ~@4 c4@2 a3@2 ~@9, ~@18 b3 g3 ~@4", // Cmaj7 Fsus2 Cmaj7 Fmaj7 Asus2 Csus2
  G: "~@11 a2 b2 [c3,d3] e3 [f3,g3] a3 [b3,c4] [d4,e4] [f4,g4] a4 [b4,c5] d5 [e5,f5] g5@16 ~@8", // Csus2 Fsus2 Cmaj7 Dsus2 Fsus2 Cmaj7 Fmaj7
})).s("gm_piano").gain(0.28)

// other · flute
const flute = note("<~@11 A@3 ~@9 B@3 ~@22 C D@3 ~@14>".pickRestart({
  A: "[~@33 [e5,e6]@12 [d5,d6]@11 ~ c6@12 ~@13 e6@11 ~ d6@11 ~ c5@10 ~@28, ~@56 c5@12 ~@13 e5@12 d5@12 c6@11 ~@28]/3", // E D
  B: "[a5@7 b5@6 c6@6 d6@6 e6@33 b5@9 ~@3 b5@11 ~ a5@37 ~@25]/3", C: "~@31 a5@6 b5@6 c6@5",
  D: "[~ d6@7 e6@35 b5@9 ~@3 b5@6 a5@42 ~@41]/3",
})).s("gm_flute").gain(0.26)

// other · french horn · "FR.HORN"
const french_horn = note(`<
  A@4 B@5 C@2 D@3 E@7 F@2 G@5 H I J@3 K L M N O P Q R S T U R S V@6 W@3 X@3 Y Z AA@3 AB@3
>`.pickRestart({
  A: "[~@21 [d3,a3]@48 ~@12 [d3,a3]@49 ~@8 g3 [d3,a3]@51 ~@2, ~@21 [c3,g3]@2 ~@57 [c3,g3]@2 ~@56 c3@2 ~@52]/4", // D5 C5
  B: "[~@5 g3 [d3,a3]@49 ~@7 [c3,g3]@2 [d3,a3]@53 ~@6 g3 [d3,a3]@49 ~@7 [c3,g3] [d3,a3]@52 ~@7, ~@6 c3@2 ~@115 c3@2 ~@115]/5", // D5 C5 D5 C5 D5
  C: "[[c3,g3] [d3,a3]@28 ~@19]/2", D: "[~@33 e4@11 ~ d4@12 c4@12 ~@12 e4@12 d4@12 c4@12 ~@12 e4@12 d4@3]/3",
  E: "[~@9 c4@12 ~@12 e4@12 d4@13 c4@14 ~@11 e4@12 d4@11 c4@10 ~@13 e4@11 d4@14 c4@12 ~@13 e4@12 d4@12 c4@12 ~@12 e4@12 d4@12 c4@12 ~@12 e4@12 d4@13 c4@14 ~@12 e4@10]/7",
  F: "[~@3 d4@13 c4@14 ~@11 e4@11 d4@11 c4@12 ~@10 e4@11]/2",
  G: "[~ d4@12 c4@12 ~@11 e4@11 d4@12 c4@12 ~@11 e4@11 d4@12 c4@13 ~@11 e4@12 d#4@11 c#4@11 ~@13 e4@11 d#4@13 c#4@12 ~@14 d#4@14]/5",
  H: "~ c#4@15 ~ c4@16 b3@14 ~", I: "e4@12 d4@12 c4@11 ~@13", J: "e4@12 d4@12 c4@13 ~@11", K: "e4@12 d4@14 c4@13 ~@9",
  L: "~ e4@3 d4@3 c4@3 ~@2", M: "~@4 e4@12 d4@12 c4@13 ~@7", N: "~@6 e4@12 d4@14 c4@13 ~@3",
  O: "~@11 e4@9 ~@4 d4@9 ~@3 c4@12", P: "~@12 e4@8 ~@4 d4@7 ~@5 c4@6 b3@5 ~", Q: "[e4,a4]@11 ~", R: "[e4,a4]@5 ~",
  S: "[b3,g4]@43 ~@5", T: "[b3,g4]@7 ~", U: "[e4,a4]@43 ~@5",
  V: "[~ [c4,g4]@52 ~@14 e4@12 d4@12 c4@13 ~@11 e4@12 d4@12 c4@12 ~@12 e4@12 d4@12 c4@12 ~@12 e4@12 d4@13 c4@14 ~@12 e4@14 d#4@12]/6", // C5
  W: "[c#4@13 ~@14 e4@14 d#4@13 c#4@13 ~@13 d#4@14 c#4@13 c4@13 b3@13 e4@11]/3",
  X: "[~@2 d4@14 c4@12 ~@14 e4@13 d4@13 c4@14 ~@13 e4@13 d4@13 c4@14 ~@9]/3", Y: "~@3 e4@13 d4@14 c4@14 ~@4",
  Z: "~@8 e4@13 d4@14 c4@13", AA: "[~@13 e4@13 d4@14 c4@13 ~@13 e4@13 d4@13 c4@14 ~@13 e4@13 d4@12]/3",
  AB: "[~ c4@12 ~@15 f#4@10 ~@3 e4@11 ~@2 d4@8 ~@5 g4@42 ~@35, ~@7 c4@52 ~@13]/3",
})).s("gm_french_horn").gain(0.36).pan(0.8)

// other · trumpet
const trumpet = note("<~@37 A B C D E F G H E ~@13 I ~@3 J K@2>".pickRestart({
  A: "~@11 [e4,e5]@6 ~@7 [d4,d5]@5 ~@7 [c4,c5]@8 ~@4", B: "~@12 [e4,e5]@5 ~@7 [d4,d5]@6 ~@6 [c4,c5]@6 [b3,b4]@5 ~",
  C: "[a4,c5]@5 ~@43", D: "[a4,c5] ~@11", E: "[e4,b4] ~@11", F: "[e4,b4] ~@15", G: "[e4,c5] ~@11", H: "[e4,c5] ~@15",
  I: "~@8 e5@8 ~@6 d5@8 ~@5 c5@10 ~@3", J: "~@28 f#5@7 ~@6 e5@6 ~", K: "[~@6 d5@6 ~@7 g5@52 ~@25]/2",
})).s("gm_trumpet").gain(0.6).pan(0.4)

// other · trombone
const trombone_2 = note("<~@37 A B C ~@19 D ~@3 E F@2>".pickRestart({
  A: "~@11 e3@9 ~@4 d3@8 ~@4 c3@11 ~", B: "~@12 e3@6 ~@6 d3@7 ~@5 c3@6 b2@6", C: "a2 ~@3",
  D: "~@9 e4@7 ~@5 d4@8 ~@6 c4@8 ~@5", E: "~@27 f#4@9 ~@5 e4@7", F: "[~@6 d4@8 ~@5 g4@51 ~@26]/2",
})).s("gm_trombone").gain(0.54).pan(0.7)

// other · orchestral harp · "HARP" · Dm Cmaj7 Fsus2 Cmaj7 Dsus2
const orchestral_harp = note(`<
  ~@6
  [~@27 [d4,f4] a4 ~@19]
  [~@37 c4 f4 g4 ~@8]
  ~@50
  [~@29 c4@2 d4 e4 f4 g4 a4 [b4,c5] d5 e5 [f5,g5] a5 [b5,c6] [d6,e6] g6@2 ~@3, ~@29 b3 ~@18]
  ~@7
>`).s("gm_orchestral_harp").gain(0.17).pan(0.3)

// other · timpani
const timpani = note("<~@29 A ~@8 B C D E F G H I ~@9 J ~@2 K ~@4 L M ~>".pickRestart({
  A: "~@21 c3 ~ c3!2 ~ c3!2 ~ c3!2 ~ c3!2 ~ c3 f2 ~@11", B: "~@39 c3!2 ~ c3!2 ~ c3!2 ~", C: "f2 ~@47",
  D: "f2 ~@35 c3!2 ~ c3!2 ~ c3!2 ~ c3!2 ~", E: "e2 ~@47", F: "e2 ~@35 c3!2 ~ c3!2 ~ c3!2 ~ c3!2 ~", G: "f2 ~@23",
  H: "f2 ~@38 c3!2 ~ c3!2 ~ c3!2 ~", I: "e2 ~@23", J: "~@13 c3!2 ~ c3!2 ~ c3 ~ c3!2 ~ c3 ~ c3!2 ~ f2 ~@18",
  K: "~@27 c3 ~ c3!2 ~ c3 ~ c3!2 ~ c3 ~@10", L: "~@15 c2@2 ~@31",
  M: "~@19 c3 ~ c3!2 ~ c3 ~ c3!2 ~ c3 ~ c3!2 ~ c3 ~ c3!2 ~ c3!2 ~ c3 ~ c3 ~ c3 ~",
})).s("gm_timpani").gain(0.22)

// other · timpani · soft notes
const timpani_soft = note("<~@29 A ~@8 B ~@5 B ~@10 C ~@2 D ~@7>".pickRestart({
  A: "~@12 c3 ~ c3!2 ~ c3!2 ~ c3 ~@27", B: "~@36 c3!2 ~@10", C: "~@3 c3!2 ~ c3 ~ c3!2 ~ c3 ~@36",
  D: "~@17 c3 ~ c3!2 ~ c3 ~ c3!2 ~@22",
})).s("gm_timpani").gain(0.13)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note("<~@11 A@2 B@2 C@2 D@6 E@3 F@3 G@6 H@4 ~@8 I@5 J@3 K@7 L@3 ~>".pickRestart({
  A: "[~@21 d4@46 e4@29, ~@7 a3@25]/2", B: "[~@21 d4@47 e4@28, ~@7 a3@25]/2",
  C: "[~@23 g3@25, ~@11 b3@37, ~@23 g4@73]/2",
  D: "[~@22 d4@48 ~@73 g3@25 [a3,c4]@54 ~ f3@65, ~@11 a3@48 b3@25 ~@27 [a#3,d4]@33, ~@35 e4@76 ~@33]/6", // Am A#
  E: "[~@23 [g#3,b3]@46 [a3,c4]@49 ~@22 d#4@4, ~@23 e4@118 ~@3, ~@65 b3@7]/3", // G#m Am
  F: "[~@8 c#4@12 ~@22 f#3@74 ~@13 [e3,g#3]@15, ~@5 b3@31]/3", // E
  G: "[~@12 [d4,f4]@12 e4@10 ~@2 a3@95 ~ b3@41 ~@7 b3@50 ~ [a3,c4]@57, ~@8 c4@36 g3@33 ~@19, ~@18 e4@96 ~ e4@29]/6", // Dm Am
  H: "[~@39 [d4,f4]@55 [c4,e4,g4]@97 ~, ~@39 a3@43 ~@110]/4", // Dm C
  I: "[~@7 d4@35 ~ c4@12 d4@46 ~ [g#3,b3]@48 [a3,c4]@51 ~@27 d#4@12, ~@7 f3@94 ~ e4@126 ~@12, ~@101 a4@19, ~@43 b3@5]/5", // G#m Am
  J: "[~ c#4@13 ~@78 f#4@27 ~ e4@24, ~ g#4@91 ~@52, ~@7 b3@65, ~@40 f#3@70 ~@9 [e3,g#3]@25]/3", // E
  K: "[~@2 [d4,f4]@14 ~@13 a3@104 ~ b3@45 ~@8 b3@51 ~ [a3,c4]@97, ~@8 [c4,e4]@59 g3@52 e4@49]/7", // Dm Am C
  L: "[~@4 [d4,f4]@27 [c4,e4,g4]@27 ~@14, ~@8 a3@43 ~@93]/3", // Dm C
})).s("gm_string_ensemble_1").gain(0.31).pan(0.4)

// chords · tremolo strings · "TREMOLOSTR"
const tremolo_strings = note("<A@4 B@5 C@2 D E@2 F@7 G@7 H I@3 J@7 K L M N O P Q R@6 S@3 T@5 U@6>".pickRestart({
  A: "[~@21 [c2,g2,d3]@52 ~@7 [c2,g2,d3,a3]@53 ~@6 [c2,g2,d3,a3]@53, ~@7 a3@16 ~@41]/4", // Csus2
  B: "[~@5 [c2,g2,d3,a3]@51 ~@8 [c2,g2,d3,a3,e4]@54 ~@5 [c2,g2,d3,a3]@51 ~@7 [c2,g2,d3,g3,a3]@53 ~@6, ~@64 e3@58 ~ f3@58 ~@59]/5", // Csus2 Am7 Csus2
  C: "[[c2,g2,d3,a3]@29 ~@19]/2", D: "~@11 e3@4 d3, ~@7 f2@9",
  E: "[~@3 c3@4 ~@4 e3@4 d3@4 c3@4 ~@4 e3@4 d3, ~@7 f2@13 ~@3 f2@9]/2",
  F: "[~@9 c3@12 ~@12 e3@12 d3@14 c3@13 ~@11 e3@12 d3@11 c3@11 ~@12 e3@11 d3@14 c3@13 ~@12 e3@12 d3@12 c3@12 ~@12 e3@11 ~ d3@12 c3@12 ~@12 e3@10 ~@2 d3@13 c3@13 ~@13 e3@10, ~@21 f2@51 e2@38 ~@7 e2@50 f2@36 ~@12 f2@48 e2@49 ~ a2@23]/7",
  G: "[~@2 d3@14 c3@14 ~@11 e3@11 d3@11 c3@11 ~@11 e3@11 d3@12 c3@12 ~@12 e3@11 d3@11 c3@12 ~@12 e3@11 d3@13 c3@12 b2@11 ~ c#3@11 ~ d#3@11 e3@11 f#3@11 e3@12 d#3@13 c#3@12 ~@14 d#3@14, ~@30 a#2@34 ~@10 a#2@34 ~@12 b2@35 ~@11 f2@49 ~@45 b2@37 ~@11 b2@28]/7",
  H: "~ c#3@16 c3@16 ~ b2@14, ~@11 e2@5", I: "[e3 [d2,d3] [c2,c3] ~ e3 d3 c3 ~ e3 d3 c3 e2, ~@9 f2@10 ~@2 f2@12 ~@3]/3",
  J: "[e3@12 d3@12 c3@12 ~@12 e3@11 ~ d3@14 c3@14 ~@12 e3@12 d3@12 c3@12 ~@12 e3@12 d3@12 c3@13 ~@13 e3@12 d3@14 c3@14 ~@13 e3@12 d3@12 c3@10 ~@2 c3@12 e3@12 ~ d3@11 ~ c3@5 b2@6 ~, ~@36 e2@51 ~ f2@48 a2@39 ~@10 g2@40 ~@13 c2@97 ~]/7",
  K: "~ f3@42 ~@5, f2@43 ~@5", L: "~ [f2,f3]@43 ~@4", M: "~ [e2,e3]@40 ~@7", N: "[e2,e3]@7 ~", O: "[f2,f3]@7 ~",
  P: "~ f2@41 ~@6, f3@7 ~", Q: "[e2,e3]",
  R: "[~ a2@53 ~@13 e3@12 d3@12 c3@12 ~@12 e3@11 ~ d3@12 c3@12 ~@12 e3@12 d3@12 c3@12 ~@12 e3@11 ~ d3@13 c3@13 ~ b2@13 c#3@13 d#3@12, ~@103 a#2@48 b2@37 ~@11 f2@51 ~@38]/6",
  S: "[~@2 e3@12 f#3@13 e3@13 d#3@14 c#3@13 ~@13 d#3@13 c#3@14 c3@13 b2@13 e3@11, ~@14 b2@41 ~@12 b2@28 ~@25 e2@24]/3",
  T: "[~@2 [d2,d3]@14 [c2,c3]@13 ~@13 e3@14 d3@12 c3@14 ~@13 e3@13 d3@13 c3@11 ~@15 e3@13 d3@14 c3@11 ~@15 e3@14 d3@13 c3@11 ~@2, ~@29 f2@49 ~@4 f2@50 e2@49 ~@7 e2@52]/5", // D C
  U: "[~@13 e3@13 d3@14 c3@11 ~@15 e3@13 d3@13 [d2,c3]@13 ~@14 e3@13 d3@12 c3@12 ~@16 e3@12 d3@13 c3@13 ~@78, f2@53 d2@37 ~@16 g2@22 ~@4 g2@26 c2@106 ~@24]/6", // D7
})).s("gm_tremolo_strings").gain(0.27).pan(0.3)

// drums · kick
const kick = s("bd").struct("<A B C ~ D E F G ~ H ~@56>".pickRestart({
  A: "~@11 x ~@12", B: "~@11 x ~@4", C: "~@43 x ~@4", D: "~ x ~@6", E: "~ x ~", F: "~@9 x ~@6", G: "~@37 x ~@10",
  H: "x",
})).gain(0.18)

// drums · high tom
const high_tom = s("ht").struct("<A B C ~ D E F G ~ H ~@56>".pickRestart({
  A: "~@11 x ~@12", B: "~@11 x ~@4", C: "~@43 x ~@4", D: "~ x ~@6", E: "~ x ~", F: "~@9 x ~@6", G: "~@37 x ~@10",
  H: "x",
})).gain(0.18)

// drums · ride
const ride = s("rd").struct("<~@39 x!7 ~@17 [~@7 x ~@16] [~@5 x ~@6] ~>").gain(0.33)

stack(
  string_ensemble_1, trombone, piano, flute, french_horn, trumpet, trombone_2, orchestral_harp, timpani, timpani_soft,
  string_ensemble_1_2, tremolo_strings, kick, high_tom, ride
)

More by Loesser