Strudelify

Betcha By Golly Wow

The Stylistics

KeyE♭ majorTempo81 bpm
0:00/0:00
// Betcha By Golly Wow — The Stylistics
// 81 bpm, 4/4, key D# 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, 3/4 at bar 9, 6/4 at bar 10, 4/4 at bar 15, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 71 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(81/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 · piano
const piano = note(`<
  ~ A B C D E F G H I@4 J@6 K@2 L@5 M N O P Q R S T@3 U V W@2 X@2 Y@2 Z AA AB@2 AC@2 AD AE AF@2 AG AH AI AJ@8 M AK@5
>`.pickRestart({
  A: "bb2 f2 ~@3 f3 [f3,ab3,c4,eb4]!2, [ab3,c4,eb4]@3 ~, f3@5 ~@3, ~ bb2@3", // Fm7 Ab
  B: "[bb2,bb3,d4]@2 ~@3 g3 [g3,bb3,d4,f4]!2, f4@3 ~, g3@2 bb3 g3 bb3@2 ~@2, ~ bb2@3, ~ d4@2 ~", // Bb Gm7
  C: "~@5 ab3 [bb2,ab3,c4,eb4]@2, [bb2,ab3,c4,eb4] [bb2,c4,eb4]@2 ~, ~ f3@3 f3@4, ~@2 ab3@3 ~@3", // Ab Cm7
  D: "~@3 g3 ~ eb2 [f2,c4,eb4] [g2,g3,bb3,d4,f4], eb3@12 [f3,ab3] ~@3, [bb3,d4,f4]!2 [g3,bb3,d4,f4] ~, ~ g3@2 eb2@2 ~@3", // F7 Gm7 Fm Bb Gm7
  E: "gb3 ~@9 [db3,b3]@2 [eb4,gb4]@2 ~ db3, db3@5 ~ [db3,b3]@2, [b3,eb4,gb4]@2 [eb4,gb4]@4 ~ [eb4,gb4], ~ gb3@2 gb3@5, ~@2 b3@3 ~@3", // Db7 Ebm Db7 B Ebm
  F: "[gb2,db4] db3 [ab3,bb3]@2 ~@2 [db4,f4,ab4]!2, ab3@2 gb2@3 gb2@3, f4 ~ f4 ~ [db4,f4]@8 ~@4, ~ [ab3,bb3]", // Gb5 Absus2 Db Absus2
  G: "[db3,b3,eb4,gb4] b3 ~ [b3,eb4,gb4], ~ [eb4,gb4]@2 ~, ~@2 db3@3 db3@3, ~@2 b3 ~", // B Ebm
  H: "[gb2,ab3,bb3,db4,f4]@12 ~@3 e4, ~@3 [g2,f3,a3,c4], ~@7 d4", // Gbmaj7 F
  I: "[[c2,g3,b3,d4]@2 [bb2,f3,ab3,c4,eb4]@8 ~@6 [f3,g3] [f3,g3,bb3,d4] bb2@2 ~@4 ab3 [bb2,ab3,c4,eb4] ~@3 [f3,g3,bb3,d4]@3, ~@5 eb2@4 ~@4 eb2 eb2@2, ~@10 [f3,g3,bb3,d4]@3 [bb3,d4]@4 ~ [ab3,c4,eb4]@3 [c4,eb4]@4 ~@7, ~@11 bb2@4 bb2@3 ~@2 bb2@3 bb2@2 ~@2 bb2@5, ~@13 [f3,g3]@3 ~@5 ab3@3 ~@2 [f3,g3,bb3,d4]@3 ~@3]/4", // G Fm7 Fsus2 Gm7 Ab Gm7 Bb Ab …
  J: "[[ab3,c4,eb4]@2 [bb3,d4,f4] ~ b3@4 b3@2 ~@8 db3@2 ~@6 ab3@2 ab3@4 ~@18 [ab3,c4,eb4]@10 ~@4 [ab3,c4,f4]@4 f2@4 f2@2 bb3@4 ~@4 g2@2 c4@4 ~@4 [c4,eb4,g4]@4, ~@4 [eb4,gb4]@6 [b3,eb4,gb4]@6 [b3,eb4,gb4]@4 [ab3,bb3,db4,f4]@6 [bb3,db4,f4]@6 [bb3,f4]@21 ~@7 eb4@8 ~@6 [d4,f4]@10 [eb4,g4]@8 ~@4, ~@14 db3@4 ~@6 gb2@10 gb2@19 ~@21 g2@8 ~@2 ab2@6 ab2@6, ~@16 ab3@9 bb2@6 bb2@3 ~@6 bb4@2 ~@6, ~@32 db4@4 [b2,a3,db4,e4]@17 ~@7 [ab3,c4]@4 ~@4 [ab3,eb4,g4]@6 ~@4 bb3@6 ~@4 c4@4 ~@4]/6", // Ab Bb Ab Fm Cm Ebm B Bbm7 …
  K: "[[g2,bb3,d4,f4]@2 ~@2 g4 bb3@2 ~@3 [c4,eb4,g4]@2 ~ ab2 ~ bb2, ~@2 [f2,ab3,c4,eb4]@3 [d4,f4]@5 ab2@3 ~ [ab3,c4,eb4]@2, ~@5 g2@4 g2@3 ~@4, ~@14 bb3@10 [c4,eb4,g4]@5 ~@3, ~@2 bb4 ~]/2", // Gm7 Cm Fm7 Dm Ab Cm
  L: "[bb2@2 bb2@2 [bb3,eb4]@2 [bb3,eb4]@2 ~@2 eb3@2 ~ c4@3 ~@6 d3@2 [g2,f3,g3,b3,d4]@4 d4@2 [g3,c4]@2 ~@2 c3@2 g3@2 g3@2 ~@2 [f3,bb3]@2 ~@2 eb3@2 ~@6 ab2@2 bb2@2 bb2@2 ~@2 [g3,g4]@2 [g3,g4]@2 [f3,f4]@2 [f3,bb3,d4,f4]@2 [c3,g3,bb3,eb4]@2 [c3,g3]@4 [c3,g3]@2 [bb2,f3,bb3,d4]@2, [ab3,c4,eb4]@2 eb3@3 ~ d3@3 d3@2 ~@3 c3@3 ~ [bb2,d4,f4]@4 ab2@3 ab2@2 ~@13, ~@4 g4@4 [bb3,eb4,g4]@4 [a3,d4,f4]@4 [a3,c4,d4,f4]@4 [a3,c4,d4,f4]@4 ~@4 f4@8 ~@30 [bb3,d4] ~@5 [bb3,eb4]@6 ~@2, ~@28 g3 ~@3 [g3,c4,eb4]@4 ~@4 [g3,c4,eb4]@4 [f3,bb3,d4]@4 [eb3,ab3,c4]@4 [eb3,ab3,c4]@4 [ab3,c4,eb4]@4 [eb3,ab3,ab4]@6 ~@14]/5", // Eb5 G7 C5 Bb5 G F Bb Cm7 …
  M: "[bb2,f3,bb3,d4] [ab2,eb3,ab3,c4] [ab2,eb3,ab3,c4]@2 ab3@2 ab3 [bb2,ab3,c4,eb4], ~@4 [bb2,c4,eb4]@3 ~", // Bb Ab Cm7
  N: "[bb2,ab3,c4,eb4]@2 [g3,bb3,d4] ~ [eb2,f3,g3,bb3,d4]@12, ~ eb2 ~@6", O: "[bb2,f3,ab3,c4,eb4]",
  P: "~@6 [f3,g3] [f3,g3,bb3,d4], eb2, [f3,g3,bb3,d4]@3 [bb3,d4]@4 ~, ~ bb2@4 bb2@3, ~@3 [f3,g3]@3 ~@2", // Fsus2 Gm7 Bb Fsus2
  Q: "bb2@2 ~@4 ab3 [bb2,ab3,c4,eb4], [ab3,c4,eb4]@3 [c4,eb4]@4 ~, ~@2 bb2@3 bb2@2 ~, ~@3 ab3@3 ~@2", // Ab Cm
  R: "~@6 [f3,g3,bb3,d4]@6 [ab3,c4,eb4]@2 [bb3,d4,f4] ~, [f3,g3,bb3,d4]@3 ~@5, eb2 eb2@2 ~, ~ bb2@5 ~@2", // Gm7 Ab Bb Gm7
  S: "b3@2 b3 ~@4 db3, [eb4,gb4]@3 [b3,eb4,gb4]@3 [b3,eb4,gb4]@2, ~@5 db3@2 ~", // Ebm B
  T: "[~@3 ab3 ab3@2 ~@9 [ab3,c4,eb4]@5 ~@2 [ab3,c4,f4]@2, [ab3,bb3,db4,f4]@6 [bb3,db4,f4]@6 [bb3,f4]@21 ~@7 eb4@8, ~@4 gb2@10 gb2@19 ~@15, ~@2 ab3@3 bb2@2 bb2, ~@12 db4@4 [b2,a3,db4,e4]@17 ~@7 [ab3,c4]@4 ~@4]/3", // Ab Fm Bbm7 Bbm Bb5 A Ab
  U: "f2@2 f2 bb3@2 ~@2 g2, [ab3,eb4,g4]@3 [d4,f4]@5, ~@3 g2@4 ~, ~@5 bb3@3, ~@3 bb4", // Abmaj7 Dm
  V: "c4 ~ [c4,eb4,g4] [g2,bb3,d4,f4], [eb4,g4] ~, ab2@3 ab2@3 ~@2, ~ c4 ~@2", // Cm Gm7 Eb
  W: "[~@2 g4 bb3@2 ~@3 [c4,eb4,g4]@2 ~ ab2 ~ bb2!3, [f2,ab3,c4,eb4]@3 [d4,f4]@5 ab2@3 ~ [ab3,c4,eb4]@2 [ab3,c4,eb4]@2, ~@3 g2@4 g2@3 ~@6, ~@10 bb3@10 [c4,eb4,g4]@5 ~@7, ~@3 bb4@2 ~@3]/2", // Cm Fm7 Dm Ab Cm
  X: "[[bb3,eb4]@2 [bb3,eb4]@2 ~@2 eb3@2 ~ c4@3 ~@6 d3@2 [g2,f3,g3,b3,d4]@4 d4@2 [g3,c4]@2 ~@2 c3@2, eb3@3 ~ d3@3 d3@2 ~@3 c3@3 ~, g4 [bb3,eb4,g4] [a3,d4,f4] [a3,c4,d4,f4] [a3,c4,d4,f4] ~ f4@2, ~@24 g3 ~@3 [g3,c4,eb4]@4]/2", // Eb5 G7 C5 Eb Dm Dm7 Cm
  Y: "[g3!2 ~ [f3,bb3] ~ eb3 ~@3 ab2 bb2!2 ~ [g3,g4]!2 [f3,f4], [bb2,d4,f4]@4 ab2@3 ab2@2 ~@7, ~@4 [g3,c4,eb4]@4 [f3,bb3,d4]@4 [eb3,ab3,c4]@4 [eb3,ab3,c4]@4 [ab3,c4,eb4]@4 [eb3,ab3,ab4]@6 [bb3,d4] ~]/2", // Bb5 G F Bb Cm Bb Ab Ab5 …
  Z: "[f3,bb3,d4,f4] [c3,g3,bb3,eb4] [c3,g3]@2 [c3,g3] [bb2,f3,bb3,d4]!2 [ab2,eb3,ab3,c4], ~@2 [bb3,eb4]@3 ~@3", // Bb Cm7 C5 Bb Ab Eb5
  AA: "[ab2,eb3,ab3,c4]@4 ab3@4 ab3@2 [bb2,ab3,c4,eb4]@2 [bb2,ab3,c4,eb4]@2 [g3,bb3,d4] ~, ~@2 [bb2,c4,eb4]@3 ~@2 eb2", // Ab Gm Cm7
  AB: "[bb3@12 [bb3,eb4]@2 [bb3,eb4]@2 ~@2 eb3@2 ~ c4@3 ~@6 d3@2, [eb2,f3,g3,d4]@5 ~@3, ~@6 eb3@3 ~ d3@3 d3@2 ~, ~@3 g4 [bb3,eb4,g4] [a3,d4,f4] [a3,c4,d4,f4]!2]/2", // Eb5 Ebmaj7 Eb Dm Dm7
  AC: "[[g2,f3,g3,b3,d4]@2 d4 [g3,c4] ~ c3 g3!2 ~ [f3,bb3] ~ eb3 ~@3 ab2, ~ f4@2 ~@5, ~@2 c3@3 ~ [bb2,d4,f4]@4 ab2@3 ab2@2 ~, ~@4 g3 ~@3 [g3,c4,eb4]@4 ~@4 [g3,c4,eb4]@4 [f3,bb3,d4]@4 [eb3,ab3,c4]@4 [eb3,ab3,c4]@4]/2", // G7 C5 Bb5 Bb Cm Bb Ab
  AD: "bb2!2 ~ [g3,g4]!2 [f3,f4] [f3,bb3,d4,f4] [c3,g3,bb3,eb4], [ab3,c4,eb4]@4 [eb3,ab3,ab4]@6 [bb3,d4] ~@5", // G F Bb Cm7 Ab Ab5 Bb
  AE: "[c3,g3]@2 [c3,g3] [bb2,f3,bb3,d4]!2 [ab2,eb3,ab3,c4] [ab2,eb3,ab3,c4]@2, [bb3,eb4]@3 ~@5", // C5 Bb Ab Eb5
  AF: "[ab3@4 ab3@2 [bb2,ab3,c4,eb4]@2 [bb2,ab3,c4,eb4]@2 [g3,bb3,d4] ~ bb3@12 [bb3,eb4]@2 [bb3,eb4]@2 ~@2 eb3@2, [bb2,c4,eb4]@3 ~@2 eb2 [eb2,f3,g3,d4]@10, ~@12 eb3@3 ~, ~@6 g4 [bb3,eb4,g4]]/2", // Ab Gm Eb5 Cm7 Ebmaj7 Eb
  AG: "~ c4@3 ~@6 d3@2 [g2,f3,g3,b3,d4]@4, d3@3 d3@2 ~@3, [a3,d4,f4] [a3,c4,d4,f4]!2 ~", // G7 Dm Dm7
  AH: "d4 [g3,c4] ~ c3 g3!2 ~ [f3,bb3], f4 ~, c3@3 ~ [bb2,d4,f4]@4, g3 ~@3 [g3,c4,eb4]@4 ~@4 [g3,c4,eb4]@4", // C5 Bb5 Bb Cm
  AI: "~ eb3 ~@3 ab2 bb2!2, ab2@3 ab2@2 ~@3, [f3,bb3,d4] [eb3,ab3,c4]!2 [ab3,c4,eb4]", // Bb Ab
  AJ: "[~@2 [g3,g4]@2 [g3,g4]@2 [f3,f4]@2 [f3,bb3,d4,f4]@2 [c3,g3,bb3,eb4]@2 [c3,g3]@4 [c3,g3]@2 [bb2,f3,bb3,d4]@2 [bb2,f3,bb3,d4]@2 [ab2,eb3,ab3,c4]@2 [ab2,eb3,ab3,c4]@4 ab3@4 ab3@2 [bb2,ab3,c4,eb4]@2 [bb2,ab3,c4,eb4]@2 [g3,bb3,d4] ~ bb3@12 [bb3,eb4]@2 [bb3,eb4]@2 ~@2 eb3@2 ~ c4@3 ~@6 d3@2 [g2,f3,g3,b3,d4]@4 d4@2 [g3,c4]@2 ~@2 c3@2 g3@2 g3@2 ~@2 [f3,bb3]@2 ~@2 eb3@2 ~@6 ab2@2 bb2@2 bb2@2 ~@2 [g3,g4]@2 [g3,g4]@2 [f3,f4]@2 [f3,bb3,d4,f4]@2 [c3,g3,bb3,eb4]@2 [c3,g3]@4 [c3,g3]@2 [bb2,f3,bb3,d4]@2, [eb3,ab3,ab4]@6 [bb3,d4] ~@5 [bb3,eb4]@6 ~@10 [bb2,c4,eb4]@6 ~@4 eb2@2 [eb2,f3,g3,d4]@20 ~@16 g3 ~@3 [g3,c4,eb4]@4 ~@4 [g3,c4,eb4]@4 [f3,bb3,d4]@4 [eb3,ab3,c4]@4 [eb3,ab3,c4]@4 [ab3,c4,eb4]@4 [eb3,ab3,ab4]@6 [bb3,d4] ~@5 [bb3,eb4]@6 ~@2, ~@26 eb3@3 ~ d3@3 d3@2 ~@3 c3@3 ~ [bb2,d4,f4]@4 ab2@3 ab2@2 ~@13, ~@13 g4 [bb3,eb4,g4] [a3,d4,f4] [a3,c4,d4,f4]!2 ~ f4@2 ~@11]/8", // G F Bb Cm7 C5 Bb Ab Gm …
  AK: "[[bb2,ab3,c4,eb4]@2 [g3,bb3,d4] ~@13 ab3@7 ~@8 f4@5 ~@17 d6@15 ~@12, ~@2 eb2@2 [eb2,f3,g3,bb3,d4]@32 [eb2,g3,d4]@11 d5@3 g5@18 ~@12, ~@16 [bb2,c4]@20 eb3@5 ~ eb3@26 ~@12, ~@16 eb4@9 eb4@11 ~@8 g4@24 ~@12, ~@23 ab3@13 ~@3 bb2@29 ~@12]/5", // Ab Gm Ebmaj7 Bbsus2
})).s("gm_piano").gain(0.32)

// bass · fretless bass
const bass = note(`<
  ~ A B C D E F G H I@2 J@2 K@2 L M@3 N@2 O@5 P Q R S T U V W X@2 Y Z AA AB AC AD AE AF AG@2 AH@2 AI@2 AJ@2 AK@2 AL AM
  AN AO@2 AP AQ@5 P Q AR@4
>`.pickRestart({
  A: "bb1@2 f1@2 bb1@11 ~", B: "bb1@2 f1@2 bb1@9 ~ bb2 f2", C: "bb1 f1 bb1@5 bb1", D: "eb2@5 ~ eb2@6 f1@2 g1@2",
  E: "db2@2 ab1@2 db2@10 ~ db2", F: "gb1 db2 gb1@4 bb1 eb2", G: "db2@2 ab1@2 db2@9 ~ db2@2", H: "gb1@3 g1",
  I: "[c2 bb1@4 eb2@3]/2", J: "[g1@2 c2@2 bb1@14 c2 bb1 eb2 ~ eb2@9 ~]/2", K: "[f1 g1 db2@7 db2 gb1 db2 gb2@4]/2",
  L: "gb1@2 ab1 bb1 b1@2 gb1@2 b1@8",
  M: "[~@2 bb1@7 ~ bb1 ~ bb1@6 c2@2 f1@2 c2@2 f2@2 g1@8 f1 g1 ab1@2 ab1@4 ab2 eb2 ab1@4]/3",
  N: "[g1@4 f1@6 g1@8 f1 g1 ab1 ~ ab1@4 g1 ab1 bb1@4]/2",
  O: "[bb1@4 eb2@2 eb2@4 c2 db2 d2 ~ d2@5 d2 d2@4 g1@2 b1@2 c2@2 c2@4 ~ c2 bb1@2 bb1@5 bb1 ab1 ~ ab1@4 ~ ab1 ab1@4 bb1@4 eb2@2 eb2@4 d2@2 c2@10 bb1@2]/5",
  P: "ab1@2 ab1@5 ab1 bb1@5 ~ bb1 ~", Q: "bb1@2 eb2 ~ eb2@8 f1@2 g1 ~", R: "bb1@15 ~", S: "eb2@6 g1 c2",
  T: "bb1@14 c2 bb1", U: "eb2 ~ eb2@9 ~ f1@2 g1@2", V: "db2@7 db2", W: "gb1@2 db2@2 gb2@8 gb1@2 ab1 bb1",
  X: "[b1@2 gb1@2 b1@8 ~@2 bb1@7 ~ bb1 ~ bb1@6 c2@2]/2", Y: "f1@2 c2@2 f2@2 g1@8 f1 g1",
  Z: "ab1@2 ab1@4 ab2 eb2 ab1@4 g1@4", AA: "f1@6 g1@8 f1 g1", AB: "ab1 ~ ab1@4 g1 ab1 bb1@4 bb1@4",
  AC: "eb2@2 eb2@4 c2 db2 d2 ~ d2@5 d2", AD: "d2@4 g1@2 b1@2 c2@2 c2@4 ~ c2", AE: "bb1@2 bb1@5 bb1 ab1 ~ ab1@4 ~ ab1",
  AF: "ab1@2 bb1@2 eb2 eb2@2 d2", AG: "[c2@10 bb1@2 ab1@2 ab1@5 ab1 bb1@5 ~ bb1 ~ bb1@2 eb2 ~]/2",
  AH: "[eb2@8 f1@2 g1 ~ eb2@2 eb2@4 c2 db2 d2 ~ d2@5 d2 d2@4]/2",
  AI: "[g1@2 b1@2 c2@2 c2@4 ~ c2 bb1@2 bb1@5 bb1 ab1 ~ ab1@4 ~ ab1 ab1@4]/2",
  AJ: "[bb1@4 eb2@2 eb2@4 d2@2 c2@10 bb1@2 ab1@2 ab1@5 ab1]/2",
  AK: "[bb1@5 ~ bb1 ~ bb1@2 eb2 ~ eb2@8 f1@2 g1 ~ eb2@2 eb2@4 c2 db2]/2", AL: "d2 ~ d2@5 d2 d2@4 g1@2 b1@2",
  AM: "c2@2 c2@4 ~ c2 bb1@2 bb1@5 bb1", AN: "ab1 ~ ab1@4 ~ ab1 ab1@4 bb1@4",
  AO: "[eb2@2 eb2@4 d2@2 c2@10 bb1@2 ab1@2 ab1@5 ab1 bb1@4]/2", AP: "~@2 bb1 ~ bb1@2 eb2 ~ eb2@8",
  AQ: "[f1@2 g1 ~ eb2@2 eb2@4 c2 db2 d2 ~ d2@5 d2 d2@4 g1@2 b1@2 c2@2 c2@4 ~ c2 bb1@2 bb1@5 bb1 ab1 ~ ab1@4 ~ ab1 ab1@4 bb1@4 eb2@2 eb2@4 d2@2 c2@10 bb1@2]/5",
  AR: "[bb1@14 ~ bb1@5 eb1@33 ~@11]/4",
})).s("gm_fretless_bass").gain(0.4)

// chords · epiano1
const epiano1 = note(`<
  ~ A B C D E F G H I@2 ~@2 J@3 K@3 L@5 M@4 N ~@2 O P Q R@2 S T S U V@5 W@7 X@2 Y Z AA AB@6 AC@4 AD@4
>`.pickRestart({
  A: "[ab3,c4,eb4]@12 [ab3,c4,eb4]!3 ~", B: "[g3,bb3,d4]@11 ~ [f3,g3,bb3,d4] ~ [f3,g3,bb3,d4] ~",
  C: "[ab3,c4,eb4]@12 ab3 ~ [c4,eb4,g4] ~", D: "[bb3,d4,f4]@11 ~ [c4,eb4]@2 [g3,bb3,d4,f4] ~, ~@12 ab3 ~@3",
  E: "[gb3,b3,eb4]@11 ~ [gb3,b3,eb4] ~ [gb3,b3,eb4] ~, gb4@5 ~@11", // B
  F: "~@2 db3@10 [f3,bb3,db4] ~ [f3,bb3,db4] ~, [f3,bb3,db4]@11 ~@5", G: "[gb3,b3,eb4]",
  H: "[f3,bb3,db4]@9 ~@3 [f3,a3,c4]@4", I: "[[g3,b3,d4]@2 [ab3,c4,eb4]@7 ~@7]/2",
  J: "[[ab3,c4,eb4]@2 [bb3,d4,f4]@2 [b3,eb4,gb4]@16 [ab3,db4,f4]@16 [a3,db4,e4]@11 ~]/3", // Ab Bb B Db A
  K: "[[a3,db4,e4] ~ [ab3,c4,eb4]@18 [eb3,ab3,c4]@6 [f3,bb3,d4]@10 [g3,c4,eb4]@8 [g3,c4,eb4]@4]/3", // A Ab Bb Cm
  L: "[[f3,bb3,d4]@2 [eb3,ab3,c4]@3 [f3,bb3,d4]@5 [g3,c4,eb4]@4 [ab3,c4,eb4,f4]@4 [bb3,eb4,g4]@4 [a3,c4]@6 [b3,d4]@2 ~@2 [c4,eb4]@2 [bb3,d4]@2 [c4,eb4]@2 [f3,bb3,d4]@2, ~@11 f4@4 [d4,f4] ~@4, ~@31 g3@7 ~@2]/5", // Bb Ab Bb Cm Fm7 Eb Am Bm …
  M: "[eb3@4 eb4@2 ab3 g3@2 [f3,d4]@2 [g3,eb4]@4 [f3,bb3]@2 [eb3,c4] [eb3,ab3,c4]@2 [ab3,c4]@3 [ab3,c4,eb4]@2 g3 [f3,g3]@6, [ab3,c4]@12 bb3@18 d4@3 ~@31, ~@12 [eb3,eb4]@6 ~@16 ab3 ~@15 [bb3,d4]@14]/4", // Dm Cm Bb5 Cm Ab Fsus2 Ab Eb …
  N: "[ab3,c4,eb4]@3 ~", O: "~@6 [ab3,c4,eb4] [bb3,d4,f4]", P: "[b3,eb4,gb4]", Q: "[ab3,bb3,db4,f4]",
  R: "[[a3,db4,e4]@11 ~ [a3,db4,e4] ~ [ab3,c4,eb4]@18]/2", S: "[eb3,ab3,c4]@3 [f3,bb3,d4]@5",
  T: "[g3,c4,eb4]@2 [g3,c4,eb4] [f3,bb3,d4]", U: "[g3,c4,eb4] [ab3,c4,eb4,f4]",
  V: "[[bb3,eb4,g4]@4 [a3,c4]@6 [b3,d4]@2 ~@2 [c4,eb4]@2 [bb3,d4]@2 [c4,eb4]@2 [f3,bb3,d4]@2 eb3@4 eb4@2 ab3 g3@2 [f3,d4]@2 [g3,eb4]@4 [f3,bb3]@2 [eb3,c4], ~@8 f4@16 [d4,f4]@4 ~@28 eb4@6 ~@12 d4@3 ~@3, ~@26 g3@14 ~@4 [ab3,c4]@12 bb3@18 ~@4 ab3 ~]/5", // Eb Am Bm Cm Bb Cm Bb Dm …
  W: "[[eb3,ab3,c4]@2 [ab3,c4]@3 [ab3,c4,eb4]@2 g3 [f3,g3]@6 [bb3,eb4,g4]@4 [a3,c4]@6 [b3,d4]@2 ~@2 [c4,eb4]@2 [bb3,d4]@2 [c4,eb4]@2 [f3,bb3,d4]@2 eb3@4 eb4@2 ab3 g3@2 [f3,d4]@2 [g3,eb4]@4 [f3,bb3]@2 [eb3,c4] [eb3,ab3,c4]@2, ~@14 [bb3,d4]@14 ~@8 f4@16 [d4,f4]@4 ~@28 eb4@6 ~@12 d4@3 ~@7, ~@54 g3@14 ~@4 [ab3,c4]@12 bb3@18 ~@4 ab3 ~@5]/7", // Ab Fsus2 Eb Am Bm Cm Bb Cm …
  X: "[[ab3,c4]@3 [ab3,c4,eb4]@2 g3 f3@6 [bb3,eb4,g4]@4, ~@5 [bb3,d4]@7 ~@4]/2", Y: "[a3,c4]@3 [b3,d4], f4",
  Z: "~ [c4,eb4] [bb3,d4] [c4,eb4], [d4,f4] ~@3, ~ g3@7", AA: "[f3,bb3,d4] eb3@2 eb4, ~ [ab3,c4]@3",
  AB: "[ab3 g3@2 [f3,d4]@2 [g3,eb4]@4 [f3,bb3]@2 [eb3,c4] [eb3,ab3,c4]@2 [ab3,c4]@3 [ab3,c4,eb4]@2 g3 f3@6 [bb3,eb4,g4]@4 [a3,c4]@6 [b3,d4]@2 ~@2 [c4,eb4]@2 [bb3,d4]@2 [c4,eb4]@2 [f3,bb3,d4]@2, bb3@18 ~@4 ab3 ~@15 [bb3,d4]@14 ~@26 g3@14 ~@4, eb4@6 ~@12 d4@3 ~@39 f4@16 [d4,f4]@4 ~@16]/6", // Dm Cm Bb5 Cm Ab Eb Am Bm …
  AC: "[eb3@4 eb4@2 ab3 g3@2 [f3,d4]@2 [g3,eb4]@4 [f3,bb3]@2 [eb3,c4] [eb3,ab3,c4]@2 [ab3,c4]@3 [ab3,c4,eb4]@2 g3 f3@6, [ab3,c4]@12 bb3@18 ~@4 ab3 ~@15 [bb3,d4]@14, ~@12 eb4@6 ~@12 d4@3 ~@31]/4", // Dm Cm Bb5 Cm Ab Bb
  AD: "[~ c5@4 ~@9 f5@6 ~@9 bb4@23 ~@12, [bb3,eb4,ab4]@5 [eb4,g4]@8 ~@3, ~@5 c5@15 bb4@8 ~@36, ~@7 d5@13 f4@6 f4@26 ~@12, ~@9 eb5@11 ~ d5@31 ~@12]/4", // Ebsus4 Eb
})).s("gm_epiano1").gain(0.23)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~ A B C D E F G H I ~@3 J@3 K@3 L@4 M N@2 O P Q ~@2 R G S T@2 U V W X Y@2 Z@2 AA AB AC@2 AD AE AF AG AH@2 AI AJ AK
  AL@5 M N@2 O P ~ AM@3
>`.pickRestart({
  A: "[bb2,ab3,c4,eb4]", B: "[bb2,g3,bb3,d4]", C: "[ab3,c4,eb4]@3 [ab3,eb4,g4], bb2",
  D: "[eb3,g3,bb3,d4]@6 [ab3,c4,eb4] [bb3,d4,f4]", E: "[b3,eb4,gb4]@3 [b3,eb4,gb4]", F: "[bb3,db4,f4]@3 [db4,f4,ab4]",
  G: "[b3,eb4,gb4]", H: "[bb3,db4,f4]@9 ~@3 [f3,a3,c4]@4", I: "[g3,b3,d4] [ab3,c4,eb4]@3",
  J: "[[ab3,c4,eb4]@2 [bb3,d4,f4]@2 [b3,eb4,gb4]@16 [bb3,db4,f4]@16 [a3,db4,e4]@11 ~]/3", // Ab Bb B Bbm A
  K: "[[a3,db4,e4] ~ [ab3,c4,eb4]@18 [f2,c3,ab3,eb4]@6 [g2,d3,bb3,f4]@10 [ab2,eb3,c4,g4]@12]/3", // A Ab Fm7 Gm7 Abmaj7
  L: "[[g2,d3,bb3,f4]@2 [ab3,c4,eb4]@3 [bb3,d4,f4]@5 [c4,eb4,g4]@4 [ab3,c4,eb4]@4 [bb3,eb4,g4]@4 [a3,d4,f4]@6 [g2,f3,b3]@2 [g3,d4,f4]@2]/4", // Gm7 Ab Bb Cm Ab Eb Dm G7
  M: "[g3,c4,eb4] [d4,f4] [g3,c4,eb4] [f3,bb3,d4]", // Cm Dm Cm Bb
  N: "[[eb3,ab3,c4]@4 [ab3,c4,eb4]@2 ab4 g4@2 f4 [f3,bb3,d4] [g3,bb3,eb4] [g3,bb3,eb4]@3 [f3,bb3,d4], ~@3 [bb3,eb4]@2 ~@3]/2", // Ab Bb Eb Bb Eb5
  O: "[f3,bb3,d4] [eb3,ab3,c4] [eb3,ab3,c4]@2 [ab3,c4,eb4]@3 [ab3,c4,eb4]", P: "[ab3,c4,eb4] [g3,bb3,d4] [g3,bb3,d4]@6",
  Q: "[ab3,c4,eb4]@7 ~", R: "~@6 [ab3,c4,eb4] [bb3,d4,f4]", S: "[bb3,db4,f4]",
  T: "[[a3,db4,e4]@12 [a3,db4,e4] ~ eb4@14 f4@3 ~, ~@7 [ab3,c4]@9]/2", U: "[f2,c3,ab3,eb4]@3 [g2,d3,bb3,f4]@5",
  V: "[ab2,eb3,c4,g4]@3 [g2,d3,bb3,f4]", W: "[ab3,c4,eb4]@3 [bb3,d4,f4]@5", X: "[c4,eb4,g4] [ab3,c4,eb4]",
  Y: "[[bb3,eb4,g4]@2 [a3,d4,f4]@3 [g2,f3,b3] [g3,d4,f4] [g3,c4,eb4]]/2", // Eb Dm G7 Cm
  Z: "[[d4,f4]@2 [g3,c4,eb4]@2 [f3,bb3,d4]@2 [eb3,ab3,c4]@4 [ab3,c4,eb4]@2 ab4 g4@2 f4, ~@3 [bb3,eb4]]/2", // Dm Cm Bb Ab Eb5
  AA: "[f3,bb3,d4] [g3,bb3,eb4] [g3,bb3,eb4]@3 [f3,bb3,d4]!2 [eb3,ab3,c4]", // Bb Eb Bb Ab
  AB: "[eb3,ab3,c4]@2 [ab3,c4,eb4]@3 [ab3,c4,eb4]!2 [g3,bb3,d4]", AC: "[[g3,bb3,d4]@3 [bb3,eb4,g4]@2 [a3,d4,f4]@3]/2",
  AD: "[g2,f3,b3] [g3,d4,f4] [g3,c4,eb4] [d4,f4]", AE: "[g3,c4,eb4] [f3,bb3,d4] [eb3,ab3,c4]@2",
  AF: "[ab3,c4,eb4]@2 ab4 g4@2 f4 [f3,bb3,d4] [g3,bb3,eb4], ~ [bb3,eb4]@2 ~", // Ab Bb Eb Eb5
  AG: "[g3,bb3,eb4]@3 [f3,bb3,d4]!2 [eb3,ab3,c4] [eb3,ab3,c4]@2", // Eb Bb Ab
  AH: "[[ab3,c4,eb4]@3 [ab3,c4,eb4]!2 [g3,bb3,d4] [g3,bb3,d4]@6 [bb3,eb4,g4]@4]/2", AI: "[a3,d4,f4]@3 [g2,f3,b3]",
  AJ: "[g3,d4,f4] [g3,c4,eb4] [d4,f4] [g3,c4,eb4]", AK: "[f3,bb3,d4] [eb3,ab3,c4]@2 [ab3,c4,eb4]",
  AL: "[ab4 g4@2 f4 [f3,bb3,d4] [g3,bb3,eb4] [g3,bb3,eb4]@3 [f3,bb3,d4]!2 [eb3,ab3,c4] [eb3,ab3,c4]@2 [ab3,c4,eb4]@3 [ab3,c4,eb4]!2 [g3,bb3,d4] [g3,bb3,d4]@6 [bb3,eb4,g4]@4 [a3,d4,f4]@6 [g2,f3,b3]@2 [g3,d4,f4]@2, [bb3,eb4] ~@9]/5", // Bb Eb Bb Ab Gm Eb Dm G7 …
  AM: "[~@5 [d4,g4]@29 ~@14, ~@2 [eb2,g3]@15 ~@7]/3", // G5 Eb
})).s("gm_string_ensemble_1").gain(0.27)

// other · oboe
const oboe = note(`<
  ~ A B C D E F G H I ~@22 E F ~@3 J K@2 ~@3 L M N O@2 P Q@2 R@3 S T U V@2 W@3 X Y Z AA AB ~@4
>`.pickRestart({
  A: "~@4 f4 g4 ab4 g4 f4@7 ~", B: "~@4 g4 ab4 bb4 ab4 g4@6 ~@2", C: "~@4 ab4 bb4 c5 bb4 ab4@3 bb4@3 c5@2",
  D: "d5@6 [eb5,f5] [c5,d5] bb4@8", E: "~@4 eb5 f5 gb5 f5 eb5@7 ~", F: "~@4 db5 eb5 f5 eb5 db5@7 ~",
  G: "~@4 eb5 f5 gb5 f5 eb5@3 ab5@3 f5 [eb5,e5]", H: "db5@8 ~@4 c5@2 d5 e5", I: "d5@2 g5 [e5,f5] eb5@12",
  J: "~@8 [g4,bb4]@2 [f4,ab4] [eb4,g4] [f4,ab4]@2 [eb4,g4] [d4,f4]", // Gm Fm Eb Fm Eb Dm
  K: "[[c4,eb4]@6 [d4,f4]@8 g4@10 g4@2 ab4@2 c5@2 eb5 ~]/2", L: "~@4 ab5 g5!2 f5", M: "f5@2 eb5@2 eb5@6 d5 ~ d5@2 c5@2",
  N: "c5@9 ~ c5@2 c5@2 bb4@2", O: "[bb4@12 g4@8 f4@11 ~]/2", P: "g4 f5 eb5 f5",
  Q: "[eb5@3 ~ d5@4 c5@10 eb5@2 ab5@2 g5@2 g5 ~ f5@2 f5@2 eb5@2]/2",
  R: "[eb5@6 d5@2 d5 ~ c5@2 c5@9 ~ c5@2 c5@2 bb4@2 bb4@11 ~ g4@8]/3", S: "f4@11 ~ g4@4", T: "f5@4 eb5@4 f5@4 eb5@3 ~",
  U: "d5@2 c5@5 eb5", V: "[ab5@2 g5 ~ g5@2 f5@2 f5@2 eb5 ~ eb5@6 d5 ~ d5@2 c5 ~ c5@8]/2",
  W: "[~@2 c5@2 c5@2 bb4@2 bb4@11 ~ g4@8 f4@11 ~ g4@4 f5@4]/3", X: "eb5@4 f5@4 eb5@3 ~ d5@4",
  Y: "c5@10 eb5@2 ab5@2 g5 ~", Z: "g5@2 f5@2 f5@2 eb5 ~ eb5@6 d5 ~", AA: "d5@2 c5 ~ c5@9 ~ c5@2",
  AB: "c5@2 bb4@2 bb4@11 ~",
})).s("gm_oboe").gain(0.22)

// other · orchestral harp
const orchestral_harp = note(`<
  ~@20 A B ~@2 C ~@3 D ~@10 E ~@3 F G H C ~@2 I J K L M ~@2 N O P Q R ~@2 S T U V W ~@3
>`.pickRestart({
  A: "~@12 [c6,eb6] [eb5,ab5] [ab4,c5] [c4,eb4]", B: "[eb3,ab3] ~@15",
  C: "~@7 g3 [ab3,bb3,c4] [d4,eb4,f4] [g4,ab4,bb4] [c5,d5,eb5] [f5,g5] ~@3", // Ab Dm Gm Cm Fsus2
  D: "[c6,eb6] [eb5,f5,ab5] [f4,ab4,c5] [ab3,c4,eb4] [eb3,f3] ~@11", // Cm Fm7 Fm Ab Ebsus2
  E: "~@8 [c6,eb6] [eb5,f5,ab5] [c5,ab5,c6] [c5,eb5,f5] [eb4,f4,ab4] [f3,ab3,c4] eb3 ~", // Cm Fm7 Fm F7 Fm7 Fm
  F: "~@3 [g3,ab3] [bb3,c4,d4] [eb4,f4,g4] [ab4,bb4,c5] [d5,eb5,f5] [g5,ab5] ~ g5 ~ g5 ~ f5 ~", // Abmaj7 Bb Eb Ab Dm Abmaj7
  G: "f5 ~ eb5 ~ eb5 ~@11", H: "~@4 [c6,eb6] [c5,eb5,ab5] [c4,eb4,ab4] [eb3,ab3] ~@8", I: "~@15 [g3,ab3]",
  J: "[bb3,c4,d4] [eb4,f4,g4] [ab4,bb4,c5] [d5,eb5,f5] [g5,ab5] ~ g5 ~ g5 ~ f5 ~ f5 ~ eb5 ~", K: "eb5 ~@15",
  L: "[c6,eb6] [c5,eb5,ab5] [c4,eb4,ab4] [eb3,ab3] ~@12", // Cm Ab Ab5
  M: "~@3 g3 [ab3,bb3,c4] [d4,eb4,f4] [g4,ab4,bb4] [c5,d5,eb5] [f5,g5] ~@7", // Ab Dm Gm Cm Fsus2
  N: "~@11 [g3,ab3] [bb3,c4,d4] [eb4,f4,g4] [ab4,bb4,c5] [d5,eb5,f5]", // Abmaj7 Bb Eb Ab Dm
  O: "[g5,ab5] ~ g5 ~ g5 ~ f5 ~ f5 ~ eb5 ~ eb5 ~@3", P: "~@12 [c6,eb6] [c5,eb5,ab5] [c4,eb4,ab4] [eb3,ab3]",
  Q: "~@15 g3", R: "[ab3,bb3,c4] [d4,eb4,f4] [g4,ab4,bb4] [c5,d5,eb5] [f5,g5] ~@11",
  S: "~@7 [g3,ab3] [bb3,c4,d4] [eb4,f4,g4] [ab4,bb4,c5] [d5,eb5,f5] [g5,ab5] ~ g5 ~", T: "g5 ~ f5 ~ f5 ~ eb5 ~ eb5 ~@7",
  U: "~@8 [c6,eb6] [c5,eb5,ab5] [c4,eb4,ab4] [eb3,ab3] ~@4", // Cm Ab Ab5
  V: "~@11 g3 [ab3,bb3,c4] [d4,eb4,f4] [g4,ab4,bb4] [c5,d5,eb5]", W: "f5 ~@15",
})).s("gm_orchestral_harp").gain(0.19)

// other · brass section
const brass_section = note("<~@29 A@2 ~@40>".pickRestart({
  A: "[bb3@2 bb4 ~ f4@3 eb4 f4 ~ bb4@21 ~]/2",
})).s("gm_brass_section").gain(0.22)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@2 B C B@2 C D E F G@2 H G I J K L K M H N G O I B C P B@2 C B A Q R S T U V B W B X Y G O G F G Z AA B AB A B C W
  AC G H N G O I B C P AD ~@2
>`.pickRestart({
  A: "x ~ x ~@4 x!2 ~ x ~@5", B: "x ~ x ~@4 x!2 ~ x ~@4 x", C: "x ~ x ~@4 x!2 ~ x ~@3 x ~", D: "x ~@2 x", E: "x!2 ~@2",
  F: "~@4 x ~ x ~@4 x!2 ~ x ~", G: "~@3 x!2 ~ x ~@4 x!2 ~ x ~", H: "~@2 x ~ x ~ x ~@4 x!2 ~ x ~",
  I: "~@4 x ~ x ~@4 x!2 ~@3", J: "~ x ~ x ~@2 x ~", K: "~@2 x ~@2 x ~@2", L: "~ x ~ x", M: "~@3 x!2 ~@7 x ~ x ~",
  N: "~@3 x!2 ~ x ~@5 x ~ x ~", O: "~@3 x!2 ~ x ~@3 x ~ x ~ x ~", P: "x", Q: "x ~ x ~@4 x!2 ~@5 x ~",
  R: "~ x ~@2 x ~@3", S: "x ~@2 x ~@4", T: "x!2", U: "x ~@5 x ~@8 x", V: "x ~@3 x!2 ~ x", W: "x ~ x ~@5 x ~ x ~@4 x",
  X: "x!2 ~ x!3 ~@2", Y: "x ~ x ~@4 x!2 ~@3 x ~ x ~", Z: "~ x!3 ~@2 x!2", AA: "~@3 x!2 ~@3 x ~ x ~@4 x",
  AB: "x ~ x ~@3 x ~ x ~ x ~@4 x", AC: "x ~@3 x ~ x ~@4 x!2 ~ x ~", AD: "~ x ~@2",
})).gain(0.48)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~ A@2 ~@12 B C ~ D ~ E ~ C ~@10 F G H F H ~ I ~ H ~@6 J ~@5 F ~@6 C ~@9
>`.pickRestart({
// … 34 more lines

More by The Stylistics