Strudelify
Just a Gigolo cover art

1973 · Just a Gigolo

Just a Gigolo

Louis Prima

KeyA♭ majorTempo124 bpm
0:00/0:00
// Just a Gigolo — Louis Prima
// 124 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 143 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(124/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.

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~ A B C D A@2 E F G H I J K L M N O P Q J A@2 E F G H I J K L M N O R S ~ T U V W X I Y Z AA AB V W AC AD AE AF Z@2
  AG@2 V AH AI ~ Z AB V W X AJ Y Z AK AL AM AN AD AE K AO AK AL AM AN AP AQ G AR Z AL AS AT AU AV AW ~ Z AB V W X I Y Z
  AA AB V W AC AD AE AF Z@2 AG@2 V AH AU AX AY AZ BA BB BC I BD BE AU BF BD BG AU AF BD BH AU AF BD BH BC I BI BJ ~ AW
>`.pickRestart({
  A: "ab2@3 c3@3 eb3@3 c3@2 eb3", B: "bb2@5 ~ bb2@5 ~ eb3@4 ~@2 eb3@6", C: "ab2@5 ~ c3@5 ~ eb3@5 ~ c3@3 ~ eb3@2",
  D: "bb2@5 ~ bb2@6 eb3@5 ~ eb3@4 ~@2", E: "ab2@5 ~ ab2@5 ~ b2@5 ~ b2@4 ~@2", F: "bb2@4 ~@2 bb2@5 ~ eb3@5 ~ bb2@4 ~@2",
  G: "eb2@5 ~ eb2@5 ~ bb2@5 ~ bb2@5 ~", H: "eb3@5 ~ eb3@5 ~ bb2@5 ~ bb2@5 ~", I: "eb3@5 ~ db3@5 ~ c3@5 ~ bb2@5 ~",
  J: "ab2@5 ~ f2@5 ~ eb2@5 ~ c2@5 ~", K: "ab1@5 ~ c2@5 ~ eb2@5 ~ f2@5 ~", L: "gb2@5 ~ db3@5 ~ bb2@5 ~ gb2@5 ~",
  M: "f2@7 ~@3 f2@2 c3@6 f2@5 ~", N: "bb2@5 ~ f2@5 ~ db2@5 ~ c2@5 ~", O: "bb1@4 ~@2 bb1@4 ~@2 e2@5 ~ e2@5 ~",
  P: "eb2@11 ~ f2@11 ~", Q: "bb1@5 ~ bb1@5 ~ eb2@5 ~ eb2@5 ~", R: "eb2@11 ~@5 f2@8", S: "bb1 ~@7",
  T: "ab1@5 ~ c2@6 eb2@5 ~ c2@4 eb2 ~", U: "ab2@5 ~ g2@5 ~ gb2@5 ~ f2@4 ~@2", V: "f1 a1 c2 eb2", W: "f2 g2 ab2 c3",
  X: "bb2 c3 db3 d3", Y: "ab2 f2 eb2 c2", Z: "ab1 c2 eb2 c2", AA: "ab1@3 c2@3 eb2@3 c2@2 eb2", AB: "ab2 g2 gb2 f2",
  AC: "bb1@4 ~@2 bb1@5 ~ f1@4 ~@2 f1@5 ~, ~@18 e1 ~@5", AD: "bb1@4 ~@2 bb1@5 ~ f2@5 ~ f2@5 ~",
  AE: "eb2@4 ~@2 eb2@4 ~@2 bb1@4 ~@2 bb1@5 ~", AF: "eb2@2 ~ db2@2 ~ c2@2 ~ bb1@2 ~", AG: "db2 f2 ab2 f2",
  AH: "f2@6 eb2@6 c2@6 a1@5 ~", AI: "bb1 ~@5", AJ: "eb3@6 db3@6 c3@6 bb2@5 ~", AK: "ab1@5 ~ c2@5 ~ eb2@5 ~ c2@6",
  AL: "ab1@3 ~@3 ab1@4 ~@2 g1@4 ~@2 gb1@5 ~", AM: "f1@4 ~@2 f1@5 ~ c2@4 ~@2 c2@5 ~",
  AN: "f2@4 ~@2 f2@5 ~ c2@4 ~@2 c2@3 ~@3", AO: "ab2@4 ~@2 f2@5 ~ eb2@4 ~@2 c2@4 ~@2",
  AP: "bb1@4 ~@2 bb1@4 ~@2 f2@4 ~@2 f2@5 ~", AQ: "bb2@4 ~@2 bb2@3 ~ bb2@2 f2@5 ~ bb2@5 ~",
  AR: "db3@4 ~@2 db3@3 ~ db3 ~ c3@6 bb2@5 ~", AS: "f1@5 ~ a1@5 ~ c2@4 ~@2 a1@4 ~@2",
  AT: "f1@4 ~@2 a1@4 ~@2 c2@4 ~@2 a1@5 ~", AU: "bb1@5 ~ c2@5 ~ db2@5 ~ d2@5 ~", AV: "eb2 f2 g2 ab2", AW: "ab1 ~@5",
  AX: "eb2@6 f2@5 ~ g2@5 ~ bb2@5 ~", AY: "ab1@5 ~ c2@5 ~ eb2@5 ~ c2@5 ~", AZ: "ab1@4 ~@2 ab1@5 ~ g1@4 ~@2 gb1@4 ~@2",
  BA: "f1@5 ~ a1@5 ~ c2@5 ~ eb2@5 ~", BB: "f2@5 ~ g2@5 ~ ab2@5 ~ c3@5 ~", BC: "bb2@5 ~ c3@5 ~ db3@5 ~ d3@5 ~",
  BD: "ab2@5 ~ ab2@5 ~ g2@5 ~ g2@5 ~", BE: "f2@5 ~ f2@5 ~ c2@5 ~ c2@5 ~", BF: "eb2@5 ~ eb2@5 ~ f2@5 ~ g2@5 ~",
  BG: "f2@5 ~ eb2@5 ~ c2@5 ~ ab1@5 ~", BH: "f2@5 ~ f2@5 ~ c3@5 ~ b2@5 ~", BI: "ab1 ~@2 ab1 bb1 c2 eb2 ~ c2 ab1 ~ bb1",
  BJ: "c2 ~@2 g1@2 ab1@7",
})).s("gm_acoustic_bass").gain(0.48)

// other · brass section · "BRASS 1"
const brass_section = note("<~@13 A B C D E F G H ~@7 I ~@12 J ~@101>".pickRestart({
  A: "c4@2 eb4 f4", B: "gb4 db5 bb4 gb4", C: "f4 a4", D: "bb4 c5", E: "db5@21 ~ db5@2, ~@21 eb5@2 ~", F: "c5 eb5",
  G: "db5", H: "c5@6 eb5@3 f5@2 ~", I: "~@12 eb5@4 f5@2 ab5@5 ~", J: "~@11 c3",
})).s("gm_brass_section").gain(0.5)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  ~ A B A B A C D E F G H A I J K L M N L O A C D E F G H A I J K L M P Q ~ A R K@2 L@2 A@3 R K@2 S@2 T U A@2 T@2 V@2 W
  ~ A R K@2 L X A@4 K@2 Y Z AA@2 A@2 K@2 Y@2 AB@2 A@2 K@2 Y@2 AC ~ A R K@2 L X A@3 R K@2 S@2 T U A@2 T@2 V@2 Y AD A@2
  K@2 Y AE AF K Y AE AF K Y AE AF K Y AE AF K AG AH AI AJ ~@2
>`.pickRestart({
  A: "~@4 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~", // Ab
  B: "~@4 [bb3,db4,f4,ab4] ~@5 [bb3,db4,f4,ab4] ~@5 [bb3,db4,eb4,g4] ~@5 [bb3,db4,eb4,g4] ~", // Bbm7 Eb7
  C: "~@4 [c4,eb4,g4] ~@5 [c4,eb4,g4] ~@5 [c4,eb4,g4] ~@5 [c4,eb4,g4] ~", // Cm
  D: "~@4 [c4,eb4,f4] ~@5 [c4,eb4,f4] ~@5 [b3,d4,f4] ~@5 [b3,d4,f4] ~", // F7 Bdim
  E: "~@4 [bb3,db4,ab4] ~@5 [bb3,db4,ab4] ~@5 [bb3,eb4] ~@5 [bb3,eb4,g4] ~, ~@8 g4 ~@3", // Bbm7 Eb5 Eb
  F: "~@4 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~", // Eb
  G: "~@4 [bb3,db4,f4,ab4] ~@5 [bb3,db4,f4,ab4] ~@5 [bb3,db4,f4,ab4] ~@5 [bb3,db4,f4,ab4] ~", // Bbm7
  H: "~@4 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~@5 [bb3,db4,eb4,g4] ~@5 [bb3,db4,eb4,g4] ~", // Eb Eb7
  I: "~@4 [ab3,c4,eb4,gb4] ~@5 [ab3,c4,eb4,gb4] ~@5 [ab3,c4,eb4,gb4] ~@5 [ab3,c4,eb4,gb4] ~", // Ab7
  J: "~@4 [bb3,db4,eb4,gb4] ~@5 [bb3,db4,eb4,gb4] ~@5 [bb3,db4,eb4,gb4] ~@5 [bb3,db4,eb4,gb4] ~", // Ebm7
  K: "~@4 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~", // F7
  L: "~@4 [bb3,db4,f4] ~@5 [bb3,db4,f4] ~@5 [bb3,db4,f4] ~@5 [bb3,db4,f4] ~", // Bbm
  M: "~@4 [ab3,db4,f4] ~@5 [ab3,db4,f4] ~@5 [ab3,db4,e4] ~@5 [ab3,db4,e4] ~", // Db Dbm
  N: "~@4 [ab3,c4,eb4] ~@5 [ab3,c4,eb4] ~@5 [a3,c4,eb4] ~@5 [a3,c4,eb4] ~", // Ab Adim
  O: "~@4 [ab3,c4,eb4] ~@5 [ab3,c4,eb4] ~@5 [ab3,c4,eb4] ~@5 [ab3,eb4,f4] ~, ~@11 c4", // Ab Fm7
  P: "~@4 [ab3,c4,eb4] ~@5 [ab3,c4,eb4] ~@5 [a3,c4,eb4]@7 ~", Q: "[f3,bb3,db4] ~@11",
  R: "[eb4,gb4,c5]@4 ~@2 [d4,f4,b4]@4 ~@2 [db4,e4,bb4]@5 ~ [c4,eb4,a4]@5 ~", // Cdim Bdim Bbdim Adim
  S: "~@4 [d4,f4,ab4] ~@5 [d4,f4,ab4] ~@5 [d4,f4,ab4] ~@5 [d4,f4,ab4] ~", // Ddim
  T: "~@4 [db4,f4,ab4] ~@5 [db4,f4,ab4] ~@5 [db4,f4,ab4] ~@5 [db4,f4,ab4] ~", // Db
  U: "~@4 [db4,eb4,g4,c5] ~@5 [db4,eb4,g4,c5] ~@5 [eb4,g4,bb4] ~@5 [db4,eb4,g4,bb4] ~, ~@8 db4 ~@3", // Cm Eb Eb7
  V: "~@4 [c4,eb4,f4,a4] ~@5 [c4,eb4,f4,a4] ~@5 [c4,eb4,f4,a4] ~@5 [c4,eb4,f4,a4] ~", W: "[db4,f4,ab4,c5] ~@7",
  X: "~@4 [bb3,db4,g4] ~@5 [bb3,db4,g4] ~@5 [bb3,db4,g4] ~@5 [bb3,db4,g4] ~", // Gdim
  Y: "~@4 [db4,f4,bb4] ~@5 [db4,f4,bb4] ~@5 [db4,f4,bb4] ~@5 [db4,f4,bb4] ~", // Bbm
  Z: "~@4 [db4,g4,bb4] ~@5 [db4,g4,bb4] ~@5 [db4,g4,bb4] ~@5 [db4,g4,bb4] ~", // Gdim
  AA: "~@4 [c4,eb4,f4,ab4] ~@5 [c4,eb4,f4,ab4] ~@5 [c4,eb4,f4,ab4] ~@5 [c4,eb4,f4,ab4] ~", // Fm7
  AB: "~@4 [db4,eb4,g4,bb4] ~@5 [db4,eb4,g4,bb4] ~@5 [db4,eb4,g4,bb4] ~@5 [db4,eb4,g4,bb4] ~", AC: "[c4,eb4,ab4] ~@11",
  AD: "~@4 [db4,g4,bb4] ~@5 [db4,bb4] ~@5 [db4,bb4] ~@5 [db4,bb4] ~, ~@5 g4 ~@2 g4 ~@2 g4", // Gdim Gb
  AE: "~@4 [db4,eb4,g4,bb4] ~@5 [db4,eb4,g4,bb4] ~@5 [db4,eb4,bb4] ~@5 [eb4,g4,bb4]@2, ~@16 g4@2 ~@4 db4 ~", // Eb7 Eb
  AF: "~@6 [c4,eb4,ab4]@5 ~ [b3,d4,g4]@4 ~@2 [bb3,db4,gb4]@6", // Ab G Gb
  AG: "~@4 [db4,f4,bb4] ~@5 [f4,bb4] ~@5 [f4,bb4] ~@5 [f4,bb4] ~, ~@5 db4 ~@2 db4 ~@2 db4", // Bbm Bb5
  AH: "~@4 [g4,bb4] ~@5 [g4,bb4] ~@5 [g4,bb4] ~@5 [g4,bb4] ~, ~@2 db4 ~@2 db4 ~@2 db4 ~@2 db4", // Gm
  AI: "[c4,eb4] ~@5 [ab3,ab4]@2 [bb3,bb4]@2 [c4,c5]@2 [eb4,eb5]@4 [db4,db5]@2 [ab3,ab4]@4 [bb3,bb4]@2, ab4 ~@11", // Cm Ab Bb C Eb Db Ab Bb
  AJ: "[c4,c5]@2 ~@4 [d4,f4,ab4,b4]@3 ~ [eb4,ab4,c5]@14", // C Ddim Ab
})).s("gm_piano").gain(0.52)

// chords · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note(`<
  ~@21 A ~@3 B C@2 D@2 ~ E F G H I ~ J K@3 ~ L M N O@4 P@2 Q R S@2 T@2 U@2 V ~ W@4 X Y Z AA AB AC AD ~ AE AF AG AH ~@7
  AI AJ AK AJ AK AJ AL ~@2 J AM@3 X Y Z AN O@4 P@2 Q R S@2 T@2 U@2 AO AP@2 AQ AR ~ AS AT AU AV AW AX AY@2 AZ AX BA@2 AZ
  BB BC@2 BD BE@2 BF@3
>`.pickRestart({
  A: "~@2 c5 ~@9, ~@4 ab4 ~@19", B: "~@16 [bb3,eb4,g4] ~@7", C: "[~@16 [bb3,db4,f4] ~@5 g4@24 ~@2]/2", D: "c4",
  E: "~ eb4, a3", F: "~@12 eb4@11 ~, [ab3,bb3]@23 ~", G: "f4@5 ~ e4@6, [bb3,db4]@11 ~",
  H: "[ab3,c4,eb4]@12 ~@4 [c4,eb4,gb4]@7 ~", I: "[ab3,db4,f4] ~@7", J: "[eb4,ab4,c5]@23 ~",
  K: "[[eb4,gb4,c5,eb5]@5 ~ [d4,f4,b4,d5]@5 ~ [db4,e4,bb4]@4 ~@2 [c4,eb4,a4,c5]@27 ~ [c4,eb4,a4,c5]@6 ~@6 [a5,c6,eb6]@11 ~ [ab5,bb5,db6]@2, ~@6 db5@3 ~@20 f5@7]/3", // Cdim Bdim Bbdim Adim Bbm7
  L: "[bb3,db4,f4,ab4] ~@9 [bb3,db4,f4,ab4]@8 [bb3,db4,f4]@3 ~@3", // Bbm7 Bbm
  M: "[c4,eb4,ab4] ~@4 eb4@4 [c4,f4] ~@2, ~@10 ab3@11 ~@3, ~@10 c4@7 ~@7", // Ab F5
  N: "[c4,ab4] ~@4 [ab4,ab5]@4 [ab4,f5] ~@2, eb4 ~@9 [c5,eb5]@10 ~@4", // Fm Ab Db Cm
  O: "[[eb4,ab4,c5]@23 ~ [eb4,gb4,c5,eb5]@5 ~ [d4,f4,b4]@4 ~@2 [db4,e4,bb4]@4 ~@2 [c4,eb4,a4,c5,c6]@27 ~ [c4,eb4,a4,c5]@3 ~@23, eb6@29 ~ [d5,d6]@6 [db5,db6]@6 ~@28 eb6@5 ~@21]/4", // Ab Cdim Bdim Bbdim Adim D Db
  P: "[[f3,ab3,c4,d4]@12 [c4,f4]@8 ~@2 [c4,d4,f4,ab4]@14 ~@4 [f4,ab4,c5] ~ [ab4,c5,d5,f5]@2 ~@2 [ab4,c5,d5,f5] ~]/2", // Dm7b5 F5 Dm7b5 Fm Dm7b5
  Q: "~@12 bb4@11 ~, [bb3,f4,ab4]@23 ~", R: "[eb4,f4,g4,c5]", S: "~@9 f5 ~@2, ~@5 [c5,eb5,ab5]@5 ~@2",
  T: "~@9 f5 ~@2, ~@5 [db5,ab5]@5 ~@2", U: "~@9 f5 ~@2, ~@5 [c5,eb5,a5]@5 ~@2", V: "[db5,f5,ab5,c6] ~@5",
  W: "[[eb4,ab4,c5]@23 ~ [eb4,gb4,c5,eb5]@5 ~ [d4,f4,b4]@4 ~@2 [db4,e4,bb4]@4 ~@2 [c4,eb4,a4,c5,c6]@27 ~ [c4,eb4,a4,c5,eb6]@6 ~@12 [f5,a5,c6,eb6]@2 ~@6, eb6@29 ~ [d5,d6]@6 [db5,db6]@6 ~@54]/4", // Ab Cdim Bdim Bbdim Adim F7 D Db
  X: "[ab3,bb3,db4,f4] ~@4 [bb3,db4,ab4]@4 [db4,f4] ~@2, ~@18 bb3 ~@5", // Bbm7 Db
  Y: "~@10 [bb3,db4]@7 ~ [bb3,db4,f4]@3 ~@3, ~@5 ab4@4 ~@3", Z: "[c4,eb4,ab4] ~@4 eb4@4 [c4,f4] ~@2, ~@5 c4@3 ~@4",
  AA: "[c4,eb4,ab4]@2 ~@4 f4 ~@5 eb4 ~@5 [eb5,ab5]@2 ~@4, ~@18 f4 ~@5", AB: "[eb5,ab5] ~@3 [eb5,ab5] ~@3",
  AC: "~@18 [c5,eb5,ab5] ~@5", AD: "[a4,c5,eb5,f5]@11 ~ [a4,g5]@4 [a4,f5]@2 ~@4 [a4,c5,eb5,g5]@2, ~@2 [c5,eb5] ~",
  AE: "~@4 [bb4,db5,ab5] ~@7 ab5@6 [bb4,f5]@2 ~@4, ~@4 db5@3 ~, ~@12 bb4@5 ~@7", // Bbm7 Bb5
  AF: "[bb4,db5,eb5,ab5] ~@4 [bb4,db5,eb5,ab5] ~@6", AG: "~@3 [c5,eb5,ab5]@2 ~@11 [c5,eb5,ab5]@3 ~@5",
  AH: "~@2 [c5,eb5,ab5]@9 ~", AI: "~@6 [eb5,eb6]@6 [f5,f6]@6 [eb5,eb6]@5 ~", AJ: "eb6 ~@2 eb6 ~@2 eb6 ~@4 eb6",
  AK: "~@4 eb6@2 ~@4 eb6 ~ eb6@2 ~@2 eb6 ~ eb6@2 ~@2 eb6 ~", AL: "~@4 eb6@2 ~@4 eb6 ~ eb6@2 ~@2 eb6 ~ eb6@2 ~@4",
  AM: "[[eb4,gb4,c5,eb5]@5 ~ [d4,f4,b4,d5]@5 ~ [db4,e4,bb4]@4 ~@2 [c4,eb4,a4,c5]@27 ~ [c4,eb4,a4,c5]@6 ~@12 [f5,a5,c6,eb6]@2 ~@6, ~@2 db5 ~@9]/3", // Cdim Bdim Bbdim Adim F7
  AN: "[c4,eb4,ab4]@2 ~@4 f4 ~@5 eb4 ~@5 f4 ~@5", AO: "~@2 [c6,eb6,ab6]@3 ~@3 [c6,eb6,ab6]@3 ~",
  AP: "[~@4 [c6,eb6,ab6]@7 ~@7 [ab5,f6]@6 [ab5,eb6]@3 ~@9 [c6,eb6,ab6]@4 ~@8, ~@6 c6@3 ~@7]/2", // Ab Db Ab5 Ab
  AQ: "[c6,eb6,ab6]@3 ~@7 [c6,eb6,ab6]@13 ~", AR: "~@4 [c6,eb6,a6]@7 ~@5 [c6,eb6,a6]@8",
  AS: "[ab3,bb3,db4,f4]@11 ~ [bb3,db4,f4,ab4]@11 ~", AT: "[g3,bb3,db4,f4]@11 ~ [g3,bb3,db4,f4]@11 ~",
  AU: "[c4,eb4,ab4]@5 ~ [b3,d4,g4]@2 ~ [bb3,db4,gb4]@2 ~", // Ab G Gb
  AV: "~@4 [a4,c5,eb5,g5]@3 ~@3 [a4,c5,eb5,g5]@3 ~@3 [a4,c5,eb5,g5]@3 ~@3 [a4,c5,eb5,g5] ~", // Am7b5
  AW: "[a4,c5,eb5,f5]@3 ~@3 [bb4,db5,f5,ab5]@4 ~@8 [bb4,db5,f5,ab5]@5 ~", // F7 Bbm7
  AX: "~@3 [bb4,db5,f5,ab5]@2 ~@4 [bb4,f5]@2 [c5,eb5,ab5], ~@9 db5 ~@2", // Bbm7 Bb5 Ab
  AY: "[~@18 [a4,c5,g5]@6 [a4,c5,f5]@3 ~@3 [a4,c5,eb5,g5]@4 ~@2 [a4,c5,eb5,g5]@4 [eb5,g5]@2 [a4,c5,f5]@4 ~@2, ~@18 eb5@8 ~@14 [a4,c5] ~@7]/2", // Am7 F Am7b5 Eb F Am
  AZ: "~@6 [bb4,db5,f5,ab5]@5 ~@7 [bb4,db5,f5,ab5]@5 ~", // Bbm7
  BA: "[~@16 [a4,c5,g5]@8 [a4,c5,f5]@2 ~@4 [a4,c5,eb5,g5]@3 ~@3 [a4,c5,eb5,g5]@3 ~ [a4,c5,eb5,g5] ~ [a4,c5,eb5,f5]@4 ~@2, ~@8 eb5@5 ~@11]/2", // Am7 F Am7b5 F7
  BB: "~@6 [bb4,db5,f5,ab5]@4 ~@2 [bb4,db5,f5]@2 ~@4 [bb4,db5,f5]@3 ~@3", // Bbm7 Bbm
  BC: "[[c5,eb5,ab5]@3 ~@9 [c5,eb5,ab5]@3 ~@7 [a4,c5,eb5,g5]@25 ~]/2", // Ab Am7b5
  BD: "[bb4,db5,f5,ab5] ~ [bb4,db5,f5,ab5] ~ [bb4,db5,f5,ab5] ~@3", // Bbm7
  BE: "[[bb4,db5,f5,ab5]@2 ~@4 [bb4,db5,f5,ab5]@3 ~@3 [bb4,db5,f5]@10 db5@2 gb5 ~@5 ab4 ~ bb4 ~ c5@2 eb5@3 ~ db5@2 ab4@3 ~ bb4@2, ~@11 [c5,eb5,ab5]@2 ~@11]/2", // Bbm7 Bbm Ab
  BF: "[c5@2 ~@10 c6@37 ~@23, ~@3 b4@2 c5@7 ~@24, ~@2 b5 ~@15]/3",
})).s("gm_synth_brass_1").gain(0.53)

// chords · synth brass 1 · "SYNBRASS 1" · soft notes
const synth_brass_1_soft = note(`<
  ~@21 A@3 B C@3 D E@2 F G ~@16 H ~ I@2 ~@13 J ~@31 J ~@6 H ~ I@2 ~@19 K ~@14
>`.pickRestart({
  A: "[~@2 eb5 ~@6 ab4@3 g4@12 f4@6 [g4,b4,d5]@6, ~@18 c5@43 ~@11, ~@18 eb5@41 ~@13]/3", // G
  B: "ab4@6 g4@5 ~, [bb4,eb5]@23 ~", C: "[~@22 [bb3,db4,f4,ab4]@12 ~@6 ab4 ~@5 [bb3,db4,eb4]@24 ~@2]/3", D: "[ab3,eb4]",
  E: "[ab4 [bb3,db4], gb4@23 ~]/2", F: "f4 f3, eb4@5 ~@7", G: "db4@7 ~@5", H: "~@3 [ab3,d4]@2 ~", I: "db4@23 ~",
  J: "~@10 f4 ~@13", K: "~@9 eb5@2 ~",
})).s("gm_synth_brass_1").gain(0.3)

// other · alto sax
const alto_sax = note("<~@76 A B C D@2 E F G H ~@55 I@2 ~>".pickRestart({
  A: "~@18 eb4@2 f4@2 ab4 ~", B: "c5 b4 c5 bb4 ab4 f4 ab4@3 f4 ~@2", C: "ab4 ~@2 c5 db5 d5",
  D: "[eb5@12 db5@4 c5@2 bb4@4 ~@2 gb4@4 f4@2 eb4@4 c4@2 db4@4 c4@5 ~@3, ~@11 a4@2 ~@11]/2",
  E: "~@3 c5@6 ab4 ~@2 bb4@5 c5@5 ~@2, ~@3 ab4 ~@20", F: "~@4 [f4,ab4,bb4] ~@5 ab4 ~ bb4@6 c5@5 ~, ~@4 c5@5 ~@15",
  G: "~@3 b4@4 ~ b4@3 ~ b4@4 b4@4 b4@3 ~, ~@3 bb4 ~@4 bb4 ~@3 bb4 ~@3 bb4 ~@3 bb4 ~@3",
  H: "b4@3 ~ b4@4 ~ bb4 ~@3 bb4@2 ab4@2 f4@5 eb4@2, ~@4 bb4 ~@3 b4@4 ~@12", I: "[~@3 d4@2 eb4@19]/2",
})).s("gm_alto_sax").gain(0.7)

// other · tenor sax
const tenor_sax = note(`<
  ~@52 A B C@3 D@2 E ~@8 F G H@2 I J K L M ~@8 N O N O N P ~@17 A B C@3 D@2 Q@4 R@2 ~@18 S T@2 ~
>`.pickRestart({
  A: "~@10 ab4@7 ~ f4@2 ~@4", B: "ab2 ~@9 ab4@8 f4@2 ~@4", C: "ab2@2 ~@8 ab4@8 f4@3 ~@3", D: "c3 ~@4 g4@4 f4 ~@2",
  E: "ab4 ~@7", F: "~@6 ab4 ~", G: "c5@4 ~@14 ab4@3 ~@3",
  H: "[c5@4 ~@20 c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~, ~@11 g4 ~@12, ~@23 ab4@2 ~@23]/2", I: "g4@2 f4@2 g4@19 ~",
  J: "~@3 b4@5 bb4@2 ab4 f4 ~ b4@3 b4@2 b4@2 ~ bb4 ab4@2, ~@3 bb4 ~@20",
  K: "~@4 b4@2 ~ b4@2 bb4 ~ ab4 f4@2 ~@2 ab4@2 f4@4 ~@2, ~@7 b4 ~@4, ~@15 bb4@2 ~@7",
  L: "~@4 b4@4 bb4@2 ~ f4 ~ b4@2 ~@2 f4@4 ~@3, ~@10 ab4@2 ~@3 bb4@2 ~@7, ~@8 ab4 ~@3",
  M: "~@4 b4@4 ~ ab4@2 ~ b4@2 ~ ab4@2 f4@5 ~@2, ~@8 bb4@2 ~ f4@2 ~ bb4@2 ~@8", N: "c5@2 ~@4 c5@2 ~@4 c5@3 ~@7 c5@2",
  O: "~@4 c5@3 ~@3 c5 ~ c5@2 ~@2 c5 ~ c5@3 ~ c5 ~", P: "~@4 c5@3 ~@3 c5 ~ c5@2 ~@2 c5 ~ c5@2 ~@4",
  Q: "~@2 ab4@3 ~@3 ab4@3 ~", R: "~@2 a4@3 ~@3 a4@3 ~", S: "~@6 ab4@2 bb4@2 c5 ~ eb5@3 ~ db5@2 ab4@4 bb4@2",
  T: "[c5 ~@2 b4@2 c5@19]/2",
})).s("gm_tenor_sax").gain(0.68)

// other · oboe · "BARITONSAX"
const oboe = note("<~@53 A@2 B@2 C@2 D ~@17 E F G H I J K L M N O P M Q ~@18 A@2 B@2 C@2 ~@28>".pickRestart({
  A: "~@10 c3@8 eb3@3 ~@3", B: "~@10 f3@8 ab3@3 ~@3", C: "~@10 f3@8 a3@3 ~@3", D: "ab3 ~@7", E: "ab2 ~@4 ab4@4 f4 ~@2",
  F: "ab2 ~@4 g4@4 f4@2 ~", G: "c3@3 ~@7 g4@8 f4@3 ~@3", H: "c3@2 ~@8 g4@8 f4@3 ~@3", I: "bb2 ~@4 ab4@4 f4 ~@2",
  J: "bb2 ~@4 ab4@4 f4@2 ~", K: "~@4 ab4@6 ~@4 ab4@7 ~@3", L: "~@2 ab4@3 ~@3 ab4@3 ~", M: "ab4 ~@2 ab4 ~@2 ab4 ~@4 ab4",
  N: "~@4 ab4@2 ~@4 ab4 ~ ab4@2 ~@2 ab4 ~ ab4@2 ~@2 ab4 ~", O: "a4 ~@2 a4 ~@2 a4 ~@4 a4",
  P: "~@4 a4@2 ~@4 a4 ~ a4@2 ~@2 a4 ~ a4@2 ~@2 a4 ~", Q: "~@4 ab4@2 ~@4 ab4 ~ ab4@2 ~@2 ab4 ~ ab4@2 ~@4",
})).s("gm_oboe").gain(0.6)

// drums · kick
const kick = s("bd").struct("<~ A@33 B C ~ A@22 C ~ A@30 C ~ A@46 C ~@3>".pickRestart({
  A: "x!2", B: "x ~ x", C: "x",
})).gain(0.72)

// drums · snare
const snare = s("sd").struct(`<
  A B@7 C B@7 D B@7 C B@7 D B E ~@2 B@7 F B@7 D B@5 D ~@2 B@7 F B@7 D B@7 D B@5 D ~@2 B@7 F B@7 D B@7 D B@11 C B@3 C B@3
  C B D G ~@3
>`.pickRestart({
  A: "~@8 x!2 ~@2", B: "~ x ~ x", C: "~@3 x ~@4 x!2 ~@2", D: "~@3 x ~@4 x!2 ~ x", E: "~@3 x ~ x!2 ~@5",
  F: "~@2 x!2 ~@4 x!2 ~ x", G: "~@3 x!4 ~@5",
})).gain(0.64)

// drums · hihat
const hihat = s("hh").struct("<~ A@33 B ~@2 A@22 ~@2 A@30 ~@2 A@46 C ~@3>".pickRestart({
  A: "x ~ x!2 ~ x!2 ~ x!2 ~ x", B: "x ~ x!2 ~ x!2 ~ x ~@3", C: "x!4",
})).gain(0.48)

// drums · low tom
const low_tom = s("lt").struct("<~@139 [~@11 x] ~@3>").gain(0.8)

// drums · open hat
const open_hat = s("oh").struct("<~@35 x ~@23 x ~@31 x ~@51>").gain(0.48)

// … 23 more lines

More by Louis Prima