Strudelify
For Every Man There's a Woman cover art

I've Got A Crush On You

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, A@4 for four bars: edit a riff to change every repeat.

// chords · piano · "A.PIANO 2"
const piano = note("<A@3 B ~@44 C D ~ E ~@15 F>".pickRestart({
  A: "d2@3 a2@3 ab2@3 bb2@2 a2", B: "d2 ~@7", C: "~@4 [c4,d4,f4,a4,c5]@7 ~@5 [db4,d4,f4,a4,db5]@8",
  D: "~@4 [d4,f4,a4,d5]@11 ~@9", E: "~@8 [a4,a5,bb5]@3 ~",
  F: "~@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@3 B A C D E F E G H I J@3 K G L M N O N O P Q R S T U T N V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO
  X O N O AP AQ AR ~@2 AS@2 ~
>`.pickRestart({
  A: "d2 ~@2 d2 ~@2", B: "bb1 b1 c2 db2", C: "g2@5 ~@7 g2@5 ~@7", D: "bb1@6 a1@4 ~@2 a1@4 ~@2 a1@5 ~",
  E: "d2@5 ~@7 d2@5 ~@7", F: "e2@5 ~@7 bb2@6 ~@6", G: "d2@3 ~@3 d2@4 ~@2 d2@3 ~@3 d2@3 ~@3",
  H: "d2@4 ~@2 f2@4 ~@2 b2@4 ~@2 d2@5 ~", I: "bb1@4 ~@2 bb1@5 ~ a2@4 ~@2 a2@4 ~@2",
  J: "d2@4 ~@2 d2@5 ~ d2@4 ~@2 d2@4 ~@2", K: "d2@4 ~@2 d2@4 ~@2 d2@4 ~@2 d2@3 ~ d2 ~",
  L: "g2@4 ~@2 g2@4 ~@2 g2@3 ~@3 g2@4 ~@2", M: "bb2@5 ~ a2@4 ~@2 a2@4 ~@2 a2@4 ~@2",
  N: "d2@4 ~@2 d2@4 ~@2 a2@4 ~@2 a2@5 ~", O: "e2@4 ~@2 e2@5 ~ a2@4 ~@2 a2@5 ~", P: "d2@4 ~@2 d2@5 ~ eb2@4 d2@8",
  Q: "bb2@5 ~ bb2@6 a2@5 ~ a2@6", R: "f2@4 ~@2 f2@5 ~ f2@6 c4@3 a3@3", S: "f2@4 ~@2 f2@5 ~ f2@4 ~@2 f2@2 g2@2 a2@2",
  T: "d2@4 ~@2 d2@6 a2@5 ~ a2@6", U: "b1@6 bb1@5 ~ a1@6 a2@3 ~ a2@2", V: "c2@5 ~ c2@5 ~ c2@5 ~ f2@4 ~@2",
  W: "c2@4 ~@2 c2@5 ~ f2@5 ~ f2@6", X: "bb1@5 ~ bb1@5 ~ b1@4 ~@2 b1@6", Y: "e2@5 ~ e2@6 a2@5 ~ a2@6",
  Z: "d2@3 f2@3 a2@3 e3@3 d3@3 a2@2 ~ f2@3 d2@2 ~", AA: "bb2@3 ab2@2 ~ f2@3 d2@3 bb1@5 ~ bb1@4 ~@2",
  AB: "e2@3 ~@3 e2@4 ~@2 e2@3 ~@3 e2@5 ~", AC: "eb2@4 ~@2 eb2@4 ~@2 eb2@4 ~@2 eb2@5 ~",
  AD: "e2@4 ~@2 e2@5 ~ eb2@5 ~ eb2@5 ~", AE: "d2@5 ~ d2@5 ~ db2@5 ~ d2@5 ~", AF: "d2@5 ~ a2@4 ~@2 d2@6 a2@4 ~@2",
  AG: "d2@5 ~ a2@4 ~@2 d2@5 ~@7", AH: "~@4 c3@2 f2@3 ~ db3@2 ~@4 c3 ~ f2@3 ~ d3@2",
  AI: "~@4 d3@2 f2@3 ~ e3 ~ eb3@2 ~@2 f2 ~ c3@3 ~ f2 ~", AJ: "a1@2 ~@4 a1@3 ~@3 a1@3 ~@3 a1@3 ~@3", AK: "~@16 a1@7 ~",
  AL: "d2@3 ~@3 d2@4 ~@2 f2@4 ~@2 f2@5 ~", AM: "c3@4 ~@2 d3@4 ~@2 e3@5 ~ f3@5 ~", AN: "g3@4 ~@2 d3@5 ~ f3@5 ~ f2@4 ~@2",
  AO: "c3@3 ~ g2@2 b2@3 ~ bb2@2 g2@4 f2@2 eb2@3 ~ c2@2", AP: "d2@4 ~@2 d2@5 ~ bb2@4 ~@2 bb2@4 ~@2", AQ: "~ bb2@2 ~",
  AR: "~ a2@2 ~", AS: "[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]!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 H L M N O P Q R S H T H U V W X Y Z AA AB AC AD AE AF AG H AH AI K AJ AK AL AM AN AO AP AQ
  AR AS AT AU AV L AW AX AY AZ@2 ~@2 BA@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: "[ab3,c4,d4] ~@2 [ab3,c4,d4] ~@2 [g3,bb3,db4] ~@2 [g3,bb3,db4] ~@2", // Dm7b5 Gdim
  M: "[f3,a3,d4] ~@2 [f3,a3,d4] ~@2 [f3,bb3,d4] ~@2 [f3,bb3,d4] ~@2", // Dm Bb
  N: "[f3,b3,d4]@2 ~@4 [f3,b3,d4]@2 ~@4 [f3,a3,c4]@2 ~@4 [f3,a3,c4] ~@5", // Bdim F
  O: "[f3,a3,db4] ~@2 [f3,a3,db4] ~@2 [f3,a3,c4] ~@2 [f3,b3,d4] ~@2", // Faug F Bdim
  P: "[g3,a3,d4] ~@2 [g3,a3,d4] ~@2 [g3,bb3,db4] ~@2 [g3,bb3,db4] ~@2", // Gsus2 Gdim
  Q: "[f3,b3,d4] ~@2 [f3,b3,d4] ~@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@2", // Bdim F
  R: "[f3,b3,d4]@2 ~@4 [f3,b3,d4]@2 ~@4 [f3,b3,d4]@2 ~@4 [f3,b3,d4] ~@5", // Bdim
  S: "[ab3,c4,d4] ~@2 [g3,bb3,db4] ~@2 [g3,bb3,db4] ~@2 [g3,bb3,db4] ~@2", // Dm7b5 Gdim
  T: "[e3,g3,bb3,d4] ~@2 [e3,g3,bb3,d4] ~@2 [e3,g3,bb3,db4] ~@2 [e3,g3,bb3,db4] ~@2", // Em7b5 Edim
  U: "[g3,bb3,db4] ~@5 [g3,bb3,db4]@2 ~@4 [g3,bb3,db4]@2 ~@4 [g3,bb3,db4] ~@5", // Gdim
  V: "[f3,a3,d4]@2 ~@4 [f3,a3,d4] ~@5 [g3,bb3,db4]@2 ~@4 [gb3,a3,c4]@2 ~@4", // Dm Gdim Gbdim
  W: "[f3,ab3,bb3,db4]@2 ~@4 [ab3,bb3,db4]@2 ~@4 [gb3,a3,c4]@2 ~@4 [f3,a3,c4] ~@5", // Bbm7 Gbdim F
  X: "[f3,a3,c4]@2 ~@4 [f3,a3,c4] ~@5 [f3,a3,c4] ~@5 [f3,a3,c4] ~@5", // F
  Y: "[f3,a3,db4] ~@5 [f3,a3,db4] ~@5 [f3,a3,db4] ~@5 [f3,a3,db4] ~@5", // Faug
  Z: "[f3,a3,d4] ~@5 [f3,a3,d4] ~@5 [f3,a3,db4]@2 ~@4 [f3,a3,c4] ~@5", // Dm Faug F
  AA: "[ab3,b3,d4]@2 ~@4 [ab3,bb3,d4] ~@5 [a3,c4,eb4] ~@5 [a3,db4,e4] ~@5", // Abdim Bb7 Adim A
  AB: "[f3,a3,d4] ~@2 [f3,a3,d4] ~@2 [f3,a3,db4] ~@2 [a3,db4] ~@2", // Dm Faug A
  AC: "[f3,a3,c4]@3 ~@3 [f3,a3,c4]@3 ~@3 [f3,a3,b3]@3 ~@3 [f3,a3,b3] ~@5", // F Bm7b5
  AD: "[bb3,c4,eb4]@2 ~@4 [bb3,c4,eb4] ~@5 [a3,c4,eb4]@2 ~@4 [a3,c4,eb4]@2 ~@4", // Cm7 Adim
  AE: "[c4,eb4] ~@2 [c4,eb4] ~@2 [bb3,c4,eb4] ~@2 [bb3,c4,eb4] ~@2", // Cm Cm7
  AF: "[g3,bb3,d4] ~@2 [g3,bb3,d4] ~@2 [ab3,b3,d4] ~@2 [ab3,b3,d4] ~@2", // Gm Abdim
  AG: "[ab3,d4,f4] ~@2 [ab3,d4,f4] ~@2 [bb3,db4,e4] ~@2 [bb3,db4,e4] ~@2", // Ddim Bbdim
  AH: "[f3,ab3,bb3,d4] ~@2 [f3,ab3,bb3,d4] ~@2 [ab3,bb3,d4] ~@2 [ab3,bb3,d4] ~@2", // Bb7
  AI: "[ab3,b3,d4] ~@2 [ab3,b3,d4] ~@2 [ab3,b3,d4] ~@2 [ab3,b3,d4] ~@2", // Abdim
  AJ: "[ab3,b3,d4] ~@2 [ab3,b3,d4] ~@2 [g3,bb3,db4] ~@2 [g3,bb3,db4] ~@2", // Abdim Gdim
  AK: "[gb3,a3,c4] ~@2 [gb3,a3,c4] ~@2 [f3,ab3,b3] ~@2 [gb3,a3,c4] ~@2", // Gbdim Fdim Gbdim
  AL: "[f3,a3,c4]@2 ~@4 [g3,bb3,db4]@3 ~@3 [f3,a3,c4]@3 ~@3 [g3,bb3,db4]@2 ~@4", // F Gdim F Gdim
  AM: "[a3,c4,d4] ~ [g3,bb3,db4] ~ [g3,bb3,db4] ~ [g3,bb3,db4] ~", // D7 Gdim
  AN: "[f3,a3,c4] ~@5 [f3,a3,c4] ~@5 [f3,a3,db4] ~@5 [f3,a3,db4] ~@5", // F Faug
  AO: "[f3,a3,d4] ~@5 [f3,a3,d4] ~@5 [f3,a3,d4] ~@5 [f3,a3,d4] ~@5", // Dm
  AP: "[a3,c4,e4] ~@5 [g3,c4,e4] ~@5 [gb3,c4,e4]@2 ~@4 [f3,a3,c4] ~@5", AQ: "~@16 [db4,e4]@5 ~@3",
  AR: "[f3,a3,d4] ~@5 [f3,a3,d4]@2 ~@4 [f3,a3,db4]@2 ~@4 [f3,a3,db4]@2 ~@4", // Dm Faug
  AS: "[f3,a3,c4]@2 ~@4 [f3,a3,c4]@2 ~@4 [f3,a3,d4] ~@5 [f3,a3,d4]@2 ~@4", // F Dm
  AT: "[g3,bb3] ~@2 [g3,bb3] ~@2 [f3,a3] ~@2 [f3,a3,c4] ~@2", // Gm F
  AU: "[g3,bb3]@2 ~@4 [g3,bb3] ~@5 [g3,bb3] ~@5 [g3,bb3]@2 ~@4", // Gm
  AV: "[f3,g3,bb3]@2 ~@4 [f3,g3,bb3]@2 ~@4 [f3,ab3,b3]@2 ~@4 [f3,ab3,b3] ~@5", // Gm7 Fdim
  AW: "[f3,a3,d4] ~@5 [f3,a3,d4]@2 ~@4 [f3,a3,d4]@2 ~@4 [f3,a3,d4]@2 ~@4", // Dm
  AX: "[g3,bb3,d4] ~@5 [g3,bb3,d4] ~@5 [g3,bb3,db4]@2 ~@4 [g3,bb3,db4] ~@5", // Gm Gdim
  AY: "[f3,a3,d4]@2 ~@4 [f3,a3,d4] ~@5 [f3,a3,d4] ~@5 [f3,a3,d4] ~@5", AZ: "~ [g3,bb3,db4] ~@2",
  BA: "[[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 c4", 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 C D ~@23 E ~@15 F>".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: "[c5,eb5]@4 [b4,d5]@2 [ab4,c5]@4 [g4,db5]@7 ~@7", F: "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] d5 [f5,ab5]", 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!2 ~", 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 C ~@21 E F G H ~ I ~ J K L ~@5 M N ~@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 c5@3 ~@2 b4 c5@2 a4@7 ~@5, ~@4 b4 ~@19", F: "~@3 b4 c5@3 ~ c5 ~ d5@2 a4@7 ~@5",
  G: "~@4 [b4,c5] ~ c5@4 a4@2 c5@3 ~ a4@2 g4@3 ~ f4@2", H: "g4@3 ~@3 e4@4 a4@7 ~@7",
  I: "e5@2 c5@2 a4@2 e5@2 c5 ~ a4 ~ e5@2 c5@2 a4@8", J: "c5", K: "bb4@11 ~@13", L: "[c5,d5]@5 ~ [bb4,db5,e5]@5 ~, f5 ~",
  M: "~@2 [a4,b4,f5] ~@2 [a4,b4,f5] [b4,d5,g5]@4 ~ [b4,d5,g5]", N: "[f4,a4,d5]@2 [g4,b4,e5] [f4,a4,d5]@2 [g4,b4,e5]@7",
})).s("gm_muted_trumpet").gain(0.33).pan(0.2)

// chords · trumpet
const trumpet = note("<~@16 A ~@10 B C D ~@7 E@2 ~ F ~ G H I J K L@2 ~@19>".pickRestart({
  A: "~@16 [a4,db5,f5,a5]@3 ~@5", B: "~@22 [db5,e5,g5,bb5] ~", C: "[d5,f5,a5] ~@7", D: "~@9 [eb4,eb5,bb5,eb6]@2 ~",
  E: "[~@11 [eb5,bb5,eb6]@2 ~@11]/2", F: "~@11 [ab4,c5,e5]", G: "~@3 a5@7 gb5 d5 b4 ~ d5 e5 ~ gb5 a5@6",
  H: "~@3 a5@6 ~ f5 db5 eb5 f5 ~ g5 a5 ~ b5@6", I: "~@8 a5 ~@2 a5", J: "f5@5 ~@3 g5 ~@2 g5",
  K: "e5@9 ~@3 a5 ~ a5 ab5 ~ ab5 g5!2 ~ gb5!2 ~",
  L: "[f5@9 ~@9 [c5,e5] [db5,f5] [d5,gb5] [eb5,g5] [e5,ab5] [f5,a5]@2 ~@23]/2", // C Db D Eb E F
})).s("gm_trumpet").gain(0.55).pan(0.2)

// chords · trombone
const trombone = note(`<
  ~@3 A ~@4 B C D ~@5 E ~ F G ~@3 H I ~@2 J K L ~@4 M N ~ O@2 ~ P Q R S T U V W ~@10 X@3 Y@2 ~@2 Z@2 ~
>`.pickRestart({
  A: "~@9 [bb2,bb3] [a2,a3] ~", B: "[b2,b3] [c3,c4]", C: "[b3,eb4] [bb3,d4] [a3,db4] [ab3,c4] [g3,b3]@4",
// … 50 more lines

More by Sinatra