Strudelify

Nice 'N Easy

Frank Sinatra

KeyD♭ majorTempo116 bpm
0:00/0:00
// Nice 'N Easy — Frank Sinatra
// 116 bpm, 4/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 3 "Alto Sax 1" named as a reed, played on alto sax (its vibraphone patch is not one)
// note: Full arrangement: all 85 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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(`<
  ~@3 A B C D E F G H A B C D E F I J K L M N O P Q R S T U V K W X Y Z AA Z AA Z AA AB AC AD AE AF@2 AG AH AI AJ AK AL
  AF AM AN AO AP AQ K L M AR O P Q R S T U V K W X Y Z AA Z AA Z AA AS ~ AT@2
>`.pickRestart({
  A: "db2@11 ~ ab1@12", B: "db2@11 ~ a1@11 ~", C: "db2@11 ~ ab1@11 ~", D: "db2@11 ~ db2@11 ~", E: "gb2 bb1",
  F: "eb2@11 ~ eb2@6 bb2@6", G: "ab2@11 ~ eb2@12", H: "ab2@11 ~ eb2@6 ab2@6", I: "ab2@10 eb2 ~ ab2@6 d2@6",
  J: "db2@11 ~ db2@6 g2@6", K: "gb2 db2", L: "gb1@11 ~ gb2@10 ~ db2", M: "db3@11 ~ ab2@11 ~",
  N: "db2@11 ~ db2@6 gb2@5 gb1", O: "f2@4 f1@8 f1@5 ~ f2@6", P: "bb2@11 ~ bb1@6 d2@6", Q: "eb2@11 ~ gb2@6 eb2@4 ~ bb1",
  R: "eb2@5 ~ a2@4 ab2@13 ~", S: "db2 ~ c2 db2", T: "c2@6 db2@4 d2@7 ~ db2@6", U: "db3 ab2", V: "db2@2 ab2 g2",
  W: "f1@2 f1 a1", X: "bb1!2", Y: "eb2@11 ~ eb2@5 ~ bb2@6", Z: "ab1@9 ~ ab1 ~ ab1@11 ~", AA: "ab1@11 ~ ab1@9 ~ ab1 ~",
  AB: "db2@11 ~ bb1@11 ~", AC: "eb2@5 bb1 bb2@4 ~ bb1 ab2@5 eb2 eb3@4 ~ eb2", AD: "db2 b1 c2 db2", AE: "db2 ab2 f2 db2",
  AF: "db2 d2 db2!2", AG: "gb1@6 ~ a1@5 bb1@6 bb1@6", AH: "eb2 ~ eb2@2 bb1@2 g2@2",
  AI: "ab2@6 a1@6 ab2@5 eb2 eb3@4 ~ eb2", AJ: "eb2!2 ab2!2", AK: "db2 ab2 c2 db2", AL: "db2 db3 ab2 f2",
  AM: "db2 c2 db2!2", AN: "gb2@2 ~ gb2@3 bb1@2 bb0 bb1@3, ~@5 gb1@2 ~@17", AO: "eb1@6 f1@6 gb1@6 bb1@4 ~ eb1",
  AP: "ab2@6 a1@6 ab1@6 ~ c2@5", AQ: "db2@3 d2@3 db2@2 db1 d2@3", AR: "db2@11 ~ db2@6 gb2@4 ~ gb1",
  AS: "db2@6 ~@6 bb1@9 ~ eb2@2", AT: "[~@6 gb2@2 ~@4 e2@3 ~ e2 ~@5 eb2@7 ~ d2@4 db2@2 ~@12]/2",
})).s("gm_acoustic_bass").gain(0.29).pan(0.3)

// chords · piano
const piano = note(`<
  ~@2 A B C D E F@2 G@2 H I@2 J@2 K L@2 M N O@2 P@2 Q R S T U V W X Y@2 Z@2 AA@3 AB AC AD AE AF AG AH@2 AI AJ AK AL AM
  AG AN AO AP AQ AR AS N O@2 AT@2 Q R S T U AU W AV Y@2 AW@2 AA@3 AB AX AY AZ@2
>`.pickRestart({
  A: "~@4 db6@2 db7 ~@9 db5@2 db6 ~@5",
  B: "~@2 ab5@9 ~ [ab2,ab3,c4,e4,ab4] ~@5 [db2,f3,ab3,db4,f4] ~@5, g5 ~@11, ~ [db2,f3,c6]@11 ~@12", // Abaug Db Dbmaj7
  C: "[a2,a3,db4,e4,a4] ~@5 [db2,f3,a3,db4,f4] ~@5 [gb2,gb3,a3,db4,gb4] ~@5 [db2,f3,a3,db4,f4] ~@5", // A Dbaug Gbm Dbaug
  D: "~ f5@3 ~ db3 [db5,db6]@3 ~@3 [db2,e3,ab3,b3,e4] ~@5 [db2,f3,ab3,b3,f4] ~@5", // Db Dbm7 Db7
  E: "[db2,e3,ab3,b3,e4] ~@5 [db2,f3,ab3,b3,f4] ~@5 [ab2,gb3,ab3,b3,gb4] ~@5 [db2,f3,ab3,b3,f4] ~@5", // Dbm7 Db7 Abm7 Db7
  F: "[~@5 gb2 ~ db5 ~ db5@2 ~ [bb1,db3,f3,bb3,db4] ~@5 [gb2,gb3,bb3,db4,gb4] ~@4 [eb5,bb5]@2 ~@5 [eb4,gb4,bb4,db5,bb5] eb5 ~@5 [bb4,eb5,bb5]@3 ~ [eb4,gb4,bb4,db5,eb5,bb5] ~@6, ~@8 gb5@3 ~@25 [eb4,gb4,db5]@3 ~@9]/2", // Bbm Gb Eb5 Ebm7 Eb5 Ebm7
  G: "[~@23 [ab2,gb4,bb4,eb5]@3 ~@11 [gb3,eb4,eb5,eb6]@9 ~ gb3, ~@37 bb5 ~@10]/2", // Ebm
  H: "[ab5,eb6] ~@5 [ab4,c5,eb5,f5,eb6] ab5 ~@4 [ab2,ab3,c4,e4,ab4] ~@5 [db2,f3,ab3,db4,f4] ~@5", // Ab5 Fm7 Abaug Db
  I: "[[a2,a3,db4,e4,a4] ~@5 [db2,f3,a3,db4,f4] ~@5 [gb2,gb3,a3,db4,gb4] ~@5 [db2,f3,a3,db4,f4] ~@4 db2@3 ~@3 [b4,f5,db6] ~@6 [db2,e3,ab3,b3,e4] ~@5 [db2,f3,ab3,b3,f4] ~@5]/2", // A Dbaug Gbm Dbaug Db7 Dbm7 Db7
  J: "[[db2,e3,ab3,b3,e4] ~@5 [db2,f3,ab3,b3,f4] ~@5 [ab2,gb3,ab3,b3,gb4] ~@5 [db2,f3,ab3,b3,f4] ~@4 [bb3,db4,gb4]@13 [bb1,db3,f3,bb3,db4] ~@5 [gb2,gb3,bb3,db4,gb4] ~@5]/2", // Dbm7 Db7 Abm7 Db7 Gb Bbm Gb
  K: "~@5 eb5@2 ~@3 bb4 ~ eb5@4 ~@7 bb4",
  L: "[ab2@2 ~@3 [b4,gb5,eb6] ~@6 [ab2,gb3,ab3,b3,gb4] ~@5 [ab2,gb3,ab3,b3,gb4] ~@4 [f3,b3,ab5,ab6]@3 eb6@2 ~ [f3,b3,ab5,d6] ~@6 [db2,f3,ab3,b3,f4] ~@5 [db2,f3,g3,b3,f4] ~@5, ~@23 d6@2 ~@4 ab6@2 ~@17]/2", // B Abm7 Fdim Db7
  M: "[gb2,gb3,bb3] eb4 ~@10 [f2,d3,f3,a3,d4] ~@5 [gb2,gb3,bb3,eb4] ~@5, ~@9 eb3 ~@2", // Gb Dm Ebm
  N: "[f2,d3,f3,a3,d4] ~@5 [gb2,eb3,gb3,bb3,eb4] ~@5 [gb2,bb3,db4] gb4 ~@10", // Dm Ebm Gb
  O: "[[db3,f4,ab4] ~@12 [f3,eb4,eb5,eb6]@9 ~ ab4@5 ~@2 ab3@6 g4 bb4 ~@2 bb4 g4 ~ [a4,eb5]@3 ~ ab3, eb5@2 ~@11 ab5 ~@22 e5@2 ~@4 gb4@3 ~@3]/2", // Db F7 Adim
  P: "[[ab3,eb4,f4,b4]@22 ~ [bb1,d3,f3,ab3,d4]@3 ~@10 [bb4,d5,f5,bb5] ab4 ~@10]/2", // Fm7b5 Bb7 Bb
  Q: "[eb5,bb5] ~@5 [eb4,gb4,bb4,db5,bb5] eb5 ~@5 [bb4,eb5,bb5]@3 ~ [eb4,gb4,bb4,db5,eb5,bb5] ~@6, ~@4 [eb4,gb4,db5] ~@3", // Eb5 Ebm7 Eb5 Ebm7
  R: "[eb2,gb3,bb3,db4,gb4] ~@5 [a2,g3,b3,db4,g4]@17 ~", // Ebm7 A7
  S: "db2@2 ~@3 [bb4,f5,db6] ~@6 [c2,e3,g3,bb3,e4] ~@5 [db2,f3,ab3,bb3,f4] ~@5", // Bbm C7 Bbm7
  T: "[c2,e3,g3,bb3,e4] ~@5 [db2,f3,ab3,bb3,f4] ~@5 [d2,gb3,a3,b3,gb4] ~@5 [db2,f3,ab3,bb3,f4] ~@5", // C7 Bbm7 Bm7 Bbm7
  U: "[db2,ab3,b3] f4 ~@10 [c2,e3,g3,bb3,e4] ~@5 [db2,f3,ab3,b3,f4] ~@5", // Db7 C7 Db7
  V: "[c2,e3,g3,bb3,e4] ~@5 [db2,f3,ab3,b3,f4] ~@5 [ab2,gb3,ab3,b3,gb4] ~@5 [g2,g3,b3,f4] ~@5, ~@9 f3 ~@2", // C7 Db7 Abm7 G7
  W: "[db2,bb4,db5]@3 ~@2 [db2,bb4,db5] ~@6 [ab2,ab3,c4,e4,ab4] ~@5 [gb2,eb3,gb3,bb3,eb4] ~@5", // Gb Abaug Ebm
  X: "[f2,eb3,f3,a3,eb4] ~@5 [f2,f3,a3,eb4] ~@11 [f2,eb3,f3,a3,eb4] ~@5", // F7
  Y: "[~@5 f5@2 ~@3 bb4 ~ f5@4 ~@7 [eb2,db4,f4,bb4]@3 ~@11 [db3,bb3,bb4,bb5]@9 ~ db3, ~@37 f5 ~@10]/2", // Bbm Gb
  Z: "[~@5 eb6@2 ab5@2 ~@4 [ab4,bb4,f5,eb6] ~@9 [gb3,db4,eb4,bb4]@25]/2", // Absus2 Ebm7
  AA: "[~@2 f5@20 ~ [gb3,bb3,db4,f4]@23 ~ [f3,bb3,ab5,ab6]@3 eb6@2 ~ [f3,bb3,ab5,eb6] ~@18, e5@2 ~@45 d6@2 ~@4 ab6@2 ~@17, ~ [db3,f4,bb5]@21 ~@50]/3", // Gbmaj7 Bb7 Fm7 Bbm
  AB: "[gb3,db4,f4,bb4]@11 ~ [eb2,gb3,bb3,db4,gb4] ~@5 [ab2,gb3,bb3,c4,gb4] ~@5", // Gbmaj7 Ebm7 Ab7
  AC: "db2@2 ~@3 [db5,ab5,f6] ~@6 [bb1,db3,f3,ab3,db4] ~@5 [bb1,d3,e3,ab3,d4] ~@5", // Db Bbm7 Bb7
  AD: "[bb2,db5,f5]@3 ~@2 [bb2,db5,f5] ~@5 g5@2 ~ bb5@10, ~@13 [ab2,gb3,c6]@11", // Bbm Ab7
  AE: "~@2 ab5@9 ~ [c2,e3,g3,bb3,e4] ~@5 [db2,f3,ab3,bb3,f4] ~@5, ~ [db2,f3,bb5]@11 ~@12, ~ g5@2 ~@21", // C7 Bbm7 Bbm
  AF: "[f3,bb3,ab5,ab6]@2 eb6@2 ~ [f3,bb3,ab5,eb6] ~@18, d6 ~@4 ab6@2 ~@17", // Bb7 Fm7
  AG: "[db2,f3,ab3,b3,f4] ~@5 [d2,gb3,a3,c4,gb4] ~@5 [db2,f3,ab3,b3,f4] ~@5 [db2,f3,ab3,b3,f4] ~@5", // Db7 D7 Db7
  AH: "[~ [ab4,db5,f5,db6] ~@10 [db2,f3,ab3,b3,f4] ~@5 [db2,f3,ab3,b3,f4] ~@4 [eb3,bb3,db4,ab4]@11 ~ [d3,ab3,f5,f6]@3 c6@2 ~ [d3,ab3,f5,b5] ~@6, ~@35 b5@2 ~@4 f6@2 ~@5]/2", // Db Db7 Ebsus4 Ddim
  AI: "f4 [gb4,bb4]@3 ~ bb2@18 ~", AJ: "[ab2,gb3,bb3,c4,gb4] ~@5 [a2,g3,b3,db4,g4] ~@6 [bb4,eb5,gb5,eb6] ~@10",
  AK: "~@17 ab2 ~ c5 gb5@3 ~", AL: "~ [ab4,db5,f5,db6] ~@10 [c2,e3,g3,bb3,e4] ~@5 [db2,f3,ab3,bb3,f4] ~@5",
  AM: "~@5 db5@2 ~@3 ab4 ~ db5@4 ~@8", AN: "~ f5@3 db3 ~ [db5,db6]@3 ~@3 [db2,f3,ab3,b3,f4] ~@5 [db2,f3,ab3,b3,f4] ~@5",
  AO: "[db2,bb4,db5]@3 ~@2 [db2,bb4,db5] ~@7 [f4,bb4,d5,bb5] ~@10", AP: "~@5 eb5@2 ~@3 bb4 ~ eb5@4 ~@8",
  AQ: "[ab2,gb3,bb3,c4,gb4] ~@5 [a2,g3,b3,db4] ~@7 bb5@9 ~, ~@3 g4 ~@2 g5 ~@5, ~@13 [ab2,gb3,c6]@11", // Ab7 A7 Ab7
  AR: "[db2,f3,ab3,b3,f4] ~@5 [d2,gb3,a3,db4,gb4] ~@5 [ab5,eb6] ~@5 [ab4,b4,eb5,f5,eb6] ab5 ~@4", // Db7 Dmaj7 Ab5 Fm7b5
  AS: "[gb2,gb3,bb3] eb4 ~@10 [f2,d3,f3,a3,d4] ~@5 [gb2,eb3,gb3,bb3,eb4] ~@5", // Gb Dm Ebm
  AT: "[[ab3,eb4,f4,b4]@22 ~ [bb1,d3,f3,ab3,d4]@3 ~@10 [d5,f5] [ab4,bb4,bb5] ~@10]/2", // Fm7b5 Bb7 Dm Absus2
  AU: "[c2,e3,g3,bb3,e4] ~@5 [db2,f3,ab3,b3,f4] ~@5 [ab2,gb3,ab3,b3,gb4] ~@5 [g2,f3,g3,b3,f4] ~@5", // C7 Db7 Abm7 G7
  AV: "[f2,eb3,f3,a3,eb4] ~@5 [f2,f3,a3] eb4 ~@10 [f2,eb3,f3,a3,eb4] ~@5", // F7 F F7
  AW: "[~@5 eb6@2 ab5@2 ~@3 ab4 [bb4,f5,eb6] ~@9 [gb3,db4,eb4,bb4]@25]/2", // Bbsus4 Ebm7
  AX: "~@6 [f3,ab3,bb3,db4] ~@5 [e3,g3,bb3,db4]@3 ~ [e3,g3,bb3,db4] ~@5 [bb3,db4,gb4,ab4] ~", // Bbm7 Edim Gb
  AY: "~@6 [f5,f6] ~@5 ab5@3 ~ bb5@6 ~@2", // F
  AZ: "[db6 ~@5 [e3,gb3,bb3,db4] ~@5 [b2,ab3,b3,db4]@3 ~ [b2,ab3,b3,db4] ~@5 [bb2,gb3,bb3,db4]@7 ~ [a2,gb3,a3,db4]@3 ~ [ab2,f3,ab3,db4] ~@13]/2", // Gb7 Db7 Gb Gbm Db
})).s("gm_piano").gain(0.16).pan(0.3)

// other · alto sax · "Alto Sax 2"
const alto_sax = note(`<
  ~ A B ~@15 C D ~@3 E F ~ G H I H I J K ~@10 L M N O@2 P Q ~ L M N O@2 P R@2 S ~@3 E F ~ G H I H I J K ~@8 T@2 U@2
>`.pickRestart({
  A: "~@9 bb4@2 a4", B: "bb4 ~@5 bb3@4 a3@2 bb3 ~@11", C: "~@8 b3 ~@2 b3", D: "db4 ~@11", E: "~@2 b3 b3@2 b3 ~@6",
  F: "~@3 bb3@8 ~", G: "~@6 eb4@4 f4@11 ~@3", H: "~@4 db4@2 ~@6 c4 ~@5 db4 ~@5", I: "c4 ~@5 db4@3 ~ d4@7 ~ db4 ~@5",
  J: "~@4 gb4@7 ~ f4 ~@5 gb4 ~@5", K: "a4@4 a4@13 ~@7", L: "~@4 db4@8 c4@4 db4 ~@7", M: "~@22 eb4 ~",
  N: "~@4 e4@7 ~ eb4@4 b3 ~@7", O: "[~@16 d4@2 eb4@4 ab4@14 f4@11 ~]/2", P: "f4@4 eb4 ~@19",
  Q: "c4@4 c4@2 db4@4 c4 ~@13", R: "[c4@4 c4@2 db4@4 c4 ~@11 eb4@6 eb4@2 e4@4 eb4@13 ~]/2", S: "db4 ~@23",
  T: "[~@21 bb3@23 ~@4]/2", U: "[~@6 ab4@2 ~@4 ab4@3 ~ ab4 ~@5 db4@7 d4 b3@4 bb3@2 ~@12, ~@30 c4 ~@17]/2",
})).s("gm_alto_sax").gain(0.25).pan(0.7)

// other · tenor sax · "Tenor Sax 1"
const tenor_sax = note(`<
  ~ A B C D C D E@4 C D C D F@4 G ~ H@2 I J K L M N O P Q R@2 S T U T U V W@2 ~ X Y Z AA@2 AB AC ~ X Y Z AA@2 AB AD@2 AE
  ~ H@2 I J K L M N O P Q R@2 S T U T U V AF@3 AG@2
>`.pickRestart({
  A: "~@9 ab4@2 g4", B: "ab4 ~@5 ab3@4 g3@2 ab3 ~@11", C: "~@4 f4@7 ~ e4 ~@5 f4 ~@5", D: "e4 ~@5 f4@3 ~ gb4@7 ~ f4 ~@5",
  E: "[~@4 gb4@7 ~ f4 ~@5 gb4@4 ab4@18 ~@2 gb4@4 eb4@28 ~@22]/4",
  F: "[~@4 gb4@7 ~ f4 ~@5 gb4@4 ab4@18 ~@2 gb4@4 bb4@28 ~@14 a3@2 ~@4 a3@2]/4", G: "bb3 ~@11",
  H: "[~@6 db4@2 ~@4 db4@4 c4@2 bb3@4 ab3@11 ~ f3@2 ~@12]/2", I: "~@2 ab3 ab3@2 ab3 ~@6", J: "~@3 ab3@8 ~",
  K: "~@11 f3", L: "ab3@4 f3@2 db4@4 c4@11 ~@3", M: "~@4 bb3@2 ~@6 bb3 ~@5 b3 ~@5", N: "bb3 ~@5 bb3@3 ~ b3@7 ~ bb3 ~@5",
  O: "~@4 b3@2 ~@6 bb3 ~@5 b3 ~@5", P: "bb3 ~@5 b3@3 ~ b3@7 ~ b3 ~@5", Q: "~@4 eb4@7 ~ eb4 ~@5 eb4 ~@5",
  R: "[g4@4 g4@13 ~ f3@4 db4@24 ~@2]/2", S: "~@3 db5@2 bb4 c5@2 db5 c5@2 bb4", T: "c5@6 db5@4 c5@7 ~ ab4@4 db4@2",
  U: "gb4@2 ab4 gb4@2 gb4 ~@2 db5@3 bb4", V: "c5@4 db5@8 c5@2 ~ c5@2 ~ f4@4 db4@2, ~@14 db5@2 ~ ab4@2 ~@5",
  W: "[gb4@4 ab4@7 ~ f4@2 ~ f4@2 ~ bb3@4 db4@11 ~ bb3 ~@13, ~@14 gb4@2 ~ eb4@2 ~@29]/2", X: "~@4 bb3@8 bb3@4 bb3 ~@7",
  Y: "~@11 b3", Z: "~@4 c4@7 ~ b3@4 ab3 ~@7", AA: "[~@16 bb3@2 b3@4 eb4@14 d4@11 ~]/2", AB: "db4@4 db4 ~@19",
  AC: "bb3@4 bb3@2 b3@4 bb3 ~@13", AD: "[bb3@4 bb3@2 b3@4 bb3 ~@11 b3@6 b3@2 c4@4 b3@13 ~]/2", AE: "bb3 ~@23",
  AF: "[gb4@4 ab4@7 ~ f4@2 ~ f4@2 ~ bb3@4 db4@11 ~ bb3 ~@10 gb3@23 ~@4, ~@14 gb4@2 ~ eb4@2 ~@53]/3",
  AG: "[~@6 e4@2 ~@4 gb4@3 ~ gb4 ~@5 bb3@7 ~ a3@4 ab3@2 ~@12]/2",
})).s("gm_tenor_sax").gain(0.3).pan(0.4)

// other · tenor sax · "Tenor Sax 2"
const tenor_sax_2 = note(`<
  ~ A B ~@15 C D ~@3 E F ~ G H I H J K L ~@10 M N O P@2 Q R ~ M N O P@2 Q S@2 T ~@3 E F ~ G H I H J K L ~@8 U@2 V@2
>`.pickRestart({
  A: "~@9 f4@2 e4", B: "f4 ~@5 f3@4 e3@2 f3 ~@11", C: "~@8 f3 ~@2 f3", D: "gb3 ~@11", E: "~@2 eb3 eb3@2 eb3 ~@6",
  F: "~@3 f3@8 ~", G: "~@6 g3@4 gb3@11 ~@3", H: "~@4 ab3@2 ~@6 g3 ~@5 ab3 ~@5", I: "g3 ~@5 ab3@3 ~ a3@7 ~ ab3 ~@5",
  J: "g3 ~@5 ab3@3 ~ ab3@7 ~ g3 ~@5", K: "~@4 db4@7 ~ db4 ~@5 db4 ~@5", L: "eb4@4 eb4@13 ~@7",
  M: "~@4 ab3@8 g3@4 ab3 ~@7", N: "~@11 f3", O: "~@4 gb3@7 ~ f3@4 f3 ~@7", P: "[~@16 e3@2 f3@4 bb3@14 ab3@11 ~]/2",
  Q: "bb3@4 bb3 ~@19", R: "gb3@4 gb3@2 g3@4 gb3 ~@13", S: "[gb3@4 gb3@2 g3@4 gb3 ~@11 f3@6 f3@2 gb3@4 f3@13 ~]/2",
  T: "gb3 ~@23", U: "[~@21 eb3@23 ~@4]/2", V: "[~@6 bb3@2 ~@4 b3@3 ~ b3 ~@5 gb3@7 ~ gb3@4 f3@2 ~@12]/2",
})).s("gm_tenor_sax").gain(0.25).pan(0.4)

// other · baritone sax · "Bari Sax"
const baritone_sax = note(`<
  ~ A B ~@6 C D E ~@5 F G H I@2 ~ J K L M N O N O P Q ~ R S@6 ~@2 T U V W@2 X Y Z T U V W@2 X AA@2 H I@2 ~ J K L M N O N
  O P Q ~ R S@2 AB@2 S@2 AC@2 AD@2
>`.pickRestart({
  A: "~@9 ab3@2 g3", B: "ab3 ~@5 ab2@4 g2@2 ab2 ~@11", C: "~@4 ab2@2 ~@4 ab2@2 ab2 ~@9 ab2 ~",
  D: "~@4 ab2@2 ab2 ~@9 ab2@2 ~@4 ab2@2", E: "db3 ~@23", F: "~@4 eb3@2 ~@4 db3@2 eb3 ~@9 eb3 ~",
  G: "~@4 db3@2 eb3 ~@17", H: "~@4 db3@7 ~ c3 ~@5 db3 ~@5", I: "[c3 ~@5 db3 ~@5 eb3@3 ~ db3 ~@5 db3@23 ~@3]/2",
  J: "~@2 d2 d2@2 d2 ~@6", K: "~@3 g2@8 ~", L: "~@11 f3", M: "ab3@4 f3@2 a2@4 ab2@11 ~@3",
  N: "~@4 f3@2 ~@6 e3 ~@5 f3 ~@5", O: "e3 ~@5 f3@3 ~ gb3@7 ~ f3 ~@5", P: "~@4 gb2@7 ~ ab2 ~@5 gb2 ~@5",
  Q: "f2@4 f2@19 ~", R: "~@16 eb3@7 ~", S: "[db3@2 ~@4 db3@2 ~@4 db3@3 ~ db3 ~@5 eb3@7 ~ eb3@3 ~ eb3 ~@13]/2",
  T: "~@4 f3@8 e3@4 f3 ~@7", U: "~@11 db3", V: "~@4 d3@7 ~ db3@4 db3 ~@7", W: "[~@16 c3@2 db3@4 gb2@14 bb2@11 ~]/2",
  X: "eb2@2 eb2 ~@9", Y: "ab2@4 ab2@2 a2@4 ab2 ~@13", Z: "bb2@9 ~ ab2@11 ~ bb2@2",
  AA: "[ab2@4 ab2@2 a2@4 ab2 ~@11 db3@6 db3@2 d3@4 db3@13 ~]/2",
  AB: "[db3@2 ~@4 db3@2 ~@4 db3@3 ~ db3 ~@5 eb3@7 ~ eb3@4 eb3 ~@13]/2", AC: "[~@21 ab2@23 ~@4]/2",
  AD: "[~@6 gb2@2 ~@4 e2@3 ~ e2 ~@5 eb2@7 ~ d2@4 db2@2 ~@12]/2",
})).s("gm_baritone_sax").gain(0.25).pan(0.8)

// other · trumpet · "Trumpet 1"
const trumpet = note(`<
  ~ A B ~@6 C D E ~@7 F G@2 H I@4 J ~ J ~ K L M N O@6 P Q ~@7 R ~@8 F G@2 S I@4 J ~ J ~ K L M N O@6 T ~ U@2
>`.pickRestart({
  A: "~@9 db5@2 c5", B: "db5 ~@5 db4@4 c4@2 db4 ~@11", C: "~@4 c5@2 ~@4 db5@2 c5 ~@9 c5 ~",
  D: "~@4 db5@2 c5 ~@9 c5@2 ~@4 db5@2", E: "c5 ~@23", F: "~@4 db5@7 ~ c5 ~@5 db5 ~@5",
  G: "[c5 ~@5 db5 ~@5 eb5@3 ~ db5 ~@5 ab4@23 ~@3]/2", H: "~@4 f4@5 ~ f4@2 ab4 ~@5 bb4 ~@5",
  I: "[b4@17 ~ bb4@4 ab4@7 ~ g4@4 d4@2 gb4@3 ~ f4 ~@5 eb4@44 ~@6]/4", J: "~@2 f4 ~@9", K: "~@4 bb4@7 ~ a4 ~@5 bb4 ~@5",
  L: "b4@4 c5@19 ~", M: "~@4 f5@2 ~@4 eb5@2 f5 ~@9 g5 ~", N: "~@4 f5@2 g5 ~@9 f4@7 ~",
  O: "[ab4 ~@5 ab4 ~@5 ab4@3 ~ ab4 ~@5 db5@7 ~ db5@3 ~ db5 ~@13]/2", P: "~@16 ab5@7 ~", Q: "f5@9 ~ bb4@11 ~ ab4 ~",
  R: "db5@9 ~ c5@11 ~ bb4 ~", S: "~@4 f4@2 ~@4 f4@2 ab4 ~@5 bb4 ~@5", T: "~@6 db5@2 ~@4 db5@3 ~ db5 ~@5 ab5 ~",
  U: "[~@6 db5@2 ~@4 db5@3 ~ db5 ~@5 ab4@5 g4 [f4,gb4] [eb4,e4] db4@3 ~ db4@2 ~@12, ~@30 d4 ~@17]/2", // Gbmaj7 Emaj7
})).s("gm_trumpet").gain(0.48).pan(0.6)

// other · trumpet · "Trumpet 2"
const trumpet_2 = note(`<
  ~ A B ~@6 C D E ~@7 F G@2 ~@5 H ~ H ~ I J K L M@6 ~@2 N O ~ P Q R ~ S T U ~ V W ~ X Y F Z@2 ~@5 H ~ H ~ I J K AA M@6
  AB ~ AC@2
>`.pickRestart({
  A: "~@9 bb4@2 a4", B: "bb4 ~@5 bb3@4 a3@2 bb3 ~@11", C: "~@4 ab4@2 ~@4 ab4@2 ab4 ~@9 ab4 ~",
  D: "~@4 ab4@2 ab4 ~@9 ab4@2 ~@4 ab4@2", E: "ab4 ~@23", F: "~@4 bb4@7 ~ a4 ~@5 bb4 ~@5",
  G: "[a4 ~@5 bb4 ~@5 db5@3 ~ bb4 ~@5 f4@23 ~@3]/2", H: "~@2 db4 ~@9", I: "~@4 gb4@7 ~ f4 ~@5 gb4 ~@5",
  J: "a4@4 a4@19 ~", K: "~@4 db5@2 ~@4 db5@2 db5 ~@9 eb5 ~", L: "~@4 eb5@2 eb5 ~@9 db4@7 ~",
  M: "[f4 ~@5 f4 ~@5 f4@3 ~ f4 ~@5 bb4@7 ~ bb4@3 ~ bb4 ~@13]/2",
  N: "~@2 c5 ~ db5 eb5 ~ f5 gb5 ~ ab5 bb5 a5@2 ~@4 gb5 ~ bb5 ab5 ~ f5",
  O: "~ eb5 db5 ~ c5 bb4 ab4 ~ g4 gb4 ~ f4 eb4 ~ db4 c4 ~ bb3 ab3@5 ~", P: "bb3@2 eb4 ~@2 bb3 eb4@3 ~@12 b3 ~@2",
  Q: "~ bb3@4 ~ eb4@5 ~ f4@6 d4 ~ f4 ~@2 ab4", R: "a4@2 ~ bb4@3 f4@5 ab4 ~@2 eb4@4 ~@6, ~@13 gb4@2 ~@9",
  S: "~@3 c4 ~ db4 c4 ~ b3 bb3 ~ a3 ab3 ~ a3 b3 ~ c4 e4 ~ ab4 b4 ~ a4", T: "~ ab4 f4 eb4@2 db4 gb4@2 e4 f4 ~@14",
  U: "~@6 ab4 ~ ab4!2 ~ ab4!2 ~@2 a4 bb4 ~ ab4@3 ~@3",
  V: "~@5 d4 ~ db4 c4 ~ b3 bb3 b3 eb4 gb4 ~ bb4 b4 ~ bb4 gb4 f4@2 ~",
  W: "db4 ~ eb4 ~ f4 ab4 ~ f4 gb4 ~ bb4 db5 c5 ab4 e5 c5 ab4 f4 g5 e5 c5 ab4@2 ~",
  X: "c5@2 db5 ~ eb5 ~@3 gb5 ~ g5 a5 gb5 ~ db5 d5 ~ f5 ~ eb5 f5 ~ gb5 ab5",
  Y: "f5@2 ~@4 d5@2 ~ b4 ~ d5 b4@2 ~ eb5 ~ g5 ab5@2 ~@4", Z: "[a4 ~@5 bb4 ~@5 db5@3 ~ bb4 ~@5 f4@24 ~@2]/2",
  AA: "~@4 eb5 ~ eb5 ~@9 db4@7 ~", AB: "~@6 bb4@2 ~@4 bb4@3 ~ bb4 ~@5 f5 ~",
  AC: "[~@6 bb4@2 ~@4 b4@3 ~ b4 ~@5 gb4@5 f4 [eb4,e4] [db4,d4] b3@3 ~ bb3@2 ~@12, ~@30 c4 ~@17]/2", // Emaj7 Dmaj7
})).s("gm_trumpet").gain(0.48)

// other · trumpet · "Trumpet 3"
const trumpet_3 = note(`<
  ~ A B ~@6 C D E ~@7 F G@2 ~@5 H ~ I ~ J K L M N@4 O@2 P Q ~@7 R ~@8 F G@2 ~@5 H ~ I ~ J K L M N@6 S ~ T@2
>`.pickRestart({
  A: "~@9 ab4@2 g4", B: "ab4 ~@5 ab3@4 g3@2 ab3 ~@11", C: "~@4 gb4@2 ~@4 gb4@2 gb4 ~@9 gb4 ~",
  D: "~@4 gb4@2 gb4 ~@9 gb4@2 ~@4 gb4@2", E: "f4 ~@23", F: "~@4 ab4@7 ~ g4 ~@5 ab4 ~@5",
  G: "[g4 ~@5 ab4 ~@5 bb4@3 ~ ab4 ~@5 eb4@23 ~@3]/2", H: "~@2 bb3 ~@9", I: "~@2 b3 ~@9",
  J: "~@4 eb4@7 ~ eb4 ~@5 eb4 ~@5", K: "g4@4 g4@19 ~", L: "~@4 bb4@2 ~@4 bb4@2 bb4 ~@9 db5 ~",
  M: "~@4 db5@2 db5 ~@9 bb3@7 ~", N: "[eb4 ~@5 eb4 ~@5 eb4@3 ~ eb4 ~@5 gb4@7 ~ gb4@3 ~ gb4 ~@13]/2",
  O: "[eb4@2 ~@4 eb4 ~@5 eb4@3 ~ eb4 ~@5 gb4@7 ~ gb4@3 ~ gb4 ~@13]/2", P: "~@16 e5@7 ~", Q: "db5@9 ~ gb4@11 ~ f4 ~",
  R: "bb4@9 ~ a4@11 ~ ab4 ~", S: "~@6 ab4@2 ~@4 g4@3 ~ g4 ~@5 d5 ~",
  T: "[~@6 ab4@2 ~@4 ab4@3 ~ ab4 ~@5 eb4@5 ~ [db4,d4] [b3,c4] a3@3 ~ ab3@2 ~@12, ~@30 bb3 ~@17]/2", // Dmaj7 Cmaj7
})).s("gm_trumpet").gain(0.48).pan(0.4)

// other · trumpet · "Trumpet 4"
const trumpet_4 = note(`<
// … 136 more lines

More by Frank Sinatra