Strudelify

Makin' Whoopie

Frank Sinatra

KeyC majorTempo92 bpm
0:00/0:00
// Makin' Whoopie — Frank Sinatra
// 92 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 92 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(92/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(`<
  ~@2 A B C@2 D E F G H I J K L M N O P Q R S@2 T U V W X Y Z AA AB AC AD AE AF AG AH@2 AI AJ AK@2 AL AM AN AO AP AQ AR
  AS AT AU@2 D AV AW AX H AY J K AZ M N O P BA R BB@2 T U V BC BD BE Z BF BG AC AD AE AF BH BI BJ BK ~ BL@3
>`.pickRestart({
  A: "c2@5 g1 g2@4 g1 ~ e2@6 a1@6", B: "d2@3 a2@3 d2@3 g1@2 d#2",
  C: "[~@4 e2@7 ~ d#2@2 ~@4 d#2@4 g#1@7 ~ g#1@4 g1@2 ~@12]/2", D: "c3 g2 a1!2", E: "d2@4 d1 ~ d2@6 d2@5 d1 g2@6",
  F: "c2@5 ~ c2@6 c2@3 ~ c2 ~ e2@6, ~@5 c1@2 ~@17", G: "~@4 c2 ~ c3@4 ~ c2 a#1@6 b1@6, f2 ~@3", H: "c2 a#1 a2 e2",
  I: "g#2@5 ~ g#2@6 g2@6 g2@4 ~ g1, ~@5 g#1@2 ~@17", J: "c2@6 c2@6 a1@3 ~ a1 ~ a1@6", K: "d2@5 ~ d2@4 g1@2 ~@12",
  L: "c2@5 ~ d2@6 c#2@6 g2@6, ~@5 c1@2 ~@17", M: "d3 a2 g2 c#2", N: "c2@6 g2@6 c2@6 c2@4 c1 ~",
  O: "~@4 c2 ~ c3@4 c2 ~ a#1@6 f2@6, f2 ~@3", P: "c2@6 a#1@4 ~ a#0 a1@6 e2@6", Q: "g#2@3 ~ g#2@2 d#3@6 g2@6 g2@6",
  R: "c2 c#2 d2 a2", S: "[d#2@6 d#2@4 e2@2 ~@10 e2@7 a#1 e3@4 e2 ~ a1@4 a0@2 c#2@6]/2", T: "d2 a2 d2 a1",
  U: "a#1@6 a#1@6 g1@3 ~ g1@2 g2@6", V: "c2 g2 c2 g1", W: "e2@3 ~ e2@2 a#2@6 a2@6 e2@6",
  X: "d2@6 a2@6 ~@4 a1 ~ a2@4 ~ a1, ~@2 d2 ~", Y: "a#1@4 f1@2 f2@5 ~ d2@6 a#1@5 f1",
  Z: "a1@4 ~ a0 g#2@4 g#1 ~ g2@6 g2@6", AA: "c2@5 ~ c2@6 e2@5 e1 a1@4 a0 ~, ~@5 c1@2 ~@17",
  AB: "d2@6 d2@4 d1 ~ d2@4 ~ d1 g2@4 ~ g1", AC: "c2 g2 c3 e2", AD: "f2@3 c2@2 a#1 ~@6", AE: "c3@3 a#2@3 a2@2 e2 a1@3",
  AF: "g#1@6 g#1@6 g#1@5 ~ g2@6", AG: "~ c2", AH: "[~@10 f1@12 e1@8 e2@4 ~ e1 a1@5 ~ c#2@6, ~@41 a0@2 ~@5]/2",
  AI: "d2 c#2 d2 b1", AJ: "a#1 a#2 f2 d2",
  AK: "[c2@3 ~ c2@2 b1@6 a1@4 g1@6 ~@6 a#1 ~ e3@4 a#1 ~ c#3@6 a2@4 a1 ~, ~@11 e1@4 ~@9]/2",
  AL: "d3@6 a2@4 a1 ~ f2@6 d2@6", AM: "a#1@6 a#2@6 f2@6 a#1@5 ~", AN: "a1@3 g#1@2 g1 ~@6",
  AO: "c2@6 c2@6 c#2@5 ~ c#2@6, ~@17 c#1@2 ~@5", AP: "d2@6 d2@6 g1@6 g1@5 ~", AQ: "~@6 c#2@4 c2@13 ~",
  AR: "~@6 b1@4 a#1 ~@13", AS: "e1@3 ~ e1@2 e2@6 a1@6 a1@6", AT: "d#2@3 g#1@3 g1 ~@5",
  AU: "[~@10 d#2@7 ~ d#2@4 g#1@7 ~ g#1@4 g1 ~@13]/2", AV: "d2@4 ~ d1 d2@6 d2@4 d1 ~ g2@6",
  AW: "c2@4 c1@2 c2@6 c2@3 ~ c2 ~ e2@6", AX: "~@4 c2 ~ c3@4 c2 ~ a#1@6 b1@6, f2 ~@3",
  AY: "g#2@5 ~ g#2@6 g2@6 g2@4 g1 ~, ~@5 g#1@2 ~@17", AZ: "c2@2 c1 d2@3 c#2@3 g2@3",
  BA: "g#2 ~ d#3@2 g2@2 g2@2, ~@5 g#2@2 ~@17", BB: "[d#2@6 d#2@4 e2@2 ~@10 e2@7 a#1 e3@4 ~ e2 a1@4 a0@2 c#2@6]/2",
  BC: "e2 ~ a#2@2 a2@2 e2@2, ~@5 e2@2 ~@17", BD: "d2@6 a2@6 ~@4 a1 ~ a2@4 a1 ~, ~@2 d2 ~",
  BE: "a#1@4 f1@2 f2@5 ~ d2@6 a#1@4 f1 ~", BF: "c2@4 c1@2 c2@6 e2@5 e1 a1@4 ~ a0",
  BG: "d2@6 d2@5 d1 d2@4 ~ d1 g2@4 ~ g1", BH: "c2@6 g2@6 c3@5 ~ f#2@4 f2 ~", BI: "~@10 a#1@7 ~ a#1@6",
  BJ: "c2@6 a#1@6 a1@5 ~ a2@6", BK: "g#2@3 g#1@2 g1 ~@6", BL: "[~@3 c2@7 ~@2]/3",
})).s("gm_acoustic_bass").gain(0.32).pan(0.3)

// other · piano
const piano = note(`<
  ~@2 A B C@2 D E F G H I J@2 K L M N O I P Q@2 R S T U V@2 H W X@2 Y ~@2 Z AA@3 AB@3 AC@3 AD AE AF AG AH AI AJ@2 D E F
  AK H I AL@2 K L M N H I AM Q@2 R S T U V@2 H AN X@2 Y ~@7 AO@3
>`.pickRestart({
  A: "e5@2 ~@2 e4@2 b3@4 ~@2 a#3@4 a3@7 ~", B: "f5@2 ~@2 f4@2 c#4@4 ~@2 c4@4 b3 ~@5 [f#4,f#5] ~",
  C: "[~@4 [g4,g5]@7 ~ [c5,c6]@2 ~@4 [a#4,a#5]@4 [g4,g5]@10 ~@2 g4@12 ~@2, ~@34 g5 ~@13]/2", // G C A# G
  D: "~@4 e5@2 b4@4 ~@2 a#4@4 a4@7 ~", E: "~@4 f5@2 c#5@4 ~@2 c5@4 b4@7 ~", F: "b3 a#3", G: "a3@6 g#3@5 ~",
  H: "~@4 e4@2 e4@4 e4@13 ~", I: "~@4 d#4@2 d#4@4 d#4 ~@13", J: "[~@12 a#5@2 ~@4 a#5@3 ~ a5@7 ~ a5@3 ~ g#5 ~@13]/2",
  K: "~@2 g3 a3@2 [e4,a4]@6 ~", L: "~@2 g3 a3@2 [f4,b4]@6 ~", M: "~@5 d5@7", N: "c5@5 c5@7", O: "~@4 e4@2 ~@4 e4@13 ~",
  P: "~@12 f5 ~@5 f5 ~@5", Q: "[f#5@6 f#5@3 ~ g5 ~@11 g4@14 a#4@12]/2", R: "~@4 d5@2 c#5@4 ~@2 c5@4 b4@7 ~, a4@5 ~@7",
  S: "c5@12 b4@11 ~", T: "~@4 b4@2 b4@4 b4@13 ~", U: "d4 c#4", V: "[c4@12 b3@9 ~ c4@25 ~]/2",
  W: "~@4 e4@2 b3@4 ~@2 a#3@4 a3@7 ~", X: "[~@2 f4 c#4@2 ~ c4@2 b3@10 a#3@6]/2", Y: "a3@9 ~ g4@2 ~@12",
  Z: "~@12 [c2,e3,g3,a3,e4]@11 ~", AA: "[~@10 f2@12 g5@11 a#5 g5 ~ a#5@6 g5@4 f5@24 ~@2, ~@11 e2@4 ~@21]/3",
  AB: "[~@4 f4@2 g#4@4 f4@2 g#4@6 f4@4 e4@23 ~ g5@6 a5@2 a#5@4 a5@2 g5@4 f5@2 e5@4 g5@2]/3",
  AC: "[f5@4 d5@2 e5@4 f5@7 ~@5 f4@6 g#4@2 f4@4 g#4@8 f4@4 ~@6 [a2,g3,c#4,e5]@2 [g#2,f#3,c4,e5]@4 [g2,f3,b3,e5]@2 ~@4 [g4,g5]@2 [a4,a5]@4 [g4,g5]@2, ~@23 e4@4 ~@9]/3", // A7 G#aug Em G A G
  AD: "~@2 [g3,a3,c4,e4]@3 [c2,c3] ~@2 [g4,g5] [a4,a5]@2 [c#2,c#3,g4,g5], [c2,c3,e5,e6]@11 ~ [c#2,c#3]@10 ~@2, ~@16 [g3,a#3,c#4,e4]@7 ~", // Am7 C G A C#dim C C# Gdim
  AE: "~@2 [a3,c4,d4,f4]@3 [d2,d3] ~@2 [g4,g5] [a4,a5]@2 [g4,g5], [d2,d3,f5,f6]@11 ~ [g2,g3]@11 ~, ~@16 [a3,b3,d4,f4]@7 ~", // Dm7 D G A G Dm G Bm7b5
  AF: "~@3 [b3,d#4,f4,a#4]@2 ~@3 [c5,c6] [d5,d6]@2 [c5,c6], [g5,g6]@10 [a#3,d4,e4,a4]@13 ~", // Bmaj7 C D C G A#maj7
  AG: "~@6 [a3,c#4,d#4,g#4]@4 [g#3,c4,d4,g4] ~@5 f4@2 g4@4 f4@2, [g5,g6]@11 ~@13", AH: "e4@4 e4@11 ~ g3@2 a3@4 g3@2",
  AI: "d#4@2 d#4@5 ~ [c#4,c#5] [d4,d5]@2 [d#4,d#5]", // C# D D#
  AJ: "[[e4,e5]@4 ~@6 [d#2,g3,c#4,g4]@7 ~ [d#2,g3,c#4,g4]@4 [g#2,g3,c4,d#4]@11 ~ [g2,f3,b3,d#4]@2 ~@12, ~@4 [c4,c5]@19 ~@25]/2", // E D#7 G#maj7 Gaug C
  AK: "a3@12 g#3@11 ~", AL: "[~@12 a#5 ~@5 a#5@3 ~ a5@7 ~ a5@3 ~ g#5 ~@13]/2", AM: "~@12 f5@2 ~@4 f5 ~@5",
  AN: "~@4 e4@2 ~@6 a#3@4 a3@7 ~", AO: "[~@3 [c3,e3,a#3,a#4,d#5,f#5,a5]@7 ~@2]/3",
})).s("gm_piano").gain(0.32).pan(0.3)

// other · piano · soft notes
const piano_soft = note("<~@2 A B ~@2 C D ~@10 E ~@4 F ~ G H ~@3 A B ~@22 C D ~@15 F ~ I ~@4 J B ~@12>".pickRestart({
  A: "~@5 g3 ~@6", B: "~@5 a3 ~@6", C: "~@5 g4 ~@6", D: "~@5 a4 ~@6", E: "~@3 e4@2 ~@7", F: "~@10 a4@13 ~",
  G: "~@22 b3 c4", H: "c#4 ~@23", I: "~@23 [b3,c4,c#4]", J: "~@3 b3@2 g3 ~@6",
})).s("gm_piano").gain(0.16).pan(0.3)

// other · alto sax · "Alto Sax 1"
const alto_sax = note(`<
  ~@2 A B C@2 ~@2 D E F G H@2 I J K L F G M N@2 O ~@2 P Q@2 F ~@2 D R ~@3 S@3 T@3 U@3 V@2 W X Y Z AA@2 ~@2 D E F G H@2 I
  J K L F G M N@2 O ~@2 P Q@2 F ~@2 D R ~@2 AB ~ F G ~ AC@3
>`.pickRestart({
  A: "~@4 e4@2 b3@4 ~@2 a#3@4 a3@7 ~", B: "~@4 f4@2 c#4@4 ~@2 c4@4 b3 ~@5 f#4@2",
  C: "[~@4 g4@7 ~ c5@2 ~@4 a#4@4 g4@10 ~@2 g4@13 ~]/2", D: "b3 a#3", E: "a3@12 g#3@11 ~", F: "~@4 e4@2 e4@4 e4@13 ~",
  G: "~@4 d#4@2 d#4@4 d#4 ~@13", H: "[~@6 a#4 ~@2 a#4@2 a4@4 a4@2 g#4 ~@6]/2", I: "~@4 g3@2 a3@4 e4@13 ~",
  J: "~@4 g3@2 a3@4 f4@13 ~", K: "~@5 a4@4 g#4@3", L: "g4@5 g4@7", M: "~@6 f4 ~@2 f4 ~@2",
  N: "[f#4@3 f#4@2 g4 ~@5 g4@7 a#4@6]/2", O: "a4@23 ~", P: "d4 c#4", Q: "[c4@12 b3@9 ~ c4@25 ~]/2",
  R: "a3@9 ~ g4@2 ~@12", S: "[d#4@4 c4@18 g4@11 a#4 ~ g4 a#4@6 g4@4 f4@24 ~@2]/3",
  T: "[~@4 f4@2 g#4@4 f4@2 g#4@6 f4@4 e4@23 ~ g4@6 a4@2 a#4@4 a4@2 g4@4 f4@2 e4@4 g4@2]/3",
  U: "[f4@4 d4@2 e4@4 f4@7 ~@5 f4@6 g#4@2 f4@4 g#4@8 f4@4 e4@8 e4@4 e4@2 ~@12]/3", V: "~@4 g4@7 ~@5 g4@7 ~",
  W: "~@6 a#4@4 a4@13 ~", X: "~@3 g#4@2 g4 ~@2 f4 g4@2 f4", Y: "e4@15 ~ g3@2 a3@4 g3@2", Z: "d#4@7 ~@5",
  AA: "[~@10 c5@8 a#4@4 g4@11 ~ g4@13 ~]/2", AB: "~@6 e4@2 g4 a4@2 c5", AC: "[~@3 a4@7 ~@2]/3",
})).s("gm_alto_sax").gain(0.47).pan(0.6)

// other · alto sax · "Alto Sax 1" · soft notes
const alto_sax_soft = note("<~@2 A B ~@3 C D ~@16 E F ~@4 G ~@23 H D ~@16 E F ~@4 H D ~@11>".pickRestart({
  A: "~@5 g3 ~@6", B: "~@5 a3 ~@6", C: "~@23 [g#3,a3]", D: "a#3 ~@23", E: "~@23 [b3,c4]", F: "c#4 ~@23",
  G: "~@23 [g#3,a3,a#3]", H: "~@22 g#3 a3",
})).s("gm_alto_sax").gain(0.16).pan(0.6)

// other · alto sax · "Alto Sax 2"
const alto_sax_2 = note(`<
  ~@3 A B@2 ~@4 C D E@2 F G H I C D J K@2 L ~@3 M@2 N ~@3 O ~@3 P@3 Q@3 R@3 ~@2 S T ~@2 U@2 ~@4 C D E@2 F G H I C D J
  K@2 L ~@3 M@2 N ~@3 O ~@2 V ~ C D ~ W@3
>`.pickRestart({
  A: "~@11 c#4", B: "[~@4 d4@7 ~ f4@2 ~@4 f4@4 d#4@10 ~@2 d#4@13 ~]/2", C: "~@4 b3@2 d4@4 c#4@13 ~",
  D: "~@4 c4@2 c4@4 b3 ~@13", E: "[~@6 f4 ~@2 f4@2 e4@4 e4@2 d#4 ~@6]/2", F: "~@10 c#4@13 ~", G: "~@10 d4@13 ~",
  H: "~@5 e4@7", I: "e4@5 d4@7", J: "~@6 d4 ~@2 d4 ~@2", K: "[d#4@3 d#4@2 e4 ~@5 d4@7 f4@6]/2", L: "f4@23 ~",
  M: "[~@22 g#3@25 ~]/2", N: "~@4 c#4@2 c4@4 b3@13 ~", O: "~@5 d4 ~@6",
  P: "[~@22 d4@11 e4 d4@2 e4@6 c#4@4 c4@14 b3@10 ~@2]/3",
  Q: "[~@2 f4 g#4@2 f4 g#4@3 f4@2 e4@11 ~ e4@3 f#4 g4@2 f4 e4@2 d4 c#4@2 e4]/3",
  R: "[d4@4 b3@2 c#4@4 d4@7 ~@5 d4@6 f4@2 d4@4 f4@8 d4@4 c#4@8 c4@4 b3@2 ~@12]/3", S: "~@6 f4@4 e4@13 ~",
  T: "~@3 d#4@2 d4 ~@6", U: "[~@10 f4@8 f4@4 d#4@10 ~@2 d#4@13 ~]/2", V: "~@6 d4@2 e4 e4@2 g4", W: "[~@3 f#4@7 ~@2]/3",
})).s("gm_alto_sax").gain(0.47).pan(0.7)

// other · tenor sax · "Tenor Sax 1"
const tenor_sax = note(`<
  ~@2 A B C@2 ~@2 D E F G H@2 I J K L F G M N@2 O ~@2 P Q@2 R A S D T ~@3 U@3 V@3 W@3 X@2 Y Z AA AB AC@2 ~@2 D E F G H@2
  I J K L F G M N@2 O ~@2 P Q@2 R A S D T ~@2 AD ~ F G ~ AE@3
>`.pickRestart({
  A: "~@4 e4@2 b3@4 g3@2 a#3@4 a3@7 ~", B: "~@4 f4@2 c#4@4 a3@2 c4@4 b3 ~@5 a#3@2",
  C: "[~@4 b3@7 ~ g3@2 ~@4 g3@4 a#3@10 ~@2 b3@13 ~]/2", D: "b3 a#3", E: "a3@12 g#3@11 ~", F: "~@4 g3@2 g#3@4 g3@13 ~",
  G: "~@4 f#3@2 f#3@4 f3 ~@13", H: "[~@6 c#4 ~@2 c#4@2 c4@4 c4@2 b3 ~@6]/2", I: "~@4 g3@2 a3@4 a#3@13 ~",
  J: "~@4 g3@2 a3@4 b3@13 ~", K: "~@5 a#3@7", L: "a3@5 g#3@7", M: "~@6 c4 ~@2 c4 ~@2",
  N: "[c4@3 c4@2 d4 ~@5 a#3@7 c#4@6]/2", O: "d4@6 c#4@6 c4@4 b3@7 ~", P: "d4 c#4", Q: "[c4@12 b3@9 ~ d3@25 ~]/2",
  R: "~@4 g3@2 f#3@4 f3@13 ~", S: "~@2 f4 c#4@2 a3 c4@2 b3@4", T: "a3@9 ~ g#3@2 ~@12",
  U: "[d#4@4 c4@18 a#3@11 d4 a#3 ~ c#4@6 b3@4 a3@24 ~@2]/3",
  V: "[~@4 f4@2 g#4@4 f4@2 g#4@6 f4@4 e4@23 ~ a#3@6 c4@2 d4@4 c4@2 a#3@4 g#3@2 g3@4 a#3@2]/3",
  W: "[a3@4 f3@2 g3@4 a3@7 ~@5 c4@6 d4@2 c4@4 d4@8 c4@4 b3@8 a#3@4 a3@2 ~@12]/3", X: "~@4 g4@7 ~@5 g4@7 ~",
  Y: "~@6 b3@4 a#3@13 ~", Z: "~@3 a3@2 g#3 ~@2 f4 g4@2 f4", AA: "e4@15 ~ g3@2 a3@4 g3@2", AB: "d#4@7 ~@5",
  AC: "[~@10 g3@8 g3@4 a#3@10 ~@2 b3@13 ~]/2", AD: "~@6 b3@2 d4 c#4@2 e4", AE: "[~@3 a#3@7 ~@2]/3",
})).s("gm_tenor_sax").gain(0.39).pan(0.4)

// other · tenor sax · "Tenor Sax 2"
const tenor_sax_2 = note(`<
  ~@3 A B@2 ~@4 C D E@2 F G H I C D J K@2 L ~@3 M@2 N ~@3 O ~@3 P@3 Q@3 R@3 ~@2 S T ~@2 U@2 ~@4 C D E@2 F G H I C D J
  K@2 L ~@3 M@2 N ~@3 O ~@2 V ~ C D ~ W@3
>`.pickRestart({
  A: "~@11 f#3", B: "[~@4 g3@7 ~ c#4@2 ~@4 c#4@4 c4@10 ~@2 f3@13 ~]/2", C: "~@4 d4@2 c4@4 b3@13 ~",
  D: "~@4 a#3@2 a#3@4 a3 ~@13", E: "[~@6 g3 ~@2 g3@2 f#3@4 f#3@2 f3 ~@6]/2", F: "~@10 g3@13 ~", G: "~@10 f3@13 ~",
  H: "~@5 d4@7", I: "c4@5 c4@7", J: "~@6 a3 ~@2 a3 ~@2", K: "[a3@3 a3@2 a3 ~@5 g3@7 g3@6]/2", L: "a3@23 ~",
  M: "[~@22 f3@25 ~]/2", N: "~@4 b3@2 a#3@4 a3@13 ~", O: "~@5 c4 ~@6", P: "[~@22 e3@11 g3@2 e3 g3@6 e3@4 f3@24 ~@2]/3",
  Q: "[~@2 f3 g#3@2 f3 g#3@3 f3@2 e3@11 ~ d4@3 d#4 e4@2 d#4 d4@2 c4 a#3@2 c#4]/3",
  R: "[b3@4 a3@2 a#3@4 c4@7 ~@5 g#3@6 c4@2 g#3@4 c4@8 g#3@4 g3@8 f#3@4 f3@2 ~@12]/3", S: "~@6 d#4@4 d4@13 ~",
  T: "~@3 c#4@2 c4 ~@6", U: "[~@10 c#4@8 c#4@4 c4@10 ~@2 f3@13 ~]/2", V: "~@6 g3@2 a#3 a#3@2 a3", W: "[~@3 e3@7 ~@2]/3",
})).s("gm_tenor_sax").gain(0.39).pan(0.4)

// other · baritone sax · "Bari Sax"
const baritone_sax = note(`<
  ~@2 A B C@2 ~@4 D E F@2 G H I J D E K L@2 M ~@3 N@2 O ~@3 P ~@2 Q R@3 S@3 T@3 U V W X ~@2 Y@2 ~@4 D E F@2 G H I J D E
  K L@2 M ~@3 N@2 O ~@3 P ~@2 Z ~ D E ~ AA@3
>`.pickRestart({
  A: "c2 ~@11", B: "d2 ~@10 d#2", C: "[~@4 e2@7 ~ d#2@2 ~@4 d#2@4 g#2@10 ~@2 g2@13 ~]/2", D: "~@4 c3@2 a#2@4 a2@13 ~",
  E: "~@4 g#2@2 g#2@4 g2 ~@13", F: "[~@6 a2 ~@2 a2@2 d3@4 d3@2 g2 ~@6]/2", G: "~@10 c#3@13 ~", H: "~@10 g2@13 ~",
  I: "~@5 c3@7", J: "f2@5 a#2@7", K: "~@6 d2 ~@2 d2 ~@2", L: "[d#2@3 d#2@2 e2 ~@5 e3@7 a2@6]/2", M: "d3@23 ~",
  N: "[~@22 a#2@25 ~]/2", O: "~@4 a2@2 g#2@4 g2@13 ~", P: "~@5 a#2 ~@6", Q: "~ c2",
  R: "[~@10 f2@11 ~ e2@13 ~ a2@6 a2@4 d2@24 ~@2]/3",
  S: "[~@4 f3@2 g#3@4 f3@2 g#3@6 f3@4 e3@23 ~ g3@6 a3@2 a#3@4 a3@2 g3@4 f3@2 e3@4 g3@2]/3",
  T: "[f3@4 d3@2 e3@4 f3@7 ~@5 f3@6 g#3@2 f3@4 g#3@8 f3@4 e3@8 g#2@4 g2@2 ~@12]/3", U: "c2@5 c2 c#2@5 c#2",
  V: "d2@10 d2@2 g2@11 ~", W: "~@6 c#3@4 c3@13 ~", X: "~@3 b2@2 a#2 ~@6", Y: "[~@10 d#2@8 d#2@4 g#2@10 ~@2 g2@13 ~]/2",
  Z: "~@6 c3@2 c3 f#2@2 f2", AA: "[~@3 c3@7 ~@2]/3",
})).s("gm_baritone_sax").gain(0.47).pan(0.8)

// other · trumpet · "Trumpet 1"
const trumpet = note(`<
  ~@2 A B C@2 ~@6 D@2 E F G H ~@2 I J ~ K L M ~@7 N ~@2 O P@3 ~ Q@2 R ~ S T U V W ~@2 X@2 ~@6 D@2 Y F ~ Z ~@2 I AA ~ AB
  L M ~@7 N ~@2 AC ~@7
>`.pickRestart({
  A: "e5 ~@11", B: "f5@2 ~@20 f#5 ~", C: "[~@4 g5@7 ~ c6@2 ~@4 a#5@4 g5@10 ~@2 g5 ~@13]/2",
  D: "[~@12 a#5@2 ~@4 a#5@4 a5@7 ~ a5@4 g#5 ~@13]/2", E: "~@10 a4@13 ~", F: "~@10 b4@13 ~", G: "~@5 d5@7",
  H: "c5@5 ~@7", I: "~@6 f5 ~@2 f5 ~@2", J: "f#5@5 ~ f#5@3 ~ g5 ~@13", K: "~@2 d5 ~@3 c5@2 ~@4", L: "c5@12 b4@11 ~",
  M: "~@4 b4@2 b4@4 b4@13 ~", N: "~@5 g5 ~@6", O: "~ c5", P: "[~@10 g5@11 ~ g5@11 a#5 ~ g5 a#5@6 g5@4 f5@23 ~@3]/3",
  Q: "[~@11 g5@3 a5 a#5@2 a5 g5@2 f5 e5@2 g5]/2", R: "f5@4 d5@2 e5@4 f5@7 ~@7", S: "~@2 e5 e5@2 e5 ~@2 g4 a4@2 g4",
  T: "e5@11 ~@5 g4@2 a4@4 g4@2", U: "f5@11 ~@5 g4@2 a4@4 g4@2", V: "g5@11 ~@5 c5@2 d5@4 c5@2", W: "g5@11 ~@13",
  X: "[~@10 c6@7 ~ a#5@4 g5@10 ~@2 g5@2 ~@12]/2", Y: "~@5 a4@6 ~", Z: "c5@5 c5@7", AA: "f#5@6 f#5@3 ~ g5 ~@13",
  AB: "~@2 d5 c#5@2 ~ c5@2 b4@4", AC: "~@6 e5@2 g5 a5@2 c6",
})).s("gm_trumpet").gain(0.72).pan(0.6)

// other · trumpet · "Trumpet 1" · soft notes
const trumpet_soft = note("<~@17 A ~@5 B ~@40 C ~@6 D ~@20>".pickRestart({
  A: "~@5 c5@7", B: "~@3 c#5@2 a4 ~@2 b4@4", C: "~@5 d5@7", D: "~@5 a4 ~@6",
})).s("gm_trumpet").gain(0.4).pan(0.6)

// other · muted trumpet · "Trumpet 1"
const muted_trumpet = note("<~@89 A@3>".pickRestart({
  A: "[~@3 a5@7 ~@2]/3",
})).s("gm_muted_trumpet").gain(0.72).pan(0.6)

// other · trumpet · "Trumpet 2"
const trumpet_2 = note(`<
  ~@2 A B C@2 ~@6 D@2 E F G H ~@2 I J ~@2 K L ~@7 M ~@2 N O@3 ~ P@2 Q ~ R ~@6 S@2 ~@6 D@2 E F G H ~@2 I J ~@2 K L ~@7 M
  ~@2 T ~@7
>`.pickRestart({
  A: "b4 ~@11", B: "c5@2 ~@20 d#5 ~", C: "[~@4 e5@7 ~ a5@2 ~@4 g5@4 d#5@10 ~@2 d#5 ~@13]/2",
  D: "[~@12 g5@2 ~@4 g5@4 f#5@7 ~ f#5@4 f5 ~@13]/2", E: "~@10 g4@13 ~", F: "~@10 a4@13 ~", G: "~@5 a#4@7",
  H: "a4@5 g#4@7", I: "~@6 d5 ~@2 d5 ~@2", J: "d#5@3 d#5@2 e5 ~@6", K: "g#4@23 ~", L: "~@4 g4@2 g4@4 g4@13 ~",
  M: "~@5 e5 ~@6", N: "~ a4", O: "[~@10 d#5@11 ~ e5@11 g5 e5 ~ g5@6 e5@4 d5@23 ~@3]/3",
  P: "[~@11 e5@3 f#5 g5@2 f#5 e5@2 d5 c#5@2 e5]/2", Q: "d5@4 b4@2 c#5@4 d5@7 ~@7", R: "~@2 c#5 d5@2 b4 ~@6",
  S: "[~@10 b5@7 ~ a5@4 f5@10 ~@2 f5@2 ~@12]/2", T: "~@6 d5@2 e5 e5@2 g5",
})).s("gm_trumpet").gain(0.56)

// other · muted trumpet · "Trumpet 2"
const muted_trumpet_2 = note("<~@89 A@3>".pickRestart({
// … 182 more lines

More by Frank Sinatra