Strudelify

Sentimental Journey

Sinatra

KeyC majorTempo60 bpm
0:00/0:00
// Sentimental Journey — Sinatra
// 60 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 51 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(60/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.

// other · piano · "A.PIANO 2"
const piano = note("<~ A ~ B ~ C D E F G H I J ~@6 K L ~@8 M N ~ O P Q R S ~@8 T@2 U@3 ~>".pickRestart({
  A: "~@4 b5@2 [b4,b5]@3 ~ [g4,g5]@2 [b4,b5]@4 [g4,g5]@6 ~@2, ~@4 b4 ~@19", // B G B G
  B: "~@4 [b4,b5]@2 [b4,b5]@3 ~ [g4,g5]@2 [b4,b5]@4 [g4,g5]@6 ~@2", C: "e5@2 ~@2 g4@2 ~@8 d5 ~ c5@2 g4@2 ~@4, d#5 ~@23",
  D: "~@3 g4 ~ e4 ~ f4 g4 ~@4 g4 ~ a4 ~ b4 c5 ~ d5 e5 ~ f5", E: "g5@2 ~@2 a5 ~ e5 f5 g5@2 ~@7 g4 c5 ~ a#4 a4 ~ g4",
  F: "f4@2 ~@11 g4 b4 c5 c#5 ~ d5 e5 ~ d5@2 ~", G: "~@2 a#5 c6 ~ g5 a#5@2 g5@3 ~@13",
  H: "~@6 d#6 ~ c6 ~ a#5 ~ g#5 f5@6 ~@5", I: "~@5 c5 g5@2 e5@2 ~ f5 e5@2 a4@2 ~@5 g4@2 f4",
  J: "f#4 ~ e5@2 ~ e4 f4 ~ d5@2 ~ b4 c5@2 ~@10", K: "~@5 e5 ~ f5 ~ e5 ~@2 e5 ~ f5 e5@2 ~@5 f4 ~",
  L: "f#4 ~ e5@2 ~ e4 f4 ~ d5@2 ~@2 c5@2 ~@10", M: "~@9 g4@4 ~@11, ~@4 [c5,e5] ~@7", N: "~@8 f4 e4 ~ f4 ~ g4@3 ~@8",
  O: "~@16 [g4,g5]@7 ~, ~@16 f#5 ~@7", P: "~@19 a#5 ~ c6 g5@2",
  Q: "~@2 g#5 ~ f5 ~@6 d#5 [c5,c#5] d5@2 c5@2 f4@3 ~ f5 ~ [d5,g5]", // C#maj7 G5
  R: "e5@2 g4 ~@5 e5@2 ~ f5 e5@2 a4@2 ~@4 g4@2 ~ e4, d#5 ~@23", S: "f4@2 d#5 ~@2 e4 f4 ~ d5@2 ~ b4 c5@2 e4@2 ~@8",
  T: "[[f3,a3,e4]@11 ~@7 [f3,a3,e4]@10 ~@20]/2", U: "[[g3,b3,e4]@5 ~@4 [g3,b3,e4]@4 ~@4 [g3,b3,e4]@19]/3",
})).s("gm_piano").gain(0.38).pan(0.3)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  A B C D C E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC F AD H AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT@2 ~
>`.pickRestart({
  A: "~@9 a2 g#2 g2", B: "c2@3 ~@2 g2 c2@2 ~ d2 c#2 c2", C: "f1@3 ~@2 c2 f1@2 ~ a2 g#2 g2",
  D: "c2@6 ~@4 g2@2 c2@4 ~@2 d2@2 c#2 ~ c2@2", E: "c2@5 ~@5 g2@2 c2@5 ~@5 g2@2",
  F: "c2@5 ~@5 g2@2 c2@4 g2@2 a2@2 g#2@2 g2@2", G: "c2@5 ~@5 g2@2 a2@4 ~@2 d#2@4 a2@2",
  H: "d2@4 a2@2 g#2@5 ~ g2@3 ~ g2@2 a2@2 g#2@2 g2@2", I: "c2@5 ~@5 g2@2 c2@4 d2@2 e2@2 g2@2 c2@2",
  J: "f2@3 ~ c2 b1 a#1@2 f2 a#2 g#2 g2", K: "c2@6 ~@4 a#1@2 a1@4 e2@2 a2@3 ~ a2@2",
  L: "d2@5 ~ g2@5 ~ c2@3 ~ d#2@2 e2@2 g2@2 a2 ~", M: "c2@3 ~ c2@2 d#2@4 ~@2 e2@4 ~@2 g2@4 b1@2",
  N: "c2@2 e2 a#1@3 a1@2 a2 g2 a#1 b1", O: "c2@6 d#2@5 ~ e2@4 c2@2 c2@3 ~ a#1@2",
  P: "a1@3 ~ a1@2 g#2@6 g2@4 g1@2 g1@2 a#1@2 b1@2", Q: "c2@3 e2@3 g2@2 c2 e2 g2 c3",
  R: "f2@6 a#1@3 ~ a#1@2 g#1@3 ~ f1 ~ a#2@4 a#1@2", S: "c2@6 a#1@3 ~ a#1@2 a1@6 d#2@6", T: "d2@6 g2@6 c2@6 e2@4 g1 ~",
  U: "f1@6 ~@4 c1@2 f1@7 ~ e1@2 f1@2", V: "f#1@7 ~@3 a1@2 f#1@7 ~@3 a1@2", W: "g1@6 ~@4 g1@2 g1@7 ~@3 a1@2",
  X: "a#1@5 ~ a#1@6 a1@6 c#1@2 d1@2 e1@2", Y: "d1@3 ~ d1 a1 d1@3 ~ d1 a1", Z: "d1@7 ~ d1@2 a1@2 d1@6 a1@4 d1@2",
  AA: "g1@6 ~@4 g1@2 g1@6 ~@2 g1 ~ g1@2", AB: "g1@6 ~@4 g1@2 g1@3 ~ g1@2 a1@2 g#1@2 g1@2",
  AC: "c2@5 ~@5 g2@2 c2@4 ~@6 g2@2", AD: "c2@4 ~@6 e2@2 a1@4 e2@2 e2@3 ~ e2@2", AE: "c2@3 ~@2 g2 c2@2 c3 a#2 g2 e2",
  AF: "f2@4 c2 f2 a#1@2 f2 a#2 g#2 g2", AG: "c2@2 e2 b1@3 a1@3 d#2@2 a2", AH: "d2@2 d3 g2@3 c2@2 g2 g1@2 c#2",
  AI: "c2 b1 a1 g1", AJ: "f1@6 c1@6 f1@6 c1@2 g1 ~ d#1@2", AK: "e1@2 b0 e1@2 d1 e1@2 d#1@4",
  AL: "d1@4 a2@2 g#2@3 ~ g2@4 g3@2 f3 ~ d3 ~ b2 ~ g2 ~", AM: "c2@5 ~@5 g2@2 c2@4 d2@2 e2@2 g2@2 c3@2",
  AN: "f2@5 ~@5 c2@2 f2@5 ~ a#1@3 ~ a#1@2", AO: "b1@2 e2 a#1@3 a1@3 a2 b2 c#3",
  AP: "d3@4 d2@2 g#2@6 c2@5 ~ d2@2 c#2@2 c2@2", AQ: "f1@3 ~@2 c1 f1@3 ~@2 c1", AR: "f1@3 ~@2 c1 f1@2 g1 a1 g#1 g1",
  AS: "c1@3 ~@2 g1 c1@3 ~@2 g1", AT: "c1/2",
})).s("gm_acoustic_bass").gain(0.33)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~ A B C D E@2 F G H I J K L@3 M N O P Q R S T U V W X Y Z E AA AB N AC AD AE ~@4 AF AG AH AI AJ AK E AL ~@2
>`.pickRestart({
  A: "~@6 [e3,a3,d4] ~@11 [e3,a3,d4]@2 ~@4", B: "~@6 [d#3,a3,d4] ~@11 [d#3,a3,d4] ~@5",
  C: "~@6 [e3,a3,d4] ~@11 [e3,a3,d4] ~@5", D: "~@6 [d#3,a3,d4]@2 ~@10 [d#3,a3,d4] ~@5",
  E: "~@6 [g3,a3,d4] ~@11 [g3,a3,d4] ~@5", F: "~@6 [g3,a3,d4] ~@11 [g3,a#3,c#4,f4] ~@5",
  G: "~@6 [f#3,a#3,c4,d#4] ~@11 [f3,a3,b3,d4] ~@5", H: "~@6 [g3,a#3,d4,e4] ~@11 [g3,a#3,d4,e4] ~@5",
  I: "~@6 [f3,g#3,c4,d#4]@2 ~@10 [f3,g#3,a#3,d4] ~@5", J: "~@6 [g3,a3,e4] ~@11 [g3,a#3,c#4,f4] ~@5",
  K: "~@3 [f3,b3,d4] ~@8", L: "~@6 [g3,a3,c4] ~@11 [g3,a3,c4] ~@5", M: "~@6 [f#3,a#3,c4] ~@11 [f3,g3,b3] ~@5",
  N: "~@6 [g3,a#3,c4] ~@11 [g3,a#3,c4] ~@5", O: "~@6 [f3,g#3,c4] ~@11 [f3,a#3,d4] ~@5",
  P: "~@6 [g3,a#3,c4] ~@11 [g3,c#4]@2 ~@4", Q: "~@6 [f3,g3,b3] ~@11 [g3,a3,c4] ~@5",
  R: "~@6 [f3,a3,e4] ~@11 [f3,a3,e4] ~@5", S: "~@6 [f#3,a3,d#4]@2 ~@10 [f#3,a3,d#4] ~@5",
  T: "~@6 [g3,b3,e4] ~@11 [g3,b3,e4] ~@5", U: "~@6 [g3,a#3,d4] ~@11 [g3,a3,c#4]@2 ~@4",
  V: "~@6 [g3,c4,e4] ~@11 [a3,c4,d4] ~@5", W: "~@6 [g3,c4,d4] ~@11 [a3,c4,d4] ~@5",
  X: "~@6 [g3,d4,f4] ~@11 [g3,b3,d4] ~@5", Y: "~@6 [f3,a3,c4] ~@11 [g3,b3,d4] ~@5",
  Z: "~@6 [g3,a3,d4]@2 ~@10 [g3,a3,d4] ~@5", AA: "~@6 [g3,a3,d4] ~@11 [g3,a#3,c#4]@2 ~@4",
  AB: "~@3 [f#3,a#3,c4] ~@5 [f3,g3,d4] ~@2", AC: "~@6 [f3,g#3,c4] ~@11 [f3,g#3,c4] ~@5",
  AD: "~@3 [g3,b3,e4] ~@5 [g3,a#3,c#4] ~@2", AE: "~@3 [f3,b3,d#4] ~@8", AF: "~@6 [g3,a#3,d4] ~@11 [g3,a#3,d4] ~@5",
  AG: "~@6 [g3,a#3,d#4] ~@11 [g#3,c4]@2 ~@4", AH: "~@3 [a#3,c#4] ~@5 [a#3,c#4,f4] ~@2", AI: "~@18 [g3,a3,c4] ~@5",
  AJ: "~@6 [f3,d4]@2 ~@10 [f3,a3,d4] ~@5", AK: "~@6 [f3,a3,d4] ~@11 [f3,a3,d4] ~@5", AL: "~@6 [g3,a3,d4] ~@17",
})).s("gm_electric_guitar_jazz").gain(0.16).pan(0.6)

// chords · alto sax
const alto_sax = note(`<
  ~ A B A B C@2 D E F G ~ H I J K L M N O ~@7 P Q ~@4 F R ~ S T U V W X@3 Y Z@2 AA@3 ~
>`.pickRestart({
  A: "[g3,a3,e4]", B: "[d#3,a3,d4]@23 ~", C: "[e3,g3,a3,d4]/2", D: "[e3,g3,a3,d4]@11 ~ [e3,g3]@6 f4@6, ~ [a#3,c#4]",
  E: "[f3,a3,c4,e4]@3 [f#3,a#3,c4,d#4]@2 [f3,a3,b3,d4]@6 ~", F: "[g3,a#3,d4,e4]", G: "[c4,d#4]@7 [a#3,d4]@5, [f3,g#3]",
  H: "~@8 [f4,a4,c5] [f4,a4,c5]@2 [e4,g4,a4,c5]", I: "[e4,g4,a4,c5]@9 ~ [e4,g4,a4,c5]@4 ~@10",
  J: "~@8 [e4,g4,a4,c5] [e4,g4,a4,c5]@2 [c4,e4,g4,a4]", K: "[e4,g4,a4,c5]@9 ~ [c4,e4,g4,a4]@4 ~@10",
  L: "~@8 [f4,b4,e5] [f4,b4,e5]@2 [f4,a4,c5]", M: "[g4,a#4,c5,e5]@9 ~ [g4,a#4,c5]@2 ~@12",
  N: "~@8 [f4,g#4,d5] [f4,g#4,d5]@2 [f4,g#4,c5]", O: "[g4,a4,c5,e5] ~@11", P: "[f3,b3,e4]@11 ~ [f3,b3,d4]@11 ~",
  Q: "[f3,a3,c4]@12 [f3,g3,b3]@5 ~@7", R: "d#4@14 d4@9 ~, [f3,g#3,c4]", S: "~@2 [b3,d#4,f4,a#4]", T: "[b3,d4,e4,g4]",
  U: "[g3,b3,d#4,g4]", V: "[g3,b3,e4,g4]@2 [a#3,c#4,e4,g4]", W: "[f3,a3,c4,e4]@5 ~ [f#3,c4,f4,c5]@4 [f3,b3,e4,b4]@13 ~",
  X: "[a4@2 g#4 ~@3 f#4 [d4,f4] b3 a#3 ~ f4, a#3@7 g#3@3 [g3,a3,c#4]@2, e4@4 d#4@3 ~ e4@3 ~, ~ g4 ~@2]/3", // Dm A7
  Y: "e4@4 d#4@2 [f3,g#3,b3,d4]@4 [e3,g3,a3,c4]@13 ~, [f#3,a3,c4] ~@3", Z: "[[a3,d4,a4,d5]@47 ~]/2",
  AA: "[e3,g3,a3,e4,d5]/3", // Em7
})).s("gm_alto_sax").gain(0.2).pan(0.3)

// other · baritone sax · "BARITONSAX"
const baritone_sax = note("<~ A B C D ~@4 C E ~ F G H G I J K L ~@7 M N ~@7 O C B P Q ~@4 R@2 C S@2 ~>".pickRestart({
  A: "c2@23 ~", B: "f1", C: "c2", D: "f1@23 ~", E: "f2@14 a#2@9 ~", F: "~@8 a3 a3@2 g3", G: "a3@10 g3@3 ~@11",
  H: "~@16 a3@2 a3@3 ~ g3@2", I: "~@8 f3 f3@2 d3", J: "g3@9 ~ e3@2 ~@12", K: "~@8 d3 d3@2 c3", L: "e3 ~@11",
  M: "g1@4 ~@2 g1@5 ~@7 g1@4 ~@2", N: "~@6 g1@3 ~@3 g1@7 ~@5", O: "~@2 g2", P: "e2@2 d#2", Q: "d2@5 ~ g#2@3 ~ g2@13 ~",
  R: "[f1@20 g2 a2 g#2 g2]/2", S: "[c2@11 ~ c2@36]/2",
})).s("gm_baritone_sax").gain(0.33).pan(0.2)

// chords · trumpet
const trumpet = note("<~@12 A B A B A C D E ~@17 F G H I ~@4 J K ~@4>".pickRestart({
  A: "~@8 e5 e5@2 c5", B: "e5@10 c5@3 ~@11", C: "e5@5 c5 ~@6", D: "~@8 d5 d5@2 c5", E: "e5 ~@11",
  F: "~@4 [e4,g4,b4]@5 ~ [e4,g4]@2 [e4,g4,b4]@7 ~@3 [b3,e4,g4]@2", // Em
  G: "[b3,d#4,g4,b4]@3 ~ [d#4,g4]@2 [d#4,g4,b4]@3 ~ [b3,d#4,g4]@2 [d#4,g4,b4]@3 ~ [b3,d#4,g4]@6 ~@2, ~@4 b3 ~@19", // Baug D# D#aug Baug D#aug Baug
  H: "~@4 [e4,g4,b4]@2 ~@4 [b3,e4,g4]@2 [e4,g4,b4]@3 ~ [c4,g4,c5]@8", // Em C5
  I: "[c4,g4,c5]@5 ~ [g#3,c4,f4]@3 ~ [g3,b3,e4]@12 ~@2", J: "~@4 [d4,g4,b4]@5 ~ [d4,g4]@2 [d4,g4,b4]@7 ~@3 [d4,g4]@2",
  K: "[d4,g4,b4]@3 ~ g4@2 [d4,g4,b4]@3 ~ g4@2 [d4,g4,b4]@3 ~ [d4,g4]@7 ~, ~@4 d4 ~@5 d4 ~@13", // G G5
})).s("gm_trumpet").gain(0.44).pan(0.6)

// chords · brass section · "BRASS 1"
const brass_section = note("<~@12 A B C B D E F G ~@17 H I J K ~@4 L M ~@4>".pickRestart({
  A: "~@16 [a4,c5,e5]@2 [a4,c5,e5]@3 ~ [e4,g4,a4,c5]@2", B: "[g4,a4,c5,e5]@9 ~ [e4,g4,a4,c5]@4 ~@10",
  C: "~@8 [g4,a4,c5,e5] [g4,a4,c5,e5]@2 [e4,g4,a4,c5]", D: "~@16 [f4,a4,b4,e5]@2 [f4,a4,b4,e5]@3 ~ [f4,a4,c5]@2",
  E: "[g4,a#4,c5,e5]@9 ~ [e4,g4,a#4,c5]@2 ~@12", F: "~@16 [f4,g#4,c5,d5]@2 [f4,g#4,c5,d5]@3 ~ [d4,f4,g#4,c5]@2",
  G: "[g4,a4,c5,e5] ~@11", // Am7
  H: "~@4 [e4,g4,b4,e5,g5,b5]@5 ~ [b3,e4,g4,b4,e5,g5]@2 [e5,g5,b5]@8 ~@2 [b3,e4,g4,b4,e5,g5]@2, ~@2 [e4,g4,b4] ~", // Em
  I: "[d#4,g4,b4,d#5,g5,b5]@3 ~ [b3,d#4,g4,b4,d#5,g5]@2 [d#4,g4,b4,d#5,g5,b5]@4 [b3,g4,b4,d#5,g5]@2 [d#4,g4,b4,d#5,g5,b5]@3 ~ [b3,d#4,g4,b4,d#5,g5]@7 ~, ~@10 d#4 ~@13", // D#aug Baug D#aug Baug D#aug Baug
  J: "~@4 [b3,b4,e5,g5,b5]@2 ~@4 [b3,e4,g4,b4,e5,g5]@2 [e4,g4,b4,g5,b5]@3 ~ [c4,c5,g5,c6]@8, ~@4 [e4,g4] ~@19", // Em C5 Em
  K: "[c4,g4,c5,g5,c6]@5 ~ [g#3,c4,f4,g#4,c5,f5]@3 ~ [g3,b3,e4,g4,b4,e5]@13 ~", // C5 Fm Em
  L: "~@4 [g4,b4,d5,g5,b5]@5 ~ [d4,g4,d5,g5]@2 [d5,g5,b5]@8 ~@2 [g4,d5,g5]@2, ~@2 [d4,b4] ~", // G G5 G G5 G
  M: "[d4,b4,d5,g5,b5]@3 ~ [d4,g4,d5,g5]@2 [d4,g4,b4,d5,g5,b5]@3 ~ [d4,g4,d5,g5]@2 [d4,g4,b4,d5,g5,b5]@3 ~ [d4,g4,d5,g5]@7 ~", // G G5 G G5 G G5
})).s("gm_brass_section").gain(0.49).pan(0.4)

// chords · muted trumpet · "MT TRUMPET"
const muted_trumpet = note("<~ A ~ B ~@9 C D E F G H ~@28 I J@3>".pickRestart({
  A: "~@4 [g5,b5]@2 [g5,b5]@4 [d5,g5]@2 [g5,b5]@4 [d5,g5]@7 ~", B: "~@2 [g5,b5] [g5,b5]@2 [d5,g5] [g5,b5]@2 [d5,g5]@4",
  C: "~@16 [g4,a4,c5,e5]@2 [g4,a4,c5,e5]@3 ~ [e4,a4,c5]@2", D: "[g4,a4,c5,e5]@9 ~ [e4,g4,a4,c5]@4 ~@10",
  E: "~@16 [g4,a4,c5,e5]@2 [g4,a4,c5,e5]@3 ~ [e4,g4,a4,c5]@2", // Am7
  F: "[f#4,a4,c5,e5]@5 ~ [f#4,a#4,c5,d#5]@4 [f4,a4,b4,d5]@2 ~@12", // F#m7b5 Cm7b5 Bm7b5
  G: "~@16 [g4,a#4,c5,e5]@2 [g4,a#4,c5,e5]@3 ~ [e4,g4,a#4,c5]@2", H: "[f4,g#4,c5,d#5]@9 ~ [f4,g#4,c5,d5]@4 ~@10",
  I: "~@4 [g5,b5]@5 ~ g5@2 [g5,b5]@8 ~@2 g5@2", J: "[[g5,b5]@3 ~ g5@2 [g5,b5]@4 g5@39 ~@23]/3",
})).s("gm_muted_trumpet").gain(0.3).pan(0.9)

// chords · muted trumpet · "MT TRUMPET" · soft notes
const muted_trumpet_soft = note("<~@13 A ~@33 B C@3>".pickRestart({
  A: "~@11 g4", B: "~@4 [g4,b4]@5 ~ [e4,g4,e5]@2 [g4,b4]@8 ~@2 [e4,g4,e5]@2",
  C: "[[g4,b4]@3 ~ [e4,g4,e5]@2 [g4,b4]@4 [e4,g4,e5]@39 ~@23]/3", // G Em G Em
})).s("gm_muted_trumpet").gain(0.1).pan(0.9)

// chords · muted trumpet · "MT TRUMPET"
const muted_trumpet_2 = note("<~@2 A ~ A ~@8 B C B D E F ~@28 G H@3>".pickRestart({
  A: "~@4 [g5,b5]@2 [g5,b5]@4 [d5,g5]@2 [g5,b5]@4 [d5,g5]@7 ~", // G G5 G G5
  B: "~@16 [g4,a4,c5,e5]@2 [g4,a4,c5,e5]@3 ~ [e4,g4,a4,c5]@2", C: "[g4,a4,c5,e5]@9 ~ [e4,g4,a4,c5]@4 ~@10",
  D: "[f#4,a4,c5,e5]@5 ~ [f#4,a#4,c5,d#5]@4 [f4,a4,b4,d5]@2 ~@12", // F#m7b5 Cm7b5 Bm7b5
  E: "~@16 [g4,a#4,c5,e5]@2 [g4,a#4,c5,e5]@3 ~ [e4,g4,a#4,c5]@2", F: "[f4,g#4,d#5]@9 ~ [f4,g#4,c5,d5]@4 ~@10",
  G: "~@4 [g5,b5]@5 ~ g5@2 [g5,b5]@8 ~@2 g5@2", H: "[[g5,b5]@3 ~ [e5,g5]@2 [g5,b5]@3 ~ g5@39 ~@23]/3",
})).s("gm_muted_trumpet").gain(0.3).pan(0.1)

// chords · muted trumpet · "MT TRUMPET" · soft notes
const muted_trumpet_soft_2 = note("<~@18 A ~@28 B C@3>".pickRestart({
  A: "c5@3 ~@5", B: "~@4 [g4,b4]@5 ~ [e4,g4,e5]@2 [g4,b4]@8 ~@2 [e4,g4,e5]@2",
  C: "[[g4,b4]@3 ~ [e4,g4]@2 [g4,b4]@3 ~ [e4,g4,e5]@39 ~@23]/3", // G Em G Em
})).s("gm_muted_trumpet").gain(0.15).pan(0.1)

// chords · trombone
const trombone = note(`<
  ~ A ~@3 B@2 C D E F ~ G H I J K L M N O P@2 Q R@3 S@2 T@2 U V E W ~ X Y Z AA AB AC AD AE AF AG@2 ~ AH@2 ~
>`.pickRestart({
  A: "[e3,g3,a3,d4]@23 ~", B: "[[g3,d4]@47 ~]/2", C: "d4@12 ~@6 f4@5 ~, ~@12 [a#3,c#4]@11 ~",
  D: "[f3,a3,c4,e4]@5 ~ [f#3,a#3,c4,d#4]@3 ~ [f3,a3,b3,d4]@11 ~@3", E: "[g3,a#3]", F: "c4@7 d4@5",
  G: "~@8 [f3,a3,c4] [f3,a3,c4]@2 [c3,e3,g3,a3]", // F Am7
  H: "[e3,g3,a3,c4]@9 ~ [c3,e3,g3,a3]@4 ~@2 [c4,e4,g4,a4]@2 [c4,e4,g4,a4]@4 [c4,e4,g4]@2", // Am7 C
  I: "[c4,e4,g4,a4]@9 ~ [c4,e4,g4]@4 ~@2 [g3,a3,c4,e4]@2 [g3,a3,c4,e4]@3 ~ [e3,g3,a3,c4]@2", // Am7 C Am7
  J: "[g3,a3,c4,e4]@9 ~ [e3,g3,a3,c4]@4 ~@2 [c4,e4,g4,a4]@2 [c4,e4,g4,a4]@3 ~ [c4,e4,g4]@2", // Am7 C
  K: "[c4,e4,f#4,a4]@5 ~ [c4,d#4,f#4,g#4]@3 ~ [b3,d4,f4,g4]@2 ~@4 [f3,a3,b3,e4]@2 [f3,a3,b3,e4]@4 [f3,a3,c4]@2", // F#m7b5 G#7 G7 Fmaj7 F
  L: "[g3,a#3,c4,e4]@9 ~ [e3,g3,a#3,c4]@2 ~@4 [g3,a#3,c4,e4]@2 [g3,a#3,c4,e4]@4 [e3,g3,a#3,c4]@2", // C7
  M: "[f3,g#3,c4,d#4]@9 ~ [f3,g#3,c4,d4]@4 ~@2 [f3,g#3,c4,d4]@2 [f3,g#3,c4,d4]@4 [f3,g#3,c4]@2", // Fm7 Dm7b5 Fm
  N: "[g3,a3,c4,e4] ~@11", O: "~@15 [c#3,c#4] [d3,d4]@2 [b2,b3]@4 [c3,c4]@2", P: "[[f3,e4] [f#3,d#4], a3]/2",
  Q: "d4@2 b3 c4, [g2,e3,g3]", // C
  R: "[[a#2,f3,g3,d4]@12 f4@6 ~@6 [g3,c4]@12 f#3@12 g3@11 ~ [f#3,c4]@12, ~ [a2,c#4] d3@4, ~@6 g3@5 ~@7 a3@18, ~@3 e4@3 d4@4 ~@2]/3", // Gm7 C5 F#dim A
  S: "[g2@5 ~ g2@5 a#3 ~@6 g2@5 ~@7 g2@3 ~@3 [g2,g3,b3]@5 ~@7, f3@41 ~@7, [b3,e4] [b3,d4] [a3,c4] ~]/2", // G E5 Bm Am
  T: "[[e3,g3,a3,d4]@47 ~]/2", U: "d4@12 e3@6 f4@5 ~, ~ [g3,a#3,c#4]", V: "[f3,a3,c4,e4]@5 ~ [f#3,a#3,c4,d#4]@4 ~@14",
  W: "[c4,d#4]@7 [a#3,d4]@4 ~", X: "~@2 [b3,d#4,f4,a#4]", Y: "[b3,d4,e4,g4]", Z: "[d#4,g4,b4,d5]",
  AA: "[e3,g3,b3,e4]@2 [g3,a#3,c#4,e4]", AB: "[f3,a3,c4,e4]@6 [f#3,c4,f4,c5]@4 [f3,b3,e4,b4]@13 ~",
  AC: "[e3,g3,a#3,d4]", AD: "g3@2 f#3 f3, c4@23 ~, d#3@9 g#3@2 ~", AE: "b4 a#4 e4 f4, [e4,g#4] [c#4,a4]",
  AF: "[c4,e4]@4 [b3,d#4]@2 [g#3,b3,d4]@4 [g3,a3,c4]@13 ~", AG: "[f3,d4,a4]/2", AH: "[~@7 [c2,e3,a3,d4]@8 ~]/2",
})).s("gm_trombone").gain(0.33).pan(0.7)

// chords · trombone · soft notes
const trombone_soft = note("<~@2 A B C D@2 E ~@2 F ~@20 G H ~@18>".pickRestart({
  A: "[d#3,g3,a3,d4]@23 ~", B: "[e3,g3,a3,d4]@23 ~", C: "[d#3,g3,a3,d4]", D: "[[e3,a3]@47 ~]/2", E: "g3, e3@3 ~, a3 ~",
  F: "d#4@7 a#3@5", G: "[e3,g3,a3] ~", H: "~@10 [f3,a3,b3,d4]@11 ~@3",
})).s("gm_trombone").gain(0.22).pan(0.7)

// bass · tuba
const bass_2 = note(`<
  A B C D C ~ E F E G H F I J ~@2 K L M N O P Q R S T@2 U V G E W E W ~@2 X Y Z AA AB ~@3 AC AD@2 Y AE@2 ~
>`.pickRestart({
  A: "~@9 a2 g#2 g2", B: "c2@5 ~@13 d3@2 c#3@2 c3@2", C: "f2@3 ~@6 a2 g#2 g2", D: "c2@3 ~@6 d3 c#3 c3",
  E: "~@8 g2 a2 g#2 g2", F: "c2 ~@3", G: "c2@5 ~@19", H: "~@9 a#2 g#2 g2", I: "~@8 d#2 e2 g2 a2", J: "c2 ~@7",
  K: "~@8 f3 f3@2 d3", L: "g3@10 e3 ~@13", M: "~@8 d3 d3@2 c3", N: "e3 ~@11", O: "~@16 d3@2 b2@3 ~ c3@2, ~@16 c#3 ~@7",
  P: "f2", Q: "f#2", R: "g2", S: "a#2@12 a2@4 ~@2 a2@5 ~", T: "[a2 d2@3]/2", U: "g2@6 g1@5 ~@7 g1@4 ~@2",
  V: "~@6 g1@5 ~@5 g2@2 a2@2 g#2@2 g2 ~", W: "c2 ~@5", X: "~@2 g1", Y: "c2", Z: "f1", AA: "e2@2 d#2",
  AB: "d2@6 g#2@3 ~ g2@14", AC: "~@9 d3 c#3 c3", AD: "[f2@20 g2 a2 g#2 g2]/2", AE: "[c2@11 ~ c2@36]/2",
})).s("gm_tuba").gain(0.33).pan(0.6)

// other · vibraphone
const vibraphone = note("<~@21 A B C D E F G H ~@8 I J ~@12>".pickRestart({
  A: "~@4 c4 e4 f4 a4 ~ c5 e5 ~@13", B: "~@2 f#4 a4 c5 d5 ~ d#5 d5 d#5 d5 [d5,d#5] ~@4 c5@4 ~@4",
  C: "~@6 d5 d#5 ~ e5 c5 ~@13", D: "~@2 e4 g4 a4 ~ a#4@2 e5 a#4@2 a4@2 ~ a4 ~ g4 a4 ~ a#4 e5@2 a#4 a4, ~@15 e4@2 ~@7",
// … 60 more lines

More by Sinatra