Strudelify

harlem nocturne

Earle Hagen

KeyG majorTempo120 bpm
0:00/0:00
// harlem nocturne — Earle Hagen
// 120 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: ch 1 "Alt Saxophon" named as a reed, played on alto sax (its piano patch is not one); ch 2 "Alt Saxophon" named as a reed, played on alto sax (its piano patch is not one); ch 3 "Tenor Saxophon" named as a reed, played on tenor sax (its electric bass finger patch is not one); ch 4 "Tenor Saxophon" named as a reed, played on tenor sax (its slap bass 1 patch is not one); ch 5 "Bariton Saxophon" named as a reed, played on baritone sax (its slap bass 2 patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5058449; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 117 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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.

// chords · alto sax · "Alt Saxophon"
const alto_sax = note(`<
  A@4 B@3 C@6 D@6 E@5 F@3 G H I J K F@3 G H I J L M ~ N@2 O@2 N@2 O@2 N@2 O@2 N@2 P Q@2 F@3 R S T J L U V W@2 X@4 Y Z@3
  AA@4 AB@2 AC@2 F@3 G H I J K F@3 G H I J L M ~ N@2 O@2 N@2 O@2 AD@2 AE@2
>`.pickRestart({
  A: "[~@10 [e3,a3,a#3,d4]@3 ~@4 [e3,a3,a#3,d4]@3 d2@3 [e3,a3,a#3,d4]@3 [e3,a3,a#3,d4]@3 ~@4 g2@12 ~ d2@3 d2@6 g2@6 ~@7 [e3,a3,a#3,d4]@3 d2@3 ~ [e3,a3,a#3,d4]@3 [e3,a3,a#3,d4]@3 d2@3 [g2,e3,a3,a#3,d4]@3 ~@4 g3@3 d4@2, ~@10 g2@9 ~@4 d2@9 ~ [e3,a3,a#3,d4]@29 g2@9 ~@4 d2@6 ~@15]/4", // Dsus2 Em7b5 Dsus2
  B: "[~ g4@3 a4@6 ~ a#4@3 ~@10 [e3,a3,a#3,d4]@3 d2@3 [e3,a3,a#3,d4]@3 [e3,a3,a#3,d4]@3 ~@10 g4@3 d4@3 ~ [d2,a#3]@3 [d2,g3]@6 a#3@3 d4@3 ~ c2@3, ~@14 f#4@29 ~@29, ~@17 g2@9 ~@4 d2@9 ~ [e3,a3]@28 ~@4, ~@40 [g2,a#3]@13 ~@9 g2@6 ~@4, ~@40 d4@9 ~@23]/3", // Dsus2 Gm G5 A5 Gm
  C: "[~@3 [d#3,a3,a#3,d4]@3 g2@3 [d#3,a3,a#3,d4]@3 ~ [d#3,a3,a#3,d4]@3 ~@10 c4@3 g4@3 [g2,c5]@3 [g2,d5]@6 ~ d#5@3 ~@9 [d#3,a3,d4]@3 ~ g2@3 [d#3,a3,d4]@2 ~ [d#3,a3,d4]@3 ~@10 c5@3 g4@3 [c2,d#4]@3 ~ [d#2,g3,c4,c#4,f4]@6 a4@3 g4@3 [e3,a3,a#3,d4]@3 ~@4 [e3,a3,a#3,d4]@3 d2@3 [e3,a3,a#3,d4]@3 ~ [e3,a3,a#3,d4]@3 g2@3 [g2,e3,a3,a#3,d4]@3 ~@3 g3@3 ~ d4@3 g4@3 e4@6, c4@22 ~@23 b4@29 ~@25 g4@26 ~@19, ~@9 g2@9 ~ [d#3,a3,a#3,d4]@29 ~@23 [d#3,a3,d4]@15 ~@58, ~@19 c2@12 ~@11 c2@6 c2@9 ~@4 g2@9 ~ c2@12 ~@10 [d2,f#3,a#3,c4,f4]@6 g2@9 ~@4 d2@6 ~@26]/6", // D#maj7 C5 G5 D Cm Dsus2 Em7b5 D#maj7 …
  D: "[e4@3 ~@10 [e3,a3,a#3,d4]@3 ~ d2@3 [e3,a3,a#3,d4]@3 [e3,a3,a#3,d4]@3 ~@10 g4@3 d4@3 [d2,a#3]@3 [d2,g3]@6 ~ a#3@3 d4@2 ~@8 [d#3,a3,a#3,d4]@3 g2@3 [d#3,a3,a#3,d4]@3 [d#3,a3,a#3,d4]@3 ~@10 d#4@3 g4@3 ~ [g2,g4]@3 [g2,a4]@6 a4@3 ~@10 [d#3,a3,d4]@3 g2@3 ~ [d#3,a3,d4]@2 ~ [d#3,a3,d4]@3 ~@10 c5@3 g4@2, ~@4 d4@9 ~@16 [e3,a3]@28 ~@24 [d#3,a3,a#3,d4]@29 ~@34, ~@7 g2@9 ~@4 d2@9 [g2,a#3]@13 ~@10 g2@6 c2@9 ~@4 g2@9 ~ c2@12 ~@10 c2@6 ~ c2@9 ~@4 g2@9 [c2,d#3,a3,d4]@12, ~@29 d4@10 ~@23 c4@22 ~@23 g4@29 ~@8]/6", // Dsus2 Gm G5 D#maj7 G Gsus2 D A5 …
  E: "[~ [c2,d#4]@3 [d#2,g3,c4,c#4,f4]@6 ~ a4@3 g4@3 [e3,a3,a#3,d4]@3 ~@4 [e3,a3,a#3,d4]@3 d2@3 [e3,a3,a#3,d4]@3 [e3,a3,a#3,d4]@3 ~@4 g2@12 ~ d2@3 d2@6 g2@6 ~ g2@6 [g2,e3,a3,a#3,d4]@3 ~@3 [g2,e3,a3,a#3,d4]@3 ~ [g2,e3,a3,a#3,d4]@3 ~@3 [g2,e3,a3,d4]@3 ~@26, ~@11 [d2,f#3,a#3,c4,f4]@6 g4@26 ~@77, ~@17 g2@9 ~@4 d2@9 ~ [e3,a3,a#3,d4]@28 ~@23 a#3@22 ~@7]/5", // Cm Dsus2 Em7b5 Gsus2 A# Dsus2
  F: "a#2 ~ f2 c3, [g#3,d4,f4]@3 [g#3,d#4,f4]@5, ~ a#2 ~@2", // Ddim Fm7
  G: "a#2@3 a#2@3 [c#2,b3,d#4,a#4]@2 ~ [d2,c4,e4,b4]@2 ~, [g#3,d4,f4] ~", // D#7 Cmaj7 Ddim
  H: "c5 a#4 c5 g#3 a#2@2 f2@2, [g3,c4,c#4,f4]@3 [c4,c#4,f4,g#4]@5, d#2@6 d#2@6 g#3@11 ~", // Csus4 C#maj7
  I: "c5 a#4 c5 g#3 a#2@2 ~ [c4,c5], [g3,c4,c#4,f4]@3 [c4,c#4,f4,g#4]@4 ~, d#2@2 d#2@2 g#3@3 ~, ~@3 f2", // C Csus4 C#maj7
  J: "[f4,f5] a#4 [d#4,d#5] g#4 [c#4,c#5] f#4 [b3,b4] e4", K: "[a3,a4] d4 [g3,g4] c4 [f3,f4] [f2,d#3,a3,d4,f4]@3",
  L: "a4 d4 g4 c4 f4 a#3 d#4 g#3", M: "d4@2 [g2,e3,a3,a#3,d4] ~ [g2,e3,a3,a#3,d4]!2 ~ [g2,e3,a3,a#3,d4]",
  N: "[~@2 [e3,a3,a#3,d4] d2 [e3,a3,a#3,d4]!2 ~ [g2,e3,a3,a#3,d4]@4 d2 d2@2 g2@2, g2@9 ~@3 d2@9 ~@12 [e3,a3,a#3,d4]@14 ~]/2", // Dsus2 Em7b5 Dsus2
  O: "[~@2 [d#3,a3,a#3,d4] g2 [d#3,a3,a#3,d4]!2 ~ [c2,d#3,a3,a#3,d4]@4 g2 g2@2 c2@2, c2@9 ~@3 g2@9 ~@12 [d#3,a3,a#3,d4]@14 ~]/2", // D#maj7 Adim D#maj7
  P: "~@3 g2 g2@2 c2@2, ~@9 [d#3,a3,a#3,d4]@14 ~", // D#maj7
  Q: "[[g2,e3,a3,a#3,d4] ~ [g2,e3,a3,a#3,d4] ~ [g2,e3,a3,a#3,d4]!2 ~ [g2,e3,a3,d4] ~@8, ~@7 a#3@7 ~@2]/2", // Em7b5 Gsus2
  R: "a#2@6 a#2@6 [c#2,b3,d#4]@3 a#3@3 [d2,c4,e4]@4 ~@2, [g#3,d4,f4] ~", // G#m C Ddim
  S: "d#4 a#3 c4 g#3 a#2@2 ~ f4, [g3,c#4,f4]@9 [c4,c#4]@14 ~, [d#2,c4]@6 d#2@6 g#3@11 ~, ~@3 f4@4 ~, ~@3 f2", // Gm7b5 C#maj7 Cm
  T: "d#4 a#3 c4 g#3 a#2@2 ~ [c4,c5], [g3,c#4,f4]@9 [c4,c#4,f4]@11 ~@4, [d#2,c4]@2 d#2@2 g#3@3 ~, ~@3 f2", // C Gm7b5 C#maj7 Cm
  U: "~@2 [g2,e3,a3,a#3,d4] ~ [g2,e3,a3,a#3,d4]!2 ~ [g2,e3,a3,a#3,d4]", V: "~ g3 d4 g4 a4@2 a#4 f#4",
  W: "[~@2 [e3,a3,a#3,d4] d2 [e3,a3,a#3,d4]!2 ~@3 g4 d4 [d2,a#3] [d2,g3]@2 a#3 d4, g2@9 ~@3 d2@9 [e3,a3]@26 ~, ~@7 [g2,a#3]@4 ~@3 g2@2, ~@7 d4@3 ~@6]/2", // Dsus2 Gm G5 A5 Gm
  X: "[~@6 [d#3,a3,a#3,d4]@3 g2@3 [d#3,a3,a#3,d4]@3 [d#3,a3,a#3,d4]@3 ~@9 c4@3 g4@3 [g2,c5]@3 [g2,d5]@6 d#5@3 ~@9 [d#3,a3,d4]@3 g2@3 [d#3,a3,d4] ~@2 [d#3,a3,d4]@3 ~@9 c5@3 g4@3 [c2,d#4]@3 [d#2,g3,c4,c#4,f4]@6 a4@3 g4@3, c2@9 ~@3 g2@9 [d#3,a3,a#3,d4]@27 ~@21 [d#3,a3,d4]@14 ~@13, ~ c4@7 ~@7 b4@9 ~@8, ~@21 c2@11 ~@10 c2@6 c2@9 ~@3 g2@9 c2@11 ~@10 [d2,f#3,a#3,c4,f4]@6]/4", // D#maj7 C5 G5 D Cm D#maj7 D A#
  Y: "[e3,a3,a#3,d4] ~ [e3,a3,a#3,d4] d2 [e3,a3,a#3,d4]!2 g2 [g2,e3,a3,a#3,d4], g4, g2@3 ~ d2@2 ~@2", // Dsus2 Em7b5
  Z: "[~@3 g3@3 d4@3 g4@3 e4@6 e4@3 ~@9 [e3,a3,a#3,d4]@3 d2@3 [e3,a3,a#3,d4]@3 [e3,a3,a#3,d4]@3 ~@9 g4@3 d4@3 [d2,a#3]@3 [d2,g3]@6 a#3@3 d4 ~@2, ~@21 d4@9 ~@15 [e3,a3]@26 ~, ~@8 g2@3 ~ d2@3 [g2,a#3]@4 ~@3 g2@2, ~@5 d4 ~@2]/3", // Dsus2 Gm G5 A5 Gm
  AA: "[~@6 [d#3,a3,a#3,d4]@3 g2@3 [d#3,a3,a#3,d4]@3 [d#3,a3,a#3,d4]@3 ~@9 d#4@3 g4@3 [g2,g4]@3 [g2,a4]@6 a4@3 ~@9 [d#3,a3,d4]@3 g2@3 [d#3,a3,d4] ~@2 [d#3,a3,d4]@3 ~@9 c5@3 g4@3 [c2,d#4]@3 [d#2,g3,c4,c#4,f4]@6 a4@3 g4@3, c2@9 ~@3 g2@9 [d#3,a3,a#3,d4]@27 ~@21 [d#3,a3,d4]@14 ~@13, ~ c4@7 ~@7 g4@9 ~@8, ~@21 c2@11 ~@10 c2@6 c2@9 ~@3 g2@9 c2@11 ~@10 [d2,f#3,a#3,c4,f4]@6]/4", // D#maj7 G Gsus2 D Cm D#maj7 D A#
  AB: "[[e3,a3,a#3,d4]@3 ~@3 [e3,a3,a#3,d4]@3 d2@3 [e3,a3,a#3,d4]@3 [e3,a3,a#3,d4]@3 ~@3 g2@11 ~ d2@3 d2@6 g2@6, g4 ~, g2@9 ~@3 d2@9 [e3,a3,a#3,d4]@26 ~]/2", // Dsus2
  AC: "[g2@2 [g2,e3,a3,a#3,d4] ~ [g2,e3,a3,a#3,d4]!2 ~ [g2,e3,a3,d4] ~@8, ~@7 a#3@7 ~@2]/2", // Em7b5 Gsus2
  AD: "[[e3,a3,a#3,d4]@3 ~@3 [e3,a3,a#3,d4]@3 d2@3 [e3,a3,a#3,d4]@3 [e3,a3,a#3,d4]@3 ~@3 g2@11 ~ d2@3 d2@6 g2@6, g4, g2@9 ~@3 d2@9 [e3,a3,a#3,d4]@26 ~]/2", // Dsus2
  AE: "[[d3,f#3,a#3,c4,f4] ~ [d3,f#3,a#3,c4,f4] ~ [d3,f#3,a#3,c4,f4]!2 ~ [g2,e3,a#3,d4,f#4,a4]@9]/2", // A# Em7b5
})).s("gm_alto_sax").gain(0.3)

// chords · tenor sax · "Tenor Saxophon"
const tenor_sax = note(`<
  A@4 B@7 C@2 D@4 E@2 F@5 G@3 H I J K L G@3 H I J K ~ M ~ N@2 O@2 N@2 O@2 N@2 O@2 N@2 P Q@2 G@3 R S T U ~ M V W@2 X@4 Y
  Z@3 AA AB@2 AC AD AE AF@2 G@3 H I J K L G@3 H I J K ~ M ~ N@2 O@2 N@2 O@2 AG@2 AH@2
>`.pickRestart({
  A: "[~@10 e3@3 ~@4 e3@3 d2@3 e3@3 e3@3 ~@4 g1@3 g1@10 d2@3 d2@6 g1@6 ~@7 e3@3 d2@3 ~ e3@3 e3@3 d2@3 [g1,e3]@3 ~@4 g3@3 d4@2, ~@10 g1@10 ~@3 d2@10 e3@29 g1@10 ~@3 d2@6 ~@15]/4", // C
  B: "[~ g4@3 a4@6 ~ a#4@3 ~@3 g1@10 d2@6 d2@6 ~@7 g4@3 d4@3 ~ [d2,a#3]@3 [d2,g3]@6 a#3@3 d4@3 ~@10 g2@3 g2@10 ~@7 c3@3 g3@3 [g2,c4]@3 [g2,d4]@6 ~ d#4@3 ~@3 c2@10 g2@3 g2@10 ~@6 c4@3 g3@3 [c2,d#3]@3 ~ [d#2,c#3]@6 [d2,a3]@3, ~@14 f#4@29 ~@29 c4@22 ~@23 b3@29 ~@22, ~@40 g1@13 ~@9 g1@6 ~ c2@10 ~@12 c2@13 ~@10 c2@6 ~@23 c2@12 ~@13]/7", // Gm G5 C5 G5 Cm D#7 D5
  C: "[g3@3 g1@10 d2@3 d2@6 ~ g1@3 g1@3 ~@3 g3@3 ~ a#3@3 d4@3 a#3@6, ~@3 g3@26 ~@19]/2",
  D: "[a#3@3 ~@4 g1@6 d2@6 ~ d2@9 ~@7 g4@3 d4@3 [d2,a#3]@3 [d2,g3]@6 ~ a#3@3 d4@2 ~@11 g2@3 g2@10 c2@3 ~@3 c4@3 d#4@3 ~ [g2,g4]@2, ~@4 a#3@29 ~@29 c4@22 ~@12, ~@29 g1@13 ~@10 g1@6 c2@10 ~@16 c2@10 ~@2]/4", // Gm G5 G
  E: "[~ [g2,d#4]@6 d#4@3 ~@4 c2@9 g2@3 ~ g2@9 c2@3 ~@4 c4@3 g3@2, ~@7 c2@6 ~@26 c2@9, ~@11 d#4@29 ~@8]/2", // Cm
  F: "[~ [c2,d#3]@3 [d#2,c#3]@6 ~ a3@3 g3@3 g1@10 d2@6 d2@6 ~ g1@3 g1@10 d2@3 d2@6 g1@6 ~ g2@6 [g2,e3]@3 ~@3 [g2,e3]@3 ~ [g2,e3]@3 ~@3 e3@22 ~@7, ~@11 d2@6 g3@26 ~@48 g1@3 ~@26]/5", // Cm D#7 C
  G: "a#1 ~ f1 c2, g#3@3 g#3@5, ~ a#1 ~@2", H: "a#1@3 a#1@3 [c#2,f4]@2 ~ [d2,f#4]@2 ~, g#3 ~",
  I: "d#2 ~ a#1 f2, g4@3 f4@5, ~ d#2 ~@2", J: "d#2@2 ~@2 a#1@2 ~ c4, g4@3 f4@4 ~, ~ d#2 ~ f2",
  K: "f4 ~ d#4 ~ c#4 ~ b3 ~", L: "a3 ~ g3 ~ f3 [f2,a3]@3", M: "~@2 e3 d2 e3!2 g1 [g1,e3], g1@3 ~ d2@2 ~@2",
  N: "[g1@2 d2@2 a#3!2 ~ g1@4 d2 d2@2 g1@2, ~@2 a#3 ~ d2@3 a#3 ~@8]/2",
  O: "[~@2 a#3 g2 a#3!2 ~ c2@4 g2 g2@2 c2@2, c2@3 ~ g2@3 a#3 ~@8]/2", P: "~@3 g2 g2@2 c2@2",
  Q: "[g2@2 [g2,a3] ~ [g2,a3]!2 ~ a3@7 ~@2, a3 ~@6 g1 ~@8]/2", R: "a#1@6 a#1@6 c#2@3 a#3@3 [d2,c4]@4 ~@2, g#3 ~",
  S: "d#4 a#3 c4 ~ a#1@2 ~ f4, d#2!2 ~ f2, ~@3 c#4@4 ~", T: "d#4 a#3 c4 c#4 a#1@2 ~ c4, d#2!2 ~ f2",
  U: "f4 ~ d#4 ~ c#4 ~ c4 ~", V: "~ g3 d4 g4 a4@2 a#4 f#4",
  W: "[g1@3 d2@2 d2@2 ~@2 g4 d4 [d2,a#3] [d2,g3]@2 a#3 d4, ~@7 g1@4 ~@3 g1@2]/2", // Gm G5
  X: "[~@3 g2 g2@3 ~@2 c3 g3 [g2,c4] [g2,d4]@2 d#4 ~ c2@3 g2 g2@3 ~@2 c4 g3 [c2,d#3] [d#2,c#3]@2 a3 g3, c2@3 ~@4 c2@4 ~@3 c2@2 ~@7 c2@4 ~@3 d2@2, ~ c4@7 ~@7 b3@9 ~@8]/4", // C5 G5 Cm D#7
  Y: "g1@3 d2 d2@2 g1!2, g3",
  Z: "[~@3 g3@3 a#3@3 d4@3 a#3@6 a#3@3 ~@3 g1@6 d2@6 d2@9 ~@6 g4@3 d4@3 [d2,a#3]@3 [d2,g3]@6 a#3@3 d4 ~@2, ~@7 a#3@9 ~@8, ~@15 g1@4 ~@3 g1@2]/3", // Gm G5
  AA: "~@3 g2 g2@3 c2, c2@3 ~@5, ~ c4@7",
  AB: "[~ c4 d#4 [g2,g4] [g2,d#4]@2 d#4 ~ c2@3 g2 g2@3 c2, c2@3 ~@3 c2@2 ~@8, ~@7 d#4@9]/2", // G Cm
  AC: "~ c4 g3 [c2,d#3] [d#2,c#3]@2 a3 g3, c2@3 ~@3 d2@2", AD: "g1@3 d2@2 d2@2 g1, g3", AE: "g1@3 d2 d2@2 g1@2",
  AF: "[g2@2 [g2,e3] ~ [g2,e3]!2 ~ e3@7 ~@2, ~@7 g1 ~@8]/2", AG: "[g1@3 d2@2 d2@2 g1@4 d2 d2@2 g1@2, g3]/2",
  AH: "[[d2,f3] ~ [d2,f3] ~ [d2,f3]!2 ~ [g1,a#3]@9]/2", // Dm Gm
})).s("gm_tenor_sax").gain(0.3)

// other · tenor sax · "Tenor Saxophon"
const tenor_sax_2 = note(`<
  A@3 B C@2 D E F@3 G@2 H@4 I@2 J@2 ~ K@2 L@3 M N O P Q L@3 M N O R ~ S ~@16 T@2 L@3 U V W R ~ S X ~ Y Z AA@2 AB AC AD@2
  AE Z AF@2 AB AC ~ AG@2 L@3 M N O P Q L@3 M N O R ~ S ~@9 AH@2 AI@2
>`.pickRestart({
  A: "[~@10 a3@3 ~@4 a3@3 ~@3 a3@3 a3@3 ~@4 a3@29 ~@6 a3@3 ~]/3", B: "~@3 a3@3 a3@3 ~@3 a3@3 ~@4 g3@3 d4@2",
  C: "[~ g4@3 a4@6 ~ a#4@3 f#4@29 ~@3 g4@2]/2", D: "~ d4@3 ~ a#3@3 g3@6 a#3@3 d4@3 ~@4", E: "c4@11 ~",
  F: "[~@2 c3@3 g3@3 c4@3 d4@6 ~ d#4@3 b3@29 ~@3 c4@3 g3@3 d#3@3 ~ c#3@6 a3@3]/3",
  G: "[g3@3 g3@26 ~@3 g3@3 ~ a#3@3 a#3@3 d4@6]/2",
  H: "[d4@3 ~ a#3@29 ~@3 g4@3 d4@3 a#3@3 g3@6 ~ a#3@3 d4@2 ~@5 c4@22 ~@3 c4@3 d#4@3 ~ d#4@2]/4",
  I: "[~ g4@6 g4@3 ~ d#4@29 ~@3 c4@3 g3@2]/2", J: "[~ d#3@3 c#3@6 ~ a3@3 g3@3 g3@26 ~@5]/2",
  K: "[~@3 a3@3 ~@3 a3@3 ~ a3@3 ~@3 a3@22 ~@7]/2", L: "c4@3 c4@5", M: "c4@6 b3@2 ~ c4@2 ~", N: "c#4@3 c#4@5",
  O: "c#4@3 c#4@4 c4", P: "f4 ~ d#4 ~ c#4 ~ b3 ~", Q: "a3 ~ g3 ~ f3 d#3@3", R: "f4 ~ d#4 ~ c#4@2 b3 ~",
  S: "~@2 a3 ~ a3!2 ~ a3", T: "[e3 ~ e3 ~ e3!2 ~ e3@7 ~@2]/2", U: "c4@12 ~@3 a#3@3 c4@4 ~@2", V: "d#4 a#3 c4 c#4@4 f4",
  W: "d#4 a#3 c4 c#4 ~@3 c4", X: "~ g3 d4 g4 a4@2 a#4 f#4", Y: "~ g4 d4 a#3 g3@2 a#3 d4", Z: "~ c4@7",
  AA: "[~ c3 g3 c4 d4@2 d#4 b3@9]/2", AB: "~ c4 g3 d#3 c#3@2 a3 g3", AC: "g3", AD: "[~ g3 a#3!2 d4@2 d4 a#3@9]/2",
  AE: "~@3 g4@3 d4@3 a#3@3 g3@6 a#3@3 d4 ~@2", AF: "[~ c4 d#4!2 g4@2 g4 d#4@9]/2", AG: "[~@2 a3 ~ a3!2 ~ a3@7 ~@2]/2",
  AH: "g3/2", AI: "[a#3 ~ a#3 ~ a#3!2 ~ d4@9]/2",
})).s("gm_tenor_sax").gain(0.4)

// other · tenor sax · "Tenor Saxophon" · soft notes
const tenor_sax_soft = note("<~@42 A ~ A ~ A ~ A ~ A ~ A ~ A ~@50 A ~ A ~ A ~ A ~@5>".pickRestart({
  A: "~@2 d4 ~ d4!2 ~ d4",
})).s("gm_tenor_sax").gain(0.2)

// other · baritone sax · "Bariton Saxophon"
const baritone_sax = note(`<
  A@3 B ~ C@2 D@2 E@3 F G@7 H@2 I@2 J@3 K L@2 ~ M J@2 N K L@2 ~@2 O ~ P ~ P ~ P ~ P ~ P ~ P ~ P ~@2 Q@2 J@3 R L@2 ~@2 O
  ~ S@2 T@2 U@2 V ~ S@2 T@2 W@2 V X Y@2 J@3 K L@2 ~ M J@2 N K L@2 ~@2 O ~ P ~ P ~ P ~ P ~ V X Z@2
>`.pickRestart({
  A: "[~@10 g2@3 ~@4 g2@3 ~@3 g2@3 g2@3 ~@4 g2@29 ~@6 g2@3 ~]/3", B: "~ g2!2 ~ g2 ~@3",
  C: "[g2@3 ~@3 g2@3 g2@3 ~@4 g2@29 ~@3]/2", D: "[~@3 c3@3 ~@3 c3@3 ~ c3@3 ~@3 c3@29]/2",
  E: "[~@6 c3@3 ~@4 c3@3 c3@3 ~@4 c3@16 d#3@6 d3@6 g2@3 ~@4 g2@3 ~@3 g2@3 ~ g2@3 ~]/3", F: "~@2 g2@3 ~@19",
  G: "[~@13 g2@3 ~@4 g2@3 g2@3 ~@3 g2@29 ~@7 c3@3 ~@3 c3@3 c3@3 ~@4 c3@29 ~@6 c3@6 ~ c3@3 c3@3 ~@3 c3@16 d#3@6 ~ d3@6 g2@3 ~@4]/7",
  H: "[g2@3 ~@3 g2@3 g2@3 ~@4 g2@3 g2@26 ~@3]/2", I: "[~@3 g2@3 ~@3 g2@3 ~ g2@3 ~@3 g2@22 ~@7]/2", J: "a#2@3 f2@5",
  K: "a#2@6 c#3@2 ~ d3@2 ~", L: "d#3@3 a#2@5", M: "~@5 f2@3", N: "a#2@3 f2 f2@4", O: "~@2 g2 ~ g2!2 ~ g2", P: "~@7 g2",
  Q: "[g2 ~ g2 ~ g2!2 ~ g2@7 ~@2]/2", R: "a#2 ~", S: "[~@2 g2 ~ g2!2 ~ g2@9]/2", T: "[~@2 c3 ~ c3!2 ~ c3@9]/2",
  U: "[~@2 c3 ~ c3!2 ~ c3@5 d#3@2 d3@2]/2", V: "g2 ~ g2 ~ g2!2 ~ g2", W: "[~@2 c3@2 c3!2 ~ c3@5 d#3@2 d3@2]/2", X: "g2",
  Y: "[~@2 g2 ~ g2!2 ~ g2@7 ~@2]/2", Z: "[d3 ~ d3 ~ d3!2 ~ g2@9]/2",
})).s("gm_baritone_sax").gain(0.3)

// other · baritone sax · "Bariton Saxophon" · soft notes
const baritone_sax_soft = note("<~@42 A ~ A ~ A ~ A ~ A ~ A ~ A ~@50 A ~ A ~ A ~ A ~@5>".pickRestart({
  A: "~@2 g2 ~ g2!2 ~@2",
})).s("gm_baritone_sax").gain(0.2)

// other · trumpet · "B Trompete"
const trumpet = note(`<
  ~ A B@2 ~@9 C@5 D@2 E F G@2 H@2 I J ~@3 K H@2 I J ~@3 L M ~ N O P Q@2 R ~@2 N O P Q@2 R ~ S@2 H@2 I J ~@3 L M ~@9 T@2
  U@2 V@2 ~ W X@2 H@2 I J ~@3 K H@2 I J ~@3 L M ~ N O P Q@2 R ~@3 Y Z@2
>`.pickRestart({
  A: "~@12 a4@3 a#4@3 a4@3 ~ g4@2", B: "[~ a4@3 a#4@3 c5@3 ~ d5@26 ~@11]/2",
  C: "[~@10 a#4@3 a4@3 ~ g4@3 a4@3 a#4@3 c5@3 d5@22 ~@11 g4@3 f4@3 d#4@3 f4@3 d#4@3 ~ d4@3 c4@22 ~@13 d5@3 ~]/5",
  D: "[~@3 d5@3 d5@3 ~@3 d5@16 ~@20]/2", E: "~@11 a#4", F: "~ a4@3 ~ g4@3 a4@3 a#4@3 c5@3 d5@3 ~@4",
  G: "[~@3 d5@3 ~@3 d5@3 ~ d5@3 ~@3 d5@16 ~@3 f4@3 ~ g4@4 ~@2]/2", H: "a#4 f4 g4 g#4@4 c5", I: "a#4 f4 g4 g#4@3 g4 f4",
  J: "d4 f4@3 ~@4", K: "~@15 f4@3 g4@4 ~@2", L: "a4 ~ g4 ~ f4 ~ d#4 ~", M: "d4", N: "a#4@3 a4@3 g4@3 a4@3 g4@3 g4 ~@8",
  O: "a#4!2 a4 ~ g4@2 f4 ~", P: "f4@3 g4@3 g4@3 f4@3 g4@3 g4 ~@2 g4@6", Q: "[~ c4 d4 d#4@2 f4 g4 a4@2 a#4 a4 a4@5]/2",
  R: "a4 a#4 a4 a4@2 a4 c5 ~", S: "[d5@3 ~@3 d5@3 ~@3 d5@3 d5@3 ~@3 d5@15 ~@3 f4@3 g4@4 ~@2]/2",
  T: "[~ a#4 a4 g4 a4 a#4 c5 d5@7 ~@2]/2", U: "[~ g4 f4 d#4 f4 d#4 d4 c4@7 ~@2]/2", V: "[~@2 d5 ~ d5!2 ~ d5@5 ~@4]/2",
  W: "~ a#4 a4 g4 a4 a#4 c5 d5", X: "[~@6 d5@3 ~@3 d5@3 d5@3 ~@3 d5@15 ~@3 f4@3 g4@4 ~@2]/2",
  Y: "~ a#4 a4 g4 a4 a#4 c5@2", Z: "[d5 ~ d5 ~ d5!2 ~ d5@9]/2",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "B Trompete"
const trumpet_2 = note(`<
  ~ A B@2 ~@9 C@5 D@2 E F G@2 H@2 I J ~@3 K H@2 I J ~@3 L M ~@16 N@2 H@2 I J ~@3 L M ~@9 O@2 P@2 Q@2 ~ R S@2 H@2 I J ~@3
  K H@2 I J ~@3 L M ~@10 T U@2
>`.pickRestart({
  A: "~@12 a4@3 a#4@3 a4@3 ~ g4@2", B: "[~ a4@3 a#4@3 c5@3 ~ d5@26 ~@11]/2",
  C: "[~@10 a#4@3 a4@3 ~ g4@3 a4@3 a#4@3 c5@3 d5@22 ~@11 g4@3 f4@3 d#4@3 f4@3 d#4@3 ~ d4@3 c4@22 ~@13 b4@3 ~]/5",
  D: "[~@3 b4@3 b4@3 ~@3 b4@16 ~@20]/2", E: "~@11 a#4", F: "~ a4@3 ~ g4@3 a4@3 a#4@3 c5@3 d5@3 ~@4",
  G: "[~@3 a4@3 ~@3 a4@3 ~ a4@3 ~@3 a4@16 ~@3 f4@3 ~ g4@4 ~@2]/2", H: "a#4 f4 g4 g#4@4 c5", I: "a#4 f4 g4 g#4@3 g4 f4",
  J: "d4 f4@3 ~@4", K: "~@15 f4@3 g4@4 ~@2", L: "a4 ~ g4 ~ f4 ~ d#4 ~", M: "d4",
  N: "[a4@3 ~@3 a4@3 ~@3 a4@3 a4@3 ~@3 a4@15 ~@3 f4@3 g4@4 ~@2]/2", O: "[~ a#4 a4 g4 a4 a#4 c5 d5@7 ~@2]/2",
  P: "[~ g4 f4 d#4 f4 d#4 d4 c4@7 ~@2]/2", Q: "[~@2 b4 ~ b4!2 ~ b4@5 ~@4]/2", R: "~ a#4 a4 g4 a4 a#4 c5 d5",
  S: "[~@6 a4@3 ~@3 a4@3 a4@3 ~@3 a4@15 ~@3 f4@3 g4@4 ~@2]/2", T: "~ a#4 a4 g4 a4 a#4 c5@2",
  U: "[a#4 ~ a#4 ~ a#4!2 ~ a4@9]/2",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "B Trompete"
const trumpet_3 = note(`<
  ~ A B@2 ~@9 C@5 D@2 E F G@2 H@2 I J ~@3 K H@2 I J ~@3 L M ~@16 N@2 H@2 I J ~@3 L M ~@9 O@2 P@2 Q@2 ~ R S@2 H@2 I J ~@3
  K H@2 I J ~@3 L M ~@10 T U@2
>`.pickRestart({
  A: "~@12 a4@3 a#4@3 a4@3 ~ g4@2", B: "[~ a4@3 a#4@3 c5@3 ~ d5@26 ~@11]/2",
  C: "[~@10 a#4@3 a4@3 ~ g4@3 a4@3 a#4@3 c5@3 d5@22 ~@11 g4@3 f4@3 d#4@3 f4@3 d#4@3 ~ d4@3 c4@22 ~@13 g4@3 ~]/5",
  D: "[~@3 g4@3 g4@3 ~@3 g4@16 ~@20]/2", E: "~@11 a#4", F: "~ a4@3 ~ g4@3 a4@3 a#4@3 c5@3 d5@3 ~@4",
  G: "[~@3 e4@3 ~@3 e4@3 ~ e4@3 ~@3 e4@16 ~@3 f4@3 ~ g4@4 ~@2]/2", H: "a#4 f4 g4 g#4@4 c5", I: "a#4 f4 g4 g#4@3 g4 f4",
  J: "d4 f4@3 ~@4", K: "~@15 f4@3 g4@4 ~@2", L: "a4 ~ g4 ~ f4 ~ d#4 ~", M: "d4",
  N: "[e4@3 ~@3 e4@3 ~@3 e4@3 e4@3 ~@3 e4@15 ~@3 f4@3 g4@4 ~@2]/2", O: "[~ a#4 a4 g4 a4 a#4 c5 d5@7 ~@2]/2",
  P: "[~ g4 f4 d#4 f4 d#4 d4 c4@7 ~@2]/2", Q: "[~@2 g4 ~ g4!2 ~ g4@5 ~@4]/2", R: "~ a#4 a4 g4 a4 a#4 c5 d5",
  S: "[~@6 e4@3 ~@3 e4@3 e4@3 ~@3 e4@15 ~@3 f4@3 g4@4 ~@2]/2", T: "~ a#4 a4 g4 a4 a#4 c5@2",
  U: "[f4 ~ f4 ~ f4!2 ~ f#4@9]/2",
})).s("gm_trumpet").gain(0.4)

// other · trombone · "Posaune"
const trombone = note(`<
  A@3 B ~ C@2 D@2 E@3 F G@5 H@2 C@2 I@2 J@2 K L M@2 ~ N J@2 K L M@2 ~@2 O ~@16 P@2 J@2 K L M@2 ~@2 O ~ Q@4 R@2 S ~ Q@4
  T@2 U@2 V@2 J@2 K L M@2 ~ N J@2 K L M@2 ~@2 O ~@9 U@2 W@2
>`.pickRestart({
  A: "[~@10 d4@3 ~@4 d4@3 ~@3 d4@3 d4@3 ~@4 d4@29 ~@6 d4@3 ~]/3", B: "~ d4!2 ~ d4 ~@3",
  C: "[d4@3 ~@3 d4@3 d4@3 ~@4 d4@29 ~@3]/2", D: "[~@3 d4@3 ~@3 d4@3 ~ d4@3 ~@3 d4@29]/2",
  E: "[~@6 d4@3 ~@4 d4@3 d4@3 ~@4 d4@16 c#4@6 c4@6 d4@3 ~@4 d4@3 ~@3 d4@3 ~ d4@3 ~]/3", F: "~@2 d4@3 ~@19",
  G: "[~@13 d4@3 ~@4 d4@3 d4@3 ~@3 d4@29 ~@7 d4@3 ~@3 d4@3 d4@3 ~@4 d4@29 ~@6 c4@3 ~]/5",
  H: "[~@3 c4@3 c4@3 ~@3 c4@16 c#4@6 ~ c4@6 d4@3 ~@4]/2",
  I: "[~@3 d4@3 ~@3 d4@3 ~ d4@3 ~@3 d4@16 ~@3 f3@3 ~ g3@4 ~@2]/2", J: "a#3 f3 g3 g#3@4 c4", K: "a#3 f3 g3 g#3@3 g3 f3",
  L: "d3 f3@3 ~@4", M: "c#4@3 c#4@5", N: "~@15 f3@3 g3@4 ~@2", O: "~@2 d4 ~ d4!2 ~ d4",
  P: "[d4@3 ~@3 d4@3 ~@3 d4@3 d4@3 ~@3 d4@15 ~@3 f3@3 g3@4 ~@2]/2", Q: "[~@2 d4 ~ d4!2 ~ d4@9]/2",
  R: "[~@2 d4 ~ d4!2 ~ d4@5 c#4@2 c4@2]/2", S: "d4 ~ d4 ~ d4!2 ~ d4", T: "[~@2 c4 ~ c4!2 ~ c4@5 c#4@2 c4@2]/2",
  U: "[d4 ~ d4 ~ d4!2 ~ d4@9]/2", V: "[~@6 d4@3 ~@3 d4@3 d4@3 ~@3 d4@15 ~@3 f3@3 g3@4 ~@2]/2",
  W: "[c4 ~ c4 ~ c4!2 ~ a#3@9]/2",
})).s("gm_trombone").gain(0.4)

// other · trombone · "Posaune" · soft notes
const trombone_soft = note("<~@42 A ~ A ~ A ~ A ~ A ~ A ~ A ~@50 A ~ A ~ A ~ A ~@5>".pickRestart({
  A: "~@2 d4 ~ d4!2 ~ d4",
})).s("gm_trombone").gain(0.2)

// other · trombone · "Posaune"
const trombone_2 = note(`<
  A@3 B ~ C@2 D@2 E@3 F G@5 H@2 C@2 I@2 J@2 K L M@2 ~ N J@2 K L M@2 ~@2 O ~@16 P@2 J@2 K L M@2 ~@2 O ~ Q@4 R@2 S ~ Q@4
  R@2 T@2 O U J@2 K L M@2 ~ N J@2 K L M@2 ~@2 O ~@9 T@2 V@2
>`.pickRestart({
// … 50 more lines