Strudelify

It Don't Mean a Thing

Duke Ellington

KeyG minorTempo194 bpm
0:00/0:00
// It Don't Mean a Thing — Duke Ellington
// 194 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 108 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(194/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.

// bass · acoustic bass
const bass = note(`<
  ~@2 A B C D E F G H I J K L@2 M N@2 O P Q R S T U V W@2 X Y Z AA AB AC AD AE AF AG AH AI@2 AJ AK AL AM AN AO AP AQ AJ
  AR AL AS AT AU AV AW AX AY AZ BA BB BC BD BE AY BF BG BH AG BI BJ BK BL BM@2 BN BO@2 AH BP BQ BR BS BT ~ BU BV BW@2 I
  BX BY BZ CA CB CC CD BF CE CF CG CH CI CJ CK@3
>`.pickRestart({
  A: "g2@3 ~ g2@2 ~@2 g3 d3 ~ g2 e2@3 d2", B: "eb2@3 ~ eb2@3 eb2 d2@3 ~ d2@3 ab2", C: "g2@3 g1 ab2@4 g2@3 ~ g2@2 ~@2",
  D: "eb2@2 ~ eb2 ~@3 d2@4 ~ d2 ~@3", E: "g2@3 g1 g2@4 g2@4 bb2@3 g2", F: "g3 d3 ~ g2 ab2@3 gb2 g2@3 g1 e2@4",
  G: "eb2@4 eb2@2 ~ d2@4 ~ d2@3 ~", H: "g2@3 ~ g2@3 d2 db2@3 ~ db2@3 db2", I: "c2@2 ~ c1 bb1@3 ~ a1@4 g1@3 c2",
  J: "gb2@4 db3@4 gb3@4 db3@3 db2", K: "f2@4 eb2@3 b1@4 ~ b1@2 ~@2",
  L: "[bb1@3 ~ d2@7 ~@4 g2@4 ~ g2@2 ~@2 g2@3 ~ g2@4]/2", M: "g3 d3 ~ g2 ab2@3 gb2 g2@3 g1 g2@4",
  N: "[eb2@3 ~ eb2@3 eb2 ~@4 d2@2 ~ g2@4 ~ g2@2 ~ db2@5 db2@4]/2", O: "c2@4 bb1@4 a1@4 g1@3 c2",
  P: "gb2@4 ab2@3 ~ a2@4 bb2@3 db2", Q: "f3 g2 ~ f2 c2@3 bb1 b1@3 ~ b1@2 ~@2", R: "bb2 f2 ~ bb1 ab2@3 gb2 ~@8",
  S: "f2@3 f1 b1@4 bb1@3 bb0 gb2@4", T: "f2@3 ~ f2@4 bb1@3 ~ bb1@4", U: "eb2@4 f2@3 ~ gb2@4 g2@3 e2",
  V: "eb2@4 f2@3 ~ gb2@4 g2@3 ab2", W: "[g2@4 db2@4 c2@4 ab2@2 ~ g2@4 g1 db2@4 c2@3 ~ c2@3 gb2]/2",
  X: "f2@3 ~ f2@4 ~@8", Y: "eb2@3 eb1 eb2@4 d2@3 d1 ab2@4", Z: "g2@3 ~ g2@2 ~@2 g2@4 bb2@3 g2",
  AA: "g2@3 ~ g2@4 g2@3 g1 e2@4", AB: "eb2@3 eb1 eb2@4 a1@3 ~@5", AC: "g2@4 bb2@3 g2 c3 g2 ~ c2 e2@3 d2",
  AD: "eb2@3 eb1 eb2@4 ab3 eb3 ~ ab2 d2@3 c2", AE: "db2@3 ~ db2@4 gb2@3 gb1 gb2@4", AF: "c2@4 eb2@3 f2@4 ~ f2@2 ~@2",
  AG: "~@4 d2@7 ~ d2 ~@3", AH: "g3 d3 ~ g2 ab2@3 gb2 g2@3 ~ g2@4",
  AI: "[g2@3 g1 g2@4 g3 d3 ~ g2 e2@3 eb2@4 ~ eb2@2 ~@2 d3 a2 ~ d2 ab2@3 gb2]/2", AJ: "g2@2 ~ g1 a2@4 bb2@4 d3@3 g2",
  AK: "c2@4 d2@3 ~ eb2@4 e2@3 g2", AL: "gb2@4 e2@4 eb2@4 db2@3 gb2", AM: "c2@3 ~ c2@4 b2 gb2 ~ b1 b1@3 a1",
  AN: "bb1@4 eb2@4 d2@3 ~ d2@3 ab2", AO: "g2@3 g1 ab2@4 g2@3 g1 ab2@4", AP: "g2@3 g1 ab2@4 g2@3 g1 e2@4",
  AQ: "eb2@3 ~ eb2@4 d2@3 ~ d2@2 ~@2", AR: "c2@3 c1 bb1@4 a1@4 g1@3 g2", AS: "c2@3 ~ c2@4 b1@3 ~ b1@4",
  AT: "bb1@4 c2@4 db2@4 d2@3 bb1", AU: "f2@2 ~ f1 g2@4 ab2@4 c3@3 f2", AV: "bb1@4 ab1@4 g1@4 f1@3 bb1",
  AW: "eb2@4 bb2@4 eb3@4 bb2@3 e2", AX: "eb2@4 d2@4 c2@4 bb1@3 eb2", AY: "g2@4 a2@3 ~ bb2@4 d3@3 g2",
  AZ: "c2@4 d2@3 ~ eb2@4 e2@3 bb1", BA: "a1@2 ~ a0 b1@4 c2@4 e2@3 a1", BB: "d2@4 e2@4 f2@4 gb2@3 d2",
  BC: "g2@3 ~ g2@3 ab2 g2@4 ab2@4", BD: "g2@4 bb2@3 g2 g2@3 ~ g2@4", BE: "eb2@3 ~ eb2@4 d2@3 ~ d2@4",
  BF: "c2@4 d2@4 eb2@4 e2@3 c2", BG: "gb2@3 gb1 e2@4 eb2@4 db2@3 db2", BH: "c2@3 c1 c2@4 b1@4 b1@4",
  BI: "g2@3 ~ g2@2 ~@2 g2@4 ab2@4", BJ: "g2@3 ~ g2@3 ab2 g2@4 e2@4", BK: "eb2@4 eb2@4 d3 a2 ~ d2 ab2@3 gb2",
  BL: "g2@3 ~ g2@4 c2@3 c1 f2@4", BM: "[e2@3 e1 e2@4 eb2@3 ~ eb2 ~@2 d2@4 ~ d2@2 ~@2 db2@3 ~ db2@4]/2",
  BN: "c2@4 c2@4 b1@3 b0 b1@4", BO: "[bb2 f2 ~ bb1 eb2@3 db2 d2@3 d1 ab2@2 ~ g2@4 ~ g2@2 ~@2 g2@4 bb2@3 g2]/2",
  BP: "eb2@3 eb1 eb2@4 d2@4 ab2@4", BQ: "g2@4 db2@4 c2@4 e2@3 c2", BR: "e2@3 ~ e2@4 eb2@3 ~ eb2@3 eb2",
  BS: "d2@4 d2@4 db2@3 ~ db2@4", BT: "~@4 c2 ~@3 b1@2 ~ b1 ~@3 bb1", BU: "f2@4 g2@3 ~ ab2@4 c3@3 f2",
  BV: "bb1@2 ~ bb0 ab1@3 ~ g1@4 f1@3 bb1", BW: "[eb2@4 gb2@4 f2@3 ~ f2@2 ~ gb2@5 ab2@2 ~ g2@4 g1 db2@4]/2",
  BX: "g2@3 g1 g2@4 gb2@3 gb1 gb2@4", BY: "f2@3 f1 gb2@4 ~@8", BZ: "eb2@4 g2@3 eb2 d2@3 ~ d2@4",
  CA: "g2@3 g1 ab2@4 g2@4 ab2@4", CB: "g2@3 ~ g2@4 g2@4 e2@4", CC: "eb2@3 eb1 eb2@4 ~@8",
  CD: "g2@3 g1 d2@4 db2@3 db1 db2@4", CE: "gb2@2 ~ gb1 e2@3 ~ eb2@4 db2@3 gb2", CF: "f3 g2 ~ f2 c2@3 bb1 b1@4 eb2@3 b1",
  CG: "bb1 bb2 ~ bb0 a2@4 g2@3 ~ g2@3 f2", CH: "e2@3 ~ e2@4 eb2@3 ~ eb2@4", CI: "d2@3 d1 d2@4 db2@3 ~ db2@4",
  CJ: "c2@3 c1 c2@4 b1@3 ~@5", CK: "[~ bb1@9 ~@2]/3",
})).s("gm_acoustic_bass").gain(0.35).pan(0.4)

// bass · acoustic bass · soft notes
const bass_soft = note(`<
  ~@2 A ~ B ~@7 C D A ~ E A ~@2 C F ~@6 G ~ A ~ H ~@3 I J ~@2 K ~@7 L ~@20 J A ~@4 M ~@2 A ~@13 G ~@3 N ~@11
>`.pickRestart({
  A: "~@3 g1 ~@12", B: "~@11 g1 ~@4", C: "~@11 b0 ~@4", D: "~@6 d2 ~", E: "~@8 d2@3 d1 ~@4", F: "~@8 g2@3 g1 gb2@3 gb1",
  G: "~@8 f2@3 f1 e2@3 e1", H: "~@12 d2@3 d1", I: "~@11 f1 ~@4", J: "bb1@3 bb0 ~@12", K: "~@3 eb1 ~@12",
  L: "~@11 d1 ~@4", M: "~@3 d1 ~@12", N: "~@8 d2@3 d1 d2@3 d1",
})).s("gm_acoustic_bass").gain(0.22).pan(0.4)

// chords · piano
const piano = note(`<
  ~@2 A B@2 C D@2 E F G H I@2 J K@2 L M N@6 O@3 P Q R S T@2 U V W X Y@2 Z M AA@2 AB AC@2 AD AE AF AG AH AI AJ@2 AK@3
  AL@2 AM AN AO AP AQ AR AS AT AU X AV@2 AW@2 AX AY@2 AZ@2 BA BB BC BD BE BF BG@2 BH BI BJ AS BK@2 BL BM BN BO BP BQ@3
  BR U BS BT BU@3
>`.pickRestart({
  A: "~@3 [e3,bb3,d4,g4]@4 ~ [f3,bb3,d4,a4]@7 ~", // Em7b5 Bbmaj7
  B: "[[g3,c4,db4,f4]@4 db4 g4 ~ bb4 [gb3,a3,c4,e4]@2 ~@5 [e3,bb3,d4,g4]@3 ~@6 [f3,bb3,d4,g4]@6 ~@2]/2", // Csus4 Gbm7b5 Em7b5 Gm7
  C: "[eb3,g3,db4,f4]@2 ~ [eb3,g3,db4,f4] ~@3 [d3,gb3,c4,e4]@9", // Eb7 D7
  D: "[~@3 [g3,bb3,d4]@4 ~ [gb3,a3,bb3,d4]@4 bb3 ~@2 [f3,a3,bb3,d4]@8 [e3,bb3,d4,g4]@3 ~@6]/2", // Gm D Bbmaj7 Em7b5
  E: "[g3,c4,db4,f4]@7 ~ [gb3,c4,e4,b4]@4 [gb3,c4,eb4,a4]@4", F: "[e3,g3,bb3,d4]@4 bb3 e4@2 g4 [f3,b3,eb4,bb4]@7 ~",
  G: "~@7 c3 [e3,g3,bb3,d4]@2 ~ c3 [e3,g3,bb3,d4]@2 ~@2", // Em7b5
  H: "[e3,bb3,db4,ab4]@7 ~ [e3,bb3,db4,ab4]@2 ~ gb2 [e3,bb3,db4,ab4] ~@3", // Bbm7b5
  I: "[[eb3,bb3,d4,g4]@7 [bb3,eb4,gb4,db5]@5 eb4 ~@2 [d4,f4,bb4]@5 [c4,e4,gb4,ab4,b4]@7 ~ [c4,gb4,ab4,b4,e5]@4]/2", // Ebmaj7 Ebm7 Bb E
  J: "[bb3,g4,d5]@4 d4 g4 ~ bb4 [bb3,gb4,a4,d5]@2 ~@6", // Gm D
  K: "[[bb3,f4,a4,d5]@4 bb3 f4@2 g4 [bb3,d4,e4,g4]@6 ~ [g3,db4,f4,c5]@8 ~ [gb3,ab3,c4,e4,b4]@4 [gb3,c4,eb4,a4]@4]/2", // Bbmaj7 Em7b5 Csus4 E Gbdim
  L: "[e3,bb3,d4,g4]@2 ~@6 [f3,bb3,b3,eb4]@7 ~", M: "[e3,bb3,d4,g4]@6 ~ [e3,bb3,d4,g4] ~@8",
  N: "[[e3,ab3,bb3,eb4]@13 ~@2 [eb3,bb3,d4,g4]@8 ~ [bb3,eb4,gb4,db5]@4 eb4 ~@2 [d4,f4,bb4]@8 ~ [bb3,d4,f4,a4]@2 ~ [bb3,e4,ab4,eb5]@4 [ab3,eb4,g4,c5]@8 [bb3,d4,f4]@8 [ab3,eb4,g4,c5]@3 ~@6 [d4,f4,bb4]@7 [g3,d4,f4,bb4]@7 ~ [g3,d4,f4,bb4] ~@8]/6", // Emaj7 Ebmaj7 Ebm7 Bb Bbmaj7 Ebsus4 Abmaj7 Bb …
  O: "[[g3,bb3,d4,f4]@6 ~ [g3,bb3,d4,f4] ~@7 [f3,a3,bb3,d4]@8 ~ [e3,bb3,d4,a4]@2 ~@5 [f3,a3,bb3,d4]@8 ~ [e3,bb3,d4,a4]@7 ~]/3", // Gm7 Bbmaj7 Dsus2 Bbmaj7 Dsus2
  P: "[eb3,a3,d4,g4] ~@3 [eb3,a3,b3,d4,g4]@2 [ab3,d4,gb4,b4]@2", Q: "[g3,db4,f4,c5]@4 db4 ~@2 [gb3,c4,e4,a4]@8 ~",
  R: "~@3 [bb3,d4,g4]@4 ~ [gb3,bb3,d4,a4]@7 ~", S: "[f3,bb3,d4,g4]@4 bb3 f4 ~ g4 [e3,g3,bb3,d4]@2 ~@6",
  T: "[[g3,db4,f4,c5]@4 db4 ~@2 [g3,c4,e4,a4]@5 [gb3,c4,eb4,bb4]@2 ~ [f3,bb3,d4,a4]@8 [e3,bb3,d4,g4]@8 ~]/2", // Csus4 Am7 Cm7b5 Bbmaj7 Em7b5
  U: "[bb4,bb5]", // Bb
  V: "[db3,ab3,c4,f4]@2 ~ [db3,ab3,c4,f4] ~@3 [db3,ab3,c4,f4] [gb2,bb3,db4,f4] ~@3 [gb2,bb3,db4,f4]@2 ~ [c3,bb3,eb4,g4]", // Dbmaj7 Gbmaj7 Cm7
  W: "~@3 [c3,bb3,eb4,g4]!2 ~@3 [f2,bb3,eb4,g4]@2 ~ [f2,bb3,eb4,g4] ~@3 [f2,bb3,eb4,g4]", // Cm7 Eb
  X: "[bb2,bb3,d4,f4] ~@3 [d3,gb3,c4,f4,bb4]@7 ~ [d3,d4] ~@3", // Bb D
  Y: "[[bb3,d4,g4]@7 ~ [bb3,gb4,a4,d5]@6 ~ [bb3,d4,f4,a4]@8 ~ [bb3,e4,g4,d5]@4 bb3 e4@2 g4]/2", // Gm D Bbmaj7 Em7b5
  Z: "~@3 [g3,db4,eb4,bb4]@4 ~@4 [gb3,ab3,c4,e4,b4]@4 ~", // Eb7 E
  AA: "[[e3,bb3,c4,g4]@7 ~ [e3,bb3,c4,g4]@2 ~ c3 [e3,bb3,c4,g4] ~@2 [e3,bb3,db4,gb4]@12 ~@5]/2", // C7 Gb7
  AB: "[eb3,g3,bb3,d4]@4 bb3 eb4 ~ g4 [bb3,eb4,gb4,db5]@7 ~", // Ebmaj7 Ebm7
  AC: "[[bb3,d4,f4]@6 ~ [gb3,ab3,c4,e4,b4]@5 c4 ~@2 [g3,bb3,d4]@8 ~@4 [gb3,bb3,d4,a4]@4 ~]/2", // Bb E Gm D
  AD: "~@3 [f3,bb3,d4,g4]@4 [e3,bb3,d4,g4]@5 bb3 e4@2 g4", AE: "[g3,db4,eb4,bb4]@4 db4 ~@2 [gb3,ab3,b3,c4,e4]@8 ~",
  AF: "[e3,g3,bb3,d4]@6 ~ [e3,g3,bb3,d4] ~@8", AG: "[e3,a3,bb3,d4]@13 ~@3", AH: "[e3,ab3,bb3,eb4]@13 ~@3",
  AI: "[eb3,g3,bb3,c4]@2 ~@5 [bb3,eb4,gb4,db5]@8 ~", // Cm7 Ebm7
  AJ: "[[bb3,d4,f4]@6 ~ [bb3,d4,f4] ~@7 [ab3,eb4,f4,c5]@8 ~ [ab3,eb4,f4,c5]@2 ~ f3 [ab3,eb4,f4,c5] ~@3]/2", // Bb Fm7
  AK: "[[ab3,d4,g4,c5]@13 ~@2 [g3,bb3,d4,f4]@7 ~ [g3,bb3,d4,f4] ~@7 [g3,bb3,d4,f4]@8 ~ [g3,bb3,d4,f4]@2 ~ eb3 [g3,bb3,d4,f4] ~@3]/3", // Abmaj7 Gm7
  AL: "[[f3,bb3,d4,a4]@13 ~@2 [e3,a3,bb3,d4]@8 ~ [e3,a3,bb3,d4]@2 ~ c3 [e3,a3,bb3,d4] ~@3]/2", // Bbmaj7 Dsus2
  AM: "[g3,c4,e4,a4]@6 ~ [g3,c4,e4,a4] ~@8", // Am7
  AN: "[gb3,ab3,c4,e4,b4]@7 ~ [gb3,ab3,c4,e4,b4]@2 ~ d3 [gb3,ab3,c4,e4,b4] ~@3", // E
  AO: "[bb3,d4,g4]@6 ~ [gb3,bb3,d4,a4]@8 ~", AP: "[f3,bb3,d4,g4]@6 ~ [e3,g3,bb3,d4]@8 ~",
  AQ: "[g3,c4,db4,f4]@2 ~@6 [gb3,c4,d4,a4]@7 ~", AR: "[e3,g3,bb3,d4]@13 ~@3",
  AS: "[e3,bb3,d4,a4]@6 ~ [e3,bb3,d4,a4] ~@8", AT: "~@7 gb2 [e3,bb3,db4,ab4]@3 gb2 [e3,bb3,db4,ab4]@2 ~@2",
  AU: "[eb3,g3,bb3,d4] ~@3 [bb3,eb4,gb4,db5] ~@3", // Ebmaj7 Ebm7
  AV: "[[g3,bb3,d4]@2 ~@6 [gb3,bb3,d4,a4]@6 ~ [f3,bb3,d4,g4]@8 ~ [e3,bb3,d4,g4]@2 ~@6]/2", // Gm D Gm7 Em7b5
  AW: "[~@3 [g3,c4,db4,f4]@4 ~ [gb3,ab3,b3,c4,e4]@2 ~@5 [e3,bb3,d4,g4]@8 ~ [e3,bb3,d4,g4]@2 ~@6]/2", // Csus4 E Em7b5
  AX: "[g3,d4,e4,bb4]@4 g3 d4 ~ e4 [gb3,db4,f4,bb4]@2 ~@6", // Em7b5 Gbmaj7
  AY: "[[f3,c4,d4,bb4]@2 ~@5 [e3,b3,eb4,ab4]@5 b3 ~@2 [eb3,bb3,c4,g4]@8 ~ [bb3,eb4,gb4,db5]@4 eb4 bb4@2 db5]/2", // Bb Emaj7 Cm7 Ebm7
  AZ: "[[a3,d4,f4,c5]@7 ~ [gb3,b3,c4,e4]@2 ~@5 [bb3,d4,g4]@8 ~ [gb3,bb3,d4,a4]@2 ~@6]/2", // Dm7 Esus2 Gm D
  BA: "[f3,bb3,d4,g4]@4 bb3 f4@2 g4 [e3,bb3,d4,g4]@2 ~@6", BB: "[g3,db4,f4,c5]@7 ~ [gb3,c4,d4,bb4]@7 ~",
  BC: "[e3,g3,bb3,d4]@7 ~ [e3,a3,bb3,d4]@7 ~", BD: "~@3 [g3,d4,e4,bb4]@4 ~ [gb3,db4,eb4,bb4]@4 db4 gb4@2 bb4",
  BE: "[f3,c4,e4,bb4]@7 ~ [e3,b3,db4,ab4]@2 ~@6", // Fsus4 Dbm7
  BF: "~@4 [c3,bb3,eb4,g4] ~@3 [b2,bb3,eb4,gb4]@2 ~ [b2,bb3,eb4,gb4] ~@3 [bb2,bb3,d4,f4]", // Cm7 Bmaj7 Bb
  BG: "[~@15 [ab3,c4,eb4,g4]@12 ~@5]/2", BH: "~@7 bb2 [ab3,c4,d4,g4]@2 ~ bb2 [ab3,c4,d4,g4]@2 ~@2",
  BI: "[g3,bb3,d4,f4]@7 ~@4 [eb3,ab3,c4,f4]@4 ~", BJ: "[eb3,a3,c4,gb4]@7 ~ [f3,bb3,d4,a4]@7 ~",
  BK: "[[f3,bb3,d4,a4]@7 ~ [e3,ab3,c4,eb4]@2 ~@5 [eb3,a3,b3,d4,g4]@8 ~ [eb3,g3,a3,c4]@2 ~ [ab3,db4,d4,gb4]@5]/2", // Bbmaj7 Ab G Am7b5 Dbsus4
  BL: "[g3,bb3,db4,f4]@4 db4 g4 ~ bb4 [gb3,ab3,c4,e4,b4]@7 ~", BM: "[g3,bb3,d4] ~@3 [gb3,a3,bb3,d4] ~@3",
  BN: "~@3 [f3,bb3,d4,a4]@4 [e3,bb3,d4,g4]@3 ~@6", BO: "~@3 [g3,c4,db4,f4]@4 ~ [gb3,c4,e4,a4]@4 [gb3,c4,eb4,bb4]@4",
  BP: "[e3,bb3,d4,g4]@2 ~@5 [f3,b3,eb4,bb4]@8 ~", // Em7b5 Ebsus2
  BQ: "[[e3,g3,bb3,d4]@7 ~ [e3,g3,bb3,d4]@2 ~ c3 [e3,g3,bb3,d4] ~@2 [e3,bb3,eb4,ab4]@8 ~ [e3,bb3,eb4,ab4]@2 ~ gb2 [e3,bb3,eb4,ab4] ~@2 [eb3,bb3,c4,g4]@8 ~ [bb3,eb4,gb4,db5]@4 eb4 bb4 ~ db5]/3", // Em7b5 Emaj7 Cm7 Ebm7
  BR: "bb2!2 ~@2 a2@3 ~ g2@3 ~ g2@4, ~@3 [d4,f4,bb4]@4 [bb3,f4,a4,d5]@8 ~", // Bb Bbmaj7
  BS: "[d3,c4,f4,bb4]@2 ~ [d3,c4,f4,bb4] ~@3 [d3,c4,f4,bb4] [db3,b3,e4,bb4] ~@3 [db3,b3,e4,bb4]@2 ~ [c3,bb3,e4,g4]", // Bb Bbdim C7
  BT: "~@3 [c3,bb3,e4,g4]!2 ~@3 [b2,bb3,e4,gb4] ~@7", BU: "[~ [bb2,ab3,db4,f4,c5]@9 ~@2]/3",
})).s("gm_piano").gain(0.26).pan(0.6)

// other · alto sax
const alto_sax = note(`<
  ~@2 A B A C ~@7 D E F G H@2 I J K@6 L@2 M N@2 O P Q R S T ~@32 U V W X Y@2 Z@2 U V W X Y@2 AA ~ AB AC@2 ~ AB AD@2 AE E
  F G H@2 I J AF Q R AG AH@3
>`.pickRestart({
  A: "~@4 g4@2 ~ g4 ~@3 g4!2 ~@3", B: "bb4@2 ~ g4 ~@3 a4@9", C: "bb4@2 ~ g4 ~@3 a4@4 [e4,f4] [d4,eb4] ~@3",
  D: "~@4 bb4@6 ~ e4 [d4,eb4] ~@3", E: "g4 gb4", F: "f4 e4", G: "~@3 f4@5 e4 ~@7",
  H: "[~@4 g4 ~@3 bb4@2 ~ bb4 ~@3 g4@17]/2", I: "ab4@3 ~", J: "~@3 g4@5 gb4@8",
  K: "[~@4 d4@3 f4 g4@3 bb4 ~@3 c5@5 c5 ~@3 c5@2 ~ c5 ~@3 c5@4 [c5,db5] bb4 ~@3 c5@2 ~@2 bb4@3 g4@25 ~@3 g4 bb4@3 c5@5 c5 ~@3 c5@3 c5@5]/6", // Dbmaj7
  L: "[~@3 c5 ~@3 c5 c5@2 ~ c5 ~@3 f4@13 ~@4]/2", M: "~@12 d4 ~@3",
  N: "[g4@7 ~ g4@2 ~ bb4 ~@3 d5@7 c5 [a4,bb4,b4] [g4,ab4] ~@3 bb4 ~@3]/2", O: "db5@6 ~ c5@4 [c5,db5] bb4 ~@3",
  P: "g4@15 ~", Q: "~@11 bb4!2 ~@3", R: "bb4@2 ~ bb4 ~@3 bb4!2 ~@3 bb4@2 ~ bb4", S: "~@3 bb4!2 ~@3 bb4@2 ~ bb4 ~@3 bb4",
  T: "bb4 ~@15", U: "~@4 bb4@3 g4 a4@3 bb4 a4@3 g4", V: "bb4@3 g4 a4@3 bb4@4 [bb4,b4] g4 ~@3", W: "f4@15 ~",
  X: "~@4 d4@2 ~ e4 ~@3 e4 g4 ~@3", Y: "bb4/2", Z: "[~@3 g4@5 gb4@2 ~ gb4 ~@3 f4@4 d4 ab4@3 a4@4 [a4,bb4] d4 ~@3]/2",
  AA: "~@4 g4 ~@3 gb4@2 ~ gb4 ~@3 f4", AB: "~@3 c5 c5@3 c5!2 ~@3 c5@3 c5",
  AC: "[c5@3 c5!2 ~@3 c5@2 ~ bb4 ~@3 g4@9 ~@8]/2",
  AD: "[c5@3 c5!2 ~@3 ab4@2 ~ ab4 ~@3 g4@4 [g4,ab4] eb4 ~@3 g4@2 gb4 [e4,f4] ~@4]/2", AE: "bb4@6 ~ bb4@9",
  AF: "f4 ~@15", AG: "~@3 bb4!2 ~@3 bb4 ~@7", AH: "[~ ab4@9 ~@2]/3",
})).s("gm_alto_sax").gain(0.48).pan(0.4)

// other · alto sax · soft notes
const alto_sax_soft = note("<~@5 A ~@7 B ~@17 C ~@2 D ~@57 E ~@9 D ~@5>".pickRestart({
  A: "~@10 [g4,ab4] gb4 ~@4", B: "~@10 [g4,ab4,a4] [f4,gb4] ~@4", C: "~@6 db5 ~@9", D: "~@4 bb4@2 ~ bb4 ~@8",
  E: "~@11 eb4 [c4,db4,d4] [a3,bb3,b3] ab3 ~",
})).s("gm_alto_sax").gain(0.24).pan(0.4)

// other · alto sax
const alto_sax_2 = note(`<
  ~@2 A B A C ~@7 D ~@2 E F@3 G H@6 I@2 ~@3 J K L M N O P Q R S T U V W P Q R S T U V W ~@2 U X ~@2 Y Z ~@4 AA AB AC ~@3
  AD AE AF Q AG@2 ~@2 AD AE AF Q AH ~ AI AJ@2 ~ AK AL@2 AM ~@2 E F@3 G AN AO AP AQ AR@3
>`.pickRestart({
  A: "~@4 d4@2 ~ d4 ~@3 d4!2 ~@3", B: "f4@2 ~ d4 ~@3 e4@9", C: "f4@2 ~ d4 ~@3 e4@4 eb4 d4 ~@3", D: "~ f4@2 ~",
  E: "~@3 db4@5 c4 ~@7", F: "[~@8 f4@2 ~ f4 ~@3 e4@29 ~@4]/3", G: "~@3 eb4@13",
  H: "[~@15 g4@5 g4 ~@3 g4@2 ~ g4 ~@3 g4@5 g4 ~@3 g4@2 ~@2 g4@3 d4@25 ~@3 d4 f4@3 a4@5 a4 ~@3 a4@3 a4@5]/6",
  I: "[~@3 a4 ~@3 a4 a4@2 ~ a4 ~@3 c4@13 ~@4]/2", J: "bb4@6 ~ g4@4 [g4,ab4] eb4 ~@3", K: "d4@15 ~", L: "~@11 gb4!2 ~@3",
  M: "f4@2 ~ f4 ~@3 f4!2 ~@3 f4@2 ~ eb4", N: "~@3 eb4!2 ~@3 eb4@2 ~ eb4 ~@3 eb4", O: "f4 ~@15", P: "~ g4 gb4@2",
  Q: "f4 e4", R: "~@3 db4@5 c4@8", S: "bb3@15 ~", T: "d4 ~@11 d4 ~@3", U: "~@8 db4 ~@7", V: "c4 db4", W: "c4",
  X: "db4 ~@6 db4 ~@8", Y: "~@8 c4 ~@7", Z: "c4 ~@6 e4@4 [e4,f4] d4 ~@3", AA: "d4", AB: "db4", AC: "c4 ~", AD: "db4 c4",
  AE: "~@4 bb3@2 ~ d4 ~@3 d4 e4 ~@3", AF: "g4 gb4",
  AG: "[~@3 eb4@5 eb4@2 ~ eb4 ~@3 d4@4 f4 d4@3 c4@4 [c4,db4] c4 ~@3]/2", AH: "~@4 eb4 ~@3 eb4@2 ~ eb4 ~@3 d4",
  AI: "~@3 g4 g4@3 g4!2 ~@3 g4@3 g4", AJ: "[g4@3 g4!2 ~@3 g4@2 ~ g4 ~@3 d4@9 ~@8]/2",
  AK: "~@3 a4 a4@3 a4!2 ~@3 a4@3 a4", AL: "[a4@3 a4!2 ~@3 e4@2 ~ e4 ~@3 eb4@4 [eb4,e4] c4 ~@3 eb4@2 d4 [c4,db4] ~@4]/2",
  AM: "f4@6 ~ f4@9", AN: "d4 ~@15", AO: "~@7 gb4 ~@3 gb4!2 ~@3", AP: "f4@2 ~ f4 ~@3 f4 e4 ~@3 e4@2 ~ eb4",
  AQ: "~@3 eb4!2 ~@3 eb4 ~@7", AR: "[~ f4@9 ~@2]/3",
})).s("gm_alto_sax").gain(0.48).pan(0.4)

// other · alto sax · soft notes
const alto_sax_soft_2 = note("<~@34 A ~@33 B ~@23 C ~@9 D ~@5>".pickRestart({
  A: "~@4 gb4@2 ~ gb4 ~@8", B: "~ db4", C: "~@11 b3 [ab3,a3,bb3] [f3,gb3,g3] e3 ~", D: "~@2 g4 ~@5",
})).s("gm_alto_sax").gain(0.24).pan(0.4)

// other · tenor sax
const tenor_sax = note(`<
  ~@2 A B A C ~@7 D E F G H@3 I J@6 K@2 L M@2 N O P Q R S ~@32 T U E V W X Y@2 T U E V W X Z ~ AA AB@2 ~ AC AD@2 AE AF
  AG AH H@3 I AI AJ AK AL AM@3
>`.pickRestart({
  A: "~@4 bb3@2 ~ bb3 ~@3 bb3!2 ~@3", B: "db4@2 ~ bb3 ~@3 c4@9", C: "db4@2 ~ bb3 ~@3 c4@4 [f3,g3] [d3,eb3] ~@3",
  D: "~@4 c4@6 ~ e3 [d3,eb3] ~@3", E: "g3 gb3", F: "f3 e3", G: "~@3 g3@5 gb3 ~@7",
  H: "[~@4 g3 ~@3 b3@2 ~ b3 ~@3 bb3@29 ~@4]/3", I: "~@3 bb3@13",
  J: "[~@4 d3@3 f3 g3@3 bb3 ~@3 eb4@5 eb4 ~@3 d4@2 ~ d4 ~@3 eb4@5 eb4 ~@3 d4@2 ~@2 d4@3 bb3@25 ~@3 bb3 d4@3 f4@5 f4 ~@3 e4@3 e4@5]/6",
  K: "[~@3 f4 ~@3 f4 e4@2 ~ e4 ~@3 a3@13 ~@4]/2", L: "~@12 d3 ~@3",
  M: "[g3@7 ~ g3@2 ~ bb3 ~@3 d4@7 c4 [a3,bb3,b3] [g3,ab3] ~@3 bb3 ~@3]/2", N: "f4@6 ~ e4@4 [e4,f4] c4 ~@3",
  O: "bb3@15 ~", P: "~@11 c4!2 ~@3", Q: "c4@2 ~ c4 ~@3 c4 bb3 ~@3 bb3@2 ~ bb3", R: "~@3 bb3!2 ~@3 bb3@2 ~ bb3 ~@3 bb3",
  S: "c4 ~@15", T: "~@4 bb3@3 g3 a3@3 bb3 a3@3 g3", U: "bb3@3 g3 a3@3 bb3@4 [bb3,b3] g3 ~@3",
  V: "~@4 e3@2 ~ bb3 ~@3 bb3!2 ~@3", W: "d4 db4", X: "c4 b3",
  Y: "[~@3 bb3@5 bb3@2 ~ bb3 ~@3 a3@4 f3 a3@3 a3@4 [a3,bb3] gb3 ~@3]/2", Z: "~@4 bb3 ~@3 bb3@2 ~ bb3 ~@3 c4",
  AA: "~@3 eb4 eb4@3 eb4!2 ~@3 eb4@3 eb4", AB: "[d4@3 d4!2 ~@3 d4@2 ~ d4 ~@3 bb3@9 ~@8]/2",
  AC: "~@3 e4 e4@3 e4!2 ~@3 e4@3 e4",
  AD: "[e4@3 e4!2 ~@3 bb3@2 ~ bb3 ~@3 a3@4 [a3,bb3] a3 ~@3 a3@2 ab3 [gb3,g3] ~@4]/2", AE: "db4@6 ~ c4@9", AF: "g4 gb4",
  AG: "f4 e4", AH: "~@3 g4@5 gb4 ~@7", AI: "g3 ~@15", AJ: "~@11 db4!2 ~@3", AK: "c4@2 ~ c4 ~@3 c4 b3 ~@3 b3@2 ~ bb3",
  AL: "~@3 bb3!2 ~@3 bb3 ~@7", AM: "[~ db4@9 ~@2]/3",
})).s("gm_tenor_sax").gain(0.48).pan(0.4)

// other · tenor sax · soft notes
const tenor_sax_soft = note("<~@5 A ~@7 B ~@17 C ~@2 D ~@57 E ~@9 F ~@5>".pickRestart({
  A: "~@10 [bb3,b3] ab3 ~@4", B: "~@10 [ab3,bb3,b3] [gb3,g3] ~@4", C: "~@6 db4 ~@9", D: "~@4 db4@2 ~ c4 ~@8",
// … 302 more lines

More by Duke Ellington