Strudelify

For Every Man There's a Woman

Sinatra

KeyD minorTempo98 bpm
0:00/0:00
// For Every Man There's a Woman — Sinatra
// 98 bpm, 4/4, key D minor. 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 68 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(98/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 · "A.PIANO 2"
const piano = note("<A B@2 C ~@44 D E ~ F ~@15 G>".pickRestart({
  A: "d2@5 ~ a2@6 ab2@6 bb2@4 a2@2", B: "d2@3 a2@3 ab2@3 bb2@2 a2", C: "d2 ~@7",
  D: "~@4 [c4,d4,f4,a4,c5]@7 ~@5 [db4,d4,f4,a4,db5]@8", E: "~@4 [d4,f4,a4,d5]@11 ~@9", F: "~@8 [a4,a5,bb5]@3 ~",
  G: "~@5 f4 ~@9 [f5,a5,db6,e6]@6 ~@3, ~@5 a4@16 ~@3, ~@2 db5@5 ~, ~@7 e5@14 ~@3, ~@8 f5 a5 db6 e6 a6@9 ~@3", // A
})).s("gm_piano").gain(0.33).pan(0.3)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@4 A B@2 C D E F G H I J K L M@2 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 AM AN AO AP AQ AR AS
  AT AU AV AW AX AY AZ BA BB BC BD BE ~@2 BF@2 ~
>`.pickRestart({
  A: "d2@5 ~@7 d2@4 ~@8", B: "d2 ~@2 d2 ~@2", C: "bb1 b1 c2 db2", D: "d2@5 ~@7 d2@5 ~@7", E: "g2@5 ~@7 g2@5 ~@7",
  F: "bb1@6 a1@4 ~@2 a1@4 ~@2 a1@5 ~", G: "d2@4 ~@8 d2@5 ~@7", H: "e2@5 ~@7 bb2@6 ~@6", I: "d2@5 ~@7 d2@6 ~@6",
  J: "d2@3 ~@3 d2@4 ~@2 d2@3 ~@3 d2@3 ~@3", K: "d2@4 ~@2 f2@4 ~@2 b2@4 ~@2 d2@5 ~",
  L: "bb1@4 ~@2 bb1@5 ~ a2@4 ~@2 a2@4 ~@2", M: "d2@4 ~@2 d2@5 ~ d2@4 ~@2 d2@4 ~@2", N: "d2@2 ~ d2@2 ~ d2@2 ~ d2@2 ~",
  O: "d2@4 ~@2 d2@4 ~@2 d2@4 ~@2 d2@3 ~ d2 ~", P: "d2@3 ~@3 d2@4 ~@2 d2@4 ~@2 d2@4 ~@2",
  Q: "g2@4 ~@2 g2@4 ~@2 g2@3 ~@3 g2@4 ~@2", R: "bb2@5 ~ a2@4 ~@2 a2@4 ~@2 a2@4 ~@2",
  S: "d2@4 ~@2 d2@4 ~@2 a2@4 ~@2 a2@5 ~", T: "e2@4 ~@2 e2@5 ~ a2@4 ~@2 a2@5 ~", U: "d2@4 ~@2 d2@5 ~ a2@5 ~ a2@4 ~@2",
  V: "e2@3 ~@3 e2@5 ~ a2@4 ~@2 a2@6", W: "d2@4 ~@2 d2@5 ~ eb2@4 d2@8", X: "bb2@5 ~ bb2@6 a2@5 ~ a2@6",
  Y: "f2@4 ~@2 f2@5 ~ f2@6 c4@3 a3@3", Z: "f2@4 ~@2 f2@5 ~ f2@4 ~@2 f2@2 g2@2 a2@2", AA: "d2@4 ~@2 d2@6 a2@5 ~ a2@6",
  AB: "b1@6 bb1@5 ~ a1@6 a2@3 ~ a2@2", AC: "d2@5 ~ d2@5 ~ a2@5 ~ a2@6", AD: "d2@4 ~@2 d2@5 ~ a2@5 ~ a2@5 ~",
  AE: "c2@5 ~ c2@5 ~ c2@5 ~ f2@4 ~@2", AF: "c2@4 ~@2 c2@5 ~ f2@5 ~ f2@6", AG: "bb1@5 ~ bb1@5 ~ b1@4 ~@2 b1@6",
  AH: "e2@5 ~ e2@6 a2@5 ~ a2@6", AI: "d2@3 f2@3 a2@3 e3@3 d3@3 a2@2 ~ f2@3 d2@2 ~",
  AJ: "bb2@3 ab2@2 ~ f2@3 d2@3 bb1@5 ~ bb1@4 ~@2", AK: "e2@3 ~@3 e2@4 ~@2 e2@3 ~@3 e2@5 ~",
  AL: "eb2@4 ~@2 eb2@4 ~@2 eb2@4 ~@2 eb2@5 ~", AM: "e2@4 ~@2 e2@5 ~ eb2@5 ~ eb2@5 ~",
  AN: "d2@5 ~ d2@5 ~ db2@5 ~ d2@5 ~", AO: "d2@5 ~ a2@4 ~@2 d2@6 a2@4 ~@2", AP: "d2@5 ~ a2@4 ~@2 d2@5 ~@7",
  AQ: "~@4 c3@2 f2@3 ~ db3@2 ~@4 c3 ~ f2@3 ~ d3@2", AR: "~@4 d3@2 f2@3 ~ e3 ~ eb3@2 ~@2 f2 ~ c3@3 ~ f2 ~",
  AS: "a1@2 ~@4 a1@3 ~@3 a1@3 ~@3 a1@3 ~@3", AT: "~@16 a1@7 ~", AU: "d2@3 ~@3 d2@4 ~@2 f2@4 ~@2 f2@5 ~",
  AV: "c3@4 ~@2 d3@4 ~@2 e3@5 ~ f3@5 ~", AW: "g3@4 ~@2 d3@5 ~ f3@5 ~ f2@4 ~@2",
  AX: "c3@3 ~ g2@2 b2@3 ~ bb2@2 g2@4 f2@2 eb2@3 ~ c2@2", AY: "bb1@2 ~ bb1@2 ~ b1@2 ~ b1@3",
  AZ: "e2@4 ~@2 e2@5 ~ a2@4 ~@2 a2@6", BA: "d2@4 ~@2 d2@5 ~ a2@4 ~@2 a2@4 ~@2", BB: "e2@2 ~ e2@2 ~ a2@2 ~ a2@2 ~",
  BC: "d2@4 ~@2 d2@5 ~ bb2@4 ~@2 bb2@4 ~@2", BD: "~ bb2@2 ~", BE: "~ a2@2 ~",
  BF: "[bb2@5 ~ a2@3 ~ gb2@2 f2@4 ~@2 eb2@4 d2@26]/2",
})).s("gm_acoustic_bass").gain(0.33)

// bass · acoustic bass · "ACOU BASS" · soft notes
const bass_soft = note(`<
  [d3@2 ~ a3@3 ab3@3 bb3@2 a3]
  [d3@3 a3@3 ab3@3 bb3@2 a3]
  [d3@6 a3@6 ab3@5 ~ bb3@4 a3@2]
  [d3 ~@7]
  ~@64
>`).s("gm_acoustic_bass").gain(0.16)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@4 A B C D E F G H I J K L M N O P Q R S T L U V W X Y Z AA AB AC AD AE AF AG AH AI H AJ AK K AL AM AN AO AP AQ AR AS
  AT AU AV AW AX M AY AZ BA BB@2 ~@2 BC@3
>`.pickRestart({
  A: "[d3,f3,a3]@2 ~@4 [d3,f3,a3] ~@5 [d3,f3,bb3]@2 ~@4 [d3,f3,bb3] ~@5", // Dm Bb
  B: "[d3,f3,b3]@2 ~@4 [d3,f3,b3]@2 ~@4 [f3,a3,c4] ~@5 [f3,a3,c4] ~@5", // Bdim F
  C: "[f3,a3,db4]@2 ~@4 [f3,a3,db4] ~@5 [f3,a3,c4]@2 ~@4 [f3,a3,c4]@2 ~@4", // Faug F
  D: "[g3,bb3,db4]@4 ~@2 [ab3,b3,d4]@4 ~@2 [a3,eb4]@5 ~ [bb3,db4,e4]@4 ~@2, ~@4 c4 ~@3", // Gdim Abdim Adim Bbdim
  E: "[d3,f3,b3]@3 ~@3 [d3,f3,b3]@2 ~@4 [f3,a3,c4]@2 ~@4 [f3,a3,c4]@2 ~@4", // Bdim F
  F: "[f3,b3,eb4]@2 ~@4 [f3,b3,eb4]@2 ~@4 [f3,b3,eb4]@2 ~@4 [f3,b3,eb4] ~@5", // Fm7b5
  G: "[ab3,d4,g4]@2 ~@4 [g3,a3,d4,e4]@2 ~@4 [g3,a3,d4,e4]@3 ~@3 [g3,bb3,db4,e4]@4 ~@2", // G Gsus2 Gdim
  H: "[f3,a3,d4] ~@2 [f3,a3,d4] ~@2 [f3,a3,d4] ~@2 [f3,a3,d4] ~@2", // Dm
  I: "[e3,g3,bb3,d4]@2 ~@4 [e3,g3,bb3,d4]@2 ~@4 [g3,bb3,db4]@2 ~@4 [g3,bb3,db4]@3 ~@3", // Em7b5 Gdim
  J: "[f3,a3,d4]@2 ~@4 [f3,a3,d4]@3 ~@3 [f3,b3,d4]@2 ~@4 [f3,b3,d4]@2 ~@4", // Dm Bdim
  K: "[g3,bb3,db4] ~@2 [g3,bb3,db4] ~@2 [g3,bb3,db4] ~@2 [g3,bb3,db4] ~@2", // Gdim
  L: "[f3,a3,d4]@2 ~@4 [f3,a3,d4]@2 ~@4 [f3,a3,d4]@2 ~@4 [f3,a3,d4] ~@5", // Dm
  M: "[ab3,c4,d4] ~@2 [ab3,c4,d4] ~@2 [g3,bb3,db4] ~@2 [g3,bb3,db4] ~@2", // Dm7b5 Gdim
  N: "[f3,a3,d4] ~@2 [f3,a3,d4] ~@2 [f3,bb3,d4] ~@2 [f3,bb3,d4] ~@2", // Dm Bb
  O: "[f3,b3,d4]@2 ~@4 [f3,b3,d4]@2 ~@4 [f3,a3,c4]@2 ~@4 [f3,a3,c4] ~@5", // Bdim F
  P: "[f3,a3,db4] ~@2 [f3,a3,db4] ~@2 [f3,a3,c4] ~@2 [f3,b3,d4] ~@2", // Faug F Bdim
  Q: "[g3,a3,d4] ~@2 [g3,a3,d4] ~@2 [g3,bb3,db4] ~@2 [g3,bb3,db4] ~@2", // Gsus2 Gdim
  R: "[f3,b3,d4] ~@2 [f3,b3,d4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2", // Bdim F
  S: "[f3,b3,d4]@2 ~@4 [f3,b3,d4]@2 ~@4 [f3,b3,d4]@2 ~@4 [f3,b3,d4] ~@5", // Bdim
  T: "[ab3,c4,d4] ~@2 [g3,bb3,db4] ~@2 [g3,bb3,db4] ~@2 [g3,bb3,db4] ~@2", // Dm7b5 Gdim
  U: "[e3,g3,bb3,d4] ~@2 [e3,g3,bb3,d4] ~@2 [e3,g3,bb3,db4] ~@2 [e3,g3,bb3,db4] ~@2", // Em7b5 Edim
  V: "[f3,a3,d4]@3 ~@3 [f3,a3,d4]@2 ~@4 [f3,a3,d4]@2 ~@4 [f3,a3,d4]@2 ~@4", // Dm
  W: "[g3,bb3,db4] ~@5 [g3,bb3,db4]@2 ~@4 [g3,bb3,db4]@2 ~@4 [g3,bb3,db4] ~@5", // Gdim
  X: "[f3,a3,d4]@2 ~@4 [f3,a3,d4] ~@5 [g3,bb3,db4]@2 ~@4 [gb3,a3,c4]@2 ~@4", // Dm Gdim Gbdim
  Y: "[f3,ab3,bb3,db4]@2 ~@4 [ab3,bb3,db4]@2 ~@4 [gb3,a3,c4]@2 ~@4 [f3,a3,c4] ~@5", // Bbm7 Gbdim F
  Z: "[f3,a3,c4]@2 ~@4 [f3,a3,c4] ~@5 [f3,a3,c4] ~@5 [f3,a3,c4] ~@5", // F
  AA: "[f3,a3,db4] ~@5 [f3,a3,db4] ~@5 [f3,a3,db4] ~@5 [f3,a3,db4] ~@5", // Faug
  AB: "[f3,a3,d4] ~@5 [f3,a3,d4] ~@5 [f3,a3,db4]@2 ~@4 [f3,a3,c4] ~@5", // Dm Faug F
  AC: "[ab3,b3,d4]@2 ~@4 [ab3,bb3,d4] ~@5 [a3,c4,eb4] ~@5 [a3,db4,e4] ~@5", // Abdim Bb7 Adim A
  AD: "[f3,a3,d4] ~@2 [f3,a3,d4] ~@2 [f3,a3,db4] ~@2 [a3,db4] ~@2", // Dm Faug A
  AE: "[f3,a3,c4]@3 ~@3 [f3,a3,c4]@3 ~@3 [f3,a3,b3]@3 ~@3 [f3,a3,b3] ~@5", // F Bm7b5
  AF: "[bb3,c4,eb4]@2 ~@4 [bb3,c4,eb4] ~@5 [a3,c4,eb4]@2 ~@4 [a3,c4,eb4]@2 ~@4", // Cm7 Adim
  AG: "[c4,eb4] ~@2 [c4,eb4] ~@2 [bb3,c4,eb4] ~@2 [bb3,c4,eb4] ~@2", // Cm Cm7
  AH: "[g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [ab3,b3,d4] ~@2 [ab3,b3,d4] ~@2", // Gm Abdim
  AI: "[ab3,d4,f4] ~@2 [ab3,d4,f4] ~@2 [bb3,db4,e4] ~@2 [bb3,db4,e4] ~@2", // Ddim Bbdim
  AJ: "[f3,ab3,bb3,d4] ~@2 [f3,ab3,bb3,d4] ~@2 [ab3,bb3,d4] ~@2 [ab3,bb3,d4] ~@2", // Bb7
  AK: "[ab3,b3,d4] ~@2 [ab3,b3,d4] ~@2 [ab3,b3,d4] ~@2 [ab3,b3,d4] ~@2", // Abdim
  AL: "[ab3,b3,d4] ~@2 [ab3,b3,d4] ~@2 [g3,bb3,db4] ~@2 [g3,bb3,db4] ~@2", // Abdim Gdim
  AM: "[gb3,a3,c4] ~@2 [gb3,a3,c4] ~@2 [f3,ab3,b3] ~@2 [gb3,a3,c4] ~@2", // Gbdim Fdim Gbdim
  AN: "[f3,a3,c4]@2 ~@4 [g3,bb3,db4]@3 ~@3 [f3,a3,c4]@3 ~@3 [g3,bb3,db4]@2 ~@4", // F Gdim F Gdim
  AO: "[a3,c4,d4] ~ [g3,bb3,db4] ~ [g3,bb3,db4] ~ [g3,bb3,db4] ~", // D7 Gdim
  AP: "[f3,a3,c4] ~@5 [f3,a3,c4] ~@5 [f3,a3,db4] ~@5 [f3,a3,db4] ~@5", // F Faug
  AQ: "[f3,a3,d4] ~@5 [f3,a3,d4] ~@5 [f3,a3,d4] ~@5 [f3,a3,d4] ~@5", // Dm
  AR: "[a3,c4,e4] ~@5 [g3,c4,e4] ~@5 [gb3,c4,e4]@2 ~@4 [f3,a3,c4] ~@5", AS: "~@16 [db4,e4]@5 ~@3",
  AT: "[f3,a3,d4] ~@5 [f3,a3,d4]@2 ~@4 [f3,a3,db4]@2 ~@4 [f3,a3,db4]@2 ~@4", // Dm Faug
  AU: "[f3,a3,c4]@2 ~@4 [f3,a3,c4]@2 ~@4 [f3,a3,d4] ~@5 [f3,a3,d4]@2 ~@4", // F Dm
  AV: "[g3,bb3] ~@2 [g3,bb3] ~@2 [f3,a3] ~@2 [f3,a3,c4] ~@2", // Gm F
  AW: "[g3,bb3]@2 ~@4 [g3,bb3] ~@5 [g3,bb3] ~@5 [g3,bb3]@2 ~@4", // Gm
  AX: "[f3,g3,bb3]@2 ~@4 [f3,g3,bb3]@2 ~@4 [f3,ab3,b3]@2 ~@4 [f3,ab3,b3] ~@5", // Gm7 Fdim
  AY: "[f3,a3,d4] ~@5 [f3,a3,d4]@2 ~@4 [f3,a3,d4]@2 ~@4 [f3,a3,d4]@2 ~@4", // Dm
  AZ: "[g3,bb3,d4] ~@5 [g3,bb3,d4] ~@5 [g3,bb3,db4]@2 ~@4 [g3,bb3,db4] ~@5", // Gm Gdim
  BA: "[f3,a3,d4]@2 ~@4 [f3,a3,d4] ~@5 [f3,a3,d4] ~@5 [f3,a3,d4] ~@5", BB: "~ [g3,bb3,db4] ~@2",
  BC: "[[bb3,d4,f4]@3 ~@3 [g3,bb3,db4,e4]@2 ~@2 [gb3,bb3,c4,eb4]@2 [f3,a3,b3,d4]@3 ~@3 [g3,bb3,db4,f4]@2 ~@2 [f3,a3,b3,e4]@27 ~@23]/3", // Bb Gdim Cm7b5 Bm7b5 Gm7b5 Fmaj7
})).s("gm_electric_guitar_jazz").gain(0.16).pan(0.8)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@4 A@3 B C@2 ~@4 D@2 E ~@4 F G ~@3 H ~@3 I J K L M N O ~@13 P ~@17>".pickRestart({
  A: "[a3 bb3 b3 c4 db4 c4, [d3,f3]]/3", B: "[g3,bb3,db4] [ab3,b3,d4] [a3,c4,eb4] [bb3,db4,e4]", C: "[[d3,f3]@23 ~]/2",
  D: "[g4@5 ~ g4@6 ab4@6 ~@18 b3@12, db4 ~, e4@11 ~ [e4,f4]@11 ~, ~@9 a4@14 ~]/2", // Fmaj7
  E: "[ab3,c4,d4,g4]@9 ~ [g3,db4,e4]@5 ~@9", F: "b3@12 c4@11 ~", G: "[b3,f4]", H: "d4@23 ~", I: "c3", J: "db3@6 c3 db3",
  K: "d3@11 ~ db3@6 c3@6", L: "[b2,ab3,b3,d4]@6 [bb2,ab3,d4]@6 [c4,eb4]@5 ~ [db4,e4]@5 ~, ~@3 b3@2 ~ [a2,a3]@6",
  M: "d4 db4", N: "c4 b3", O: "bb3@12 a3@11 ~", P: "a3@6 g3@6 gb3@6 [f3,a3,d4]@5 ~, [c4,e4]@3 ~",
})).s("gm_string_ensemble_2").gain(0.27).pan(0.6)

// other · piccolo
const piccolo = note("<~@2 A@2 ~ B ~@62>".pickRestart({
  A: "[~@18 bb5@2 a5@6 ~@9 g6 gb6@2 ~@10]/2", B: "~@12 a6 ab6 ~ a6 ~@8",
})).s("gm_piccolo").gain(0.44).pan(0.1)

// chords · flute
const flute = note("<~@2 A@2 ~ B ~@7 C D ~@11 E D ~@23 F ~@15 G>".pickRestart({
  A: "[~@12 [d5,gb5,bb5]@2 [db5,f5,a5]@12 ~@4 [d5,gb5,bb5] [db5,f5,a5]@2 ~@15]/2", // Daug Dbaug Daug Dbaug
  B: "~@12 [f5,a5,f6] [e5,ab5,e6] ~ [f5,a5,f6] ~@8", C: "~@18 [g5,bb5] a5 gb5 [f5,ab5] f5 ab5", D: "[e5,g5] ~@23",
  E: "~@18 [g5,bb5] gb5 a5 [f5,ab5] ~ [f5,ab5]", F: "[c5,eb5]@4 [b4,d5]@2 [ab4,c5]@4 [g4,db5]@7 ~@7", G: "d4@7 ~",
})).s("gm_flute").gain(0.33).pan(0.2)

// other · clarinet
const clarinet = note("<~@65 A@2 B>".pickRestart({
  A: "[~@4 f4@2 g4@3 ~ bb4@2 a4@4 ~ e4 f4@4 ~@8 a4@6 d5@6 a5@6, ~@22 e4@25 ~]/2", B: "e5@11 ~",
})).s("gm_clarinet").gain(0.38)

// chords · alto sax
const alto_sax = note(`<
  ~@9 A B C D@2 E ~@2 F G H I ~ J K L ~ M N O P ~@4 Q R S T@2 U V W X Y Z@2 AA AB ~@3 AC Q R AD AE@2 AF AG ~ AH AI AJ
  ~@2 AK@2 AL
>`.pickRestart({
  A: "[eb5,g5]@3 [d5,gb5]@3 [db5,f5]@3 [c5,e5]@3 [b4,eb5]@9 ~ [e4,f4,ab4,a4,bb4,b4,eb5,e5] [gb4,bb4,b4,c5,db5,f5,gb5]", // Eb D Db C B Emaj7 Gbmaj7
  B: "g4!2 [f4,gb4,b4,db5,gb5] [eb4,e4,ab4,a4,bb4,b4,c5,e5,f5] [bb4,eb5] ~@7 [a3,d4]@6 [bb3,db4]@6, [ab4,c5,d5,g5] ~@5 g3@6", // Gbsus4 Eb5 D5 Bbm Abmaj7
  C: "a3@5 g3 [ab3,a3] ~ [d4,d5]@2 [a3,a4]@2 [bb3,bb4]@2 [ab3,ab4]@2 [a3,a4]@7 ~, f3@19 ~@5, ~@3 a4 ~@8", // Amaj7 D A Bb Ab A
  D: "[~@18 db4@3 ~ d4@7 ~@13 [e5,g5,bb5] [eb5,gb5,a5] ~ [d5,f5,ab5] d5 [f5,ab5]]/2", E: "[db5,g5] ~@11, e5 ~@23",
  F: "a3 ~@7 d4 ~ a3 ~ bb3 ~@7 d4 ~ bb3 ~", G: "b3 ~@23", H: "~@5 a4 ~@6",
  I: "[a3,d4]@9 ~ [bb3,db4]@13 ~, [e3,g3]@11 ~", // D5 Bbm Em
  J: "[d5,f5]@3 [db5,e5]@3 [c5,eb5]@3 [b4,d5]@3 [a4,db5]@9 ~ [f3,gb3,a3,b3,e4] [g3,bb3,b3,c4,db4,f4,gb4], f4@7 ~", // Dm Dbm Cm Bm A Gm7b5
  K: "[ab3,c4,d4,g4] ~@5", // Abmaj7
  L: "~@5 [g3,ab3,g4,ab4] [a3,a4] ~ [f4,f5] ~ a3@2 bb4@2 [ab3,ab4]@2 [a3,a4] ~@7, ~@10 a4 ~ bb3 ~@11", // Abmaj7 A F Ab A
  M: "~@18 [e5,g5,bb5] [eb5,gb5,a5] ~ [d5,f5,ab5] ab5 [d5,f5]", N: "[db5,e5,g5] ~@17 bb4@2 a4@3 e4",
  O: "d4@3 ~@7 f3 d3 [db3,g3,bb3]@4 [c3,gb3,a3]@7 ~, ~@5 d5@2 f4@2 a3@3 ~@12, ~@6 a4@2 d4@3 ~@13", // Gdim Gbdim
  P: "[ab3,db4,f4,bb4]@3 ~@3 [ab3,db4,f4,bb4]@4 [gb3,c4,e4,gb4,a4]@6 ~@2 [f4,a4,c5]@3 ~@3", Q: "d4 db4", R: "c4 b3",
  S: "bb3@4 a3@3 ~", T: "[[c4,eb4,g4,f5]@21 ~ [c4,d4,g4]@9 ~@9 [b3,d4,f4]@6 ~@2]/2",
  U: "~@2 [ab3,c4,d4,f4]@3 ~@3 [g3,bb3,db4,e4]@3 ~", // Dm7b5 Gdim
  V: "~@4 a4 ~ [d3,d4]@4 [e3,e4]@2 [f3,f4]@4 [a3,a4]@5 ~@3, ~@2 a3 ~@9, ~@5 [f3,f4]@2 ~@17", // D E F A F
  W: "~@4 [ab3,ab4] [f3,f4] [d3,d4]@2 [eb3,eb4]@2 [e3,e4]@2 [f3,f4]@2 [g3,g4]@2 [ab3,ab4]@4 ~@4", // Ab F D Eb E F G Ab
  X: "[ab3,b3,d4,gb4]@21 ~ [g3,bb3,db4,f4]@2", Y: "~@2 [g3,db4,f4]@9 [a3,c4,eb4,g4], ~ bb3@4 ~",
  Z: "[[ab3,b3,d4,gb4]@3 ~@3 [ab3,gb4]@5 ~ [g3,bb3,db4,f4]@4 ~@2 [g3,bb3,db4]@4 [gb3,a3,c4]@7 ~ [gb3,a3,c4,f4]@5 ~ [f3,ab3,b3,e4]@5 ~ [gb3,a3,c4,f4]@6, ~@6 [b3,d4]@3 ~@9 f4@11 ~@19]/2", // Abm7b5 Ab7 Gm7b5 Gdim Gbdim F E F …
  AA: "[f3,a3,c4,d4] [g3,bb3,db4,e4] [a3,c4,d4,f4] [bb3,db4,e4,g4]", // Dm7 Gdim Dm7 Bbdim
  AB: "[c4,d4,f4,a4]@3 [bb3,db4,e4,g4]@3 [g3,bb3,db4,e4]@5 ~", AC: "c5@3 ~ b4@2 bb4@3 ~ a4@7 ~@7",
  AD: "bb3@6 a3@3 c4@2 ~", AE: "[[c4,g4,f5]@21 [f4,eb5] [eb4,d5] [d4,c5] [c4,f4,g4]@12 [b3,d4,f4]@12, bb4@3 ~]/2",
  AF: "[ab3,c4,d4,f4] [g3,bb3,db4,e4]", AG: "~@2 [bb4,db5,e5,g5] ~@2 [b4,d5,f5,a5] [a4,b4,d5,f5]@6",
  AH: "~@12 [a3,d4,f4]@2 ~ [a3,bb3,d4,f4]@2 ~ [a3,bb3,d4,f4]@2 ~@4, ~@12 bb3 ~@11", AI: "~ [bb3,db4,f4,g4]@2 ~",
  AJ: "~ [bb3,db4,e4,g4]@2 ~", // Bbdim
  AK: "[[bb3,d4,f4]@6 [g3,db4,e4]@4 [gb3,c4,eb4]@2 [f3,a3,b3,d4]@6 [g3,bb3,db4,f4]@3 ~ [f3,a3,b3,e4]@25 ~, ~ bb3 ~@6]/2", // Bb Dbdim Cdim Bm7b5 Gm7b5 Fmaj7
  AL: "[f4,a4,db5,e5]@11 ~", // A
})).s("gm_alto_sax").gain(0.33).pan(0.6)

// other · baritone sax · "BARITONSAX"
const baritone_sax = note(`<
  ~@3 A ~@5 B C D E@2 F ~@5 G ~ H I ~@2 J F K L ~@8 M N O P Q R S@2 T U ~@2 V W ~@9 X Y ~@2 Z@2 ~
>`.pickRestart({
  A: "~@19 a1@2 ~@3, ~@9 bb1 ~@2", B: "~@4 f3@3 ~", C: "ab2 ~@3 a2@4", D: "d3@23 ~",
  E: "[~@18 db2@4 d2@6 ~@14 db5 c5 ~ b4!2 ~]/2", F: "bb4 ~@23", G: "a2@8 ~@2 a2@13 ~", H: "g2@5 ~", I: "bb2 ~@5",
  J: "~@18 db5 ~ c5 b4 ~ b4", K: "~@12 eb2@4 d2@7 ~", L: "db3@3 ~@3 db3@4 c3@5 ~@3 f2@3 ~@3", M: "~ b2", N: "e2 a2",
  O: "d2@7 ~", P: "~@12 bb2@3 ~@3 bb2@2 ~@4", Q: "b2@21 ~ bb2@2", R: "~@2 bb2@8 ~ c3",
  S: "[b2@3 ~@3 b2@4 ~@2 bb2@4 ~@2 bb2@4 a2@7 ~ a2@6 ab2@6 a2@6]/2", T: "f2 g2 a2 bb2", U: "a2@3 g2@3 e2@5 ~",
  V: "a2@19 ~@5", W: "~@16 a2@5 ~@3", X: "~ bb2@2 ~", Y: "~ a2@2 ~",
  Z: "[bb2@4 ~@2 a2@3 ~ gb2@2 f2@4 ~@2 eb2@4 d2@24 ~@2]/2",
})).s("gm_baritone_sax").gain(0.33).pan(0.7)

// chords · muted trumpet · "MT TRUMPET"
const muted_trumpet = note("<~@2 A B ~@9 C ~@6 D ~@5 E ~@21 F G H I ~ J ~ K L M ~@5 N O ~@3>".pickRestart({
  A: "[gb4,bb4,d5]@2 [f4,a4,db5]@21 ~", B: "[gb4,bb4] ~ [f4,a4,db5]@2 ~@10 [gb4,bb4,d5] [f4,a4,db5]@2 ~@7, d5 ~@11",
  C: "~@4 [d5,f5,a5]@3 ~@3 [d5,f5,a5]@2 [b4,d5,f5]@10 ~@2", D: "~@2 a5 ~ a5 ~ a5 ~ a5 ~ a5 ~ a5 bb5 a5@7 ~@3",
  E: "~@4 [d5,f5,a5]@4 ~@2 [d5,f5,a5]@2 [b4,d5,f5]@9 ~@3", F: "~@4 c5@3 ~@2 b4 c5@2 a4@7 ~@5, ~@4 b4 ~@19",
  G: "~@3 b4 c5@3 ~ c5 ~ d5@2 a4@7 ~@5", H: "~@4 [b4,c5] ~ c5@4 a4@2 c5@3 ~ a4@2 g4@3 ~ f4@2",
  I: "g4@3 ~@3 e4@4 a4@7 ~@7", J: "e5@2 c5@2 a4@2 e5@2 c5 ~ a4 ~ e5@2 c5@2 a4@8", K: "c5", L: "bb4@11 ~@13",
  M: "[c5,d5]@5 ~ [bb4,db5,e5]@5 ~, f5 ~", N: "~@2 [a4,b4,f5] ~@2 [a4,b4,f5] [b4,d5,g5]@4 ~ [b4,d5,g5]",
  O: "[f4,a4,d5]@2 [g4,b4,e5] [f4,a4,d5]@2 [g4,b4,e5]@7", // Dm Em Dm Em
})).s("gm_muted_trumpet").gain(0.33).pan(0.2)

// chords · trumpet
// … 63 more lines

More by Sinatra