Strudelify

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: edit a riff to change every repeat.

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~ A B C D E@2 F G H I J K L M N O P Q R K S E F G H I J K L M N O T U V ~ W X Y Z AA AB AC AD AE AF Y Z AG AH AI AJ
  AD@2 AK@2 Y AL AM ~ AN AF Y Z AA AB AC AD AO AP AQ AR AH AS L AT AU AP AQ AR AV AW AX AY AU AZ BA BB BC BD BE ~ AN AF
  Y Z AA AB AC AD AE AF Y Z AG BF AI AJ AD@2 AK@2 Y AL BG BH BI BJ BK BL BM J BN BO BG BP BN BQ BG BR BN BS BG BR BN BS
  BM J BT BU ~ BV
>`.pickRestart({
  A: "ab2@6 c3@6 eb3@6 c3@3 ~ eb3@2", 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@3 c3@3 eb3@3 c3@2 eb3", F: "ab2@5 ~ ab2@5 ~ b2@5 ~ b2@4 ~@2",
  G: "bb2@4 ~@2 bb2@5 ~ eb3@5 ~ bb2@4 ~@2", H: "eb2@5 ~ eb2@5 ~ bb2@5 ~ bb2@5 ~", I: "eb3@5 ~ eb3@5 ~ bb2@5 ~ bb2@5 ~",
  J: "eb3@5 ~ db3@5 ~ c3@5 ~ bb2@5 ~", K: "ab2@5 ~ f2@5 ~ eb2@5 ~ c2@5 ~", L: "ab1@5 ~ c2@5 ~ eb2@5 ~ f2@5 ~",
  M: "gb2@5 ~ db3@5 ~ bb2@5 ~ gb2@5 ~", N: "f2@7 ~@3 f2@2 c3@6 f2@5 ~", O: "bb2@5 ~ f2@5 ~ db2@5 ~ c2@5 ~",
  P: "bb1@4 ~@2 bb1@4 ~@2 e2@5 ~ e2@5 ~", Q: "eb2@11 ~ f2@11 ~", R: "bb1@5 ~ bb1@5 ~ eb2@5 ~ eb2@5 ~",
  S: "ab2@6 c3@6 eb3@5 ~ c3@4 eb3@2", T: "bb1@4 ~@2 bb1@5 ~ e2@5 ~ e2@5 ~", U: "eb2@11 ~@5 f2@8", V: "bb1 ~@7",
  W: "ab1@5 ~ c2@6 eb2@5 ~ c2@4 eb2 ~", X: "ab2@5 ~ g2@5 ~ gb2@5 ~ f2@4 ~@2", Y: "f1 a1 c2 eb2", Z: "f2 g2 ab2 c3",
  AA: "bb2 c3 db3 d3", AB: "eb3@6 db3@6 c3@6 bb2@5 ~", AC: "ab2 f2 eb2 c2", AD: "ab1 c2 eb2 c2",
  AE: "ab1@3 c2@3 eb2@3 c2@2 eb2", AF: "ab2 g2 gb2 f2", AG: "bb1@4 ~@2 bb1@5 ~ f1@4 ~@2 f1@5 ~, ~@18 e1 ~@5",
  AH: "bb1@4 ~@2 bb1@5 ~ f2@5 ~ f2@5 ~", AI: "eb2@4 ~@2 eb2@4 ~@2 bb1@4 ~@2 bb1@5 ~",
  AJ: "eb2@2 ~ db2@2 ~ c2@2 ~ bb1@2 ~", AK: "db2 f2 ab2 f2", AL: "f2@6 eb2@6 c2@6 a1@5 ~", AM: "bb1 ~@5",
  AN: "ab1@5 ~ c2@6 eb2@6 c2@6", AO: "ab1@5 ~ c2@4 ~@2 eb2@5 ~ c2@6", AP: "ab1@3 ~@3 ab1@4 ~@2 g1@4 ~@2 gb1@5 ~",
  AQ: "f1@4 ~@2 f1@5 ~ c2@4 ~@2 c2@5 ~", AR: "f2@4 ~@2 f2@5 ~ c2@4 ~@2 c2@3 ~@3",
  AS: "eb2@4 ~@2 eb2@5 ~ bb1@4 ~@2 bb1@5 ~", AT: "ab2@4 ~@2 f2@5 ~ eb2@4 ~@2 c2@4 ~@2",
  AU: "ab1@5 ~ c2@5 ~ eb2@5 ~ c2@6", AV: "bb1@4 ~@2 bb1@4 ~@2 f2@4 ~@2 f2@5 ~",
  AW: "bb2@4 ~@2 bb2@3 ~ bb2@2 f2@5 ~ bb2@5 ~", AX: "eb2@4 ~@2 eb2@5 ~ bb2@4 ~@2 bb2@5 ~",
  AY: "db3@4 ~@2 db3@3 ~ db3 ~ c3@6 bb2@5 ~", AZ: "ab1@4 ~@2 ab1@5 ~ g1@4 ~@2 gb1@4 ~@2",
  BA: "f1@5 ~ a1@5 ~ c2@4 ~@2 a1@4 ~@2", BB: "f1@4 ~@2 a1@4 ~@2 c2@4 ~@2 a1@5 ~", BC: "bb1 c2 db2 d2",
  BD: "eb2 f2 g2 ab2", BE: "ab1 ~@5", BF: "bb1@4 ~@2 bb1@5 ~ f2@4 ~@2 f2@5 ~", BG: "bb1@5 ~ c2@5 ~ db2@5 ~ d2@5 ~",
  BH: "eb2@6 f2@5 ~ g2@5 ~ bb2@5 ~", BI: "ab1@5 ~ c2@5 ~ eb2@5 ~ c2@5 ~", BJ: "ab1@5 ~ ab1@5 ~ g1@5 ~ gb1@5 ~",
  BK: "f1@5 ~ a1@5 ~ c2@5 ~ eb2@5 ~", BL: "f2@5 ~ g2@5 ~ ab2@5 ~ c3@5 ~", BM: "bb2@5 ~ c3@5 ~ db3@5 ~ d3@5 ~",
  BN: "ab2@5 ~ ab2@5 ~ g2@5 ~ g2@5 ~", BO: "f2@5 ~ f2@5 ~ c2@5 ~ c2@5 ~", BP: "eb2@5 ~ eb2@5 ~ f2@5 ~ g2@5 ~",
  BQ: "f2@5 ~ eb2@5 ~ c2@5 ~ ab1@5 ~", BR: "eb2@5 ~ db2@5 ~ c2@5 ~ bb1@5 ~", BS: "f2@5 ~ f2@5 ~ c3@5 ~ b2@5 ~",
  BT: "ab1 ~@2 ab1 bb1 c2 eb2 ~ c2 ab1 ~ bb1", BU: "c2 ~@2 g1@2 ab1@7", BV: "ab1@5 ~@19",
})).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 C D E F G H I A J K L M N O M P C D E F G H I A J K L M N Q R ~ A S L@2 M@2 A@3 S L@2 T@2 U V A@2 U@2 W@2 X
  ~ A S L@2 M Y A@4 L@2 Z AA AB@2 A@2 L@2 AC Z AD@2 A@2 L@2 Z@2 AE ~ A S L@2 M Y A@3 S L@2 T@2 U V A@2 U@2 W@2 AF AG A@2
  L@2 Z AH AI AJ Z AH AI AJ Z AH AI AJ Z AH AI AJ AK AL AM AN ~@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,ab4] ~@5 [c4,eb4,ab4] ~@5 [c4,eb4] ~@5 [c4,eb4,ab4] ~, ~@8 ab4 ~@3", // Ab Cm Ab
  D: "~@4 [c4,eb4,g4] ~@5 [c4,eb4,g4] ~@5 [c4,eb4,g4] ~@5 [c4,eb4,g4] ~", // Cm
  E: "~@4 [c4,eb4,f4] ~@5 [c4,eb4,f4] ~@5 [b3,d4,f4] ~@5 [b3,d4,f4] ~", // F7 Bdim
  F: "~@4 [bb3,db4,ab4] ~@5 [bb3,db4,ab4] ~@5 [bb3,eb4] ~@5 [bb3,eb4,g4] ~, ~@8 g4 ~@3", // Bbm7 Eb5 Eb
  G: "~@4 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~", // Eb
  H: "~@4 [bb3,db4,f4,ab4] ~@5 [bb3,db4,f4,ab4] ~@5 [bb3,db4,f4,ab4] ~@5 [bb3,db4,f4,ab4] ~", // Bbm7
  I: "~@4 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~@5 [bb3,db4,eb4,g4] ~@5 [bb3,db4,eb4,g4] ~", // Eb Eb7
  J: "~@4 [ab3,c4,eb4,gb4] ~@5 [ab3,c4,eb4,gb4] ~@5 [ab3,c4,eb4,gb4] ~@5 [ab3,c4,eb4,gb4] ~", // Ab7
  K: "~@4 [bb3,db4,eb4,gb4] ~@5 [bb3,db4,eb4,gb4] ~@5 [bb3,db4,eb4,gb4] ~@5 [bb3,db4,eb4,gb4] ~", // Ebm7
  L: "~@4 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~", // F7
  M: "~@4 [bb3,db4,f4] ~@5 [bb3,db4,f4] ~@5 [bb3,db4,f4] ~@5 [bb3,db4,f4] ~", // Bbm
  N: "~@4 [ab3,db4,f4] ~@5 [ab3,db4,f4] ~@5 [ab3,db4,e4] ~@5 [ab3,db4,e4] ~", // Db Dbm
  O: "~@4 [ab3,c4,eb4] ~@5 [ab3,c4,eb4] ~@5 [a3,c4,eb4] ~@5 [a3,c4,eb4] ~", // Ab Adim
  P: "~@4 [ab3,c4,eb4] ~@5 [ab3,c4,eb4] ~@5 [ab3,c4,eb4] ~@5 [ab3,eb4,f4] ~, ~@11 c4", // Ab Fm7
  Q: "~@4 [ab3,c4,eb4] ~@5 [ab3,c4,eb4] ~@5 [a3,c4,eb4]@7 ~", R: "[f3,bb3,db4] ~@11",
  S: "[eb4,gb4,c5]@4 ~@2 [d4,f4,b4]@4 ~@2 [db4,e4,bb4]@5 ~ [c4,eb4,a4]@5 ~", // Cdim Bdim Bbdim Adim
  T: "~@4 [d4,f4,ab4] ~@5 [d4,f4,ab4] ~@5 [d4,f4,ab4] ~@5 [d4,f4,ab4] ~", // Ddim
  U: "~@4 [db4,f4,ab4] ~@5 [db4,f4,ab4] ~@5 [db4,f4,ab4] ~@5 [db4,f4,ab4] ~", // Db
  V: "~@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
  W: "~@4 [c4,eb4,f4,a4] ~@5 [c4,eb4,f4,a4] ~@5 [c4,eb4,f4,a4] ~@5 [c4,eb4,f4,a4] ~", X: "[db4,f4,ab4,c5] ~@7",
  Y: "~@4 [bb3,db4,g4] ~@5 [bb3,db4,g4] ~@5 [bb3,db4,g4] ~@5 [bb3,db4,g4] ~", // Gdim
  Z: "~@4 [db4,f4,bb4] ~@5 [db4,f4,bb4] ~@5 [db4,f4,bb4] ~@5 [db4,f4,bb4] ~", // Bbm
  AA: "~@4 [db4,g4,bb4] ~@5 [db4,g4,bb4] ~@5 [db4,g4,bb4] ~@5 [db4,g4,bb4] ~", // Gdim
  AB: "~@4 [c4,eb4,f4,ab4] ~@5 [c4,eb4,f4,ab4] ~@5 [c4,eb4,f4,ab4] ~@5 [c4,eb4,f4,ab4] ~", // Fm7
  AC: "~@4 [db4,f4,bb4] ~@5 [db4,f4,bb4] ~@4 [db4,f4,bb4] ~@5 [db4,f4,bb4] ~@2", // Bbm
  AD: "~@4 [db4,eb4,g4,bb4] ~@5 [db4,eb4,g4,bb4] ~@5 [db4,eb4,g4,bb4] ~@5 [db4,eb4,g4,bb4] ~", AE: "[c4,eb4,ab4] ~@11",
  AF: "~@4 [db4,f4,bb4] ~@5 [db4,bb4] ~@5 [db4,f4,bb4] ~@5 [db4,f4,bb4] ~, ~@5 f4 ~@6", // Bbm Gb Bbm
  AG: "~@4 [db4,g4,bb4] ~@5 [db4,bb4] ~@5 [db4,bb4] ~@5 [db4,bb4] ~, ~@5 g4 ~@2 g4 ~@2 g4", // Gdim Gb
  AH: "~@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
  AI: "~@6 [c4,eb4,ab4]@5 ~ [b3,d4,g4]@4 ~@2 [bb3,db4,gb4]@6", // Ab G Gb
  AJ: "~@4 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~@5 [a3,eb4,f4] ~, ~@11 c4", // F7
  AK: "~@4 [db4,f4,bb4] ~@5 [f4,bb4] ~@5 [f4,bb4] ~@5 [f4,bb4] ~, ~@5 db4 ~@2 db4 ~@2 db4", // Bbm Bb5
  AL: "~@4 [g4,bb4] ~@5 [g4,bb4] ~@5 [g4,bb4] ~@5 [g4,bb4] ~, ~@2 db4 ~@2 db4 ~@2 db4 ~@2 db4", // Gm
  AM: "[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
  AN: "[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 T U V W X Y ~ Z@4 AA AB AC AD AE AF AG ~ AH AI AJ AK
  ~@7 AL AM AN AM AN AM AO ~@2 J AP@3 AA AB AC AQ O@4 P@2 Q R S T U V W X AR AS@2 AT AU ~ AV AW AX AY AZ BA BB@2 BC BD
  BE@2 BF BG BH@2 BI BJ@2 BK@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: "~@5 eb5@4 f5 ~@2, ~@10 [c5,ab5]@11 ~@3", U: "~@9 f5 ~@2, ~@5 [db5,ab5]@5 ~@2", V: "~@10 [db5,ab5]@8 f5@3 ~@3",
  W: "~@9 f5 ~@2, ~@5 [c5,eb5,a5]@5 ~@2", X: "~@10 [c5,eb5,a5]@8 f5 ~@5", Y: "[db5,f5,ab5,c6] ~@5",
  Z: "[[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
  AA: "[ab3,bb3,db4,f4] ~@4 [bb3,db4,ab4]@4 [db4,f4] ~@2, ~@18 bb3 ~@5", // Bbm7 Db
  AB: "~@10 [bb3,db4]@7 ~ [bb3,db4,f4]@3 ~@3, ~@5 ab4@4 ~@3", AC: "[c4,eb4,ab4] ~@4 eb4@4 [c4,f4] ~@2, ~@5 c4@3 ~@4",
  AD: "[c4,eb4,ab4]@2 ~@4 f4 ~@5 eb4 ~@5 [eb5,ab5]@2 ~@4, ~@18 f4 ~@5", AE: "[eb5,ab5] ~@3 [eb5,ab5] ~@3",
  AF: "~@18 [c5,eb5,ab5] ~@5", AG: "[a4,c5,eb5,f5]@11 ~ [a4,g5]@4 [a4,f5]@2 ~@4 [a4,c5,eb5,g5]@2, ~@2 [c5,eb5] ~",
  AH: "~@4 [bb4,db5,ab5] ~@7 ab5@6 [bb4,f5]@2 ~@4, ~@4 db5@3 ~, ~@12 bb4@5 ~@7", // Bbm7 Bb5
  AI: "[bb4,db5,eb5,ab5] ~@4 [bb4,db5,eb5,ab5] ~@6", AJ: "~@3 [c5,eb5,ab5]@2 ~@10 [c5,eb5,ab5]@3 ~@6",
  AK: "~@2 [c5,eb5,ab5]@9 ~", AL: "~@6 [eb5,eb6]@6 [f5,f6]@6 [eb5,eb6]@5 ~", AM: "eb6 ~@2 eb6 ~@2 eb6 ~@4 eb6",
  AN: "~@4 eb6@2 ~@4 eb6 ~ eb6@2 ~@2 eb6 ~ eb6@2 ~@2 eb6 ~", AO: "~@4 eb6@2 ~@4 eb6 ~ eb6@2 ~@2 eb6 ~ eb6@2 ~@4",
  AP: "[[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
  AQ: "[c4,eb4,ab4]@2 ~@4 f4 ~@5 eb4 ~@5 f4 ~@5", AR: "~@2 [c6,eb6,ab6]@3 ~@3 [c6,eb6,ab6]@3 ~",
  AS: "[~@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
  AT: "[c6,eb6,ab6]@3 ~@7 [c6,eb6,ab6]@13 ~", AU: "~@4 [c6,eb6,a6]@7 ~@5 [c6,eb6,a6]@8",
  AV: "[ab3,bb3,db4,f4]@11 ~ [bb3,db4,f4,ab4]@11 ~", AW: "[g3,bb3,db4,f4]@11 ~ [g3,bb3,db4,f4]@11 ~",
  AX: "[c4,eb4,ab4]@5 ~ [b3,d4,g4]@2 ~ [bb3,db4,gb4]@2 ~", // Ab G Gb
  AY: "~@4 [a4,c5,eb5,g5]@3 ~@3 [a4,c5,eb5,g5]@3 ~@3 [a4,c5,eb5,g5]@3 ~@3 [a4,c5,eb5,g5] ~", // Am7b5
  AZ: "[a4,c5,eb5,f5]@3 ~@3 [bb4,db5,f5,ab5]@4 ~@8 [bb4,db5,f5,ab5]@5 ~", // F7 Bbm7
  BA: "~@3 [bb4,db5,f5,ab5]@2 ~@4 [bb4,f5]@2 [c5,eb5,ab5], ~@9 db5 ~@2", // Bbm7 Bb5 Ab
  BB: "[~@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
  BC: "~@6 [bb4,db5,f5,ab5]@5 ~@7 [bb4,db5,f5,ab5]@5 ~", // Bbm7
  BD: "~@6 [bb4,db5,f5,ab5]@5 ~@7 [bb4,f5]@4 [c5,eb5,ab5]@2, ~@9 db5 ~@2", // Bbm7 Bb5 Ab
  BE: "[~@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
  BF: "~@3 [bb4,db5,f5,ab5]@2 ~@4 [bb4,db5,f5,ab5]@2 ~", // Bbm7
  BG: "~@6 [bb4,db5,f5,ab5]@4 ~@2 [bb4,db5,f5]@2 ~@4 [bb4,db5,f5]@3 ~@3", // Bbm7 Bbm
  BH: "[[c5,eb5,ab5]@3 ~@9 [c5,eb5,ab5]@3 ~@7 [a4,c5,eb5,g5]@25 ~]/2", // Ab Am7b5
  BI: "[bb4,db5,f5,ab5] ~ [bb4,db5,f5,ab5] ~ [bb4,db5,f5,ab5] ~@3", // Bbm7
  BJ: "[[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
  BK: "[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 J ~@13 K ~@31 K ~@6 H ~ I J ~@19 L ~@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: "db4", K: "~@10 f4 ~@13", L: "~@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 ~ bb4@6 c5@5 ~@2, ~@3 ab4 ~@20", F: "~@3 [f4,ab4] c5@5 ~ ab4 ~ bb4@5 c5@5 ~@2, ~@4 bb4 ~@19",
  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 b4@4 ~@2 ab4@2 ~ f4@5 eb4@2, ~@4 bb4 ~@3 bb4 ~@4 bb4@2 ~@9", 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 D@2 E@2 F ~@8 G H I@2 J K L M N ~@8 O P Q R Q S ~@17 A B C D@2 E@2 T@4 U@2 ~@18 V W@2 ~
>`.pickRestart({
  A: "~@10 ab4@7 ~ f4@2 ~@4", B: "ab2 ~@9 ab4@8 f4@2 ~@4", C: "ab2 ~@4 ab4@4 f4 ~@2", D: "ab2@2 ~@8 ab4@8 f4@3 ~@3",
  E: "c3 ~@4 g4@4 f4 ~@2", F: "ab4 ~@7", G: "~@6 ab4 ~", H: "c5@4 ~@14 ab4@3 ~@3",
  I: "[c5@4 ~@20 c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~, ~@11 g4 ~@12, ~@23 ab4@2 ~@23]/2", J: "g4@2 f4@2 g4@19 ~",
  K: "~@3 b4@5 bb4@2 ab4 f4 ~ b4@3 b4@2 b4@2 bb4 ~ ab4@2, ~@3 bb4 ~@20",
  L: "~@4 b4@2 ~ b4@2 bb4 ab4 ~@2 b4@2 ~ ab4@2 f4@4 ~@2, ~@12 f4@2 ~ bb4@2 ~@7",
  M: "~@4 b4@4 ~ ab4@2 f4 ~ b4@2 [ab4,bb4]@2 f4@4 ~@3, ~@4 bb4 ~@7", // Absus2
  N: "~@3 b4@5 ~ ab4@2 ~ b4@2 ~ ab4@2 f4@5 ~@2, ~@8 bb4@2 ~ f4@2 ~ bb4@2 ~@8", O: "c5@3 ~@3 c5@2 ~@4 c5@2 ~@8 c5@2",
  P: "~@4 c5@3 ~@3 c5 ~ c5@2 ~@2 c5 ~ c5@3 ~ c5 ~", Q: "c5@2 ~@4 c5@2 ~@4 c5@3 ~@7 c5@2",
  R: "~@4 c5@3 ~@3 c5 ~ c5@3 ~ c5 ~ c5@3 ~ c5 ~", S: "~@4 c5@3 ~@3 c5 ~ c5@2 ~@2 c5 ~ c5@2 ~@4",
  T: "~@2 ab4@3 ~@3 ab4@3 ~", U: "~@2 a4@3 ~@3 a4@3 ~", V: "~@6 ab4@2 bb4@2 c5 ~ eb5@3 ~ db5@2 ab4@4 bb4@2",
  W: "[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 D E ~@17 F G H I J K L M N O P Q N R ~@18 A@2 B@2 C D ~@28>".pickRestart({
  A: "~@10 c3@8 eb3@3 ~@3", B: "~@10 f3@8 ab3@3 ~@3", C: "~@10 f3@8 a3@3 ~@3", D: "~@5 f3@4 a3 ~@2", E: "ab3 ~@7",
  F: "ab2 ~@4 ab4@4 f4 ~@2", G: "ab2 ~@4 g4@4 f4@2 ~", H: "c3@3 ~@7 g4@8 f4@3 ~@3", I: "c3@2 ~@8 g4@8 f4@3 ~@3",
  J: "bb2 ~@4 ab4@4 f4 ~@2", K: "bb2 ~@4 ab4@4 f4@2 ~", L: "~@4 ab4@6 ~@4 ab4@7 ~@3", M: "~@2 ab4@3 ~@3 ab4@3 ~",
  N: "ab4 ~@2 ab4 ~@2 ab4 ~@4 ab4", O: "~@4 ab4@2 ~@4 ab4 ~ ab4@2 ~@2 ab4 ~ ab4@2 ~@2 ab4 ~",
  P: "a4 ~@2 a4 ~@2 a4 ~@4 a4", Q: "~@4 a4@2 ~@4 a4 ~ a4@2 ~@2 a4 ~ a4@2 ~@2 a4 ~",
  R: "~@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",
// … 37 more lines

More by Louis Prima