Strudelify

Have a Nice Day

Basie

KeyC majorTempo120 bpm
0:00/0:00
// Have a Nice Day — Basie
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 94 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · "Jazz Bass"
const bass = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL ~@2 AM AN AO AP E AQ AR AS AT
  AU AV AW AX AY P AZ BA BB BC BD BE BF O BG BH BI BJ T BK BL BM BN BO BP AA BQ BR BS BT BU BV BW BX BY BZ CA CB CC CD
  CE CF CG@3
>`.pickRestart({
  A: "g2@6 g1@2 g2@8 g2@6 g1 ~ g2@6 g1 ~", B: "c2@2 ~ c2 b1@4 c2@3 c1 f#2@4", C: "f2@6 f1@2 f2@8 f2@6 f1 ~ f2@6 f1 ~",
  D: "d2@6 a1 ~ a2@6 a1 ~ d2@8 f#2@7 ~", E: "g2@8 g2@8 g2@8 g2@6 g1 ~", F: "c2@4 ~@2 c2@2 g2@8 c2@7 ~ e2@5 f2@2 ~",
  G: "~@6 f2@2 a2@8 a#2@7 ~ b2@8", H: "c3@8 ~ d#3@7 d3@6 d2@2 g#2@7 ~", I: "g2@6 g1 ~ g2@8 g2@4 ~@2 g2@2 b1@8",
  J: "c2@6 g1 ~ g2@6 g1 ~ c2@4 ~@2 c2@2 e2@8", K: "f2@8 f2@6 f1 ~ f2@6 c2 ~ c3@6 c2 ~", L: "d3@4 a2@4 d2@2 ~ d2 a2@4",
  M: "g2@8 g2@6 g1 ~ g2@8 g2@8", N: "c2@3 c1 c2@4 c2@4 c2@4", O: "c2@5 ~ c1@2 d2@7 ~ d#2@7 ~ g2@6 c2@2",
  P: "f2 g2 a2 c3", Q: "a#1@8 a1@6 a0 ~ a#1@4 ~@2 a#1@2 a#1@8", R: "b1@3 b0 b1@4 e2@2 ~ e2 g#1@4",
  S: "a1@4 ~@2 a1@2 e2@8 g#2@6 g#1 ~ a1@8", T: "d2@6 a1 ~ e2@8 f#2@5 ~ a1 ~ a2@6 a1 ~",
  U: "g2@2 ~ g2 f#2@4 f#2@2 ~ f#2 f#2@4", V: "c2@6 c1@2 c2@8 a#1@6 g1 ~ g2@6 g1 ~", W: "a1@4 g#1@4 a1@3 a0 d#2@4",
  X: "d3@8 a2@8 d2@6 d1 ~ d2@6 d1 ~", Y: "g2@3 g1 g#2@4 g2@3 g1 g2@4", Z: "c2@6 g1 ~ g2@6 g1 ~ c2@8 c2@8",
  AA: "f2@6 c2 ~ g2@8 a2@5 ~ c2 ~ c3@6 c2 ~", AB: "d2!3 a2", AC: "g2@2 ~ g2 f#2@4 g2@4 g2@4",
  AD: "c2@2 ~ c2 g2@4 c2@2 ~ c2 b1@4", AE: "c2@5 ~ c1@2 d2@8 d#2@8 g2@6 c2@2", AF: "f2 c3 a2 f2",
  AG: "a#1@6 a#0 ~ a1@8 a#1@6 a#0@2 a#1@8", AH: "a#1@6 a#0 ~ a#1@8 d#2@4 ~@2 d#2@2 a#2@8",
  AI: "f2@6 f1 ~ e2@8 d#2@6 d#1 ~ d2@6 d1 ~", AJ: "a1@2 ~ a1 e2@4 d2@2 ~ d2 f#2@4",
  AK: "g2@8 g2@6 g1 ~ g2@4 ~@2 g2@2 d3@8", AL: "c2@6 g1 ~ g2@6 g1 ~ c2@5 ~ f2@10", AM: "g2 d3 g2 c#2",
  AN: "c2@8 c2@8 c2@6 c1 ~ f#2@6 f#1 ~", AO: "f2@2 ~ f2 c3@4 a1@4 d#2@4", AP: "d2 d3 a2 f#2",
  AQ: "c2@6 g1 ~ g2@6 g1 ~ c2@6 c1 ~ c2@6 c1 ~", AR: "c2 g2 d#2 c2", AS: "f2@3 f1 f2@4 f2@3 f1 b1@4",
  AT: "a#1@6 f1@2 f2@7 ~ d2@8 a#1@6 f1 ~", AU: "a#1@4 ~@2 a#1@2 f2@8 d#2@6 a#1 ~ a#2@6 a#1 ~",
  AV: "f2@6 c2@2 c3@7 ~ a2@8 f2@6 c2 ~", AW: "d2 e2 f2 f#2", AX: "g2@5 ~ b1@2 f2@7 ~ e2@9 d2@7", AY: "c2 d2 e2 g2",
  AZ: "d#2@6 d#1 ~ d2@6 d1 ~ d2@4 ~@2 d2@2 f#2@8", BA: "g2@6 d2 ~ d3@6 d2 ~ g2@8 g2@6 g1 ~",
  BB: "c2@8 c2@8 c2@8 c2@6 c1 ~", BC: "f2@6 f1@2 f2@8 f2@8 f2@6 f1 ~", BD: "d2@6 d1@2 d2@8 d2@6 d1 ~ d2@6 d1 ~",
  BE: "g2@4 ~@2 g2@2 d3@8 g2@6 g1 ~ g2@8", BF: "g2@3 g1 g2@4 c2@2 ~ c2 b1@4", BG: "f2@2 ~ f1 d#2@4 d2@4 c2@3 b1",
  BH: "a#1@4 a#1@4 a#1@3 a#0 a#1@4", BI: "b2@4 f#2@4 e2@2 ~ e2 g#1@4", BJ: "a1@6 e1 ~ b1@8 c2@5 ~ e1 ~ e2@6 e1 ~",
  BK: "g2!2 f#2!2", BL: "c2@8 d3@8 c2@6 c1 ~ a#1@8", BM: "a1 a2 e2 c2", BN: "d#2@6 a#1 ~ a#2@6 a#1 ~ d2@8 g#2@6 g#1 ~",
  BO: "g2@6 d2 ~ d3@6 d2 ~ g2@6 g1@2 c#2@8", BP: "c2 g2 c2!2", BQ: "d2@8 c#2@8 d2@8 f#2@7 ~",
  BR: "g2@8 g#2@8 g2@6 d2 ~ d3@6 d2 ~", BS: "c2@3 c1 c2@4 c2@3 c1 c#2@4", BT: "c2 d2 d#2!2",
  BU: "f2@6 f1 ~ c2@8 f2@8 b1@8", BV: "a#1 c2 d2 f2", BW: "a#1@4 a#1@4 d#2@3 d#1 d#2@4", BX: "f2 e2 f2!2",
  BY: "a1@3 a0 d#2@4 d2@3 d1 g#2@4", BZ: "g2@2 ~ g2 d3@4 g2@2 ~ g2 d3@4", CA: "c2@4 b1@4 c2@3 c1 c2@4",
  CB: "f2@6 f1@2 f#2@8 f2@8 f2@6 f1 ~", CC: "d2@2 ~ d2 a2@4 d2@2 ~ d2 f#2@4", CD: "g2!3 b1",
  CE: "c2@4 ~@2 c2@2 g2@8 c2@9 e2@4 ~ f2@2", CF: "~@5 a1@11 a#1@8 b1@8", CG: "[c2@3 ~@10 f2@66 ~@17]/3",
})).s("gm_acoustic_bass").gain(0.13).pan(0.3)

// chords · piano
const piano = note(`<
  A B C D@2 E ~@2 F@2 G@2 H@3 I@2 J K L M N O P Q R S T U V@2 W X Y Z AA AB AC AD@2 AE AF AG AH AI AJ AK AL AM AN AO AP
  AQ AR@4 AS AT AU AV AW AX AY AZ BA BB BC BD BE@3 BF BG S BH BI@2 AK BJ@3 BK BL BM BN BO BP@2 BQ ~ BR@3
>`.pickRestart({
  A: "~@5 [d#5,g#5]@9 ~@2 [e5,a5]@2 ~@6 d5@2 ~@6", B: "[d#5,g#5]@13 [e5,a5]@18 ~",
  C: "~@7 g#4@9 ~ g4@3 ~@5 f4@3 ~@4, ~@3 [a3,d#4,a4,c5]@5 [e3,a3,c4] ~@3 [d3,a3,c4] ~@3", // Adim Am D7
  D: "[~ a4 ~@21 d3 ~ [e4,f#4]@4 ~@2 [f3,b3,d#4,g4]@4 ~@19 [f3,b3,d4,a4] ~@2 [b3,d4,f4,a4]@2 ~@5, d4 ~@31]/2", // Esus2 D#aug Bm7b5
  E: "[c2,e3,g#3,a#3]@12 ~@3 b2 ~ g4@3 ~@4 [c3,e3,a#3,d4,e4,g4,a#4,d5]@5 [f3,a3,c4,d4,g4,c5,d5,f5]@2 ~, ~@8 [e3,a#3,d4] ~@7", // Caug C7 Dm7 Em7b5
  F: "[~ [b3,d4,f4,g4]@2 ~@4 d5@2 [d#5,g#5]@2 ~@4 g4 [e5,a5]@5 ~@2 g2 ~ e4@4 ~@2 a3 ~ [a#3,c4,e4,g#4]@2 ~@3 a5@3 [c3,g#5]@3 a5@2 g#5@2 a5@5 ~ d5 g4@7 ~@2, ~@7 [b3,f4,b4,d#5] ~@3 [a3,d4,a4,d5] ~@3 g#5@4 ~@8 [a#3,e4,a#4]@4 ~]/2", // G7 G#5 A5 Caug Fm Fm7b5 D5 A#dim
  G: "[~ [f2,c4]@2 ~@3 d5@2 ~ [f2,a3,d#4]@2 ~@6 g4 ~@4 d5@2 ~@6 g#5@8 ~ d3 ~ f4@3 a5@2 ~ a3 a5@5 ~@2 d3 ~ [e4,f#4]@4 ~@3, ~ f4 ~@6 [d#5,g#5]@2 ~@6 [e5,a5]@5 ~@20 g#5@2 ~@3 g#5@2 ~@6 d5@2 ~@8, ~@9 c4 ~@6 c4@2 ~@20 [a3,d4,a4,a5]@3 ~@23]/2", // F5 F7 Esus2 G#5 A5 D5
  H: "[~ [g2,b3,f4]@2 ~@3 d5@2 [d#5,g#5]@2 ~@7 [e5,a5]@5 ~ a4@7 g#5@8 ~@3 g#5@2 ~ a5@2 g#5@2 ~ g4 ~@4 c5@3 d5@5 ~@8 [d#3,a#3,c4,g4] ~@9 a#3 d#3 ~@12 d#3 ~, ~ d4 ~@20 [b3,f4,b4]@10 ~@6 [a#3,e4,a#4,c5]@10 d4@2 ~@30 [c4,g4]@2 ~@14, ~@22 d5@2 ~@14 a5@3 ~@7 a5@5 ~@9 [d#5,g5]@34, ~@13 g#4@3 ~@16]/3", // G7 G#5 A5 Cm7 Bdim C7 C5 D#
  I: "[~@6 c#6 ~@7 d6@8 c6@3 g#5@5 ~ [a#1,d3,f3,g3]@7 ~@8 [c#3,f#3,a3,e4] ~ [a#1,d3,f3,g3]@12 ~@3 a2, ~@3 [a3,d#4,a4,c5]@12 ~@17, ~@6 d6@2 ~@6 c#6 ~@15 f5@17 ~@17, ~@7 g4@23 ~@34]/2", // Gm7 F#m7 Gm7 Adim
  J: "~ f#4 ~@21 e2 ~ [b3,d4]@4 ~@3, b3 ~@15", K: "~@7 e4@7 ~@9 g#2 ~@8, ~@3 [a3,c4,a4,c5]@4 ~@4 [e3,c4,e4] ~@4",
  L: "~ [c4,e4,f#4,a#4]@2 ~@6 d3@3 ~@5 f4@2 f#4@4 ~@9, ~@17 a#4@5 ~@10", // C7
  M: "~@7 g2 ~ f#4@4 ~@10 a#4@7 ~@2, ~@3 [a#3,g4,a#4] ~@7 [d4,g4,d5,g5]@4 ~", // D# G5
  N: "~ [a#3,d4,f4,g4]@2 ~@6 c2@3 ~@10 [e3,a#3,c4,g4] ~@9", // Gm7 C7
  O: "~ [g3,b3,c#4,e4]@2 ~@6 a2@3 ~@11 a2 ~ c4@4 ~@3, ~@11 [f3,a3,f4] ~@4", P: "~ [d3,c4,f#4]@2 ~@20 d3 ~@8, ~ e4 ~@30",
  Q: "~@7 g2 ~ [d4,f4]@4 ~@10 a4@9, ~@11 [b3,f4,b4,d5]@5", // Dm Bdim
  R: "~ [c3,a#3,e4]@2 ~@20 c3 ~ d#4@4 ~@2 g3, ~ c4 ~@20 [g3,d4,g4]@2 ~@8", // C7 G5
  S: "~@7 f2 ~ [c4,e4]@4 ~@4 [a3,g4]@5 ~ c2@2 [a3,e4]@3 ~@4", // C A7 A5
  T: "~ [c4,d4,f#4,a4]@2 ~@6 d3@3 ~@5 [d3,c4,f#4]@2 ~@13, ~@17 e4 ~@14", // D7
  U: "~@7 g2 ~ [d4,f4]@4 ~@4 [b3,d4,f4,a4]@2 ~@6 g2@3 ~@4", // Dm Bm7b5
  V: "[~@7 c3 ~ d#4@4 ~@2 g#3 ~ g4@3 ~@11 [c2,d#3,g3]@14 ~@2 b2@2 [c3,g3,d#4,g4]@10 ~@5, ~@6 [g#3,c4,g#4]@2 ~@8 [e3,a#3,d4]@2 ~@13 a#3@11 ~@22]/2", // Cm G# Em7b5
  W: "~ [a3,d#4]@3 ~@13 [c4,d#4]@4 ~@4 [d#3,a3,c4]@3 ~@4, [g4,c5]@3 ~@13 f3@5 ~@3 g4@3 ~@5, ~@16 [e3,a4]@3 ~@13", // Adim Cm Adim C5 A5
  X: "~ f4 ~@13 a2 ~@7 a#2 ~ [a#3,d4]@4 ~@3, a#3 ~@6 [e3,a3,e4] ~@8", // A# A5
  Y: "[a#1,c#3,f3,g#3]@8 ~ f4 ~@5 [a#3,f4]@3 ~@14, ~@4 a#3 ~@11", // A#m7 A#5
  Z: "~ [a3,c4,d4,f4]@2 ~@6 e4 ~@7 f4 ~@7 a4 ~@6, ~@4 b3 ~@3 a#3 ~@3 e4 ~@3", // Dm7
  AA: "~@7 e4@9 ~ a4 ~@14, ~@3 [g3,c4,g4,a4]@5 d4 ~@7", // Am7
  AB: "~ [b3,d4,f4,a4]@2 ~@6 [b3,d#4,f4,g4]@2 ~@12 g2 ~ e4@4 ~@2 a3, ~@11 [a3,d4,a4] ~@4", // Bm7b5 Baug D5
  AC: "~ g4 ~@15 [c3,a#3,e4]@2 ~@13, d#4@2 ~@15 d#4 ~@14", AD: "[~@5 [c2,c3]@59]/2",
  AE: "~@7 g2 ~ [d4,f4]@4 ~@4 a4 ~@7 a4 ~@6, ~@8 d4 ~@3 d#4 ~@3", // Dm
  AF: "~@7 c3 ~ d#4@4 ~@2 g3 ~ [c3,a#3,e4]@2 ~@13, ~@6 [g3,d4,g4]@2 ~@9 d4 ~@14", // C7 G5
  AG: "~ [a3,c4,d4,f4]@2 ~@6 f2@3 ~@5 [a2,g3,c4]@2 ~@11 [c#3,g3,a#3,f4] ~, ~@17 a3 ~@14", // Dm7 Am7 Gm7b5
  AH: "~@6 [f#3,c4,e4,a#4] ~@9 c4 f#3 ~@12 f3 ~, ~@8 [e4,a#4] ~@7", // F#7 Edim
  AI: "~ a4 ~@15 [b3,d#4,f4,a4]@2 ~@6 a4 ~@6, d#4 ~@11 d4 ~@3", // B7
  AJ: "~@7 c3 ~ d#4@4 ~@2 g3 ~@7 [e3,a#3,d4,g4]@4 ~@5, ~@3 [g3,c4,g4] ~@12", // Em7b5 C5
  AK: "~@6 [d#3,a#3,c4,g4] ~@9 a#3 d#3 ~@14, ~@8 [c4,g4] ~@7", // Cm7 C5
  AL: "~@6 [d#3,a#3,c4,g4] ~@16 f4@9, ~@11 [a3,d#4,a4,c#5]@5", // Cm7 D#m7b5
  AM: "~ f4@3 ~@10 c#5@2 ~ d5@4 ~@2 g3 ~ f4@5 ~@2, [d3,g3,a#3]@2 ~@20 f5@2 [g3,a#4]@5 ~@3, ~@12 g5 ~@3, ~@25 d4@3 ~@4", // Gm
  AN: "~@6 [c#3,g#3,a#3,f4] ~@16 f4@9, g#5@7 f5@9, ~@11 [g3,c#4,g4,a#4]@5", // A#m7 Gdim
  AO: "~@7 f2 ~ d4@4 ~@2 f3 ~ [a3,d4,d5]@4 ~ f5@2 ~ g5@3 ~@2 d3 ~, ~@3 [f3,c4,f4] ~@3 c#5 ~@8", // D5 F5
  AP: "[f#3,c4,f#4,g#5]@13 ~@3 f4@2 ~ f#4@12 ~, a4@3 ~@11 f5@18, ~@8 [d3,c4,a4]@5 ~@3", // G#7 D7
  AQ: "~@6 [f3,b3,d4,g4] ~@7 c#5@2 b3 d5@5 f5@2 g5@2 ~@6, ~@8 [d4,g4] ~@7, ~@17 f3 ~@14", // G7 G5
  AR: "[g#5@5 ~ [e3,a#3,c4,g4] ~@9 a#3 e3 ~@4 a#5@3 g#5@5 d#3 ~@8 f2 ~ e4@4 ~@2 a3 ~ [c4,f4]@3 ~@11 [c#3,g3,a#3,d#4]@4 ~@6 [c4,f4,f#4,a4]@2 ~@4 [f#3,c4,f4,a4]@4 ~@12 [d4,a4]@3 ~@14 [g2,f3,g3,b3]@5 ~@4 [g2,b3,f4]@2 ~@5, ~@6 b5@15 ~@9 f5@34 ~@64, ~@16 [c4,g4]@2 ~@20 [a3,f4,a4]@2 ~@81 d4 ~@6]/4", // C7 F5 D#7 F D5 G7 C5 Dm
  AS: "~@6 [e3,a#3,d4,g4] ~@16 c3 ~@8, ~@11 [g3,d#4,g4] ~@4", // Em7b5 Cm
  AT: "~ [f2,a3,d4]@2 ~@13 [f2,d3,f3,g#3]@5 ~@10 f2, ~ c4 ~@28 [f3,c4,f4]@2", // Dm Ddim F5
  AU: "[d2,f#3,a3,c4]@12 ~@3 c#3 ~ [c4,d4,f#4,a4]@2 ~@12 d3, ~@15 [a3,e4,a4]", // D7 A5
  AV: "~@6 [f3,b3,d4,a4] ~@10 a4 ~@7 [g2,b3,f4]@2 ~@5, ~@16 d4@2 ~@7 d4 ~@6", // Bm7b5 G7
  AW: "~ [g2,a#3,f4]@2 ~@20 c3 ~ d#4@4 ~@3, ~ d4 ~@20 [g3,d4,g4]@2 ~@8", AX: "~@7 g4@25, ~@3 [a#3,d#4,a#4,c5]@13",
  AY: "d#3@22 c2 ~@9, [a3,c4]@7 ~", AZ: "~ [a#2,a3,d4]@2 ~@14 [g3,a#3,d4,f4]@2 ~@6 a#2@3 ~@4, ~ a#3 ~@30",
  BA: "~@7 b2 ~ [b3,d4]@4 ~@10 e4@9, ~@11 [g#3,d4,g#4,b4]@5", BB: "c3@22 e2 ~@9, [g3,a3]@7 ~",
  BC: "~@7 a#4@23 ~@2, ~@3 [c4,f#4,c5,e5]@12 ~", BD: "~ [d4,g4,a#4]@2 ~@6 g2@3 ~@10 [g3,d4,g4,a#4] ~@9",
  BE: "[~@7 g4@9 ~ g4@3 ~@11 [c3,g3,a3,e4]@4 ~@20 f3 ~ e4@5 ~ [d#2,c#3,d#3]@14 ~@2 d2 ~ a4 ~@6 [g#2,f#3,a#3,c4]@8, ~@6 [a#3,f4,a#4,d5]@10 [f3,a#3,d4]@2 ~@38 [g3,a4]@5 ~@2 g3@11 ~@22, ~@57 c4@3 ~@20 e4@2 ~@14]/3", // Am7 D#7 G#7 A# Gsus2
  BF: "~@7 a4@7 ~ [d4,a4]@3 ~@14, ~@3 [b3,f4,b4,d5]@4 ~@9", BG: "~ [c3,a#3,e4]@2 ~@19 [e3,a#3,d4,g4] ~@9, ~ c4 ~@30",
  BH: "~ a4@3 ~@11 [f#3,c4,e4,a4]@4 ~@13, [f#3,c4,d4] ~@15", // F#m7b5 D7
  BI: "[~@6 [f3,b3,d4,a4] ~@16 g2 ~ [d4,f4]@4 ~@2 [c4,g#4]@3 ~@20 [e3,a#3,d4,g4] ~@9]/2", // Bm7b5 Dm Fm Em7b5
  BJ: "[~ [f2,a3,d#4]@2 ~@6 [c3,a#3,d#4]@2 ~@6 g4@3 ~@13 [a#2,g3]@29 ~ [c#3,g#3,a#3,f4]@4 ~@13 [d#2,c#3,d#3,g3]@12 ~@3 d2, ~ c4 ~@7 c4 ~@6 [d#3,a3,c4]@2 ~@13 [d4,f4]@31 ~@34]/3", // F7 Cm7 D# A#m7 D#7 Adim Dm
  BK: "~@7 f4@7 ~ [d3,a3,c4,f4]@4 ~@6 g4@3 ~@4, ~@3 [a3,d4,a4,c5]@4 ~@5 [e3,a3,c4] ~@3", // Dm7 D7 Am
  BL: "~@7 a2 ~ c4@4 ~@10 d3 ~ f4@4 ~@2 a#3, ~@3 [e3,a3,e4] ~@7 [a#3,d4,a#4] ~@4", // A5 A#
  BM: "~@7 g4@9 ~@7 g2 ~ [d4,f4]@4 ~@3, ~@3 [b3,f4,b4,d#5]@5 ~@8", // Dm Fm7b5
  BN: "~@7 g#4@9 ~@7 g4@9, ~@3 [a#3,e4,a#4,c5]@5 ~@3 [a#3,e4,a#4,c5]@5", // C7
  BO: "[f2,d#3,f3,a3]@12 ~@3 e2 ~ g4@3 ~@5 [a3,c4,d4,f4]@2 ~@5, ~@8 [e3,a3,c4] ~@7", // F7 Dm7 Am
  BP: "[~ [c4,d4,f#4,a4]@2 ~@6 d3@3 ~@5 [c4,e4,f#4,a4]@2 ~@6 d3@3 ~@3 [d#4,g4]@3 ~@4 [d#5,g#5]@10 [e5,a5]@2 ~@6 d5@3 ~@5, ~@12 [g2,f3,a3,b3]@3 ~]/2", // D7 F#m7b5 D# G#5 A5 G7
  BQ: "~@7 g#4@7 [e5,a5]@10 ~ d5@4 ~ f5@2, [d#5,g#5]@7 ~@9, ~@3 [a#3,e4,a#4,c5]@5 ~@8", // A5 G#5 C7
  BR: "[~@13 [f2,c3,a3,d#4,g#4]@66 ~@17]/3", // F7
})).s("gm_piano").gain(0.1).pan(0.3)

// other · alto sax
const alto_sax = note(`<
  ~@2 A B A C ~@18 D@4 E@4 ~ F G ~ H@2 I@2 J@8 K ~@6 L@3 M@2 N@3 O P Q@3 R S T U D@4 V@5 W@3 A X A X ~@6
>`.pickRestart({
  A: "~@5 g#4@10 ~ a4@3 ~@5 d4@3 ~@5", B: "g#4@13 a4@19", C: "g#4@13 a4@10 ~ d4@5 f4@2 ~",
  D: "[~@5 d4@2 ~ g#4@3 ~@5 a4@5 d4@2 ~@6 g#4@8 a4@3 g#4@3 ~@2 g#4@3 a4@5 d4@2 ~@9]/2",
  E: "[~@5 d4@2 ~ g#4@3 ~@5 a4@5 d4@2 ~@6 g#4@8 a4@3 g#4@3 ~@2 g#4@3 a4@5 c4@3 d4@5 g4@65 ~@2]/4",
  F: "~@21 a#3@3 c#4@5 c#4@2 ~", G: "c4 ~@15", H: "[~@5 d4@2 ~ g#4@3 ~@5 a4@5 d4@2 ~@6 d#4@23 ~ c4@3 e4@5 f4@2 ~]/2",
  I: "[~@15 c#4 c4@5 d4@3 f4@5 g#4@10 ~ f4@5 d#4@18 ~]/2",
  J: "[e4@3 ~@5 e4@5 d4@2 ~ e4!2 ~@6 d#4@5 d4@19 ~@5 g#4@3 ~@5 g4@10 ~ g4@5 g4@2 ~ g4@5 f4@3 ~@5 e4@18 ~@6 e4@2 ~ d4@5 a3@24 e4@2 ~ d4@5 a3@24 d4@2 ~ c4@5 g3@55 ~ f4@10 ~]/8",
  K: "c4@5 c4@2 ~@25", L: "[~@16 g#4@5 a4@3 ~@5 d5@18 ~ g#4@5 a4@3 ~@5 d4@18 ~ g#4@3 ~@5 a4@3 ~@5]/3",
  M: "[d5@15 ~ g#4@5 a4@3 ~@5 d4@18 ~ g#4@3 ~@5 a4@3 ~@5]/2",
  N: "[d5@15 ~ e5@5 d5@3 ~@5 d4@18 ~ d4@5 f4@3 g#4@5 g4@34 ~]/3", O: "~@8 g#4@5 g#4@3 ~@5 f4@3 g#4@5 g#4@2 ~",
  P: "f4@5 d4@2 ~@25", Q: "[~@8 d4@3 ~@5 e4@5 f4@3 ~@5 c5@24 d5@2 ~ a4@5 e4@18 ~@17, ~@55 c#5@2 ~@39]/3",
  R: "~@5 g4@10 ~ a4@3 ~@5 a#4@5 a4@2 ~", S: "~@5 a4@3 ~@5 g4@3 f4@8 e4@3 ~@5", T: "~@8 d5@15 ~ c5@3 ~@5",
  U: "a#4@5 c5@10 ~ a4@5 d#4@10 ~",
  V: "[~@5 d4@2 ~ g#4@3 ~@5 a4@5 d4@2 ~@6 g#4@8 a4@3 g#4@3 ~@2 g#4@3 a4@5 c4@3 d4@5 g4@57 ~ d#4 d4@5 f4@34 ~]/5",
  W: "[g#4@8 a#4@5 c5@2 ~@14 c4@10 ~ d4@5 c4@2 ~ f4@5 g4@3 ~@5 a4@10 ~ c5@5 a#4@2 ~@17]/3", X: "g#4@13 a4@18 ~",
})).s("gm_alto_sax").gain(0.33).pan(0.6)

// other · alto sax · soft notes
const alto_sax_soft = note("<~@25 A ~ A ~ A ~@8 B ~@2 C ~@31 A ~ A ~ A ~ D ~@14>".pickRestart({
  A: "~@11 a4@3 ~@18", B: "~@15 d4 ~@16", C: "~@23 g4 f#4 f4 ~@6", D: "~@21 f#4 f4 e4 ~@8",
})).s("gm_alto_sax").gain(0.17).pan(0.6)

// other · alto sax
const alto_sax_2 = note("<~@2 A B C D ~@27 E F ~@5 G@4 ~@3 H I ~@14 J K L@3 M N O P ~@9 Q@3 C R C R ~@6>".pickRestart({
  A: "~@5 d#4@10 ~ e4@3 ~@13", B: "d#4@13 e4@19", C: "~@5 d#4@10 ~ e4@3 ~@5 a3@3 ~@5", D: "d#4@13 e4@10 ~ a#3@5 d4@2 ~",
  E: "~@21 g3@3 a#3@5 a#3@2 ~", F: "a3 ~@15",
  G: "[b3@3 ~@5 b3@5 b3@2 ~ b3!2 ~@6 b3@5 a#3@19 ~@5 e4@2 d#4 d4 c#4 ~@3 d4@10 ~ d4@5 c4@2 ~ d4@5 c#4@3 ~@5 c4@18 ~@17]/4",
  H: "~@21 d#4@10 ~", I: "g3@5 g3@2 ~@25", J: "~@8 f4@5 f4@3 ~@5 d#4@3 f4@5 f4@2 ~", K: "d4@5 a#3@2 ~@25",
  L: "[~@8 b3@3 ~@5 d4@5 d4@3 ~@5 e4@24 f#4@2 ~ e4@5 c4@18 ~@17, ~@55 f4@2 ~@39]/3",
  M: "~@5 d4@10 ~ f#4@3 ~@5 f#4@5 f4@2 ~", N: "~@5 f4@3 ~@5 f4@3 d4@8 c4@3 ~@5", O: "~@8 g4@15 ~ g4@3 ~@5",
  P: "f4@5 f4@10 ~ e4@5 c4@10 ~",
  Q: "[f4@8 f4@5 f4@2 ~@14 a3@10 ~ c4@5 a3@2 ~ d4@5 e4@3 ~@5 d#4@10 ~ d#4@5 d#4@2 ~@17]/3", R: "d#4@13 e4@18 ~",
})).s("gm_alto_sax").gain(0.33).pan(0.7)

// other · flute · "Alto Sax"
const flute = note("<~@25 A ~ A ~@45 A ~ A ~@18>".pickRestart({
  A: "~@21 d6@2 ~ c6@5 a5@2 ~",
})).s("gm_flute").gain(0.22).pan(0.7)

// other · tenor sax
const tenor_sax = note(`<
  ~@2 A B C D ~@18 E@4 F@4 ~ G H ~ I@2 J@2 K@8 L ~@6 M@3 N@2 O@3 P Q R@3 S T U V E@4 W@5 X@3 Y Z AA AB ~@6
>`.pickRestart({
  A: "~@5 a3@26 ~", B: "f#3", C: "~@5 f3@10 ~ f3@3 ~@5 g3@3 ~@5", D: "e3@13 e3@10 ~ e3@5 c3@2 ~",
  E: "[~@5 d4@2 ~ g#4@3 ~@5 a4@5 d4@2 ~@6 g#4@8 a4@3 g#4@3 ~@2 g#4@3 a4@5 d4@2 ~@9]/2",
  F: "[~@5 d4@2 ~ g#4@3 ~@5 a4@5 d4@2 ~@6 g#4@8 a4@3 g#4@3 ~@2 g#4@3 a4@5 c4@3 d4@5 d#4@65 ~@2]/4",
  G: "~@21 f3@3 g3@5 g3@2 ~", H: "f3 ~@15", I: "[~@5 d4@2 ~ g#4@3 ~@5 a4@5 d4@2 ~@6 d#4@23 ~ c4@3 e4@5 f4@2 ~]/2",
  J: "[~@15 c#4 c4@5 d4@3 f4@5 d#4@10 ~ c4@5 a#3@18 ~]/2",
  K: "[a3@3 ~@5 a3@5 g3@2 ~ a3!2 ~@6 g3@5 a3@19 ~@5 c4@3 ~@5 c4@10 ~ c4@5 c4@2 ~ c4@5 c4@3 ~@5 g#3@18 ~@6 e4@2 ~ d4@5 a3@24 e4@2 ~ d4@5 a3@24 d4@2 ~ c4@5 g3@55 ~ c#4@10 ~]/8",
  L: "f3@5 f3@2 ~@25", M: "[~@16 g#3@5 a3@3 ~@5 d4@18 ~ g#3@5 a3@3 ~@5 d3@18 ~ g#3@3 ~@5 a3@3 ~@5]/3",
  N: "[d4@15 ~ g#3@5 a3@3 ~@5 d3@18 ~ g#3@3 ~@5 a3@3 ~@5]/2",
  O: "[d4@15 ~ e4@5 d4@3 ~@5 d3@18 ~ d3@5 f3@3 g#3@5 g3@34 ~]/3", P: "~@8 d#4@5 d#4@3 ~@5 c4@3 d#4@5 d#4@2 ~",
  Q: "c4@5 g3@2 ~@25", R: "[~@8 a3@3 ~@5 a#3@5 a#3@3 ~@5 c4@24 d4@2 ~ c4@5 g#3@18 ~@17, ~@55 c#4@2 ~@39]/3",
  S: "~@5 a#3@10 ~ a#3@3 ~@5 a#3@5 d4@2 ~", T: "~@5 d4@3 ~@5 d4@3 a#3@8 g3@3 ~@5", U: "~@8 d#4@15 ~ d#4@3 ~@5",
  V: "c#4@5 c#4@10 ~ c4@5 a#3@10 ~",
  W: "[~@5 d4@2 ~ g#4@3 ~@5 a4@5 d4@2 ~@6 g#4@8 a4@3 g#4@3 ~@2 g#4@3 a4@5 c4@3 d4@5 d#4@57 ~ e3 d3@5 f3@34 ~]/5",
  X: "[c#4@8 c#4@5 c#4@2 ~@14 f3@10 ~ a3@5 f3@2 ~ c4@5 c4@3 ~@5 c4@10 ~ c4@5 c4@2 ~@17]/3",
  Y: "~@5 b3@10 ~ b3@3 ~@5 b3@3 ~@5", Z: "a#3@13 a#3@18 ~", AA: "~@5 c4@26 ~", AB: "c4@31 ~",
})).s("gm_tenor_sax").gain(0.28)

// other · tenor sax · soft notes
const tenor_sax_soft = note("<~@25 A ~ A ~ A ~@8 B ~@2 C ~@31 A ~ A ~ A ~ D ~@14>".pickRestart({
  A: "~@11 a4@3 ~@18", B: "~@15 d4 ~@16", C: "~@23 b3 a#3 a3 ~@6", D: "~@21 c#4 a#3 g3 ~@8",
})).s("gm_tenor_sax").gain(0.17)

// other · tenor sax
const tenor_sax_2 = note(`<
  ~@2 A B C D ~@27 E F ~@4 G H@4 ~@3 I J ~@14 K L M@3 N O P Q ~@9 R@3 S T U V ~@6
>`.pickRestart({
  A: "~@5 c4@26 ~", B: "c#4", C: "~@5 b3@10 ~ b3@3 ~@5 b3@3 ~@5", D: "a#3@13 a#3@10 ~ a#3@5 a3@2 ~",
  E: "~@21 c#3@3 f3@5 f3@2 ~", F: "d3 ~@15", G: "~@21 f#3@10 ~",
  H: "[f3@3 ~@5 f3@5 f3@2 ~ f3!2 ~@6 f3@5 e3@19 ~@5 a#3@2 a3 g#3 g3 ~@3 a3@10 ~ a3@5 a3@2 ~ g3@5 g3@3 ~@5 f#3@18 ~@17]/4",
  I: "~@21 a3@10 ~", J: "d3@5 d3@2 ~@25", K: "~@8 a3@5 a3@3 ~@8 a3@5 a3@2 ~", L: "a3@5 f3@2 ~@25",
  M: "[~@8 f3@3 ~@5 g#3@5 g#3@3 ~@5 g3@24 a3@2 ~ g3@5 f#3@18 ~@17, ~@55 g#3@2 ~@39]/3",
  N: "~@5 d3@10 ~ d3@3 ~@5 d3@5 a#3@2 ~", O: "~@5 a#3@3 ~@5 a#3@3 g3@8 e3@3 ~@5", P: "~@8 c4@15 ~ c4@3 ~@5",
  Q: "g3@5 g3@10 ~ f#3@5 f#3@10 ~",
  R: "[g#3@8 g#3@5 g3@2 ~@14 d3@10 ~ f3@5 d3@2 ~ a3@5 a3@3 ~@5 g3@10 ~ g3@5 f#3@2 ~@17]/3",
  S: "~@5 f3@10 ~ f3@3 ~@5 f3@3 ~@5", T: "e3@13 e3@18 ~", U: "~@5 a3@26 ~", V: "f#3@31 ~",
})).s("gm_tenor_sax").gain(0.33).pan(0.4)

// other · baritone sax · "Bari Sax"
// … 332 more lines

More by Basie