Strudelify

All the Things You Are

Sinatra

KeyF majorTempo92 bpm
0:00/0:00
// All the Things You Are — Sinatra
// 92 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 6, 4/4 at bar 7) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 72 bars on a 32-step grid, each part at one level. 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 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A@4 B@7 C@3 ~@3 D@4 ~@3 E@3 F@2 G@7 ~ H@3 I J@3 K L M N O@3 ~ P Q@2 R S T U@2 V W@2 X@4 Y@4 ~
>`.pickRestart({
  A: "[~@15 [d5,f5]@4 [e5,g5]@8 [f5,a5]@4 [d5,f5]@4 [e5,g5]@2 [f5,a5]@2 [e5,g5]@4 f5@4 d5@4 e5@2 f5@2 c5@4 [g4,bb4]@4 a4, ~@43 d5@3 ~ a4@12 ~@5]/4", // Dm Em F Dm Em F Em Gm
  B: "[~@22 a4@16 ~@16 a3@8 d4@8 e4@4 f4@4 a4@16 g4@16 d5@10 ~ gb4@3 g4@2 c5@8 bb4@8 a4@4 c5@4 g5@16 e5@4 c5@4 d5@12 d4@4 c5@8 bb4@4 a4@4 ab4@4 b4@4 f5@10, ~ g4@6 f4@12 ~@93, ~@3 bb4@8 ~@101]/7",
  C: "[~@5 e5@4 ~ d5@4 db5@7 ~ ab4@16 ab5@8 ~ e5@31 ~@18]/3",
  D: "[~@2 b4@4 e5@4 g5@4 c6@24 e6@8 eb6@37 ~ gb6@5 e6@5 eb6@5 ~@3 bb5@2 b5 db6 ~@2 gb6 ab6@2 ~@17, ~@101 ab5@2 ~@3 eb6@2 ~@20, ~@107 e6@2 ~@19]/4",
  E: "[~@14 b4@4 db5@5 eb5@4 e5@3 b5@44 ~@22]/3", F: "[~@29 ab3@9 bb3@7 db4@9 eb4@4 f4@4 a4@2]/2",
  G: "[~ db5@3 f5@2 a5@2 db6@2 eb6@2 e6@2 f6@16 e6@8 d6@8 a5@8 g5@16 bb5@8 d6@8 c6@4 b5@4 bb5@8 g5@8 ~ a5@7 e5@16 a4@8 ~ bb4@7 c5@3 ~ d5@4 f5@4 g5@2 a5@2 bb5@2 c6@2 ~ d6@2 e6@2 f6@30 ~@19]/7",
  H: "[~@15 bb4@16 d5@18 f5@7 d5@6 bb4@6 a4@14 g4@13 ~]/3", I: "[f5,a5]@23 ~ e5@8, ~@23 ab5@9",
  J: "[[eb5,g5]@15 gb5@17 ~@16 db5@16 c5@17 ~@15, ~@5 d5@11 ~@16, ~@32 f5@49 ~@15]/3", K: "~@8 c6@8 e6@7 d6@9",
  L: "a5@16 c6@7 bb5@9", M: "g5@16 a5@9 e5@7", N: "~ c4 f4 [e4,c5], f5@3 ~",
  O: "[c5@12 bb4@3 ~ bb4@24 [gb4,c5]@8 [f4,d5]@8 e5@7 ~ e5@15 ~ [f4,d5]@16, d4@5 ~@2 g4@3 ~@2]/3", P: "~@5 d5 bb4 a4",
  Q: "[g4@3 a4@2 bb4@3 f5@8 bb4@8 e5@23 ~ d5@16]/2", R: "db5@8 bb4@16 bb4 c5@2 d5 eb5 f5 ~ gb5",
  S: "ab5 bb5@2 c6 d6 eb6 ~ f6 gb6@16 f6@8", T: "eb6@2 ab5 db6", U: "[b5@2 db6@8 ab5@2 gb5 f5 gb5@2]/2",
  V: "f5@2 db5@2 eb5@4 bb4@2 ab4@2 bb4@2 b4 db5", W: "[~ f5 ~ gb5 ab5 bb5@2 b5 db6@28 ~@28, eb5 ~@31]/2",
  X: "[~@8 [f3,db4]@5 [a3,f4]@5 ~ [db4,a4]@5 [f4,db5]@28 ~@4 [b4,b5]@13 db6 d6 d5 eb6@16 [gb5,gb6]@6 [eb5,eb6]@5 [b4,b5]@5 [bb4,bb5]@7 [ab4,ab5]@8 [a4,a5]@8 ~, ~@69 db5@2 eb5@16 ~@41]/4", // Db Dm Gbm Db B Gb Eb B …
  Y: "[[b4,b5]@3 ~ db6@4 d6 [e5,e6] ~ gb6 [ab5,ab6] [a5,a6] ~ [b5,b6] [db6,db7]@112, ~@3 db5@4 ~ d5@2 ~ gb5@2 ~@115]/4", // B E Ab A B Db
})).s("gm_string_ensemble_1").gain(0.22)

// bass · pizzicato strings · "PIZZICATO"
const bass = note(`<
  ~@5 A B C D E F G@2 H I J K L M N O P Q R S T U V W A J X Y Z AA AB ~ AC AD AE ~@8 AF AG AH AI ~@4 AJ AK AL AM AN AO
  AP ~@9
>`.pickRestart({
  A: "~@7 d2 ~@7 d2", B: "~@14 g1@3 ~@13 g1@2", C: "~@14 c2@3 ~@13 c2@2", D: "~@7 f1 ~@7 f1", E: "~@7 bb1 ~@7 bb1",
  F: "~@14 e2@3 ~@13 e2@2", G: "~@7 a1 ~@7 e1", H: "~@14 a2@3 ~@13 e2@2", I: "~@14 d2@3 ~@13 d2@2",
  J: "~@14 g1@2 ~@14 g1 ~", K: "~@7 c2 ~@7 c2", L: "~@14 f1 ~@15 f1 ~", M: "~@14 b1 ~@15 b1 ~",
  N: "~@14 e2@2 ~@14 e2 ~", O: "~@14 e1 ~@17", P: "~@14 gb2@3 ~@13 gb2@2", Q: "~@14 b1@2 ~@14 b1 ~",
  R: "~@14 e2@2 ~@14 b1 ~", S: "~@14 e2 ~@15 b1 ~", T: "~@14 gb1 ~@15 gb1 ~", U: "~@14 ab1 ~@15 ab1@2",
  V: "~@14 db2 ~@15 ab1@2", W: "~@7 f2 ~@7 a1", X: "~@14 c2 ~@15 c2 ~", Y: "~@14 f2 ~@15 f1@2", Z: "~@14 bb1 ~@15 a1 ~",
  AA: "~@7 g1@3 ~@6", AB: "~@7 c2 ~@8", AC: "~@7 g1 ~@8", AD: "~@9 g1 ~@6", AE: "~@7 c2@2 ~@23", AF: "g2@2 ~@6 g2 ~@7",
  AG: "c2@2 ~@14 c2 ~@15", AH: "f2 ~@15 f2 ~@15", AI: "f2 ~@31", AJ: "~@8 eb2@11 ~@13", AK: "~@8 ab2@4 ~@12 ab2@3 ~@5",
  AL: "~@8 db2@3 ~@13 db2@3 ~@5", AM: "~@4 gb2@2 ~@6 gb2 ~@3", AN: "~@8 b1@3 ~@13 b1@2 ~@6",
  AO: "~@4 ab1@2 ~@6 ab1 ~@3", AP: "~@4 db2 ~@11",
})).s("gm_pizzicato_strings").gain(0.38)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note(`<
  ~@7 A@7 ~@3 B@4 ~@3 C@3 ~ D E@7 ~ F@3 ~@4 G H I@2 ~@2 J K L M@2 N O P Q@2 R S@2 ~ T@5 U@2 ~
>`.pickRestart({
  A: "[~@14 bb4@10 ~ eb4@3 e4@3 a4@7 g4@7 ~ f4@4 a4@4 e5@15 ~ c5@4 a4@4 bb4@12 bb3@4 a4@8 g4@4 gb4@4 f4@4 ab4@4 d5@15 ~ c5@4 b4@4 a4@8 e4@16 e5@8 db5@30 ~@20]/7",
  B: "[~@3 b3@3 c4@4 e4@5 c5@24 e5@8 eb5@36 gb5@6 e5@5 eb5@7 ab4@2 bb4@2 db5@2 ~ e5 gb5 ab5@2 ~@16, ~@105 b4 ~ eb5@2 ~@19]/4",
  C: "[~@14 ab4@4 a4@4 b4@4 db5@4 ~ ab5@48 ~@17]/3", D: "~@15 a3",
  E: "[~ db4@3 f4@2 a4@2 db5@2 eb5@2 e5@2 f5@16 e5@8 d5@8 a4@8 g4@16 [bb4,g5]@8 ~ bb5@7 [c5,a5]@4 [b4,ab5]@4 [bb4,g5]@8 [g4,e5]@8 ~ a4@7 ~@16 a3@8 bb3@8 c4@4 d4@4 f4@4 g4@2 a4@2 bb4@2 ~ c5@2 d5@2 e5@2 f5@32 ~@17, ~@39 d5@4 ~@12 f5@4 e4@8 ~@45, ~@119 c5@23 ~@82]/7", // Eb F E Eb C
  F: "[~@14 f4@17 bb4@18 d5@8 bb4@6 g4@7 e4@24 ~@2]/3", G: "~ [c5,a5] [e5,c6] [d5,bb5]",
  H: "[a4,f5]@15 [c5,a5]@8 ~ g5@8, ~@23 bb4@9", I: "[[g4,e5]@16 a4@9 e4@8 f4@31, ~@8 c5@23 ~]/2",
  J: "~@8 g5@4 c5@3 ~ f5@2 a4@2 bb4@2 c5@2 d5@2 e5@2 f5 ~ g5 ~", K: "c6, a5 ~@15", L: "~@5 d4 bb3 a3",
  M: "[g3@3 a3@2 bb3@3 f4@8 bb3@8 e4@24 d4@16]/2", N: "db4@8 d4@14 ~@3 c4 ~ d4 eb4 f4 ~ gb4",
  O: "ab4 bb4 ~ c5 d5 eb5 ~ f5 gb5@15 f5@8 ~", P: "eb5@2 ab4 db5", Q: "[b4@8 db5@31 ab4@8 ~ gb4@4 f4@4 gb4@8]/2",
  R: "f4@4 ~ db4@4 eb4@7 bb3@4 ab3@4 bb3@4 b3@2 db4@2", S: "[eb4 ~ f4 gb4 ~ ab4 bb4 b4 ~ db5@28 ~@27]/2",
  T: "[~@20 ab4@2 [a3,d4,a4]@6 [b3,e4]@5 ~ [db4,gb4,bb4,db5]@6, ~@3 [b3,eb4]@8 ~@9, ~@6 gb4@12 f4@4 gb4@5 ~ ab4@12, ~@7 bb4@3 ~@4 b4@3 ~@3]/5", // D5 E5 Gb B
  U: "[[bb3,db4,eb4,bb4] [b3,d4,a4] [bb3,db4,eb4,ab4]@2, gb4]/2", // Eb7 Bm7 Bbm7
})).s("gm_string_ensemble_1").gain(0.22)

// other · epiano1 · "E.PIANO 1"
const epiano1 = note("<~@47 A B@2 C ~@21>".pickRestart({
  A: "~@8 c4@7 ~ f4@8 c5@6 ~@2", B: "[c5@12 ~ bb4@2 ~ bb4@19 ~@5 c5@8 d5@7 ~ e5@5 ~@3]/2", C: "e5 d5",
})).s("gm_epiano1").gain(0.4).pan(0.4)

// other · flute
const flute = note("<A@6 ~@6 B@6 ~@9 C@7 D@2 ~@4 E F G H I J K L ~@24>".pickRestart({
  A: "[~@30 f5@8 g5@16 a5@8 f5@7 ~ g5@4 a5@4 g5@8 f5@8 d5@8 e5@4 f5@4 c5@8 bb4@8 a4@4 g4@4 bb4@16 a4@16 ~@26]/6",
  B: "[~@7 e4@4 gb4@2 ab4@2 a4@4 ab4@2 gb4@2 a4@8 b4@4 a4@4 [c5,e5]@4 [b4,d5]@8 [c5,e5]@2 [d5,f5]@2 [f5,a5]@8 [e5,g5]@4 [d5,f5]@4 [e5,g5]@4 [g4,b4]@12 ~@9]/6", // C Bm C Dm F Em Dm Em …
  C: "[~@30 ab4@8 bb4@9 db5@7 eb5@4 ~ f5@4 a4@2 db5@3 f5@3 a5@2 db6@2 eb6@2 e6@2 f6@15 e6@8 d6@8 a5@8 g5@17 bb5@7 d6@8 c6@4 b5@4 bb5@8 g5@8 a5@8 e5@16 a4@8 bb4@8 c5@4 d5@4 f5@2]/7",
  D: "[~@2 g5@2 a5@2 bb5@2 c6@2 d6@2 e6@2 f6@31 ~@19]/2", E: "~@8 c6@8 c6@8 c6@7 ~", F: "c6@2 bb5 c6 d6@2 a5@2",
  G: "bb5@2 a5 bb5 c6@2 g5@2", H: "a5 ~", I: "~@8 c6@8 e6@7 d6@9", J: "a5@15 c6@9 bb5@8", K: "g5@2 a5 e5", L: "f5@31 ~",
})).s("gm_flute").gain(0.22).pan(0.6)

// other · oboe
const oboe = note("<~@12 A@7 ~@25 B C D E ~@24>".pickRestart({
  A: "[~@14 e4@8 gb4@4 ab4@4 a4@7 ~ ab4@4 gb4@4 a4@16 b4@8 a4@8 e5@8 ~ d5@15 e5@4 f5@5 a5@15 g5@9 f5@7 g5@9 b4@24 a4@28 ~@21]/7",
  B: "~@8 f5@8 e5@8 d5@7 ~", C: "d5 db5", D: "c5 b4 bb4@2", E: "~ a4@31",
})).s("gm_oboe").gain(0.27).pan(0.4)

// chords · french horn · "FR.HORN"
const french_horn = note("<~@17 A@4 ~ B@7 C@2 ~@4 D@5 E F G H I@4 J@2 K ~@3 L M N@2 O P Q@4 ~@5 R S ~>".pickRestart({
  A: "[~@2 b3@4 c4@4 e4@4 g4@16 f4@8 e4@8 ~ eb4@31 b3@34 ~@16]/4",
  B: "[~@4 db4@5 e4@5 ~ eb4@48 db4@15 eb4@31 ~@2 e4@15 ~ eb4@15 ~ e4@15 eb4@16 ~ f4@40 ~@3 f4@5 [a4,db5], ~@218 a4@3 ~@3]/7", // A
  C: "[~@7 [f4,a4]@3 ~ [f4,a4]@3 ~ [f4,a4]@32 ~@17]/2", D: "[~@22 c4@8 g4@8 ~ f4@10 ~@6 c4@8 g4@8 f4@64 c4@25]/5",
  E: "~@4 c5@8 c5@3 ~", F: "c5@2 bb4 c5 d5@2 a4@2", G: "bb4@8 a4@3 ~ bb4@4 c5@8 g4@8", H: "a4@16 c4@6 ~@2 c4@7 ~",
  I: "[c4@97 ~@7 c4@8 f4@8 c5@6 ~@2]/4", J: "[c5@11 bb4@3 ~@2 bb4@24 c5@8 d5@8 e5@6 ~@2]/2", K: "e5 d5",
  L: "~@2 a3 [b3,d4]", M: "[db4,e4]@8 [d4,gb4]@8 [d4,gb4]@8 [d4,gb4]@5 [d4,gb4]@3",
  N: "[~@3 [d4,gb4]@4 ~ [gb4,bb4]@32 ab4@16 bb4@8]/2", O: "b4@2 [db5,f5]@2 [b4,eb5] [bb4,db5] [b4,eb5]@2",
  P: "[bb4,db5] [ab4,b4] [bb4,db5]@6", // Bbm Abm Bbm
  Q: "[[db5,f5]@2 b4@2 bb4 ab4 ~@2 db5@2 b4@8 bb4@8 ~@6, ~ eb5@3 ~@12, ~@3 gb4@10 ~@3]/4", R: "gb3@7 bb3@8 ~ e4@8 a4@8",
  S: "ab4",
})).s("gm_french_horn").gain(0.33).pan(0.3)

// chords · trumpet · Gb5 Gb Dbm7 Gbm7 Ebm
const trumpet = note(`<
  ~@69
  [[db4,gb4]@5 ~@3 [db4,gb4,bb4]@6 ~@2 [db4,gb4,b4,e5]@6 ~@2 [gb4,b4,e5,a5]@5 ~@3, bb3 ~@3]
  [[gb4,bb4,eb5,ab5]]
  ~
>`).s("gm_trumpet").gain(0.49)

// other · orchestral harp · "HARP"
const orchestral_harp = note(`<
  ~@5
  [~@14 d4 ~ f4 a4 d5 ~ f5 a5 ~@10]
  ~@57
  [~@24 f4@2 ~ a4@2 db5@3]
  [f5 ~ a5@2 b5@2 db6@2 eb6 ~@23]
  ~@7
>`).s("gm_orchestral_harp").gain(0.22).pan(0.8)

// other · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note("<A@4 B@7 C@3 ~@15 D ~@14 E@3 F ~@2 G H ~@20>".pickRestart({
  A: "[~@30 [d5,f5]@8 [e5,g5]@16 [f5,a5]@8 [d5,f5]@8 [e5,g5]@3 ~ [f5,a5]@4 [e5,g5]@8 f5@8 d5@8 e5@4 f5@4 c5@8 [g4,bb4]@8 a4@2, ~@86 d5@5 ~@3 a4@24 ~@10]/4", // Dm Em F Dm Em F Em Gm
  B: "[~@22 a4@16 ~@16 a3@8 d4@8 e4@4 f4@4 a4@16 g4@16 d5@10 ~ gb4@3 g4@2 c5@8 bb4@8 a4@4 c5@4 g5@16 e5@4 c5@4 d5@12 d4@4 c5@8 bb4@4 a4@4 ab4@4 b4@4 f5@10, ~ g4@6 f4@12 ~@93, ~@3 bb4@8 ~@101]/7",
  C: "[~@5 e5@4 ~ d5@4 db5@7 ~ ab4@16 ab5@8 ~ e5@31 ~@18]/3", D: "~@7 a5 db6@2 eb6@2 e6@2 f6@16 ~@2",
  E: "[~@7 c6@9 e6@7 d6@8 a5@16 c6@8 bb5@8 g5@16 ~ a5@8 e5@8]/3", F: "f5@31 ~",
  G: "~@4 g5@2 e5@2 f5 c5 d5 e5 f5 g5 a5 bb5", H: "c6@25 ~@7",
})).s("gm_synth_strings_1").gain(0.27).pan(0.6)

// other · tremolo strings · "TREMOLOSTR"
const tremolo_strings = note("<~@35 A@4 B ~@32>".pickRestart({
  A: "[~@14 [a5,c6]@32 [ab5,b5]@31 ~@2 bb3@16 d4@19 f4@7 d4@6 ~]/4", B: "bb3@6 ~ a3@13 g3@12",
})).s("gm_tremolo_strings").gain(0.27).pan(0.6)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1_3 = note("<A@6 B@5 C@7 D@3 E@4 F@4 G@4 H@7 I@4 ~@4 J@4 K@5 L@8 M@6 ~>".pickRestart({
  A: "[~@23 db4@8 c4@8 b3@8 ~@8 f4@8 ~@12 db4@8 ~@13, ~@30 d4@16 ~@48 bb3@39 ~ g3@33 ~@25, ~@31 a4@79 g3@11 ~@5 d4@24 ~@42, ~@126 e3@13 ~@3 a2@25 ~@25]/6",
  B: "[~@7 f4@24 ~@32 g3@8 [ab3,b3]@9, ~@7 [bb3,d4]@32 a3@24 ~@17, ~@31 e4@16 d4@33, ~@39 c4@16 bb3@16 ~@9]/5", // Abm Bb
  C: "[~@14 gb3@16 ab3@32 gb3@16 g3@32 ~@64 e3@33 [a3,c4,e4]@17, ~@14 e4@96 f3@63 ~@51, ~@14 db4@64 c4@64 b3@63 ~@19, ~@110 a3@47 ~ g3@49 ~@17]/7", // Am
  D: "[~@30 a3@16 ab3@33 ~@17, ~@7 gb3@17 ~@24, ~@15 [b3,eb4]@64 ~@17]/3", // B
  E: "[~@7 ab4@8 gb4@8 ab4@8 db4@8 ~@8 [db4,e4]@8 eb4@9, ~@14 a3@63 ~ [ab3,b3]@50, ~@7 db4@16 eb4@24 ~@17, ~@31 gb4@16 ~@17]/4", // Dbm Abm
  F: "[~@7 [e4,ab4]@8 [eb4,gb4]@8 [e4,ab4]@8 gb4@8 ~@8 bb3@8 a3@9, ~@7 db4@16 c4@24 db4@17, ~@7 a3@13 ~@3 ab3@32 ~@9, ~@62 eb4@33 ~@33, ~@39 f4@25]/4", // E Ebm E
  G: "[~@7 [d2,a3]@16 g2@16 ~@16 [f2,a3,c4]@9, ~@7 d4@48 ~@9, ~@7 f3@30 ~@2 c2@16 ~@9, ~@23 bb3@32 ~@9, ~@79 e3@49]/4", // D5 F
  H: "[~@14 bb2@16 a2@16 [g2,g3,bb3,db4]@32 [c3,a3,c4]@32 ~ c2@31 g2@56 ~ [c3,e3]@25, ~@14 f4@187 ~@23, ~@7 d4@16 ~@32 d4@56 ~, ~@110 [ab3,b3]@29 ~@3 [g3,bb3]@79 ~@3, ~@142 f3@49 ~@33]/7", // Gdim F C Abm Gm
  I: "[[f4,a4]@2 [f4,a4] [e4,ab4] [eb4,g4]@2 gb4@2 ~@2 [bb3,db4]@2 [a3,c4]@2 ~@2, f2@3 c3@11 ~@2, ~@3 d4@2 ~@3, ~@64 f4@49 ~@15]/4", // F E Eb Bbm Am
  J: "[~@5 gb4 f4 ~ g4@2 [d4,f4]@2 e4@4, d4 ~, [g2,f4,g4] [c3,a4] [f2,a3,c4]@2, ~ bb3@63 ~@64, ~@7 e4@3 ~@6]/4", // Dm G7 F
  K: "[~@2 [e3,a4]@3 f4@2 ~@3 [b3,d4]@2 [a3,db4] g2@2 bb2@2 eb2@3, ~@4 g3@13 ~ gb3@22, ~@16 [bb3,d4]@40 a3@39 ~@9 [bb3,gb4]@56, ~@5 a2@4 d2@4 ~@7, ~@7 [db4,e4]@3 ~@10]/5", // A5 Bm A Bb Ebm Dbm
  L: "[~ [ab2,eb4,gb4]@4 db3@4 gb2@4 b2@4 db5@2 ~@2 [db3,bb4]@4 [f4,a4]@5 ~ ab2, ~@4 b3@29 ~@3 bb3@30 ~@2 [ab2,b3,d4]@16 ~@16 db2@16 ~@12, ~@10 [db4,f4]@16 gb4@11 ~ gb4@12 ~@14, ~@13 eb4@3 ~@5 db4@9 ~@2]/8", // Ab7 Gb F Abdim Db
  M: "[~@3 db2@4 [d2,d3]@3 [e2,e3]@3 [gb2,gb3]@11]/6", // D E Gb
})).s("gm_string_ensemble_1").gain(0.27)

// drums · hihat
const hihat = s("hh").struct("<~@5 A B C D B@2 D B@3 C D B C D E A B C D B@2 D B C D B@2 D B ~@37>".pickRestart({
  A: "~@15 x", B: "~@6 x!2 ~@7 x", C: "~@7 x ~@6 x!2", D: "~@7 x ~@7 x", E: "~@3 x ~@4",
})).gain(0.16)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@5
  [~@11 x ~@4]
  [~@3 x ~@7 x ~@4]!14
  [~@3 x ~@12]
  [~@11 x ~@4]
  [~@3 x ~@7 x ~@4]!13
  [~@3 x ~@12]
  ~@36
>`).gain(0.11)

stack(
  string_ensemble_1, bass, string_ensemble_1_2, epiano1, flute, oboe, french_horn, trumpet, orchestral_harp,
  synth_strings_1, tremolo_strings, string_ensemble_1_3, hihat, open_hat
)

More by Sinatra