Strudelify

Anything Goes

Cole Porter

KeyA♭ majorTempo122 bpm
0:00/0:00
// Anything Goes — Cole Porter
// 122 bpm, 2/4, key Ab major. 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: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 159 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(122/2)

// 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.

// bass · acoustic bass · "Bass"
const bass = note(`<
  A B C D E B C D F G H I F G J K L M N O P Q R S T U V W X Y J Z AA AB N AC X AD AE AF H AG AH AI AJ AK AJ AL AM AN@2
  AO AP@2 AQ AR@2 AS AT AU@2 AV AW AX@2 AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV@3 BW@7
  BX@5 BY BZ CA CB CC CD AI O S CE CF@5 CG@3 CH CI CJ CK CL CM CN CO CP CQ CR CS@8 CT@3 CU CV CW ~ CX CY CZ DA@2 DB DC@3
  ~@3
>`.pickRestart({
  A: "ab1@9 ~@4 ab1@3", B: "bb1@9 ~@4 bb1@3", C: "c2@9 ~@4 c2@3", D: "bb1@8 eb2@7 ~", E: "ab1@11 ~@2 ab1@3", F: "ab1",
  G: "bb1@15 ~", H: "c2", I: "bb1 eb2", J: "c2@8 ~@5 c2@3", K: "bb1@7 ~ eb2@6 ~@2", L: "db2",
  M: "ab2@8 ~@3 db2@2 ~ eb2@2", N: "e2@15 ~", O: "ab2", P: "~ ab1@9 ~@3 ab1@2 ~", Q: "b1@9 ~@4 b1@3",
  R: "bb1@9 ~@4 bb1@2 ~", S: "eb2@15 ~", T: "ab1@15 ~", U: "~ bb1@14 ~", V: "c2@10 ~@3 c2@3", W: "bb1@7 ~ eb2@7 ~",
  X: "ab1@10 ~@3 ab1@3", Y: "bb1@7 ~", Z: "bb1@3 ~ eb2@3 ~", AA: "db2@15 ~", AB: "ab2@9 ~@2 db2@2 ~ eb2@2",
  AC: "ab2@7 e2@8 ~", AD: "eb2@8 ab1@7 ~", AE: "ab1@5 ~@11", AF: "g1@9 ~@7", AG: "g1@7 ~", AH: "d2@15 ~",
  AI: "~ ab1@15", AJ: "~ g2@15", AK: "~ g1@15", AL: "~ d2@7", AM: "~ g2@7", AN: "[~@3 c2@15 g2@14]/2", AO: "~@3 bb1@13",
  AP: "[~@3 a1@24 ~@5]/2", AQ: "~@8 eb2@3 d2@3 ~@2", AR: "[~@4 c2@7 ~ bb1@8 ab1@10 ~@2]/2", AS: "~@2 ab1@3 bb1@9 ~@2",
  AT: "~@2 bb1@3 c2@8 ~@3", AU: "[~@2 c2@3 bb1@8 eb2@8 ab1@11]/2", AV: "~@3 ab1@2 ~ bb1@8 ~@2", AW: "~@3 bb1@3 c2@10",
  AX: "[~@3 c2@2 ~ bb1@7 ~ eb2@8 ~ db2@9]/2", AY: "~@4 db2@2 eb2@9 ~", AZ: "~@4 eb2@3 e2@9", BA: "~@4 e2@2 ~ ab2@8 ~",
  BB: "e2@7 ~ ab1@8", BC: "~@5 ab1@3 eb2@8", BD: "ab1@7 ~ e1@8", BE: "~@5 e1@2 ~ b1@8", BF: "e1@6 ~@2 a1@7 ~",
  BG: "b1@7 ~ db2@8", BH: "~ db2 ~@6 e2@7 ~, d2@7 ~@9", BI: "db2@7 ~ d2@6 ~@2", BJ: "e2@8 ~ g1@7", BK: "~ b1@8 d2@7",
  BL: "e2@7 ~ g2@7 ~", BM: "e2@7 ~@2 d2@7", BN: "~ b1@7 d2@8", BO: "~ e2@7 ~ gb2@7", BP: "~ g2@6 ~ a2@8",
  BQ: "d2@8 e2@7 ~", BR: "~ gb2@7 a1@7 ~", BS: "db2@8 e2@7 ~", BT: "a1@7 ~@2 g1@7", BU: "b1@7 ~ d2@8",
  BV: "[g1@8 a1@7 db2@8 e2@8 b1@7 ~ db2@8 ~]/3",
  BW: "[d2@7 e2@8 d2@6 ~ g1@8 b1@9 d2@7 e2@7 ~ g2@6 ~@2 e2@7 ~ d2@7 b1@8 d2@7 ~ gb2@8 g2@7 ~ a2@3]/7",
  BX: "[~@5 d2@7 ~ e2@8 gb2@7 d2@7 ~ a1@6 ~@2 e2@8 a2@7 ~ a1@7 ~ a1@6 ~ db2@5]/5", BY: "~@3 g1@7 b1@6",
  BZ: "~@3 db2@13", CA: "~ ab1@7", CB: "~ eb2@7", CC: "~ a1@7", CD: "~ ab2@15", CE: "ab2@15 ~",
  CF: "[db2@14 ab2@15 ~@2 b1@14 ~ bb1@23 ~@11]/5", CG: "[~@2 e2@3 eb2@3 ~@5 db2@7 ~ b1@8 a1@7 b1@8 db2@4]/3",
  CH: "~@4 d2@7 ~ e2@4", CI: "~@3 d2@6 ~@2 b1@5", CJ: "~@3 db2@7 ~ a1@5", CK: "~@3 db2@6 ~@2 e2@5",
  CL: "~@3 a2@6 ~ b2@6", CM: "~@2 a2@7 gb2@7", CN: "~@2 e2@7 ~ d2@6", CO: "~@2 e2@7 gb2@7", CP: "~ d2@7 ~ a2@7",
  CQ: "~ b2@7 gb2@8", CR: "d2@5 ~@3 db2@8",
  CS: "[ab2@7 ~ db3@7 db2@7 ~ gb2@8 db3@7 ~ gb2@7 db3@7 ~ b1@8 db2@8 d2@8 e2@7 ~ gb2@7 b1@7 ~ db2@8 d2@7 ~ db2@7 ab2@4]/8",
  CT: "[~@5 db3@7 db2@7 ~ gb2@8 db3@8 gb2@8 db3@4]/3", CU: "~@3 b1@7 ~ d2@5, ~@11 b1 ~@4", CV: "~@3 e2@8 gb2@5",
  CW: "~@3 e2@7 ~@6", CX: "~@8 a1@5 ~@3", CY: "a1@2 a1@3 ~@4 a1@4 ~@3", CZ: "~ a1@3 ~@5 a1@3 ~@4",
  DA: "[~ a1@10 ~@3 a1@5 ~@2 a1@4 ~@5 a1 ~]/2", DB: "a1@3 ~@5 a1@3 ~@5", DC: "[a1@10 ~@3 a1@12 ~@3 a1@3 e2@17]/3",
})).s("gm_acoustic_bass").gain(0.39)

// chords · epiano1 · "Keyboard 1"
const epiano1 = note(`<
  ~@8 A@4 B@2 C@4 D@2 ~ E@2 F@5 G H@2 I J K L M N ~@3 O@4 P@3 Q R S ~ T ~ U V@2 ~@103
>`.pickRestart({
  A: "[~@5 eb6@2 ~ c6@5 ~@3 eb6@5 ab6@3 g6@5 ~@3 eb6@8 c6@5 ~@12 bb5@5 ~@2, ~@13 db6@11 ~@5 f6@11 ~@6 db6@13 ~@5, ~@54 c6@5 ~@5]/4",
  B: "[~@8 ab5@5 ~@3 c6@5 db6@3 ~ eb5@4 db5@3, ~@13 bb5@11 ~@8]/2",
  C: "[c5@8 ab5@5 ~@8 f6@3 eb6@4 ~@12 ab5@5 ~@8 b5@3 c6@5 bb5@2 ~, ~@13 bb5@11 ~@8 bb5@16 bb5@8 ~@8, ~@16 db6@9 ~@4 db6@11 ~@5 a5@11 ~@8]/4",
  D: "[ab5@10 ~ eb5@2 ~@9 c6@7 ~@3, ~@7 e5@4 ~@5, ~@8 f5@3 ~@5, ~@19 ab5@9 ~@4]/2",
  E: "[~@24 bb5@7 ~, ~@13 eb5@12 ~@7, ~@8 f5@5 ~@3, ~@18 ab5@7 ~@7, ~@21 c6@9 ~@2]/2",
  F: "[~@6 [bb5,eb6]@2 ~ [bb5,eb6]@3 ~@9 c6@3 db6@4 ~@4 b5@5 c6@3 ~@13 db6@2 bb5@5 ~@9 f6@3 db6@6 ~@2, ~@13 bb5@10 ~@6 bb5@10 ~ bb5@15 ~@25, ~@16 b5@8 ~@21 b5@11 ~@8 g6@9 ~@7, ~@12 c6@2 ~ ab6@3 ~@2]/5", // Eb5
  G: "~@5 ab5@3 bb5@5 c6@2 ~", H: "[eb6@5 ab5@2 ~ bb5@3 ~@2 eb6@11 ~@4 ab5@2 g5@2]/2", I: "~@5 f6@7 eb6@2 db6@2, gb5 ~",
  J: "~@5 ab5@3 bb5@4 ~ c6@2 ~, bb5 ~", K: "~@8 b5@4 ~ c6@2 ~, ab5 ~, ~@5 bb5@8 ~@3",
  L: "~@8 b5@3 ~@2 c6@2 ~, ab5@9 ~@7, ~@5 bb5@8 ~@3", M: "~@8 c6@7 ~, ab5 ~, ~@5 bb5@5 ~@6", N: "ab5@5 ~@3",
  O: "[b5@33 a5@20 ~ d6@3 b5@7]/4", P: "[~ c6@35 ~@12]/3", Q: "~@2 c6@4 ~ bb5@3 c6@4 f6@2", R: "~ c6@7", S: "~ d6@7",
  T: "~@3 c6@12 ~", U: "eb5@3 a5@4 ~ b5@3 ~ c6@4", V: "[f6@3 ~ eb6@16 ~@12]/2",
})).s("gm_epiano1").gain(0.2)

// chords · muted trumpet · "Horn"
const muted_trumpet = note(`<
  ~@16 A@3 ~ B C@2 D ~@8 A@3 ~ E F G ~@15 H I J K L M@2 N O P Q@2 R@2 ~@12 S@2 T U V@2 W X Y Z@4 AA@4 AB@2 ~ AC AD AE ~
  AF AG ~ AH AI@2 AJ AK AL@2 AM@2 AN@2 AO@2 ~@39
>`.pickRestart({
  A: "[~@5 [db4,f4,bb4]@8 [c4,a4]@2 ~ [db4,bb4]@3 ~@10 [db4,e4,bb4]@8 [c4,a4]@2 ~ bb4@4 ~@4, ~@15 f4@4 ~@29]/3", // Bbm F Gb Bbdim F
  B: "~@5 bb4@8 a4@3, ~@5 g4@11", C: "[[gb4,bb4]@4 ~@9 [ab4,bb4]@8 [g4,a4]@3 [ab4,bb4]@3 ~@2 [ab4,bb4]@3]/2",
  D: "[g4,bb4] ~", E: "~@5 bb4@8 a4@3", F: "bb4@5 a4@3 bb4@5 eb5@3", G: "ab4@5 ~@11",
  H: "~@9 db4@2 ~ c4@3 ~, ~@8 gb4@2 ~ f4@3 ~@2", I: "~@3 [bb3,eb4]@4 ~@5 [ab3,db4]@4", J: "~ [ab3,c4] ~@2",
  K: "~@4 [bb3,db4]@3 ~@9", L: "~@5 c4@3 ~@8, ~@4 eb4@3 ~@9", M: "[~ [bb3,db4] ~@3 [bb3,db4]@5 ~ [ab3,c4] ~@4]/2",
  N: "~@5 [bb3,db4]@3 ~@8", O: "~@6 [c4,eb4]@3 ~@7", P: "~@5 [bb3,db4]@8 ~ [c4,eb4]@2",
  Q: "[~@12 db4@7 ~ a4@2 ~ bb4@3 ~@6, ~@11 [f4,bb4]@8 c4@2 ~ [db4,f4]@4 ~@6]/2", // Bb5 Db
  R: "[~@4 [db4,e4,bb4]@8 [c4,a4]@2 ~ bb4@4 ~@13]/2", // Bbdim F
  S: "[~@14 a5@4 ~@4 d2@3 [e5,a5]@4 ~@3, ~@9 d2@8 ~@15, ~@13 e5@4 ~@15]/2", T: "~ d2@4 [e5,a5]@4 ~@4 d2@3",
  U: "[e5,a5] ~@3", V: "[~@14 [a3,db4,e5,a5]@3 ~@4 a2@4 [a3,c4,e5,a5]@4 ~@3, ~@9 a2@10 ~@13]/2",
  W: "~@6 a5@3 ~@4 a2@3, a2@5 ~@3, ~@5 [a3,b3,e5]@3 ~@8", X: "~ [ab2,ab3]@4 ~@3 [e2,e3]@4 ~@4, [e5,a5] ~@3",
  Y: "~@13 [db4,e4]@3", Z: "[~@7 [db4,e4]@4 ~@4 [db4,e4]@4 ~@4 [c4,e4]@13 ~@3 [b3,e4]@14 ~@7 [bb3,e4]@4]/4",
  AA: "[~@6 [bb3,e4]@4 ~@4 [bb3,e4]@4 ~@4 [a3,e4]@14 ~@2 [ab3,e4]@13 ~@3 d2@5 [e5,a5]@4 ~]/4", // Bbdim A5 Dbm A5
  AB: "[~@2 d2@3 [e5,a5]@4 ~@4 d2@5 [e5,a5]@4 ~@3 d2@4 [e5,a5]@3]/2", AC: "~@10 [a3,db4,e5,a5]@3 ~@3, ~@5 a2@9 ~@2",
  AD: "~@5 a5@3 a2@3 ~ eb4@4, ~ a2@5 ~@10, ~@4 a3@5 ~@7, ~@4 [d4,e5]@3 ~@9", AE: "~ [e5,a5]@3 ~@12, e4@3 ~@13",
  AF: "~@3 ab2@2 ~@11", AG: "ab2", AH: "~@6 ab2@7 ~@3",
  AI: "[~ b2@5 ~ [ab4,b4]@3 ~@7 [ab4,b4]@4 ~@11, ~@14 b2@15 ~@3]/2", AJ: "~@6 ab4@3 ~@7, ~@5 [c3,c5]@3 ~@8",
  AK: "[ab4,c5] ~@3, c3@7 ~", AL: "[~@5 [ab4,db5]@3 ~@7 [ab4,db5]@5 ~@12, ~@4 db3@4 ~@7 db3@13 ~@4]/2",
  AM: "[~@4 [db3,db5,e5]@4 ~@7 e5@9 ~@8, ~@14 [db3,db5]@11 ~@7]/2", // Dbm Db
  AN: "[~@3 [bb4,db5,e5,g5,bb5]@3 ~@8 [db5,e5,g5,bb5]@13 ab5 ~@4, ~@3 bb2@5 ~@5 bb2@16 ~@3, ~@7 bb4@4 ~@5]/2", // Bbdim Dbdim
  AO: "[~@2 [e3,ab5]@2 ~ ab5@3 ~@5 [e5,ab5]@4 [e5,gb5,g5] [db5,d5] [g4,a4,b4] [d4,e4,gb4] [b3,db4] [g3,a3] [e3,gb3] ~@8, ~@2 e5@5 ~@6 bb5 ~@18, ~@4 e3@3 ~@6 e3@10 ~@9]/2", // E Em Dmaj7 G D Bsus2 Gsus2 Esus2
})).s("gm_muted_trumpet").gain(0.4).pan(0.7)

// chords · muted trumpet · "Horn" · soft notes
const muted_trumpet_soft = note("<~@16 A ~ B ~@13 A ~ B ~@30 C D@2 ~@22 E ~@13 F ~@12 G ~@41>".pickRestart({
  A: "~@13 e4@2 ~", B: "~@5 eb4@2 ~ [db4,e4]@4 ~@4", C: "~@3 e4@2 ~@11", D: "[~@12 eb4@2 ~ [db4,e4]@4 ~@13]/2",
  E: "~@3 e4 ~@12", F: "~@6 ab2 ~@9", G: "~@12 f5 ~@3",
})).s("gm_muted_trumpet").gain(0.25).pan(0.7)

// chords · string ensemble 2 · "Strings"
const string_ensemble_2 = note("<~@38 A@4 B@2 C@4 D@2 E@2 F@4 ~@32 G@8 H@7 I@3 J@2 K@2 L M@8 ~@40>".pickRestart({
  A: "[~@15 [c4,e4]@14 ~@2 g4@32 ~, ~@15 e4@16 ~]/4", B: "[f4,a4]/2", C: "[~ bb4@31 ~ b4@28 ~@3, ~ g4@63]/4",
  D: "[~ c5@31, g4]/2", E: "[~ [c4,eb4,g4]@15]/2", F: "[~@3 a4@29 ~@3 bb4@26 ~@3, ~@3 eb4@58 ~@3]/4",
  G: "[~@7 a4@63 e5@58]/8", H: "[~@5 gb5@62 a5@41 ~@4]/7", I: "[~@3 e4@14 ~ ab5@30, ~@2 ab4@15 [f4,ab4]@31]/3",
  J: "[~ [gb4,bb4,bb5]@31]/2", K: "[~ [ab4,b4]@31, b5@31 ~]/2", L: "[c5,c6]",
  M: "[~@15 db5@30 ~ [db4,e4,ab4]@30 ~@2 bb4@28 ~@3 [b4,ab5]@19, ~@14 [ab4,db6]@31 e6@32 db6@32 ~@19, ~@39 e4@25]/8", // Dbm E Db5
})).s("gm_string_ensemble_2").gain(0.33)

// chords · brass section · "Brass 1"
const brass_section = note(`<
  ~@68 A@2 B C D E F G@3 H I@2 J K L ~@7 M@2 ~ N@3 O@2 ~ P Q R ~ S T ~ U V@2 W X Y@2 Z@2 AA@2 AB@2 AC AD@2 AE AF AG AH@2
  AI ~ AJ AK AL@2 ~ AM@5 ~@19
>`.pickRestart({
  A: "[~@13 [eb4,bb4] ~ [eb4,bb4]@3 ~@3 [eb4,ab4] ~@2 [eb4,bb4]@8]/2", B: "[eb4,ab4]@3 ~@5 [d4,a4]@8",
  C: "[d4,ab4]@3 ~@5 [d4,a4]@8", D: "[d4,ab4]@3 ~@10 [db4,e4]@3", E: "~@2 [db4,e4] ~",
  F: "~ db4@5 ~@2 [c4,e4]@4 ~@4, e4@7 ~@9", G: "[[c4,e4]@3 ~@5 e4@19 ~@3 [bb3,e4]@18, ~@8 b3@16 ~@6 eb4 ~@17]/3",
  H: "~ [bb3,e4]@5 ~@3 bb3 ~@6, ~@8 [a3,e4]@3 ~@5", I: "[e4@5 ~@3 [ab3,e4]@15 ~ a2@5 a3@2 ~, a3@3 ~@29]/2",
  J: "~@5 a2@3 a3@3 ~@5", K: "a2@5 a3@3 ~@5 a2@3", L: "~ a3@4 ~@11", M: "[~@7 a4@16 bb4@4 ~@5]/2",
  N: "[~@6 a4@28 ~@4 d2@5 [e5,a5]@4 ~]/3", // A5
  O: "[~@2 d2@3 ~ a5@4 ~@3 d2@5 [e5,a5]@4 ~@3 d2@4 [e5,a5]@3, ~@5 e5@4 ~@23]/2", // A5
  P: "~@10 [a3,db4,e5,a5]@3 ~@3, ~@5 a2@9 ~@2", // A
  Q: "~@5 a5@3 a2@3 ~ eb4@4, ~ a2@5 ~@10, ~@4 a3@5 ~@7, ~@4 [d4,e5]@3 ~@9", R: "~ [e5,a5]@3 ~@12, e4@3 ~@13",
  S: "~@3 ab2@2 ~ ab2 ~@9", T: "ab2", U: "~@6 ab2@7 ~@3",
  V: "[~ b2@5 ~ [ab4,b4]@3 ~@7 [ab4,b4]@4 ~@11, ~@14 b2@15 ~@3]/2", W: "~@6 ab4@3 ~@7, ~@5 [c3,c5]@3 ~@8",
  X: "[ab4,c5] ~@3, c3@7 ~", Y: "[~@5 [ab4,db5]@3 ~@7 [ab4,db5]@5 ~@12, ~@4 db3@4 ~@7 db3@13 ~@4]/2",
  Z: "[~@4 [db3,db5,e5]@4 ~@7 e5@9 ~@8, ~@14 [db3,db5]@11 ~@7]/2", // Dbm Db
  AA: "[~@3 [bb4,db5,e5,g5,bb5]@3 ~@8 [db5,e5,g5,bb5]@13 ab5 f5 ~@3, ~@3 bb2@5 ~@5 bb2@16 ~@3, ~@7 bb4@4 ~@5]/2", // Bbdim Dbdim
  AB: "[~@2 [e3,ab5]@2 ~ ab5@3 ~@5 [e5,ab5]@4 [e5,gb5,g5] [db5,d5] [g4,a4,b4] [d4,e4,gb4] [b3,db4] [g3,a3] [e3,gb3] ~@5 [db5,e5]@3, ~@2 e5@5 ~@6 bb5 ~@18, ~@4 e3@3 ~@6 e3@10 ~@9]/2", // E Em Dmaj7 G D Bsus2 Gsus2 Esus2 …
  AC: "~@5 gb5@4 ~@3 [db5,a5]@3 ~, ~@4 db5@3 ~@9", AD: "[~@4 [b4,ab5]@3 ~@5 [a4,gb5]@8 [ab4,e5]@4 ~ [gb4,d5]@3 ~@4]/2",
  AE: "~ db5@2 ~ b4@2 ~@5 [a3,a4]@4 ~, e4@3 d4@3 ~@10", AF: "~@3 [ab3,ab4]@4 ~@4 [gb3,gb4]@4 ~",
  AG: "~@3 [e3,e4]@5 ~@3 [d3,d4]@4 ~", // E D
  AH: "[~@2 [db3,db4]@5 ~ [b2,b3]@4 ~@3 [a2,a3]@3 [ab2,ab3]@4 ~@4 [b4,db5,e5,b5]@3 ~@3]/2", // Db B A Ab Dbm7
  AI: "~@2 [db5,e5,b5]@3 ~@4 [b4,db5,e5,b5]@7, ~ b4@3 ~@12", AJ: "~ a3@4 ~ a3@4 ~@4 [a3,a4] ~, a4@3 ~@2 a4@3 ~@8",
  AK: "~ [a3,a4]@4 ~@8 [db3,b3,db4]@3", // A Db7
  AL: "[~@5 [b3,db4]@2 ~ [db3,b3]@4 ~@3 [db3,b3,db4]@4 ~@5 [b3,db4]@5 [gb3,bb3,db4]@3, ~@5 db3 ~ db4@4 ~@12 gb3@4 ~@5]/2", // Bsus2 Db7 Bsus2 Gb
  AM: "[~@3 [gb3,gb4]@31 ~@6]/5", // Gb
})).s("gm_brass_section").gain(0.64).pan(0.4)

// chords · brass section · "Brass 2"
const brass_section_2 = note(`<
  ~@68 A@2 B@2 C D E@4 F@4 G H I@2 J K L M@4 N@4 ~@7 O@3 P Q R S T U@2 V@2 ~@3 W X Y@2 Z AA AB AC@2 AD@2 AE AF AG@2 ~@5
  AH AI AJ AK AL@4 AM AN AO@3 ~@7
>`.pickRestart({
  A: "[~@12 bb3 bb5 ~ [bb3,bb5]@3 ~@3 ab5@2 ~ bb3@8, ~@23 bb5@9]/2", B: "ab5 ~@3 [a3,a5]@4", C: "ab5@2 ~@11 db3@2 ~",
  D: "~@7 db3@3 ~@6",
  E: "[~@5 db3@3 ~ c3@15 ~ b2@15 ~@6 [bb2,bb4,e5]@9 ~@2 [bb2,bb4,e5]@3 ~@4, ~@8 c5@13 ~@3 [b4,e5]@12 ~@28, ~@9 e5@13 ~@42]/4", // Bbdim E5
  F: "[[bb4,e5]@3 ~@5 [a2,a4,e5]@15 ~ [ab2,ab4,e5]@14 ~@8 a5@4 ~@4 d2@3 [e5,a5]@4 ~@3, bb2@6 ~@35 d2@8 ~@15, ~@45 e5@4 ~@15]/4", // Bbdim A5 Dbm A5
  G: "~ d2@4 [e5,a5]@4 ~@4 d2@3", H: "[e5,a5] ~@3",
  I: "[~@14 [a3,db4,e5,a5]@3 ~@8 [a3,c4,e5,a5]@4 ~@3, ~@9 a2@10 ~@3 a2@5 ~@5]/2", // A Am
  J: "~@6 [e5,a5]@3 ~@4 a2@3, a2@5 ~@3, ~@5 [a3,b3]@4 ~@7", K: "~ [ab2,ab3,e5]@4 ~@3 [e2,e3]@4 ~@4, a5@3 ~@13",
  L: "~@13 [db4,e4]@3", M: "[~@7 [db4,e4]@4 ~@4 [db4,e4]@3 ~ e4 ~@3 [c4,e4]@13 ~@3 [b3,e4]@14 ~@7 [bb3,e4]@4]/4",
  N: "[~@6 [bb3,e4]@4 ~@4 [bb3,e4]@4 ~@4 [a3,e4]@14 ~@2 [ab3,e4]@13 ~@13]/4", // Bbdim A5 Dbm
  O: "[~@3 ab2@4 ab3@2 ~@6 ab2@3 ab3@3 ~@5 ab2@5 ab3@3 ~@4 ab2@3 ab3@2 ~@5]/3", P: "~@3 ab3@3 ~@2",
  Q: "~ ab2@5 ab3@2 ~@6 ab2@2", R: "ab3 ~@7", S: "~@5 ab3@2 ~@6 ab2@3", T: "ab3@3 ~@13",
  U: "[~@5 ab3@2 ~@6 ab2@2 ab3@3 ~@14]/2", V: "[~@4 ab3@2 ~@5 ab2@2 ~ ab3@4 ~@14]/2", W: "~@13 a4@3",
  X: "~@4 ab4@4 ~@4 gb4@3 ~", Y: "[~@4 e4@4 ~@4 d4@8 db4@5 b3@4 ~@3]/2", Z: "a3@3 ab3@4 ~@4 a3@3 ~@2",
  AA: "~@3 ab3@4 ~@4 gb3@4 ~", AB: "~@3 e3@4 ~@4 d3@5",
  AC: "[~@2 db3@5 b2@4 ~@4 a2@3 ab2@4 ~@4 e3@3 ~@3, ~@25 e4@4 ~@3]/2", AD: "[~ [e3,e4]@3 ~@5 [e3,e4]@11 ~@12]/2",
  AE: "~ gb4@4 ~ [e4,gb4,b4]@3 ~@5 [e4,gb4,b4] ~, [e4,b4] ~@3", AF: "~ [gb4,b4]@5 ~@8 [b4,db5,gb5]@2, e4@4 ~@9 a5@3",
  AG: "[~@5 [b4,db5]@2 ~ [b4,db5,ab5]@4 ~@3 [b4,db5,f5,ab5]@5 ~@4 [b4,g5]@4 ~ [bb4,db5,gb5]@3, ~@5 [gb5,a5]@4 ~@19 e5@4, ~@7 f5@4 ~@12 [db5,e5]@5 ~@4]/2", // Bsus2 Db7 Em Gb Gbm Dbm
  AH: "~@13 b4@3", AI: "~@2 db5@2 e5@5 d5@2 ~ b4@4, ~@2 b4 ~@13", AJ: "~ d5 ~@2 ab5@4 g5@2 gb5@2 e5@4",
  AK: "~ e5@5 ~ [gb5,g5] e5 [db5,d5] [a4,b4] [gb4,g4] [d4,e4] [b3,db4] [g3,a3] ~, ~ ab5@11 ~@4", // Gmaj7 Dmaj7 Asus2 Gmaj7 Dsus2 Bsus2 Gsus2
  AL: "[~ d4@8 ~@3 [b4,gb5] ~@3, ~@47 a5@3 ~@14, ~@24 d5 ~@7]/4", // B5
  AM: "~@10 ab4@3 ~ [g3,g4]@2, ~@7 [a3,a4]@4 ~@5, ~@9 ab3@3 ~@4", AN: "~ [gb3,gb4]@15", AO: "[~@2 [ab3,ab4]@37 ~@9]/3",
})).s("gm_brass_section").gain(0.63).pan(0.8)

// chords · synth brass 2 · "Brass 3"
const synth_brass_2 = note(`<
  ~@8 A B C D ~ E F G H I@2 ~ J K L M A N@2 D O@2 P@2 ~@8 Q ~ R ~ S ~ T U ~@6 V W ~@87 X Y Z ~@13
>`.pickRestart({
  A: "[ab3,c4]@15 ~", B: "[bb3,db4]", C: "[c4,eb4]", D: "[db4,f4]@15 ~", E: "[bb3,db4]@15 ~", F: "eb4@7 ~",
  G: "[bb3,db4]@7 ~", H: "~@5 [db4,f4]@8 c4@3", I: "[[db4,f4]@4 ~@9 [db4,e4]@7 ~ c4@2 ~ e4@2 ~@6, ~@23 db4@3 ~@6]/2",
  J: "eb4, c4@13 ~@3", K: "gb4", L: "eb4 ~@7 [eb4,g4]@5 ~ db4 ~, ~ f4@2 g4@2 f4@5 ~@3 ab4@3, ~ [eb4,ab4] db4 ~@5",
  M: "bb4@13 ~@3, f4@9 ~@7", N: "[[bb3,db4]@15 ~ eb4@15 ~, ~@15 c4@16 ~]/2",
  O: "[c4@15 ~ bb3@14 ~@2, ab3@12 ~@3 db4@15 ~@2]/2", P: "[eb4@15 ~ a3@7 ~ [c4,eb4]@6 ~@2, ~@15 c4@8 ~@9]/2",
  Q: "e4@6 ~ b3@2 ~@4 b2 ~@2, g4@3 ~@13", R: "f4@8 eb4 [c4,db4] bb3 ab3 ~ eb3 ~@2, a4 ~@3",
  S: "~ [g4,bb4]@6 [gb4,ab4] f4 eb4 [c4,db4] bb3 ~@4", T: "~@2 g4@6 ~@2 eb4 db4 bb3 ab3 gb3 ~, ~ b4@4 ~@11",
  U: "eb3 ~@15", V: "~@8 bb4@2 ~ ab4@3 ~@2", W: "~@4 g4@3 ~@5 f4@4", X: "~@3 [d4,gb4]@3 ~@2 [d4,gb4]@2 ~ [d4,gb4]@4 ~",
  Y: "[d4,gb4]@2 ~ [d4,gb4]@4 ~ [d4,gb4]@2 ~ [d4,gb4]@4 ~", Z: "[d4,gb4] ~@7",
})).s("gm_synth_brass_2").gain(0.32)

// chords · synth brass 2 · "Brass 3" · soft notes
const synth_brass_2_soft = note("<~@12 A ~ B ~ C ~ D ~@3 E ~@6 F@2 ~@9 G ~ H ~@116>".pickRestart({
  A: "~ ab3@13 ~@2, c4@15 ~", B: "c4@15 ~", C: "~@13 e4@3", D: "~@5 eb4@3 ~@8", E: "g4 ~@15", F: "[~@15 c4@16 ~]/2",
  G: "~@6 d4 ~ a3 ~@2 e3 ~@4", H: "~@6 gb4 ~@5 gb3 f3 ~ db3",
})).s("gm_synth_brass_2").gain(0.16)

// chords · trombone
const trombone = note("<~@16 A@3 ~ B C@2 D ~@8 A@3 ~ E F G ~@25 H@2 I@2 ~@66 J K L M N O@4 P@4 ~@12>".pickRestart({
  A: "[~@5 [db4,f4,bb4]@8 [c4,e4,a4]@2 ~ [db4,bb4]@3 ~@10 [db4,e4,bb4]@8 [c4,eb4,a4]@2 ~ [db4,e4,bb4]@4 ~@4, ~@15 f4@4 ~@29]/3", // Bbm Am Gb Bbdim Adim Bbdim
  B: "~@3 g4@4 ~, ~@5 [c4,eb4]@8 ~@3", C: "[[b3,eb4,gb4]@7 ~@6 [db4,f4,ab4]@10 ~ [db4,f4,ab4]@4 ~ [db4,f4,ab4]@2 ~]/2",
  D: "[db4,eb4,g4]@7 ~@9", E: "~@5 [c4,eb4,bb4]@8 a4@3", F: "[db4,f4,bb4]@5 a4@3 [db4,e4,bb4]@5 eb5@3",
  G: "[c4,eb4,ab4]@7 ~@9", H: "[~@12 db4@7 ~ a4@2 ~ bb4@3 ~@6, ~@11 [f4,bb4]@8 [c4,e4]@2 ~ [db4,f4]@4 ~@6]/2",
  I: "[~@4 [db4,e4,bb4]@8 [c4,eb4,a4]@2 ~ [db4,e4,bb4]@4 ~@13]/2", J: "~@3 [d4,gb4], ~@6 db4 ~",
  K: "~@4 [b3,d4,gb4]@4 ~@3 [b3,d4,gb4]@3 ~@2", L: "~@3 [d4,gb4]@2 ~ [d4,gb4]@4 ~@6, ~@3 b3@6 ~@7",
  M: "~@4 gb4@3 ~@4 [d4,gb4]@2 ~ [d4,gb4]@2, ~@3 [b3,d4]@4 ~@4 b3@5", N: "~@10 [b3,d4,gb4]@3 ~@3",
  O: "[~@5 [f3,ab3,db4]@29 ~ bb3 [gb3,bb3,db4]@24 ~@4]/4", // Db Gb
  P: "[~ d4@8 ~@3 [b4,gb5] ~@3, ~@47 a5@3 ~@14, ~@24 d5 ~@7]/4", // B5
})).s("gm_trombone").gain(0.48).pan(0.3)

// other · alto sax · "Sax"
// … 116 more lines

More by Cole Porter